Limitations
spitari LuaVM is external (g_Memory.Read/Write, Direct3D overlay, WinHTTP). It is not in-process Roblox Luau.
Hard stubs (will error or return empty)
| Feature | Status | Source |
|---|---|---|
Instance:Destroy() / Instance:Clone() |
missing — clone is not_creatable |
InstanceCreate.cpp |
getsenv(script) |
→ {} empty table |
LuaScripts.cpp:l_getsenv stub |
TweenService |
Create/Play no-op; Completed never fires |
LuaVM.cpp:RegisterTweenService |
hookfunction / hookmetamethod |
missing | never registered |
getrenv / real Module require |
missing | LuaState is external 5.4, not Roblox Luau |
crypt / filesystem / debug lib |
missing | debug nil, io/os/package nil |
FireServer / InvokeServer |
not wired — external cannot impersonate client→server | Signals.md |
decompile on huge ModuleScript |
returns comment string on failure, not error | FissionEmbed |
Instance.new for ColorCorrectionEffect / DepthOfFieldEffect |
"unknown class" — not in reflection table |
Reflect.cpp Creator map |
Soft / partial (works with caveats)
Instance.new/.Parent =: go through CallGate — hijacks one hotBoundFuncDescslot amongIsA,FindFirstChild,GetChildren,WaitForChild,FindFirstChildOfClass,GetDescendants,GetAttribute,Clone. If gate cold, moves to next candidate; left-over hook from previous run is unwrapped. Verified 54–56/56 classes succeed (§instance_new_test.lua). But: geometry is not rendered — instanced parts exist (parented, properties read back,GetChildrenfinds them) but viewport doesn't draw them. Open problem, not stub.- Signals are polled, not native.
Heartbeat/RenderStepped/Steppedshare one tick;PlayerAdded/CharacterAddedpolled viaPlayerssnapshot;InputBeganpolled viaGetAsyncKeyState;ChildAdded/DescendantAddedpolled with throttling;GetPropertyChangedSignalpolls subset (Name,ClassName,Parent, ValueBases, Humanoid health/speed, etc.).DescendantAddedon hugeworkspaceis expensive — prefer small parent. :Fire/signal:Fire— local cheat VM only (does not run Roblox LocalScripts). RealOnClientEvent/ProximityPrompt.Triggeredfrom game: pollSpitariTest.Buson test place (see Signals); not universal remote spy.- Each
Executeclears priorConnect/Once/Waithooks (no stacking across runs) —g_connsreset. IsAinheritance is short hard-coded list:Instancealways,BasePart/PVInstance(Part/MeshPart/Seat…),GuiObject/GuiBase*(Frame/TextLabel…),ValueBase,Model,LuaSourceContainer,Accoutrement,Tool,LayerCollector.StringValue.Valuewrite: short SSO only (<16bytes); long strings re-allocate viagatecallbut old buffer not freed (see Memorywrstr).Color3/Vector3/...— full userdata;CFrameidentity-only ctorCFrame.new()/CFrame.new(x,y,z)/CFrame.new(Vector3). NoAngles,ToEulerAngles, noBasePart.CFramewrite yet (writePositioninstead).- JSON (
HttpService:JSONEncode/Decode): scalars (nil/bool/number/string) only; tables encode as"null". requestresponseHeadersis always{}for now.- Drawing ≠ Roblox
ScreenGui— overlay Direct3DImDrawList(see Drawing); noBillboardGuihook. WorldToScreenviaVisualEngine::ViewMatrix0x180 is correct only whenGlobals::Workspace->CurrentCameravalid andw>0.11.
Premium vs Freemium
| Premium | Freemium | |
|---|---|---|
| Lua executor | full VM | same VM but limited env; Drawing/decompile may be absent |
MCP bridge (/exec, /fisch, /mm2_aim) |
present | absent |
| Explorer + decompile button | present | absent |
| MagicBullet / RaycastSilent | present | absent |
| Rage / Chams / Mesh | present | absent (error if poked via setgc) |
| Freemium gateway | — | 12h Work.ink key; expiry_epoch enforced |
Crash hygiene (avoid in one script)
decompile+ fullgetscripts+findgc(80000GCO chain cap still heavy) +workspace.DescendantAddedat once.- Writing random memory via wrong Value/attr types (
wrqon unalignedstringfield). - Running Studio bridge script (
spitari_bridge_localscript.lua) inside cheat executor — it's for Studio only.
Use explorer Decompile button for big ModuleScripts; smoke is luascripts/lua_vm_full_test.lua, events luascripts/remote_listen_test.lua.
Porting Matcha / Synapse scripts
Expect breakage on: hookfunction/hookmetamethod, gethui(), Instance.new UI that assumes ScreenGui render, getsenv env stealing, full crypt.*, filesystem.*, debug.*, and anything assuming Luau == identity with game. Prefer rewriting those parts for Drawing + external Instance bridge + mem.* primitives.
Freemium scripts should gate features:
local isPremium = pcall(function() return Drawing.new ~= nil end) and Drawing.new ~= nil
if isPremium then
local line = Drawing.new("Line"); line.Visible = true
else
print("freemium: skip overlay")
end
