Globals
identifyexecutor
function identifyexecutor(): (string, string)
Returns "spitari", "0.1". Legacy compat alias returns "spitari","0.1" (same function). __call helper: identifyexecutor("spitari") still returns pair.
print(identifyexecutor()) -- spitari 0.1
print / warn
function print(...): ()
function warn(...): ()
Joined with \t, sent to executor console (LuaExecutor::Log(Print|Warn)). print uses tostring per arg via lua_pcall(tostring); warn uses luaL_tolstring.
wait / spawn (legacy)
function wait(seconds: number?): number?
function spawn(fn: (...any) -> ()): thread
Aliases to task.*. Prefer task. wait yields via ScheduleWait unless not yieldable (returns 0). spawn creates lua_newthread, lua_resume immediate.
task
task.wait(seconds: number?) -- yield, default 0.03s
task.spawn(fn): thread
task.delay(seconds: number, fn): Task -- {idx,seq} token
task.defer(fn): Task -- next tick (0s delay)
task.cancel(token: Task | thread)
Impl: g_waits (WaitEntry {ref, left}), g_delays (DelayEntry {ref, left, seq}), g_tick_th drains by dt in LuaVM::Tick. cancel invalidates seq.
task.delay(2, function() print("2s") end)
local tok = task.delay(10, function() end); task.cancel(tok)
local th = task.spawn(function() task.wait(1); print("spawned") end)
task.cancel(th)
Input helpers
function getmousepos(): (number, number) -- client x, y (overlay client coords)
function isrbxactive(): boolean -- Roblox foreground?
function iskeypressed(key: number | string): boolean
getmousepos: GetCursorPos → ScreenToClient(Renderer::GetHwnd()) if overlay present else raw. isrbxactive: GetForegroundWindow() == FindWindow("Roblox") via Memory::GetModuleBase window. iskeypressed polls GetAsyncKeyState(VK_*) & 0x8000 (callable each UserInputService:InputBegan tick as well).
iskeypressed accepts VK integer or name: "left", "right", "space", "shift", "ctrl", "alt", "tab", "escape", "enter", "backspace", "capslock", letter "a"…"z", "0"…"9", "f1"…"f12", "mouse1"/"mouse2"/"mouse3" / "leftmouse" etc. Case-insensitive.
if iskeypressed("space") then print("jump") end
if iskeypressed(0x01) then print("LMB") end
print(getmousepos())
bit32
Roblox-compatible 32-bit ops (unsigned). the bit32 module.
bit32.band(...)
bit32.bor(...)
bit32.bxor(...)
bit32.bnot(x)
bit32.lshift(x, n) -- << n & 0xFFFFFFFF
bit32.rshift(x, n) -- logical >> n
bit32.arshift(x, n) -- arithmetic >> n
bit32.lrotate(x, n)
bit32.rrotate(x, n)
bit32.extract(n, field, width?) -- default width 1
bit32.replace(n, v, field, width?)
print(string.format("%08x", bit32.bxor(0xdeadbeef, 0x12345678)))
print(bit32.extract(0xF0, 4, 4)) -- 0xF
Drawing
See Drawing. Globals: Drawing table (Drawing.new, Drawing.clear), cleardrawcache alias.
local l = Drawing.new("Line"); l.From = Vector2.new(0,0); l.To=Vector2.new(100,100); l.Visible=true
cleardrawcache()
HTTP
See HTTP. Globals: request, http_request (same fn), HttpGet, HttpService (with GetAsync, RequestAsync, JSONEncode, JSONDecode scalars-only).
local r = request({Url="https://example.com", Method="GET"})
if r.Success then print(r.StatusCode, #r.Body) end
print(HttpGet("https://example.com"))
GC key/value locks
lockgc(key, value, interval_ms?) / unlockgc(key?) pin a value into every matching game Luau table in the background. Taught in LuaGc.cpp as heap walk over globalState::gray/grayagain pages. See Scripts & GC.
lockgc("ShootCooldown", 0) -- pin 0 every 100ms
lockgc({"FireRate","Damage"}, 999, 250)
unlockgc("ShootCooldown"); unlockgc() -- all
print(gc.locks()) -- via gc table alias
Raw memory
get_class(addr) / get_name(addr) read class/name directly from a raw address without userdata. Full API (mem.*, gatecall, reflection, scanptr, …): see Memory.
local at = addrof(workspace.CurrentCamera)
print(get_class(at), get_name(at))
print(mem.rdstr(at + 0x8)) -- NameContainer example
Other globals (always present)
| Global | Type | Notes |
|---|---|---|
game |
Instance userdata | DataModel (refreshed each Execute via RefreshGlobals) |
workspace |
Instance userdata | game.Workspace |
RunService |
fake table | Heartbeat/RenderStepped/Stepped signals |
UserInputService |
fake table | InputBegan/Ended |
TweenService |
fake table | noop Create:Play |
HttpService |
fake table | GetAsync/JSONEncode |
Vector3/Vector2/Color3/CFrame |
userdata ctors | Datatypes |
Drawing |
table | overlay drawings |
bit32 |
table | 32-bit ops |
task |
table | scheduler |
mem |
table | namespaced memory fns |
gc/scripts |
tables | GC/script fns |
_G / _VERSION |
Lua std | |
math/string/table/coroutine/utf8 |
libs | opened |
Premium-only globals: mem.gatecall, mem.gatescratch, wrcontent, Instance.new (via CallGate), decompile, getscripts, findgc/setgc/lockgc — freemium has stubs or absent.
