# Boolean Configs

## Common booleans

### Switch

The switch is the best way to represent a simple boolean. It's got both a single and dual column variant, and the option you'll use the most.

```java
@Switch(
    name = "Toggle Switch (1x)",
    size = OptionSize.SINGLE // optional
)
public static boolean bob = false;        // default value
```

This code will create a switch like this:

![Toggle Switch example (off and on states)](/files/sDMq7iXVfLgHOSkFF0wd)

### Checkbox

A checkbox is the best way to represent less important booleans. It's got both single and dual-column variants.

```java
@Checkbox(
    name = "Im a checkbox!",
    size = OptionSize.DUAL // optional
)
public static boolean something = false;        // default value
```

![Checkbox examples (off and on states)](/files/EU8rKWcopKVAWmDhWpfs)

### When should you use a switch or checkbox

The switch option is intended for strict ON/OFF options, such as particles. You either see particles, or you don't. In contrast, checkboxes are intended for finer, more detailed control. Maybe you enable potion particles and disable crits.&#x20;

## Dual Option

Out of the three simple config components, dual options are the most unusual. It's got both single and dual-column variants.

{% hint style="info" %}
**Designers note:** These exist for when a simple ON/OFF component wouldn't make sense. Such as a direction, or time of day. Essentially, a boolean that wouldn't make sense with yes/no.
{% endhint %}

```java
@DualOption(
    name = "I can slide!", // name of the element
    left = "I'm Left",     // string to display on the left
    right = "No, right!"   // string to display on the right
)
public static boolean leftyrighty = false;        // default value
```

![](/files/KzQHQbtcWcv7Y8k7liZI)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.polyfrost.org/oneconfig/config/adding-options/boolean-config-components.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
