Echo Spire — seamless positional turn-based RPG demo
  • GDScript 91.4%
  • Python 6.8%
  • GAP 1.5%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-21 10:50:20 -04:00
.grok Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
addons/godot_ai Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
assets Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
scenes Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
scripts Fix dossier viewport sizing and layout 2026-08-21 10:50:20 -04:00
shaders Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
tests Fix dossier viewport sizing and layout 2026-08-21 10:50:20 -04:00
tools/blender Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
.gitignore Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
AGENTS.md Add round-based party command planning 2026-08-21 00:22:47 -04:00
icon.svg Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
icon.svg.import Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00
Makefile Add Persona-inspired party dossier menu 2026-08-21 10:24:23 -04:00
project.godot Add Persona-inspired party dossier menu 2026-08-21 10:24:23 -04:00
README.md Add Persona-inspired party dossier menu 2026-08-21 10:24:23 -04:00
start.sh Add Echo Spire world systems and traversable terrain 2026-08-20 23:36:18 -04:00

Echo Spire

A Godot 4.7 vertical slice of a Chrono Trigger-style seamless world with round-based positional combat and Paper Mario: TTYD action commands (Stylish follow-ups, Guard / Super Guard).

You walk Hollowbrook and the roads that leave it in real time. Bump a wanderer and the fight happens on that ground — the camera dollies in, no battle scene, no fade to an arena. After the echo fades, you keep walking.

Combat uses a round command queue. During Party Planning, enter a command and position the shadow for every living party member; enemies are paused until the whole party is locked in. The party then resolves its commands in order, including the Grandia-style cast delay, TTYD action command, Stylish follow-ups, positioning, and air juggles. After the party resolves, the enemy turn begins and incoming hits open Guard / Super Guard windows. The IP gauge still communicates COM → CAST → ACT timing during resolution, while the round boundary keeps command entry deliberate.

Play

./start.sh

Or ./start.sh editor for the Godot editor, ./start.sh test for headless tests.

Input Explore Battle
WASD / arrows Walk the party Walk the shadow (after a command)
Shift Run
J / Enter Talk / pick up Queue command · confirm · action command · stylish · guard
K / Esc Close talk Cancel
↑ ↓ Dialogue choices Command menu
I Open party dossier
Q E Rotate facing
J / Space Action command

Don't stack the party — enemy slams are circles. Plan the full party before the enemy turn. Guard incoming blows: mid-time J is Guard, late J is Super Guard.

The I party dossier has Status, Equipment, and Items tabs. Use ↑/↓ to select a party member and ←/→ to change tabs; J expands the selected profile's skill list, and K/I closes the menu. Equipment bonuses feed the same battle stats shown in combat. Hollowbrook now has three garden plots: use J to till, plant a turnip seed, water, and harvest; crops grow while you explore. The three marked hub spots can be customized with lanterns, benches, or flower beds. At the Reedfen dock, cast a line and press J when the bite appears. Inventory state persists while you continue exploring the same world.

The north road now climbs into Echo Spire through a series of walkable stairs and a mountain plateau. West of town, a stepped Whisperwood path reaches Venn's raised cliff ledge. Terrain edges are traversable only through these connected steps, so dropping straight off a cliff is blocked.

Town and roads

Hollowbrook has four gates.

Road Region Who
North Echo Meadow → Echo Spire Elder Thorne's Hollow. Garrick's wisps. Tavi's charm by the yellow rocks.
West Orchard Road → Whisperwood Venn and the cold cairn
East Mill Docks → Reedfen Nera at the mill, lantern in the reeds
South Millbridge Pell on the farm

Lessa (inn) and Brin (shop) stay in town. The camera pulls in when a fight starts and eases back out when you walk on.

Commands by move

Move Action command Stylish
Attack (everyone) Timed star-in-gold 1
Kael Slash Timed star-in-gold 2
Kael Sweep Mash J 2
Ryn Pierce Hold J, release in gold 3
Ryn Volley J → K → Space 2
Mira Burst Mash J 3
Mira Bolt Timed (ping-pong) 2
Potion Instant —
Flee Instant (chance) —

Assets

Town, trees, NPCs, and orcs are Kenney CC0 kits in assets/kenney/ (Fantasy Town, Mini Characters, Mini Dungeon). Party combat still falls back to the Blender cast / procedural meshes if those files are missing.

Cel-ready GLBs are generated by Blender 5.2 (headless). The fight still runs on procedural fallback meshes if the GLBs are missing.

# blender is symlinked from /Applications/Blender.app
./tools/blender/export.sh
godot --path . --import

Install the Blender MCP addon (optional, for live iteration):

blender --background --python tools/blender/install_mcp_addon.py
# Then in a GUI Blender: sidebar N → BlenderMCP → Connect

Tests

make test

Tooling

  • Godot 4.7 + addons/godot_ai (enable the plugin; Grok uses godot-ai attach)
  • Blender CLI on PATH
  • Project MCP: .grok/config.toml → blender-mcp