Skip to content

v2.0.0 — Prayer Queue & Divine Construction Overhaul

Choose a tag to compare

@aebrer aebrer released this 16 Feb 02:02
· 27 commits to master since this release

Major architectural overhaul to how the gods hear prayers, build structures, and manage their attention.

What's New for Players

Prayers actually queue now. If you pray while the god is busy answering someone else, your prayer waits in line instead of being silently dropped. The god remembers exactly where you were standing and what you were looking at when you prayed — not where you wandered off to by the time it gets around to answering.

Builds land where they should. Divine construction now places structures directly in front of where you were standing when you prayed, at a sensible distance. No more barns appearing 80 blocks away because the LLM flipped a coordinate sign. The gods just pick the blueprint and the player — the server handles the math using your prayer snapshot.

Undo exists. If a divine construction goes wrong (clipped into a mountain, landed on your house), the Kind God can undo it and restore the original terrain. Up to 5 recent builds can be reversed. Players can also ask the god to remove a recent build.

Herald joins the queue. Herald invocations ("herald", "bard") now go through the same priority system as prayers, so the Herald won't talk over the Kind God mid-response.

Shorter titles. On-screen title messages are capped at 40 characters so they're actually readable during the ~3 seconds they're visible.

Technical Changes

  • Prayer queue with snapshot context: FIFO DivineRequestQueue captures full player state (position, inventory, facing, nearby entities) at the moment of prayer. Retry up to 5 attempts with in-game feedback on abandonment.
  • Fresh LLM context per call: Gods no longer accumulate conversation history across unrelated interactions. Each think() call starts clean — the memory system handles long-term continuity.
  • Server-side build placement: build_schematic now takes near_player + in_front/direction/distance instead of raw coordinates. The backend resolves absolute coordinates from the player's position and facing direction, using the prayer snapshot so the build lands where the player was when they prayed.
  • Tool simplification: Removed browse_schematics, inspect_schematic, place_block, and fill_blocks. The schematic flow is now search → build (2 steps instead of 3-4). This is a breaking change for any tooling that referenced the old tool names.
  • Undo system: New undo_last_build tool and /godundo console command. The Java plugin maintains a ring buffer of the last 5 builds with full block-level rollback.
  • Inline player snapshots: Chat events now include a full player snapshot built on the main server thread, eliminating stale position data from async event handlers.
  • Multi-turn improvements: Search nudging (god won't search twice without building), error retry on failed tool calls, configurable turn limit (max 4).
  • Message length caps: title=40, actionbar=80, chat=200 characters per style.
  • Code review cleanup: Fixed double "prayer abandoned" messages, stale documentation, added Literal type for request routing, improved error logging with request context.

Breaking Changes

  • browse_schematics, inspect_schematic, place_block, and fill_blocks tools have been removed
  • build_schematic no longer accepts x/y/z coordinates — uses near_player + placement parameters instead
  • LLM timeout increased from 2 minutes to 5 minutes