Eldiron v0.9.6
Pre-release
Pre-release
New Features
Server
- Added the first NPC sequence system for character background workflows, with TOML-authored
behavior.sequencesand step-basedgoto,use, andwaitactions. - Added sequence runtime script commands
run_sequence(...),pause_sequence(),resume_sequence(), andcancel_sequence()so event handlers can coordinate background behavior with reactive NPC logic such as talk, combat, and time-based routines. - Added timeout- and distance-aware
offer_inventory()sessions for vendors, driven by the sellertimeoutattribute and[intent_distance]setup, with automaticgoodbyecloseout when the buyer leaves range or the session expires.
Bug Fixes
- Reduced 3D mouse-hover sampling in the Creator and graphical clients to 5 times per second and accelerated static geometry hover picking with
rayon, improving dense-scene mouse-move performance on projects likeVillage3D. - Improved the screen Messages widget layout by adding explicit spacing between wrapped message blocks, making consecutive messages easier to distinguish.
- Fixed Messages widget multiple-choice /
offer_inventory()layout so item names and prices are rendered as separate left/right columns again instead of collapsing into one inline text run. - Fixed
offer_inventory()session handling so shop interactions now end withgoodbyewhen the buyer times out or moves too far away, instead of allowing stale purchases from an invalid distance. - Fixed
random_walk()in 2D so it now uses the same tile-centered pathing behavior asrandom_walk_in_sector(), keeping characters aligned to.5 / .5tile centers instead of drifting toward tile boundaries. - Fixed 2D
random_walk()/ pathfinding hangs by rejecting blocked destination tiles before running unbounded A* searches. - Fixed 2D
random_walk()target picking in tight spaces so NPCs prefer nearby walkable tile centers before falling back to continuous random points. - Fixed 2D blocked-tile movement so actors spawned inside blocking content can step out of their starting tile instead of getting trapped permanently.
- Fixed
goto()in 2D so low-speed movement no longer stalls from overly aggressive straight-line progress checks while routing around blockers. - Fixed high-speed 2D
goto()/ path-following so reaching an intermediate path tile no longer incorrectly marks the full destination as arrived. - Fixed
goto()so blocking items and entities now stop movement instead of being ignored by the runtime path step. - Fixed grid-aligned 2D
goto()so NPCs now stay grid-aligned when blocked by dynamic obstacles such as closed doors. - Fixed grid
goto()so temporary blocking by another actor no longer cancels the route permanently and NPCs resume once the blocker moves away.