# Smart Strings settings reference

> Customize the settings that control the project's default Smart String formatter, including case sensitivity, error handling, and the active sources and formatters.

Customize the settings that control the project's default Smart String formatter, including case sensitivity, error handling, and the active sources and formatters.

Open these settings from the main menu (**Edit > Project Settings > Smart Strings**), or by selecting a Smart Strings Settings asset in the **Project** window. The first time you open the page, select **Create** to make a settings asset. The settings define the default [SmartFormatter](/engine/6000.7/manual/scripting/smart-strings.md) reached at runtime through [`Smart.Project`](/engine/6000.7/script-reference/unity/smartstrings/smart/project.md), and the asset is included in player builds. To set these values in code instead, refer to [Configure Smart Strings](/engine/6000.7/manual/scripting/smart-strings/configure.md).

## Smart Strings settings

The Smart Strings settings contain the following sections.

### Settings

| Setting              | Description                                                                                                                                                                                                      |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Case Sensitivity** | Determines how selector and formatter names are matched. The following options are available:**Case Sensitive**: Match names exactly. This is the default.**Case Insensitive**: Ignore case when matching names. |

#### Parser

| Setting                               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Error Action**                      | Sets how the parser responds to an invalid format string. The following options are available:**Throw Error**: Raise an exception. This is the default.**Output Error In Result**: Write the error message into the output.**Ignore**: Skip the error.**Maintain Tokens**: Leave the offending placeholder unchanged in the output.Refer to [Handle formatting errors](/engine/6000.7/manual/scripting/smart-strings/handle-formatting-errors.md). |
| **Convert Character String Literals** | Interprets character escapes such as `\n` and `\t` in the format string. Enabled by default. Refer to the escaping note in [Smart Strings](/engine/6000.7/manual/scripting/smart-strings.md).                                                                                                                                                                                                                                                      |
| **Custom Selector Chars**             | Lists extra characters allowed in selectors, beyond letters, digits, `_`, and `-`. Use **Add** (**+**) and **Remove** (**−**) to edit the list.                                                                                                                                                                                                                                                                                                    |
| **Custom Operator Chars**             | Lists extra characters treated as selector operators, in addition to `.` and `?.`. Use **Add** (**+**) and **Remove** (**−**) to edit the list.                                                                                                                                                                                                                                                                                                    |

#### Formatter

| Setting                      | Description                                                                                                                                                                                                                                                       |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Error Action**             | Sets how a formatter responds when it can't format a value. Has the same options as the parser **Error Action**, and defaults to **Throw Error**. Refer to [Handle formatting errors](/engine/6000.7/manual/scripting/smart-strings/handle-formatting-errors.md). |
| **Alignment Fill Character** | Sets the character used to pad a value to its alignment width, for example `{value,10}`. Defaults to a space.                                                                                                                                                     |

### Sources

The **Sources** list holds the [sources](/engine/6000.7/manual/scripting/smart-strings.md#selectors-and-sources) the formatter tries, in order, to evaluate a placeholder's selectors. The order matters: each source is tried from the top until one handles the selector.

* Select **Add** (**+**) to choose a source type from the menu of available [ISource](/engine/6000.7/manual/scripting/smart-strings/sources/create-a-custom-source.md) implementations.
* Select **Remove** (**−**) to remove the selected source.
* Drag a source by its handle to reorder it.

Refer to the source pages, such as [Default](/engine/6000.7/manual/scripting/smart-strings/sources/default-source.md), [Properties](/engine/6000.7/manual/scripting/smart-strings/sources/properties-source.md), [Dictionary](/engine/6000.7/manual/scripting/smart-strings/sources/dictionary-source.md), and [String](/engine/6000.7/manual/scripting/smart-strings/sources/string-source.md).

### Formatters

The **Formatters** list holds the [formatters](/engine/6000.7/manual/scripting/smart-strings.md#formatters) the formatter tries, in order, to convert a value to text. As with sources, the order matters for implicitly applied formatters.

* Select **Add** (**+**) to choose a formatter type from the menu of available [IFormatter](/engine/6000.7/manual/scripting/smart-strings/formatters/create-a-custom-formatter.md) implementations.
* Select **Remove** (**−**) to remove the selected formatter.
* Drag a formatter by its handle to reorder it.

Refer to the formatter pages, such as [Choose](/engine/6000.7/manual/scripting/smart-strings/formatters/choose-formatter.md), [Plural](/engine/6000.7/manual/scripting/smart-strings/formatters/plural-formatter.md), [List](/engine/6000.7/manual/scripting/smart-strings/formatters/list-formatter.md), and [Conditional](/engine/6000.7/manual/scripting/smart-strings/formatters/conditional-formatter.md).

## Additional resources

* [Configure Smart Strings](/engine/6000.7/manual/scripting/smart-strings/configure.md)
* [Handle formatting errors](/engine/6000.7/manual/scripting/smart-strings/handle-formatting-errors.md)
* [Smart Strings](/engine/6000.7/manual/scripting/smart-strings.md)
