GODS: Globally Observable Data Structures SALE

Currently 50% off. Regular price $39.99


Forum | Contact



GODS gives your Unity project shared, globally accessible variables, lists, hash sets and events. Any object can reference this data directly. No searching the scene, no manually wiring connections. When the data changes, everything listening reacts automatically.


Drag the same Currency variable into your coin-collection script, the UI text that displays it, your shop, and your save slot — they all reference the exact same value. No Currency Manager to find at runtime, no risk it's missing when something needs it. The variable lives as its own asset, not inside a scene object, so it's always there.

  • Share variables, lists and hash sets across your whole project
  • React to changes the instant they happen
  • Save and load data with a built-in, multi-user save slot system
  • Generate a complete settings menu in minutes, with the settings players actually expect

This architecture builds on ideas first presented by Ryan Hipple in "Game Architecture with Scriptable Objects".



What you get

  • Observable Variables, Lists and Hash Sets that fire events whenever their value changes
  • Inspector event toggles per reference: react to a value changing or a save finishing loading, with no additional subscribe or unsubscribe code. Lists and Hash Sets fire additional events when an item gets added or removed.
  • Observable Game Events and Listeners for decoupled, project-wide messaging
  • ScriptableObject-based architecture, so you don't need to find the object that holds the data at runtime
  • Enum types are supported. Share global enums easily (e.g. let objects respond immediately when the game state changes from Playing to Paused)
  • An Observable type generator window for adding new observable types as your project needs them (e.g. add your own MyWeirdClass observable variable/list/hash set/enum)
  • A Settings Menu Generator for fully wired, recolorable settings menu
  • A tagging system for resetting groups of data at once (e.g. everything tagged "Run Statistics" when a run ends)
  • Reference tracking: select any variable, press F3 and see every object using it
  • A multi-user save slot system with automatic and manual saves, optional per-slot encryption and save-point screenshots


Wire up behavior through the inspector

Every reference has lightning-bolt toggles: react when the value changes; items get added/removed from a List or Hash Set; or when a save finishes loading. Write the method, wire it up in the Inspector, done. No subscribe/unsubscribe boilerplate, no manual event wiring in code. This works whether or not you use GODS Save Slots at all.



One script, endless reuses

A script that references a Variable works for any variable of that type — the same UI text script that displays Coins can display Diamonds or Crystals just by pointing it at a different reference, no CurrencyManager or per-currency script needed. Write the logic once; reuse it for anything that shares that type.



A powerful save slot system

GODS Save slots handle multiple users, automatic and manual saves and optional encryption per slot. Leave gameplay saves encrypted, leave your settings file in plain JSON if you want players to be able to mod it. Everything saves to disk as JSON, with an optional save-point screenshot.



Find every reference, instantly

Select any variable and press F3 to see every object in your project that uses it: the player, the UI, the game manager, all in one list. No more guessing what depends on what.



Generate a settings menu without writing one

GODS' global variables work great with game settings. Pick from Window Mode, Resolution, Frame Rate, Quality, Audio Volumes and more. Reorder them, click Generate and a fully wired settings menu appears. Recolor the whole thing from one shared palette asset. Need something the generator doesn't cover? Build it with the same reusable Slider, Toggle and Dropdown pieces the generator itself uses.



Enter Play Mode Options compatible

Observable Variables reset to default values on entering play mode. Keep entering play mode without reloading the domain/scene for fast play testing.



Documentation

Ships with a thorough User Guide with descriptions, examples, full code documentation and troubleshooting.



Full source code included

Every script is included and editable, so you can inspect, customize or extend anything GODS does.


If you're tired of hunting for scene references and manually wiring event subscriptions in code, give GODS a try.