> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assistantscenter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashboard Settings

Dashboard settings are simply a complex list of options that the user will be able to change in it. Our module allows the user to divide settings into categories, so this list should contain a category object. The category object itself also contains a list of settings for the category.

```javascript theme={null}
new DBD.Dashboard({
  settings: [categoryObject, categoryObject],
});
```

See more about [categories](/essentials/categories) and [options](/essentials/options)

## Example Usage

```javascript theme={null}
new DBD.Dashboard({
  settings: [
    {
        categoryId: 'input',
        categoryName: 'New Category',
        categoryImageURL: 'URL To image',
        categoryDescription: "Setup your bot with default settings!"
        toggleable: true,
        getActualSet: async ({ guild }) => {
          return settings['toggleeco'];
        },
        setNew: async ({ guild, newData }) => {
          settings['toggleeco'] = newData;
        },
        categoryOptionsList: [
            {
                optionId: 'prefix',
                optionName: "Prefix",
                optionDescription: "Set bot prefix.",
                optionType: DBD.formTypes.input('Prefix', 1, 4, false, false),
                getActualSet: async ({guild}) => {
                    // You will need to create your own query logic here. We use a variable as example!
                    return prefixData[guild.id] || '!';
                },
                setNew: async ({guild,newData}) => {
                    // You will need to create your own save logic here. We use a variable as example!
                    prefixData[guild.id] = newData || '!';
                    return;
                }
            },
        ]
    },
  ],
});
```

[//]: # "<ParamField path=\"settings\" type=\"categoryObject[]\" required>"

[//]: # "  An array of category objects."

[//]: # "</ParamField>"

## Props

<ResponseField name="settings" type="Object[]" required>
  <Expandable title="categoryObject" defaultOpen>
    <ResponseField name="categoryId" type="string" required>
      Unique ID of the category
    </ResponseField>

    <ResponseField name="categoryName" type="string" required>
      The Name that should be displayed
    </ResponseField>

    <ResponseField name="categoryImageURL" type="string">
      URL to an image to be shown
    </ResponseField>

    <ResponseField name="toggleable" type="boolean">
      If the category should be toggleable
    </ResponseField>

    <ResponseField name="categoryDescription" type="string" required>
      Short description of the category to be shown on the page
    </ResponseField>

    <ResponseField name="categoryOptionsList" type="Object[]" required>
      The options that should be included
    </ResponseField>

    <Expandable title="categoryObject" defaultOpen>
      <ResponseField name="optionId" type="string" required>
        Unique ID of the option
      </ResponseField>

      <ResponseField name="optionName" type="string" required>
        The Name that should be displayed
      </ResponseField>

      <ResponseField name="optionDescription" type="string" required>
        Short description of the option to be shown on the page
      </ResponseField>

      <ResponseField name="optionType" type="object" required>
        The [formtype](/essentials/formtypes) you want to use
      </ResponseField>
    </Expandable>
  </Expandable>
</ResponseField>
