# Adding New Settings

{% hint style="success" %}
verified: 2025-11-20 version: v39
{% endhint %}

You can also define new live config settings for your project.

To add a Live Config setting entry, you need to do the following:

1. Navigate to your `project` schema under:\
   \
   `{project-root}/Config/LiveConfig/Schemas/project.schema.json`.\\
2. Add your new property at the appropriate with the following fields:
   * `type` - data type of the config value
     * either `string`, `boolean`, `number`, `integer` , `object` or `array` (of `string`, `boolean`, `number`, or `integer` types - more details can be found in [using-arrays-in-live-config](https://docs.msquared.io/creation/unreal-development/features-and-tutorials/live-config/using-arrays-in-live-config "mention"))
   * `description` - brief explanation of the config setting
     * displayed alongside your setting in the online editor\\
3. Then, depending on the value of `type` you ***must*** add the following field to your config entry:
   * If `type` is `object`
     * `properties`: A JSON object containing a group of Live Config schema entires.
   * If `type` is NOT `object`
     * `default`: The initial value for the setting for a newly started world. (Note: This default value can be overridden on a per-map basis. See [this section](https://docs.msquared.io/creation/unreal-development/features-and-tutorials/live-config/overriding-default-live-config-settings) for details.)\\
4. \[Optional] You can also add value restrictions on to your values depending on your live config setting `type`. These restrictions will be checked only when you update live config values in a running cloud deployment
   * If `type` is `number` or `integer`
     * `minimum`/`exclusiveMinimum`: The minimum allowed value for the config (`exclusive` only accepts values strictly greater than the given number).
     * `maximum`/`exclusiveMaximum`: The maximum allowed value for the config (`exclusive` only accepts values strictly less than the given number).
     * `multipleOf`: Valid for `integer` type only. Restricts live config setting to allow only integers which is a multiple of the value given.
   * if `type` is `string`:
     * `minLength`: An integer denoting the minimum length of the string.
     * `maxLength`: An integer denoting the maximum length of the string.
     * `pattern`: A string of regex pattern that the config string must match.

An example of a correctly defined `string` type live config setting is the following:

```json
"MyStringConfig":
{
    "type": "string",
    "description": "This is a new live config string!",
    "default": "my live config string"
}
```

This live config setting can be queried with the `project` config type and `"MyStringConfig"` attribute name.

An example of a correctly defined group of `boolean` and `integer` type live config setting is the following:

```json
"MyConfigGroup":
{
    "type": "object",
    "description": "This is a new group of live config settings!",
    "properties":
    {
        "MyIntegerConfig":
        {
            "type": "integer",
            "description": "This is a nested live config integer!",
            "default": 25,
            "exclusiveMinimum": 0,
            "maximum": 100
        },
        "MyBooleanConfig":
        {
            "type": "boolean",
            "description": "This is a new live config boolean!",
            "default": false
        }
    }
},
```

These live config settings can be queried with the `project` config type and `"MyConfigGroup.MyIntegerConfig"` or `"MyConfigGroup.MyBooleanConfig"` attribute names.
