# Use Formatters to apply logic to strings

> Browse the formatters that convert a selected value into text in a Smart String.

Browse the formatters that convert a selected value into text in a Smart String.

A [formatter](/engine/6000.7/manual/scripting/smart-strings.md#formatters) converts the value produced by the [sources](/engine/6000.7/manual/scripting/smart-strings/sources.md) into its final text, applying logic such as pluralization, lists, or conditional output. Apply a formatter explicitly by name, or omit the name to let a formatter that supports automatic detection apply implicitly. The following formatters are available, and you can add your own.

| Formatter                                                                                                          | Description                                                        |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| [Choose formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/choose-formatter.md)                   | Picks an output by matching the value against a set of options.    |
| [Conditional formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/conditional-formatter.md)         | Picks an output based on the value's type and value.               |
| [Default formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/default-formatter.md)                 | Converts the value with `ToString` and the active culture.         |
| [Is Match formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/ismatch-formatter.md)                | Picks an output based on a regular expression match.               |
| [List formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/list-formatter.md)                       | Formats each item in a list, with separators.                      |
| [Null formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/null-formatter.md)                       | Picks an output based on whether the value is null.                |
| [Plural formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/plural-formatter.md)                   | Picks a word form based on a count and the culture's plural rules. |
| [Sub string formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/substring-formatter.md)            | Extracts a substring of the value.                                 |
| [Template formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/template-formatter.md)               | Applies a reusable named template.                                 |
| [Time formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/time-formatter.md)                       | Formats a `TimeSpan` as localized text.                            |
| [Create a custom formatter](/engine/6000.7/manual/scripting/smart-strings/formatters/create-a-custom-formatter.md) | Write your own formatter.                                          |

## Additional resources

* [Smart Strings](/engine/6000.7/manual/scripting/smart-strings.md)
* [Smart String sources](/engine/6000.7/manual/scripting/smart-strings/sources.md)
* [Smart Strings settings](/engine/6000.7/manual/scripting/smart-strings/settings.md)
