Eldiron v0.9.7
Pre-release
Pre-release
New Features
Creator
- Added the new brush-based Organic Tool workflow for painting surface detail directly onto map surfaces, replacing the older graph-driven organic authoring direction.
- Added a dedicated Organic dock with a live brush preview, visual brush-shape presets, and compact controls for
Base,Border,Noise,Brush Size,Border Size,Noise Amount, andOpacity. - Added Organic toolbar controls for
Free / Locked,Clear, andActive / Deactive, plus a 3D brush-footprint preview for organic painting in place of the generic hover marker. - Added renderer style and post-processing controls for a less shiny retro RPG look, including
style = "clean" | "retro" | "grimy"and post controls forgrit,posterize,palette_bias,shadow_lift, andedge_soften. - Applied the stylized post-processing controls to Raster 2D as well as Raster 3D, so 2D and 3D views can share the same authored color treatment.
Server
- Added the
ensure_activeNPC sequence step so scripted routes can enforce stateful interactions such as opening a door only if needed and closing it again afterward. - Added
hold_speedfor grid-based held movement, so characters can use a fast first-tilespeedwhile keeping sustained held movement smooth and continuous. - Added configurable
[game]simulation pacing withsimulation_mode = "realtime" | "turn_based" | "hybrid"andturn_timeout_ms, so projects can choose between continuous simulation, fully player-driven turns, or Ultima-style idle turn stepping. - Added
multiple_choice(entity, prompt, choice_attribute)for script-defined choice menus using labels authored as character attributes. Selecting an option sends both{choice_attribute}and{choice_attribute}:{index}back to the offering character. - Added the new
dialog(entity, node)system for TOML-authored nested dialogs, including node transitions, continue-style choices, choice events, simpleif/unlessconditions, localization/substitution support, and visual scripting support.
Documentation
- Added Organic Tool documentation covering the new brush-based workflow, dock layout, toolbar controls, and 3D brush preview behavior.
- Added configuration docs for the new renderer style and stylized post-processing settings, including their runtime
world.post.*/region.post.*override fields. - Clarified the
say(...)command documentation to show both the default one-argument form and the optional category-color form. - Moved new
say(...)presentation documentation from global game config to game widget[say]settings. - Added documentation for script-defined multiple-choice menus and TOML-authored nested dialogs, including localization-key usage and message-widget filtering.
Bug Fixes
Creator
- Fixed Organic tool undo / redo and related dock-state restore behavior so brush painting no longer bounces the UI back into the tile picker workflow during restore.
- Improved Organic brush editing so presets are shape-only, thumbnails reuse the current brush colors, and noise is exposed as an actual adjustable paint contribution instead of only a preview accent.
- Fixed project render settings sync so loading a project and editing project settings now apply the same renderer/post/daylight defaults instead of changing the visible sun-shadow state after the first settings edit.
Renderer
- Softened Raster 3D sun-shadow sampling and increased default shadow biasing in the shader to reduce hard shadow acne seams.
- Fixed two-sided 3D lighting so sun shadows and direct lights use light-facing normals instead of camera-facing normals, preventing surfaces from changing lit state when the iso camera moves.
- Added exact compile-time layout checks for the Raster 3D uniform block to guard against backend-sensitive WGSL/Rust alignment mismatches.
Server
- Fixed grid-based player movement so the character
speedattribute now actually affects direct tile stepping, instead of being hardcoded to1.0. - Fixed Eldrin compilation of
say("Text")so the optional category parameter is truly optional, matching the runtime handler and documentation.
Client
- Fixed 2D game widgets so
say(...)speech bubbles render above characters and items like they already do in 3D views. - Game widgets now prefer their own
[say]section for speech bubble duration, text colors, and background styling, with legacy global[say]config kept as a fallback. - Messages widgets can now use
handles = [...]to split regular messages, dialogs, script multiple-choice menus, and inventory offers across different widget placements. - Messages widgets can optionally draw sender portraits from
portrait_tile_idwithportrait = true,portrait_size, andportrait_gap. - Fixed bottom-up Messages widget rendering for very long wrapped messages so the newest/lower lines remain visible instead of the message being culled when its first lines overflow above the widget.
