sandbox:draw
Client
Fired every render frame — the main hook for all canvas drawing
Signal
"sandbox:draw"Arguments
| No arguments are passed by this signal |
|---|
All core.engine.draw_* calls must be made inside this signal.
- This fires per render frame, not per tick — it may run less frequently under low FPS.
- Do not mutate simulation state here; read state updated in
sandbox:processand draw from it. - For pure UI and panels where the only logic is layout, doing everything inside
sandbox:drawis fine and keeps code in one place.
Example
util.event.on("sandbox:draw", function()
core.engine.draw_text("Hello World", 10, 10, 20)
end)local mx, my = 0, 0
util.event.on("sandbox:mouse_move", function(x, y)
mx, my = x, y
end)
util.event.on("sandbox:draw", function()
core.engine.draw_rectangle(50, 50, 200, 100, false)
core.engine.draw_text("x: " .. mx .. " y: " .. my, 60, 90, 14)
end)