What is Wax?
A Lua scripting framework for ICARUS. Write a mod, save it, and see it in the running game.
Wax lets you write mods for ICARUS in Lua.
A mod is a folder with one file in it, called init.lua. Wax runs that file inside the game.
Wax is in development
Wax is not released yet, and there is nothing to download. These pages describe how it works today. Details may still change before the first release.
What a mod looks like
This is a whole mod. It makes a window with one button.
local window = ui.Window({ title = "Hello" })
window:Button("Say hi", function()
ui.Notify("Hi from my mod!")
end)Press F8 in the game and the window is there. Click the button and a message slides in.
What you can do
- Look at the game. Start at
gameand walk to the world, the player and every object. See The game tree. - Make an interface. Windows, buttons, switches, sliders, lists, overlays and notifications. See Controls.
- Run code over time. Wait, repeat and delay without freezing the game. See Tasks.
- React to events. Run a function when the map changes or a switch is flipped. See Signals.
- Remember things. Keep settings between game sessions. See Saving settings.
What Wax does for you
- Hot reload. Save your file and the mod reloads in the running game. You do not restart anything. See Hot reload.
- A menu in the game. One key opens every mod's windows. See The menu.
- A panel for mod authors. It lists your mods, shows the log and runs a line of Lua on the spot. See The Wax panel.
- Errors you can read. An error in your mod is caught. It shows up as a notification and in the log, with the line it happened on.
- Cleaning up. Everything your mod makes is removed when the mod reloads. You do not write clean-up code.