# Populate strings with data using Sources

> Browse the sources that evaluate a placeholder's selectors to produce the value to format.

Browse the sources that evaluate a placeholder's selectors to produce the value to format.

A [source](/engine/6000.7/manual/scripting/smart-strings.md#selectors-and-sources) evaluates the selectors in a Smart String placeholder and produces the value that a [formatter](/engine/6000.7/manual/scripting/smart-strings/formatters.md) then converts to text. Each registered source is tried in order until one handles the selector, so the order of sources can change the result. Refer to [Smart Strings settings](/engine/6000.7/manual/scripting/smart-strings/settings.md) for information on how to configure the order in which sources are tried.

The following sources are available, and you can add your own.

| Source                                                                                                              | Description                                                     |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [Default source](/engine/6000.7/manual/scripting/smart-strings/sources/default-source.md)                           | Selects arguments by numeric index, like `String.Format`.       |
| [Dictionary source](/engine/6000.7/manual/scripting/smart-strings/sources/dictionary-source.md)                     | Looks up keys in a dictionary.                                  |
| [Key value pair source](/engine/6000.7/manual/scripting/smart-strings/sources/key-value-pair-source.md)             | Reads the `Key` and `Value` of a `KeyValuePair`.                |
| [Persistent variables source](/engine/6000.7/manual/scripting/smart-strings/sources/persistent-variables-source.md) | Supplies named variables from a variables group asset.          |
| [Properties source](/engine/6000.7/manual/scripting/smart-strings/sources/properties-source.md)                     | Reads members by name through the Unity.Properties data model.  |
| [String source](/engine/6000.7/manual/scripting/smart-strings/sources/string-source.md)                             | Exposes string operations such as case conversion and trimming. |
| [Create a custom source](/engine/6000.7/manual/scripting/smart-strings/sources/create-a-custom-source.md)           | Write your own source for custom selector logic.                |

## Additional resources

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