Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

YARD - Yet Another Resource Database

An asset by elliotfontaine
The page banner background of a mountain and forest
YARD - Yet Another Resource Database thumbnail image
YARD - Yet Another Resource Database thumbnail image
YARD - Yet Another Resource Database hero image

Quick Information

0 ratings
YARD - Yet Another Resource Database icon image
elliotfontaine
YARD - Yet Another Resource Database

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 requestINSTALLATION------------ 1. Copy the addons/yard folder into your project's addons/ directory 2. Enable the plugin in Project > Project Settings > PluginsUSAGE-----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 filteringLoading 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", })LICENSE-------MIT

Supported Engine Version
4.5
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
4 hours ago
Git URL
Issue URL

@tool extends AcceptDialog

const Namespace := preload("res://addons/yard/editor_only/namespace.gd") const MarkdownLabel := Namespace.MarkdownLabel

@onready var markdown_label: MarkdownLabel = %MarkdownLabel

func _ready() -> void: if Engine.is_editor_hint(): var mono: Font = get_theme_font(&"font", &"CodeEdit") markdown_label.add_theme_font_override(&"mono_font", mono) markdown_label.add_theme_color_override(&"table_even_row_bg", get_theme_color(&"prop_section", &"Editor")) markdown_label.add_theme_color_override(&"table_odd_row_bg", get_theme_color(&"separator_color", &"Editor")) markdown_label.h2.font_color = get_theme_color(&"accent_color", &"Editor") markdown_label.h3.font_color = get_theme_color(&"font_focus_color", &"Editor")

    #markdown_label.display_file()

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",
})

LICENSE
-------

MIT

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
YARD - Yet Another Resource Database icon image
elliotfontaine
YARD - Yet Another Resource Database

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 requestINSTALLATION------------ 1. Copy the addons/yard folder into your project's addons/ directory 2. Enable the plugin in Project > Project Settings > PluginsUSAGE-----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 filteringLoading 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", })LICENSE-------MIT

Supported Engine Version
4.5
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
4 hours ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers