# Scriptable Objects Introduction

The AnyRPG Engine makes heavy use of [Unity Scriptable Objects](https://docs.unity3d.com/Manual/class-ScriptableObject.html) to allow as much configuration of games as possible without requiring changes to the engine code.

## Properties

All scriptable objects used in AnyRPG have a common set of shared properties.  To avoid duplication in the documentation, they are all listed here.  Individual scriptable object pages will only list additional properties that are not on this page.

| Name                         | Description                                                                                                                                                                                                       |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Resource Name                | The resource name serves as a database key when scriptable object lookups are performed in the engine.  If the *Display Name* field is empty, it will also be the display text wherever the item appears in-game. |
| Display Name                 | The display name field can be used when a different display text than the *Resource Name* is desired, or when using localization to display text in different languages.                                          |
| Icon                         | Whenever the UI will show an image for a certain scriptable object, this icon will be used.                                                                                                                       |
| Icon Background Image        | <p>If an icon is transparent, this image will show behind the icon.<br>This can be useful to reduce effort and save space, by re-using background images for multiple icons.</p>                                  |
| Description                  | Whenever the UI shows a description for a scriptable object, this text will be displayed.                                                                                                                         |
| Use Regional Description     | If true, the system will search for a localized regional description for this scriptable object and use its *Display Name*, *Icon*, *Icon Background Image*, and *Description* instead.                           |
| Resource Description Profile | If set, the system will search for a regional description with this name for this scriptable object and use its *Display Name*, *Icon*, *Icon Background Image*, and *Description* instead.                       |
| Optional Override            | If true, and one of the two regional override fields is used, the regional override is optional, and will not cause an error if it doesn't exist.                                                                 |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.anyrpg.org/scriptable-objects/scriptable-objects-introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
