
The next-generation sandbox runtime. One language, infinite power — Lua from the ground up, built on Godot, engineered in C++17.
Draw shapes, images, text, and polygons on the canvas each frame.
Create and bind off-screen surfaces, sampled as textures at runtime.
Load, unload, and control texture samplers at runtime.
Load fonts and render text with full size and color control.
Render embedded web content inside your sandbox window.
Fog, LUTs, depth curves, and color grading — scriptable per frame.
Non-blocking async execution with clean control flow.
Deferred values with chaining, resolution, and try/catch support.
Recurring callbacks at defined intervals for loops and polling.
Low-level thread management, pooling, and lifecycle control.
Load and unload named model assets at runtime, no restarts.
Spawn and destroy independent instances from a shared asset.
Per-instance position, rotation, and scale at runtime.
Per-instance animation with speed, loop, pause, and resume.
Per-component blend shapes for expressions and body morphs.
Per-component mesh visibility for clothing and equipment systems.
Primitives for hashing, encryption, and payload security.
Compress assets and data to reduce memory and transfer overhead.
Native HTTP GET and POST with full header support.
Native Rich Presence and Discord API integration.
Pub/sub events for decoupled inter-module communication.
Runtime console for commands, debug, info, and error output.
Every function follows the same conventions — predictable return values, structured errors, zero boilerplate.
-- draw handler — fires every frame network:fetch("vital.sandbox:draw", true) :on(function() engine.draw_rectangle({20, 20}, {300, 88}, {0,0,0,.75}, 1, {.4,.6,1,.3}) engine.draw_text("Player HUD", {32,36}, {290,72}, font, 16, {1,1,1,1}) engine.draw_circle({275,54}, 6, {.3,1,.5,1}) end)
-- async GET inside a thread local self = thread:create(function(self) self:try({ exec = function() local res = rest.get("https://api.example.com/data") engine.print("info", res) end, catch = function(err) engine.print("error", err) end }) end) self:resume()
-- depth fog + cinematic LUT gfx.fog.set_mode("depth") gfx.fog.set_depth_begin(10.0) gfx.fog.set_depth_end(200.0) gfx.fog.set_depth_curve(1.5) gfx.adjustment.set_lut("lut/cinematic.png")
-- promise with error handling local p = thread:create_promise() local self = thread:create(function(self) self:try({ exec = function() local r = {self:await(p)} engine.print("info", table.unpack(r)) end, catch = function(e) engine.print("error", e) end }) end) self:resume()
Fully open-source, no licensing fees, no royalties, no strings attached. What you build belongs to you — completely and unconditionally.
No platform cuts, no revenue gates, no forced monetization systems. Ship free, charge what you want, keep everything.
Lean by design. No unnecessary abstractions, no forced frameworks. Nothing stands between your scripts and the engine.
Script everything at runtime — rendering, networking, threading, models, GFX — one unified Lua API, top to bottom.
Built for user scripting, modding, and plugin systems from day one. Full sandboxed Lua isolation — safe, powerful, extensible.
Built on Godot, engineered in C++17. No overhead, no interpreter bottlenecks — maximum throughput at every layer.