Skip to content

Releases: Fla-man-Max/LuaSlice

Release list

V0.0.4

Choose a tag to compare

@Fla-man-Max Fla-man-Max released this 27 Jun 23:25

[0.0.4] - 2026-06-27

Added

  • Added configureLuaPauseMenu({...}) so Lua can edit built-in pause items, hide items, add custom entries, and change item positions.
  • Added setLuaPauseMenuItem(matchOrId, label, position, target, hidden) for simple base/custom pause menu edits.
  • Added pause menu targets for resume, restartSong, changeDifficulty, practiceMode, exitToMenu, options, callback, and custom .hx/.hxc state classes.
  • Added pause-opened Options support so Lua can hide the Options EXIT item and control where exiting Options goes.
  • Added a configurable Lua pause menu shortcut example.
  • Added initLuaShader(name) for loading a shader by name.
  • Added setShaderOnSprite(sprite, tag) for simple sprite shader assignment.
  • Added getLuaSave(key, fallback) and setLuaSave(key, value) for persistent Lua data.
  • Added Freeplay, Story Menu, and Results Lua hooks.
  • Added -DFEATURE_LOGGER for cleaner live Lua script/error/variable logging during dev builds.
  • Added -DNO_LUA as a simple way to build LuaSlice without Lua support.
  • Added setLuaPauseOptions(howExit) so pause-opened Options return behavior is set through a clear API instead of item config fields.
  • Added pause item config so targets like Options can have pause-only behavior without changing the normal menus.
  • Added timestamped build logs under BuildLogs/<target>/ so new logs do not overwrite older ones.
  • Added one naming pattern for build logs: BuildLogs/<target>/log-<target>build-YYYY-MM-DD-HH-MM-SS[-label].txt.
  • Added a Save Data Options page for clearing all data, song data, options, or controls separately.
  • Added an Android Unlimited FPS option for displays that report support above 60 Hz.

Changed

  • Updated the main menu version text to V-slice: v0.8.5 | LuaSlice: v0.0.4.
  • Reworked Lua shader helpers so simple scripts can use initLuaShader, makeLuaShader, setLuaShader, or setShaderOnSprite.
  • Reworked Lua error popups so useful suggestions show in the popup, not only in the report file.
  • Made the Lua API default for normal native builds, so lime build windows and lime test windows include it without extra defines.
  • Changed -DFEATURE_LOGGER builds to output under export/logger.
  • Updated the pause menu example so custom item ids can target actions like practiceMode, restartSong, or options.
  • Updated the example Modifiers options page with health drain and watermark controls.
  • Replaced the old pause add/hide example with a config-based .luag example.
  • Reworked pause menu config so scripts can define it once and LuaSlice applies it whenever the pause menu opens.
  • Added an isolated .lua pause shortcut example beside the .luag copy so global hook conflicts cannot hide the Options entry.
  • Added the missing example script folders to mod-example.
  • Added simple menu and shader example scripts to mod-example.
  • Updated the health drain example so it stops draining while the player is singing.
  • Updated example scripts to use the simpler pause/menu/shader helper functions.
  • Replaced the old Options-only pause example with a target-based pause menu example.
  • Organized engine changelogs into changelogs/.
  • Organized build logs into BuildLogs/<target>/.
  • Organized extra/source packaging files into other/.
  • Organized icon and art files under art/ and art/icons/.
  • Organized setup docs under docs/setup/.
  • Kept the example mod package at example_mods/mod-example.zip and removed the old RAR package.
  • Restored Android as a playtest target after fixing the startup and orientation problems.
  • Made the Android forced-landscape patch run from the project postbuild step, so it survives clean Android exports.

Fixed

  • Fixed returning from Main Menu targets resetting selection back to Story Mode.
  • Changed Android package/save branding from Funkin defaults to LuaSlice branding, using Fla-man-OFFICIAL for save path and LuaSlice for company/app metadata.
  • Fixed Lua table conversion so reading mixed/sparse tables does not corrupt Lua iteration or drop numeric entries.
  • Fixed Lua-created objects not being destroyed outside PlayState during reload/cleanup.
  • Fixed F5 hot reload being able to run twice in the same frame.
  • Fixed duplicate Lua main menu items leaving old sprites behind.
  • Fixed Lua option pages being able to collide with built-in Options pages.
  • Fixed Lua shader camera filters stacking when reapplied.
  • Fixed Lua note payload fields turning null values into the string "null".
  • Hardened Lua number argument reads so non-number values fall back safely.
  • Fixed Lua pause menu config positions so very low values clamp to the top and very high values clamp to the bottom.
  • Cleaned up PlayState Lua folder reload rules so F5 keeps scripts/lua, scripts/luag, menu, and options behavior consistent.
  • Fixed pause menu config only working during the pause hook instead of from normal script setup.
  • Hardened the pause shortcut example so it reapplies config from onCreate, onReload, and onPauseMenuCreate.
  • Fixed pause-opened Options leaving keyboard input disabled, which broke retry and back controls after returning or dying.
  • Updated Lua error-window suggestions for v0.0.3-v0.0.4 APIs, including pause menu, options, menus, shaders, reload, and event APIs.
  • Fixed Lua error suggestions being hidden from the popup even when the report had one.
  • Fixed missing direct API bindings for the simple shader helper names.
  • Improved Lua error popups so FPS/memory warnings only show for hooks that can spam errors, while reports still use None when no useful suggestion exists.
  • Moved Android build/runtime logs into BuildLogs/android and kept the clean log split into # Info and # Error/s.
  • Updated project paths for organized other, changelogs, and art/icons folders.
  • Fixed hold-cover cleanup/reuse so recycled sustain notes do not keep stale cover links or crash when a cover ends without a valid hold note.
  • Fixed pause-opened Options hiding EXIT leaking into normal Main Menu Options.
  • Removed noisy per-frame perf spam from the Lua logger.
  • Simplified the pause Options example so it only adds the Lua Options shortcut instead of replacing the whole pause menu.
  • Updated the pause Options example to configure the pause-opened Options screen directly with hideExit and howExit.
  • Verified the Windows Lua-enabled build still compiles after the latest fixes.
  • Verified the Windows build after removing the Android export folders.
  • Fixed Android startup crashes caused by early mobile rendering and asset loading paths.
  • Fixed Android main menu rendering so late or missing menu graphics do not crash the app.
  • Fixed Android Freeplay backcard loading so missing bitmap data does not kill the state.
  • Fixed Android packaging so the APK uses fixed landscape orientation.
  • Verified the Android APK installs, opens, plays music, and reaches the main menu in landscape.
  • Fixed Android/emulator menu input being blocked when an external input device is detected.
  • Hardened Android song audio loading so failed instrumental or vocal loads log cleanly instead of breaking PlayState.
  • Fixed Stage Editor .fnfs zip loading for asset names with dots in the filename.
  • Fixed Stage Editor animated object exports saving stale animation data after replacing or failing to add an animation.
  • Fixed Stage Editor animated object JSON ordering so saved animations follow the real animation list.
  • Fixed Stage Editor animation editing so graphic/frame/animation changes mark the stage as unsaved.
  • Hardened Stage Editor object loading against missing animation fields, missing bitmap entries, and null offsets.
  • Fixed the Android x86_64 Lime/SDL Java mismatch that caused an immediate startup crash in the emulator.
  • Reduced Android-only menu and Freeplay rendering costs without changing desktop visuals.
  • Fixed Android Unlimited FPS freezing the app by replacing the invalid zero-rate path with a safe high software ceiling.
  • Removed the unintended built-in Options entry from the pause menu; Lua scripts can still add one when requested.
  • Made the pause Options example opt-in so installing mod-example does not change the pause menu by default.
  • Fixed Android Open Data Folder to open LuaSlice's external data directory through the system file picker.
  • Updated Android Unlimited FPS detection to check all refresh rates supported by the display and hide the option on 60 Hz-only devices.
  • Hardened Stage Editor stage and animated-object loading against missing props, scroll values, and animation arrays.
  • Verified the Android title screen, main menu, Options, Freeplay, gameplay, and improved FPS in the emulator.
  • Verified the Windows Stage Editor build after the latest fixes.
  • Verified final Android and Windows builds with Save Data Options, refresh-rate detection, ZIP-only examples, and the Open Data Folder fix.
  • Fixed Clear Songs Data leaving Story Mode level and Tutorial scores behind while only clearing Freeplay scores.
  • Fixed Main Menu input remaining active during item transitions, which allowed another item to be selected before the first transition finished.
  • Fixed Android launcher icons so builds use art/icons/builds/android/IconAndroid.png instead of expecting a missing adaptive-icon resource pack.