docs / tutorials learn by doing

Learn it by asking.

Four short stories. Each is a real thing you'd want to do, the exact sentence you'd say to your AI, and what Aethyr does under the hood. No tool memorization required: that's the whole point.

① Read my Blueprint good first one

You opened a project and there's a BP_Enemy nobody documented. Instead of clicking through every graph, ask.

youWhat does BP_Enemy do? Give me the gist, then the event graph.
Aethyr · your AI BP_Enemy (parent: Character), 5 variables, 2 functions. BeginPlay seeds health and starts a patrol Timeline; OnPerceptionUpdated switches to a chase state and calls FireWeapon. Here's the event graph topology…
used list_blueprintssummarize_blueprintget_graph

Want a whole folder at once? Hand it to the audit agent:

youAudit /Game/AI: which Blueprints override BeginPlay, and are any variables unused?
bp-audit agent Scanned 23 Blueprints. 6 override BeginPlay; BP_Turret has 3 variables never read; BP_Spawner references a deleted actor class…
a read-only fan-out: nothing was modified

Reads can't change anything, so this is the safest way to start. No need to enable writes. Great for code review and onboarding.

② Say it, don't wire it

You want a dash. You could place the nodes by hand… or describe it.

youGive the player a Dash: a function that adds a forward impulse, with a 2-second cooldown so it can't be spammed.
Aethyr · your AI Added bCanDash (bool) and DashCooldown (float = 2.0). Created a Dash function: guards on bCanDash, applies AddImpulse along the actor forward vector, then clears the flag and re-enables it on a 2s timer. Compiled clean.
used add_variable ×2 → add_functionadd_nodewire_pinsset_pin_defaultcompile_function

Under the hood: with the bp-batches skill installed, your AI assembles the whole function as one unit and runs compile_function to confirm it builds, so you get a working node graph, not a pile of disconnected nodes.

③ All or nothing the safety one

Renames and restructures are where things break. Make the AI do it as a single transaction that either fully lands or fully reverts.

youRename Health to CurrentHealth, add a MaxHealth float, and clamp damage against it, all as one atomic change. Preview it first.
Aethyr · your AI Here's the dry run: 1 rename, 1 new variable, 2 rewired nodes, 1 clamp inserted, no conflicts. Apply it?
used preview_ops (nothing written yet)
youApply.
Aethyr · your AI Applied as one batch, compiled, saved, backed up. If the clamp had failed to compile, the rename would have rolled back too, so your graph is never left half-done.
used apply_ops (atomic:true) → rolled-forward, backup written

Why preview? preview_ops is a read-only dry run: it tells you exactly what a batch will touch before a single byte is written. The bp-batches skill teaches the AI to always offer it for multi-step edits.

④ When the ritual fails

Errors happen. With the bp-debug skill, they're legible instead of cryptic.

youThat returned AssetNotFound: /Game/AI/BP_Enemy.BP_Enemy. What went wrong?
bp-debug · your AI You passed an object path; Aethyr addresses assets by package path. Drop the .BP_Enemy suffix → /Game/AI/BP_Enemy. Re-running now… found it, 5 variables. (If a name's just close, the error lists the real ones so you can pick.)
no asset touched: failed calls are side-effect-free

Every error names what it tried, why it failed, and the closest valid value. A failed write makes no change, so you can always just fix the input and re-ask.