Important
Supports Terraria v1.4.5.5 (world file version 318)
🎉 New Features
-
Add localization data infrastructure for 12 Terraria languages
-
Extract item/NPC/prefix/tile/wall names from Terraria's localization files
-
Generate per-locale JSON files keyed by numeric ID (de-DE, en-US, es-ES, fr-FR, it-IT, ja-JP, ko-KR, pl-PL, pt-BR, ru-RU, zh-Hans, zh-Hant)
-
Add LocalizationData/LocalizationDataRaw models with string-key JSON deserialization
-
Add LocalizationLoader to load embedded locale resources
-
Integrate into TerrariaDataStore.Initialize() with locale parameter
-
Add import test (Fact(Skip)) for regenerating locale files from decompiled source
-
Add unit tests verifying ja-JP locale loading with known item names
Wall names are derived from item names via WallID-to-ItemID cross-reference.
Tiles use MapObject string keys from Game.json (not numeric TileIDs).
-
Add JavaScript/Lua scripting system with sidebar UI
-
Jint (JavaScript) and LuaCSharp (Lua) engines behind IScriptEngine abstraction
-
Full scripting API: tile, geometry, chests, signs, npcs, world, selection, metadata, log, batch, tools
-
Sandboxed execution with timeout, memory limits, statement limits, cancellation
-
WPF sidebar panel with code editor, engine selector, script file management, output log
-
5 bundled example scripts (find-life-crystals, chest-inventory, clear-corruption, replace-block, fill-selection)
-
57 unit tests covering all API surfaces and Jint integration
-
camelCase interop for JavaScript (MemberNameCreator), reflection-based registration for Lua
-
TileApi.GetTileType renamed to avoid Object.GetType() conflict in Jint
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
-
Add autoupdate feature
-
Add AvalonEdit code editor with syntax highlighting and autocomplete
-
Replace plain TextBox with AvalonEdit TextEditor for syntax highlighting, line numbers
-
Add JavaScript (built-in) and Lua (custom xshd) syntax highlighting that auto-switches with engine
-
Add code completion: dot-triggered for module methods, Ctrl+Space for top-level modules
-
Create ScriptApiMetadata as central source of truth for all 11 API modules
-
Add in-app API reference panel toggled via "API" button with expandable modules
-
Add ScriptApiDocGenerator to produce API_REFERENCE.md in scripts folder
-
Wire two-way binding between AvalonEdit and ViewModel with circular-update suppression
🐛 Bug Fixes
-
Fixes for side panel
-
Fix imagetopixelart plugin after UI theme change
-
Fix subwindow styling
-
Fix splash screen z order
-
Fix dialog not rendering over dx content
-
Fix wiki link
-
Fix remaining links
-
Fix ellipse freeze, picker coatings, weapon rack item filter
-
Fix #2156: return center point for degenerate ellipse radii instead of freezing
-
Fix #1863: picker tool now reads tile/wall coating echo and illuminant properties
-
Fix #2096: weapon rack editor toggle to show all items, persisted in settings, auto-enables for non-rackable items
Closes #2156, closes #1863, closes #2096
✨ Enhancements
- Update icon
- Update dependency MSTest.TestFramework to 4.1.0 (#2126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> (#2126)
- Update dependency MSTest.TestAdapter to 4.1.0 (#2127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> (#2127)
- Update dependency SkiaSharp to 3.119.2 (#2137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> (#2137)
- Update dotnet monorepo to 10.0.3 (#2144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> (#2144)
- Update Avalonia to 11.3.12 (#2148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> (#2148)
🔧 Refactoring
- Cleanup work on keybinds
📦 Other Changes
-
Switch to WPF-UI
-
UI updates
-
More UI Updates
-
UI updates
-
fix half open chest
-
all new keybindings
-
new Icons
-
New Feature: Search and Filter
Replace search and filter plugins with sidebar
tab. Virtualized panels for high speed filtering.
-
Swap out some icons
-
Sidebar styling
-
New item editor
-
Final cleanups
-
Merge remote-tracking branch 'origin/main' into feature/1.4.5
-
Install Velopack CLI in CI workflow
-
Add dotnet tool install -g vpk step before build
-
Right click npc to zoom
-
Hold-to-pick (Krita-style temporary Picker tool) #1781
-
Hold R to temporarily switch to Picker, release to return to previous tool
-
Quick tap R still permanently switches to Picker as before
-
Uses elapsed time (not key repeat) for faster hold detection
-
Configurable threshold (100-500ms, default 150ms) in Settings > General
-
Added PickerHoldThresholdMs to UserSettings for persistence
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
-
Move picker hold threshold to Keybindings - Tools category
-
Setting now appears alongside tool keybindings instead of General
-
More V5 Tweaks
-
Buff radius visualizer layer fixes #1850
-
Blend wall tiles better fixes #1731
-
Buff radius settings
-
Switch gray scale to darken.
-
use a render target for high performance
-
Switch gray scale to darken.
-
use a render target for high performance
-
More Tile rendering fixes
-
Performance boost to darken and buffs
-
Change disable to just toggle filter, not clear everything