> For the complete documentation index, see [llms.txt](https://megacrush.gitbook.io/megacrush-unity-assets/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://megacrush.gitbook.io/megacrush-unity-assets/metadata-driven-development/gamedata-scriptable-object.md).

# GameData Scriptable Object

No, scriptable objects aren't evil, we just limit their usage

While one of the main treatise of this workflow is to avoid Scriptable Objects, I would like to emphasize that they are NOT evil. They just are often over-used and mis-used in places where a more structure metadata workflow as proposed here might be suitable.

In the workflow defined in the sample project, there is a GameData scriptable object. This stores all of the references to the Unity assets that our project uses.

<figure><img src="https://83784316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUwNYpMeBghSU6zj5kfpm%2Fuploads%2F2wKZngRm76I3xdnjPJkb%2F2024-11-17%2014_47_30-D__projects_Metadata-Driven-Development_project%20-%20Startup%20-%20Windows%2C%20Mac%2C%20Linux%20.png?alt=media&amp;token=f67ba389-d0b2-43d2-9dcc-7969dcda5939" alt=""><figcaption><p>A view of the GameData scriptable object from the sample project</p></figcaption></figure>

The Button at the bottom of the Scriptable object is a custom inspector that allows me to write all of the entry NAMES into the Unity Console. This helps simplify adding all of the entries into the Google Sheet so I can start working on their metadata.
