Godot
Resources, saved as .tres.
It reads your Resource scripts from GDScript or C#, writes new objects as .tres files Godot loads with your script attached, and changes values in place when a formula moves.
What it reads from a Godot project.
Open the project folder in the app. It knows a Godot project by project.godot, reads the scripts under it, and skips .godot and .import. A .tres is plain text, which is why Godot is the engine the app can support completely from outside the editor.
Read as data
- Scripts that extend
Resource, with or withoutclass_name. - C# classes that extend Godot’s
Resource. @exportvars only, since only they are saved into a .tres.
Passed over
- Scene nodes:
Node,Node2D,Node3D,Control, bodies and areas. - Vars without
@export.
An @export_range(min, max) is a limit: every new object is checked against it, and a retune that would cross it is clamped and says so. A ## doc comment above a property becomes its description.
What it gives you.
The object is Emberbrand, from the demo’s saved run. Both files were written by the app’s own code when this page was built: the first is what you copy out, the second is what Save to project writes into a project that holds the first.
class_name WeaponData extends Resource ## A wieldable weapon. ## Stable lower_snake_case identifier, unique across the game. @export var id: String ## Player-facing name. @export var display_name: String ## Rarity tier. Drives the whole power budget. @export_enum("common", "uncommon", "rare", "epic", "legendary") var rarity: String ## Damage school, used for resistances. @export_enum("slashing", "piercing", "bludgeoning", "arcane", "fire", "frost", "lightning") var damage_type: String ## Base damage per hit, before modifiers. @export var damage: int
What Save to project does.
- New resources go in the folder your existing ones are in. Each copies the header and script line from one of them, so it loads with your script attached, on the same format version as the rest of your project.
- The copied uid is left out, so Godot gives each new file its own. Two files sharing a uid resolve to whichever one Godot indexed last.
- Vectors, colours and typed arrays are written the way Godot writes them, such as
Vector2i(96, 96)andArray[String](["burning"]). - With no existing resource to copy from, it says so: the files then load as plain Resources until you attach the script once.
When a formula changes.
A retune changes the property’s line in the [resource] section of each .tres it moves, in the file it already is, and nothing else. The uid, the header and the script reference are untouched.
Apply cannot be undone from inside the app, so commit first.
Try it on your Godot project.
The evaluation is the whole app for 14 days, with no card. The guide covers the first ten minutes.
Also for Unity and Unreal, and for any other engine through JSON.