Edit of asset "YARD - Yet Another Resource Database" Accepted
| Old/Current | New/Edit | |
|---|---|---|
| Title | YARD - Yet Another Resource Database | |
| Description |
YARD is an editor plugin to manage registries (catalogues of resources) through a spreadsheet-like table view, and query them at runtime via a lightweight API. FEATURES: - Reference resources by human-readable string IDs - @export registry IDs as an inspector dropdown (enum-like) - Restrict registries to a specific class - Sync a registry from a directory automatically - Bake a property index for zero-cost runtime queries - Load entries individually, all at once, or asynchronously USAGE: ``` const ENEMIES: Registry = preload("res://data/enemy_registry.tres") var skeleton: Enemy = ENEMIES.load_entry(&"skeleton") var legendaries := WEAPONS.filter_by_value(&"rarity", Rarity.LEGENDARY) ``` See the README.md and Registry class reference for more details. |
YARD is an editor plugin for Godot to manage resources and query them at runtime, with a table view in the editor as the cherry on top. OVERVIEW -------- YARD has two complementary aspects: A table-based resource editor. The YARD editor tab lets you create and manage registries: catalogues of resources grouped by class. Each registry provides a spreadsheet-like view of your resources and their properties. A lightweight runtime API. At runtime, a Registry is just a small .tres file holding UIDs and string IDs. It does not load the resources it references. You control when loading happens, and how. FEATURES -------- - Reference resources by stable, human-readable string IDs instead of file paths or UIDs lying around in some autoload - Restrict a registry to a specific class — only matching resources can be added - Sync a registry from a directory — entries are added and removed automatically as resource files appear or disappear - Bake a property index in the editor for zero-cost runtime queries by resource property values - Load entries individually, all at once (blocking), or asynchronously via threaded loading - No runtime overhead beyond what you explicitly request INSTALLATION ------------ 1. Copy the addons/yard folder into your project's addons/directory 2. Enable the plugin in Project > Project Settings > Plugins USAGE ----- Creating a registry: Open the Registry tab in the editor, click File > New Registry, and configure: - Class restriction: only resources of this class will be accepted - Scan directory: the registry stays in sync with files in this folder - Indexed properties: property names to bake for runtime filtering Loading an entry: ``` var skeleton: Enemy = ENEMIES.load_entry(&"skeleton") ``` Loading all entries (blocking): ``` var all_enemies := ENEMIES.load_all_blocking() ``` Loading all entries (threaded): ``` var tracker := ENEMIES.load_all_threaded_request() ``` Querying the index: ``` var legendaries := WEAPONS.filter_by_value(&"rarity", Rarity.LEGENDARY) var high_level := WEAPONS.filter_by(&"level", func(v): return v >= 10) var results := WEAPONS.filter_by_values({ &"rarity": Rarity.LEGENDARY, &"type": &"sword", }) ``` |
| Category | Tools | |
| License | MIT | |
| Repository Provider | GitHub | |
| Repository Url | https://github.com/elliotfontaine/yard-godot | |
| Issues Url | https://github.com/elliotfontaine/yard-godot/issues | |
| Godot version | Godot 4.5 | |
| Version String | v1.1.0 | |
| Download Commit | 3b3b1bbcbc057730a61657dd976982c9d42526c2 | |
| Download Url (Computed) | https://github.com/elliotfontaine/yard-godot/archive/3b3b1bbcbc057730a61657dd976982c9d42526c2.zip | |
| Icon Url |
https://raw.githubusercontent.com/elliotfontaine/yard-godot/refs/heads/main/icon.png
|
|