Repository navigation
v0.6.0
✨ Features
- A real release build path on both platforms — signed AAB on Android and an iOS
archive/export flow, plus authored splash and icon variants and a web boot splash (the Android
splash path was previously silently falling back to the system splash — now actually drawn). - A native-config heal — auto build number derived from git commit count, an appId/appName heal
across native project files, and adisabledIfaffordance in Project Settings for fields that
don't apply to the current platform. - Editor: Project Settings split into tabs with an editable quality-tier matrix; an inline help (i)
affordance with image previews and drop-to-set on path/asset fields; several view/session toggles
now survive a reload; the Skin editor's weight-paint brush no longer tunnels on a fast stroke;
SceneView UI-vs-2D click routing is now reconciled by real paint order instead of layer heuristics;
a 2DParticleEmitterentity gets a SceneView selection gizmo. - New authorable
UIElementfields:scale, andscrollbarStyle(auto/tinted/hidden) with
scrollbarThumbColor/scrollbarTrackColorfor theming a scroll view's bar. AudioSource.playlist+crossfadeSecwalks a clip bank with crossfading.- MCP/agent tooling: six new tools —
modoki_animation_view_mode,modoki_game_view_device(s),
modoki_select_sprite_slice,modoki_open_skin_editor,modoki_set_skin_mode.
🐛 Fixes
- A debug time-scale of 0 could previously ship with a scene frozen — fixed so pausing in the editor
can no longer leak into a build. - A scroll view's live viewport measurement, and a UI scroll request, were each being written onto
an authored data field instead of a runtime-only one — both split out so authoring and runtime
state stop fighting each other. - A prefab's
versionfield is now the FORMAT version rather than a function of its content — a
content-derived bump had been making some prefabs load empty. - The quality-tier matrix's
textureMaxSizecap was authored in Project Settings but the build
never actually emitted it, and tier fields rejected decimal values. - Electron:
PlayerPrefsnow forces its localStorage commit instead of waiting for a clean
shutdown, so a hard quit no longer loses player data. - Six asset-loader caches (animation clips, anim sets, particles, 2D rigs, sprite anims, sprite
materials) were silently returning nothing for a guid missing from the manifest with no warning;
a related idle-render gate wasn't re-checking refs after an asset delete/re-import. A generated MCP
tool schema also emitted a bare unresolved$reffor a schema reused across sibling params. - Zone2D enter/exit could miscount or misattribute events when a despawn+respawn reused the same
entity index. - Particles: a fresh GPU particle pool could be drawn before its init compute landed, and a fresh
emitter could render before its texture was ready — both now gate on the real readiness signal
instead of a frame count; a one-shot warning on a sub-pixel 2D effect was false-positiving on a
real textured effect. - An
AudioSourceplaylist could go silent for the rest of a session if a crossfade window was
missed — a finished clip now always advances. - The loading overlay now hides on a real render-readiness signal instead of a frame count, fixing a
permanent black-screen race and a depth-of-field pass that could blow up its light cap. - A recycled entity index could inherit a dead entity's leftover video decoder; a
VideoTexture's
lifetime now follows the element that owns it, not the material. - A light-masked video screen was silently ignoring its mask; engine material "extras" now survive
every clone route. - Rendering: a light-mask selection now has hysteresis so a near-tie stops flapping; a post-FX
stack's stage quads are precompiled so a wrapped render-to-texture pass becomes compilable. - iOS: a native
wifiIPv4read could crash on a NULL address; the native-config heal now rewrites a
SceneDelegatethat bypasses the app's own view controller (which had been silently killing the
on-device debug bridge). - Hardened an editor backend route against a path-traversal gap in Project Settings path handling.
- A pooled prefab that never finished caching now warns instead of retrying forever.
- Electron: CDP status now reports the state Chromium actually observed, not the env var that
requested it. - Install/build robustness: plugin dists are now stamped at postinstall so nothing rebuilds mid-run;
ensureProjectDepsheals a stale workspace symlink, not just missingnode_modules; the Windows
installer no longer grants an unnecessary.vite-tempACL; the vendored-plugin freshness guard now
opens the tarball instead of trusting its name; a newnpm run test:nativescript runs the
iOS/Android plugin replays.
Full Changelog: v0.5.2...v0.6.0