Sheldon's Scripting Environment
A scripting environment made for letting users have more customizability over their product. (<- not ai)
Obfuscate
Paste a script; get back the same code, unreadable.
Obfuscated Script
The scrambled output lands here.
Global Functions
Built-in global functions available in the LuaVM environment.
| Function | Description |
|---|---|
| print(...) | Outputs to console with [print] prefix |
| warn(...) | Outputs to console with [warn] prefix |
| error(...) | Throws a Lua error |
| hex(number) | Formats a number as hex string (e.g. 0x7FF...) |
| tick() | Returns GetTickCount64() – milliseconds since system start |
| loadstring(source) | Loads and compiles Lua source code. Returns (function, nil) on success or (nil, error_message) on failure. |
| type(v) | Overrides Lua's built-in type(). Behaves normally for all Lua values, and additionally recognizes Roblox Luau GC addresses returned by cheat.getgc()/cheat.rawget() – for a number that points at a live GC object it returns "table", "string", "function", "userdata", or "thread" depending on the object's type. |
String Extensions
Appended to Lua's built-in string library:
| Function | Signature | Description |
|---|---|---|
| string.regex(text, pattern) | string, string | Returns true if the pattern is found (std::regex_search). Returns false on invalid patterns. |
Example
base64
Base64 encoding and decoding. Always available (no library gate).
| Function | Signature | Description |
|---|---|---|
| base64.Encode(data) | string | Encodes a string to base64 |
| base64.Decode(data) | string | Decodes a base64 string back to plaintext |
Example
hash
Cryptographic hash functions. Always available (no library gate).
| Function | Signature | Description |
|---|---|---|
| hash.Sha256(data) | string | Returns SHA-256 hex digest |
| hash.Sha3(data) | string | Returns SHA-3 hex digest |
| hash.Md5(data) | string | Returns MD5 hex digest |
Example
compress
LZ4 compression utilities. Always available (no library gate).
| Function | Signature | Description |
|---|---|---|
| compress.Compress(data) | string | Compresses data using LZ4 (does NOT prepend original size). Decompress expects a 4-byte size header – functions are currently incompatible. |
| compress.Decompress(data) | string | Decompresses LZ4-compressed data back to original. |
Example
task
Scheduling utilities for asynchronous execution.
| Function | Signature | Description |
|---|---|---|
| task.spawn(fn) | function | Schedules fn to run asynchronously |
| task.delay(seconds, fn) | number, function | Schedules fn after seconds |
| task.wait(seconds) | number | Yields the coroutine, returns actual elapsed time. Must be called within a task.spawn'd or yielded coroutine (not from main thread). |
Example
tween
Interpolate instance properties smoothly over time. Modelled on Roblox's TweenService.
| Function | Signature | Description |
|---|---|---|
| tween.Info(time, delayTime?, style?) | number, number?, string? | Builds a TweenInfo table. style defaults to "Linear", delayTime to 0. You can also pass a raw table {time=..., delayTime=..., style=...} anywhere info is expected. |
| tween.Create(instance, info, props) | Instance, table, table | Creates a tween that will interpolate each property in props from its current value to the target value. Returns a tween object. |
Tween Object
| Method | Signature | Description |
|---|---|---|
| tween:Play(waitForFinish?) | bool? | Starts the tween. When waitForFinish is true, blocks the calling coroutine until every property has finished tweening; otherwise returns immediately. Both tween:Play(...) and tween.Play(...) syntaxes are accepted. |
| tween:Cancel() | Snaps every property back to the value it had when the tween was created. Does not stop already-scheduled ticks – for that, let the tween finish or overwrite the property. |
Easing Styles
Linear, Bounce, Elastic, Exponential, Cubic. Also exposed as tween.EasingStyle.Linear etc. for readability. Pass either the string or the constant.
Supported Property Types
number– e.g.Transparency,Reflectance,WalkSpeedVector3– e.g.Position,Size,LinearVelocity,AngularVelocityColor3– e.g.Color
The property must be registered for the instance's class (see Class Properties) and must not be read-only. Unsupported properties raise an error at tween.Create time.
Example – Move a part
Example – Wait until finished
Example – Chained tweens
Notes
- Each property tweens independently. Passing multiple properties runs them in parallel on the same schedule.
tween:Play(true)blocks the calling coroutine – usetask.spawnif you don't want to freeze your main script.- Tweens write directly to memory. Physics-driven properties (
Position,CFrame, velocities) update visually but the engine may resimulate them next physics step; combine with anchoring or velocity-zeroing for full control. - Tween ticks run on a dedicated background thread and continue even if the script yields.
memory
Raw memory read/write operations. Requires the Memory library to be enabled.
Memory library enabled| Function | Signature | Description |
|---|---|---|
| memory.Read(address, type) | uintptr, string | Reads from memory, converting to the given type |
| memory.Write(address, value) | uintptr, any | Writes a value, auto-deciding the width from its type |
| memory.Write(address, value, type) | uintptr, any, string | Writes a value, explicitly converting it to the given type |
| memory.GetRTTI(address) | uintptr | Gets RTTI type from vtable |
| memory.GetBase() | Returns Roblox process base address | |
| memory.Rebase(offset) | uintptr | Returns base + offset |
Supported Types
Read/Write: float, double, int, uint, bool, byte, short, ushort, int64, uint64, string, vector2, vector3, color3.
Write also supports: pointer.
Vectors accept a Vector2/Vector3/Color3 value or a table ({x, y, z}, {r, g, b}, or {1, 2, 3}).
Write Auto-Decision
When the type argument is omitted, memory.Write decides the width from the value:
| Value | Written as |
|---|---|
integer in int32 range (e.g. 999) | int32 (4 bytes) |
integer outside int32 range | int64 (8 bytes) |
float (e.g. 0.123) | float (4 bytes) |
boolean | bool |
string (e.g. "abc123") | null-terminated string |
Vector2 or {x, y} | 2 floats (8 bytes) |
Vector3 / Color3 or {x, y, z} | 3 floats (12 bytes) |
Pass type explicitly when the field needs a different width (e.g. a double field, a byte flag, or a pointer).
Example
cheat
Cheat utilities – event registration, raycasting, server/teleport helpers, and the Roblox Luau garbage-collector interface.
Events
| Function | Signature | Description |
|---|---|---|
| Register(eventType, fn) | string, function | Register a callback for an event type. Fires for the lifetime of the script until unregistered. |
| Unregister(eventType, fn) | string, function | Unregister a previously registered callback. Pass the same function reference used with Register. |
Event Types
| Event | Description |
|---|---|
| onPaint | Fires every frame for rendering |
| onUpdate | Fires every frame for logic updates |
| onSlowUpdate | Fires at a reduced rate |
| teleport | Fires when the player teleports |
Example
Garbage Collector
Read and write the target process's Luau GC directly. getgc enumerates live objects; rawget/rawset operate on a single external table by address; setgc writes across every table that has a key.
| Function | Signature | Description |
|---|---|---|
| getgc(includeAll?, searchKey?) | bool?, string? | Enumerates the target process's Luau GC. Default returns tables only; pass true as the first arg to include strings, functions, userdata, and threads. If searchKey is a non-empty string, getgc instead scans every GC table for that key and returns the first non-nil value it finds – decoded to a Lua value (string/number/boolean) where possible, or the raw address as a number for GC-typed values. Returns nil if no table has the key. |
| setgc(key, value) | string, bool | number | address | Iterates every GC table and writes value into every table that already has key. Accepts bool, number, or a GC address (the tt is inferred from the GC object's header). Cannot create new keys and does not issue a GC write barrier. String literals are rejected – pass an existing TString address (a number) instead. |
| rawget(addr, key | true) | number, string | bool | Reads a field on the external table at addr. 2nd arg: pass a string key to fetch a single field, or pass true to dump the whole table as a Lua table. Missing keys return nil. Returned GC-typed values (tables/functions/userdata) come back as their raw address number; call rawget recursively on them to dive deeper. |
| rawset(addr, key, value) | number, string, any | Writes an existing field on the external table at addr. Accepts nil, bool, number, or an address for GC-typed values (the tt is inferred from the GC object's header). Returns true on success, false if the key doesn't already exist. Cannot create new keys and does not issue a GC write barrier. |
Example
Raycast
| Function | Signature | Description |
|---|---|---|
| Raycast(pos, dir, distance, ignoreTransparent?) | Vector3, Vector3, number, bool? | Casts a ray. Returns (hit, instance, position, distance). |
Example
World To Screen
| Function | Signature | Description |
|---|---|---|
| WorldToScreen(worldPos) | Vector3 | Project world position to screen. Returns (Vector2 screenPos, bool isOnScreen). |
Example
Servers & Teleport
| Function | Signature | Description |
|---|---|---|
| TeleportPlace(placeId, jobId?) | string, string? | Teleport to a Roblox place/server. Also accepts a table {PlaceId, JobId}. Returns bool. |
| GetServers(placeId?) | string? | Fetches game server list. Returns table of servers with JobId, PlaceId, UniverseId, GameName, Playing, MaxPlayers, Ping, Fps. Defaults to current place. |
| GetUniverseId(placeId?) | string? | Gets universe ID for a place. Defaults to current place. |
Example
Payload Execution
| Function | Signature | Description |
|---|---|---|
| RunSecure(payload) | string | Runs an obfuscated payload produced by the Obfuscate page. Paste the generated snippet as-is – it already wraps the payload in this call. |
Example
internet
HTTP networking functions.
| Function | Signature | Description |
|---|---|---|
| internet.get(url, timeout?, info?) | string, number?, table? | HTTP GET. Info supports {headers={}}. Returns {text, status_code} |
| internet.post(url, body?, timeout?, info?) | string, string?, number?, table? | HTTP POST |
Example
input
Mouse and keyboard input simulation. Requires the Input library to be enabled.
Input library enabledMouse
| Function | Signature | Description |
|---|---|---|
| input.MoveMouse(dir, relative?) | Vector2, bool? | Move mouse (absolute or relative to overlay) |
| input.GetMousePosition() | Current cursor position | |
| input.MouseClick(click, time?) | int, int? | Simulate click (1=left, 2=right) |
| input.MousePress(click) | int | Press button |
| input.MouseRelease(click) | int | Release button |
| input.GetScrollDelta() | Scroll wheel delta | |
| input.GetMoveDelta() | Mouse move delta |
Keyboard
| Function | Signature | Description |
|---|---|---|
| input.IsHeld(vKey) | int|string | Key held down |
| input.IsPressed(vKey) | int|string | Key just pressed |
| input.IsReleased(vKey) | int|string | Key just released |
| input.PressKey(vKey, time?) | int|string, int? | Press and release key |
| input.HoldKey(vKey) | int|string | Hold key down |
| input.ReleaseKey(vKey) | int|string | Release key |
| input.Type(text, time?) | string, int? | Type text character by character |
Example
file
Sandboxed file system operations. Requires the File_Management library to be enabled.
File_Management library enabledAll operations are sandboxed to {workspaceDir}/scripts/SandboxEnv/. Path traversal (..) is blocked.
| Function | Signature | Description |
|---|---|---|
| file.write(location, content) | string, string | Write file |
| file.read(location) | string | Read file |
| file.rename(location, newName) | string, string | Rename/move file |
| file.delete(location) | string | Delete file |
| file.list(location) | string | List directory |
| file.append(location, content) | string, string | Append to file |
Example
utility
System clipboard access.
| Function | Signature | Description |
|---|---|---|
| utility.GetClipboard() | Get clipboard text | |
| utility.SetClipboard(text) | string | Set clipboard text |
Example
GetClipboard / SetClipboard require Clipboard library enabled.
entity
Custom entity management system.
| Function | Signature | Description |
|---|---|---|
| entity.AddEntity(key, data) | string, table | Add custom entity. data supports: Character, PrimaryPart, Name, DisplayName, Team, TeamColor, DoTeamCheck, Humanoid, MaxHealth, Health, RemoveOnDeath, Bones |
| entity.EditEntity(key, data) | string, table | Edit entity data |
| entity.RemoveEntity(key) | string | Remove entity |
| entity.Clear() | Remove all entities | |
| entity.GetEntity(key) | string | Get entity data. Returns Character, PrimaryPart, Name, DisplayName, Team, Humanoid, MaxHealth, Health, UserId, IsEntity |
| entity.GetPlayers(includeEnemies?, includeEntities?) | bool?, bool? | Get players/entities data. Additionally returns: IsAlive, IsCameraVisible, IsLocal, IsPreview, IsTargeted, IsFriend, IsWhitelisted, IsEnemy, RigType |
Example
draw
2D drawing primitives for rendering overlays.
| Function | Signature |
|---|---|
| draw.Text(text, x, y, color?, font?, alpha?) | string, number, number, Color3?, string?, int? |
| draw.TextOutlined(text, x, y, color?, font?, alpha?) | same |
| draw.GetTextSize(text, font?) | string, string? |
| draw.Line(x1,y1,x2,y2, color?, thickness?, alpha?) | |
| draw.Rect(x,y,w,h, color?, thickness?, rounding?, alpha?) | |
| draw.RectFilled(x,y,w,h, color?, rounding?, alpha?) | |
| draw.Circle(cx,cy,radius, color?, thickness?, segments?, alpha?) | |
| draw.CircleFilled(cx,cy,radius, color?, segments?, alpha?) | |
| draw.Triangle(x1,y1,x2,y2,x3,y3, color?, thickness?, alpha?) | |
| draw.TriangleFilled(x1,y1,x2,y2,x3,y3, color?, alpha?) | |
| draw.Gradient(x,y,w,h, startColor, endColor, isHorizontal, startAlpha?, endAlpha?) | |
| draw.Image(textureId, x,y,w,h, r,g,b,a) | int, number,number,number,number, int,int,int,int |
| draw.Polyline(points, color, closed, thickness, alpha?) | table, Color3, bool, number, int? |
| draw.ConvexPolyFilled(points, color, alpha?) | |
| draw.ComputeConvexHull(points) | table |
| draw.GetPartCorners(part) | Instance |
| draw.DeltaTime() |
draw.GetTextSize returns width, height as two float values.
Example
gui
Overlay GUI management functions.
| Function | Signature | Description |
|---|---|---|
| gui.AddTab(tabName, func) | string, function | Add a scripted runtime tab |
| gui.RemoveTab(tabName) | string | Remove a runtime tab |
| gui.IsTab(tabName) | string | Check if tab exists |
| gui.GetMenuState(checkForeground?) | bool? | Menu overlay state |
| gui.IsForeground() | Roblox is foreground window | |
| gui.GetWindowSize() | Overlay window dimensions |
Example
imgui
Dear ImGui-style immediate mode GUI system.
Windowing
| Function | Signature |
|---|---|
| imgui.Begin(name, flags?) | string, int? |
| imgui.End() | |
| imgui.BeginChild(id, w?, h?, border?, flags?) | |
| imgui.EndChild() | |
| imgui.SetNextWindowPos(x,y, cond?, pivot_x?, pivot_y?) | |
| imgui.SetNextWindowSize(w,h, cond?) | |
| imgui.SetNextWindowBgAlpha(alpha) | |
| imgui.SetNextWindowCollapsed(collapsed, cond?) | |
| imgui.SetNextWindowFocus() |
Position
| Function | Signature |
|---|---|
| imgui.GetWindowPos() | |
| imgui.GetWindowSize() | |
| imgui.GetCursorPos() | |
| imgui.SetCursorPos(x,y) | |
| imgui.GetCursorScreenPos() | |
| imgui.SetCursorScreenPos(x, y) | |
| imgui.GetCursorStartPos() | |
| imgui.GetContentRegionAvail() | |
| imgui.GetWindowContentRegionMin() | |
| imgui.GetWindowContentRegionMax() | |
| imgui.GetContentAvail() | |
| imgui.GetFrameHeight() | |
| imgui.GetFrameHeightWithSpacing() | |
| imgui.SameLine(...) | |
| imgui.Spacing() | |
| imgui.Separator() | |
| imgui.SeparatorText(label) |
Indentation
| Function | Signature |
|---|---|
| imgui.Indent(w?) | |
| imgui.Unindent(w?) | |
| imgui.BeginIndent() | |
| imgui.EndIndent() |
Groups
| Function | Signature |
|---|---|
| imgui.BeginGroup() | |
| imgui.EndGroup() |
Item Width
| Function | Signature |
|---|---|
| imgui.PushItemWidth(width) | |
| imgui.PopItemWidth() |
ID Stack
| Function | Signature |
|---|---|
| imgui.PushID(id) | |
| imgui.PopID() |
Dummy
| Function | Signature |
|---|---|
| imgui.Dummy(w, h) | Adds an empty item with the specified size |
Text Utilities
| Function | Signature |
|---|---|
| imgui.CalcTextSize(text) | Returns rendered width, height of text |
Widgets
| Function | Signature |
|---|---|
| imgui.Button(text, w?, h?) | |
| imgui.TabButton(text, w?, h?, active?) | |
| imgui.Checkbox(text, v) | |
| imgui.Slider(title, v, min, max) | |
| imgui.SliderInt(title, v, min, max) | |
| imgui.DragFloat(title, v, speed?, min?, max?, format?, disabled?) | returns changed, value |
| imgui.DragInt(title, v, speed?, min?, max?, format?, disabled?) | returns changed, value |
| imgui.DragFloat2(title, x, y, speed?, min?, max?, format?, disabled?) | labeled row, returns changed, x, y |
| imgui.DragFloat3(title, x, y, z, speed?, min?, max?, format?, disabled?) | labeled row, returns changed, x, y, z |
| imgui.InputText(title, v, placeholder, w?, flags?) | |
| imgui.MultilineInput(title, v, placeholder, w?, flags?) | |
| imgui.WidgetsText(text, color?, alpha?) | |
| imgui.BeginContent(title, h?, w?) | |
| imgui.EndContent() | |
| imgui.ColorPicker(title, color?, alpha?) | |
| imgui.ProgressBar(title, value01, width, divisions, align?) | |
| imgui.Note(text) | |
| imgui.ListBox(label, items, height?, w?, listHeight?) | |
| imgui.Dropdown(title, items, current?) | |
| imgui.Shimmer(w, h) |
Drag Widgets
DragFloat / DragInt are draggable numeric fields. Drag horizontally to change the value; click without dragging to type a value directly. Hold Ctrl while dragging for finer steps (0.1×), Shift for coarser (10×).
speed– value change per pixel dragged (default1).min,max– clamp range. Leave both0(or equal) for an unbounded field.format– printf-style, may include a suffix, e.g."%.2f studs"or"%d rounds".disabled– whentrue, the field is dimmed and ignores input.DragFloat2/DragFloat3render a labeled property row with 2 / 3 boxes sharing one row's width – ideal for Vector2 / Vector3.
Tabs
| Function | Signature |
|---|---|
| imgui.BeginTabs(title, enableAnim?) | |
| imgui.BeginTab(name) | |
| imgui.EndTab() | |
| imgui.EndTabs() |
Item State
| Function | Signature |
|---|---|
| imgui.IsItemHovered(flags?) | |
| imgui.IsItemActive() | |
| imgui.IsItemFocused() | |
| imgui.IsItemClicked(btn?) | |
| imgui.IsAnyItemHovered() | |
| imgui.IsAnyItemActive() | |
| imgui.IsAnyItemFocused() | |
| imgui.GetItemRectMin() | |
| imgui.GetItemRectMax() | |
| imgui.GetItemRectSize() | |
| imgui.IsWindowHovered(flags?) | |
| imgui.IsWindowFocused(flags?) |
Columns
| Function | Signature |
|---|---|
| imgui.Columns(...) | |
| imgui.NextColumn() | |
| imgui.GetColumnIndex() | |
| imgui.GetColumnWidth() | |
| imgui.SetColumnWidth() |
Example
fflags
FastFlag (FFlag) reading and writing utilities.
| Function | Signature | Description |
|---|---|---|
| fflags.Get(name, type, original?) | string, string, bool? | Get an FFlag value |
| fflags.Set(name, value) | string, any | Set an FFlag value, auto-deciding the width from its type |
| fflags.Set(name, value, type) | string, any, string | Set an FFlag value, explicitly converting it to the given type |
| fflags.GetAll() | Get all FFlags. Returns a table of entries, each with name, runtime, and original fields. |
Types
float, double, int, uint, bool, byte, short, ushort, int64, uint64, string. Set also supports pointer.
When Set is called without a type, the width is decided from the value: integers in int32 range → int32 (larger → int64), floats → float, booleans → bool, strings → string.
Example
Instance
The core Roblox instance type. Access instances via game, Instance constructors, or methods.
Properties
| Property | Type | Access | Description |
|---|---|---|---|
| Name | string | RW | Instance name |
| ClassName | string | RO | Class name |
| Parent | Instance | RW | Parent instance |
| Address | uintptr | RO | Raw memory address |
| FullName | string | RO | Full hierarchical path |
Methods
| Method | Returns | Description |
|---|---|---|
| :FindFirstChild(name) | Instance|nil | Find first child by name |
| :WaitForChild(name, timeout?) | Instance|nil | Wait for child to appear |
| :FindFirstChildOfClass(className) | Instance|nil | Find first child of class |
| :FindDescendants(name) | table | Find all descendants by name |
| :FindDescendantsOfClass(className) | table | Find all descendants of class |
| :GetChildren() | table | Direct children |
| :GetDescendants() | table | All descendants |
| :Ancestors() | table | All ancestors |
| :IsDescendantOf(ancestor) | bool | Check ancestry |
| :IsA(className) | bool | Check class |
| :IsAncestorOf(descendant) | bool | Check if is ancestor |
| :GetAttributes() | table | Attribute table |
| :GetAttribute(name) | string|nil | Get attribute |
| :SetAttribute(name, value) | Set attribute | |
| :GetTags() | table | Collection tags |
| :HasTag(tag) | bool | Check tag |
| :RenameTag(oldName, newName) | Rename tag | |
| :GetPropertyChangedSignal(property) | RBXScriptSignal | Returns a signal that fires when the given property changes |
Example
Meta-Behavior
instance.PropertyNamefirst checks built-in properties, then registered class properties, then falls back to child lookup by name.- Setting properties respects read-only flags.
instance.Changedreturns anRBXScriptSignalthat fires when any registered class property changes. Usage:instance.Changed:Connect(function(propertyName, newValue) ... end).for k, v in pairs(instance) do ... enditerates over built-in properties, class properties, and children.
DataModel
Both game and Game resolve to the Roblox DataModel instance.
DataModel inherits from Instance, so all Instance methods are available.
GetService
| Method | Returns | Description |
|---|---|---|
| :GetService(className) | Instance|nil | Get service by class name |
RemoteEvent
FireServer, InvokeServer, and bidirectional remote spy – extra members added to RemoteEvent, UnreliableRemoteEvent, and RemoteFunction instances.
These members appear on top of the standard Instance API for any instance whose ClassName matches. Reading a spy signal auto-installs the underlying hook on first read – you don't need to opt in ahead of time.
Remotes parented anywhere under RobloxReplicatedStorage are treated as protected – trying to access the spy on them errors with Protected <ClassName>.
Methods
| Method | Applies to | Description |
|---|---|---|
| FireServer(...) | RemoteEvent, UnreliableRemoteEvent | Fires the remote to the server with the given args. |
| InvokeServer(...) | RemoteFunction | Invokes the remote against the server with the given args. Currently fire-and-forget – the server WILL reply but the return value is not routed back to Lua yet, so this returns nil. If you need the reply value, pair a RemoteEvent both directions instead. |
Example
Outgoing spy (client → server)
Fires whenever anything in the game (Lua, C++, other exploits) sends args from this client to the server through the remote. One shared hook per class covers every instance – the first read installs it.
| Member | Type | Description |
|---|---|---|
| OnFireServer | RBXScriptSignal | Callback fires with the args when this RemoteEvent / UnreliableRemoteEvent is fired to the server. |
| OnServerEvent | RBXScriptSignal | Alias for OnFireServer. |
| OnInvokeServer | RBXScriptSignal | Callback fires with the args when this RemoteFunction is invoked against the server. RemoteFunction only. |
| OnServerInvoke | RBXScriptSignal | Alias for OnInvokeServer. |
Example
Incoming spy (server → client)
Fires whenever the server sends args to this client through the remote. Hooked per-instance – the first read installs one shared hooked vtable per unique class-vptr, then every subsequent instance is cheap. Callback receives the args the server sent.
| Member | Type | Description |
|---|---|---|
| OnClientEvent | RBXScriptSignal | Callback fires with the args when the server sends to this client through the RemoteEvent / UnreliableRemoteEvent. |
| OnClientInvoke | RBXScriptSignal | Callback fires with the args when the server invokes this RemoteFunction against the client. Purely observational – the connect does not assign a return value the server sees. RemoteFunction only. |
Example
Class Properties
Registered class properties for common Roblox classes.
Part / MeshPart (BasePart)
| Property | Type | Access |
|---|---|---|
| Transparency | float | RW |
| Reflectance | float | RW |
| Position | Vector3 | RW |
| Size | Vector3 | RW |
| LinearVelocity | Vector3 | RW |
| AngularVelocity | Vector3 | RW |
| Rotation | Vector3 (euler) | RW |
| RightVector | Vector3 | RO |
| UpVector | Vector3 | RO |
| ForwardVector | Vector3 | RO |
| Anchored | bool | RW |
| CanCollide | bool | RW |
| Color | Color3 | RW |
Humanoid
| Property | Type | Access |
|---|---|---|
| Health | float | RW |
| MaxHealth | float | RW |
| WalkSpeed | float | RW |
| JumpPower | float | RW |
| JumpHeight | float | RW |
| HipHeight | float | RW |
| MaxSlopeAngle | float | RW |
| PlatformStand | bool | RW |
| AutoRotate | bool | RW |
| UseJumpPower | bool | RW |
| Sit | bool | RW |
Player
| Property | Type | Access |
|---|---|---|
| UserId | uintptr | RO |
| DisplayName | string | RO |
| Character | Instance | RO |
| CameraMode | int | RW |
| NetworkPing | float | RO |
NetworkPing returns the player's ping in ms. Only non-nil for LocalPlayer.
Players
| Property | Type | Access |
|---|---|---|
| LocalPlayer | Instance (Player) | RO |
| GetPlayers | function | RO |
| PlayerAdded | RBXScriptSignal | RO |
| PlayerRemoving | RBXScriptSignal | RO |
Camera
| Property | Type | Access |
|---|---|---|
| Fov | float | RW |
| Position | Vector3 | RW |
| Subject | Instance|nil | RW |
| CameraType | int | RW |
Workspace
| Property | Type | Access |
|---|---|---|
| Gravity | float | RW |
Lighting
| Property | Type | Access |
|---|---|---|
| Brightness | float | RW |
| FogStart | float | RW |
| FogEnd | float | RW |
| ClockTime | float | RW |
| Exposure | float | RW |
| Latitude | float | RW |
| GlobalShadows | bool | RW |
| FogColor | Color3 | RW |
| Ambient | Color3 | RW |
| ColorShiftTop | float | RW |
| ColorShiftBottom | float | RW |
| SkyTopAmbient | Color3 | RW |
| SkyBottomAmbient | Color3 | RW |
| LightColor | Color3 | RW |
| LightDirection | Vector3 | RW |
| TrueSunPosition | Vector3 | RW |
| TrueMoonPosition | Vector3 | RW |
| Sky | Instance | RO |
| Atmosphere | Instance | RO |
| SunRays | Instance | RO |
| ColorCorrection | Instance | RO |
Sky
| Property | Type | Access |
|---|---|---|
| SkyboxBk / SkyboxDn / SkyboxFt / SkyboxLf / SkyboxRt / SkyboxUp | string | RW |
| MoonTextureId | string | RW |
| MoonSize | float | RW |
| SunTextureId | string | RW |
| SunSize | float | RW |
| StarCount | int | RW |
| SkyboxOrientation | Vector3 | RW |
Atmosphere
| Property | Type | Access |
|---|---|---|
| Color | Color3 | RW |
| Decay | Color3 | RW |
| Glare | float | RW |
| Haze | float | RW |
| Density | float | RW |
SunRays
| Property | Type | Access |
|---|---|---|
| Intensity | float | RW |
| Spread | float | RW |
ColorCorrection
| Property | Type | Access |
|---|---|---|
| Brightness | float | RW |
| Contrast | float | RW |
| Saturation | float | RW |
| TintColor | Color3 | RW |
Teams
| Property | Type | Access |
|---|---|---|
| GetPlayers | function(team) | RO |
FriendService
| Property | Type | Access |
|---|---|---|
| FriendsStatus | function() | RO |
| GetFriendStatus | function(userId, otherUserId?) | RO |
Value Objects
IntValue, BoolValue, StringValue, NumberValue, ObjectValue, Color3Value, Vector3Value – all have a single Value property of their respective type (RW).
Animation
| Property | Type | Access |
|---|---|---|
| AnimationId | string | RW |
Animator
| Property | Type | Access |
|---|---|---|
| ActiveAnimations | function() | RO |
AnimationTrack
| Property | Type | Access |
|---|---|---|
| Speed | float | RW |
| TimePosition | float | RO |
| Influence | float | RW |
| Animation | Instance | RO |
| Animator | Instance | RO |
VehicleSeat
| Property | Type | Access |
|---|---|---|
| MaxSpeed | float | RW |
| Torque | float | RW |
| TurnSpeed | float | RW |
ProximityPrompt
| Property | Type | Access |
|---|---|---|
| HoldDuration | float | RW |
GuiObject (base class for GUI elements)
Inherited by Frame, TextLabel, TextBox, TextButton, ImageLabel, ScreenGui.
| Property | Type | Access |
|---|---|---|
| Rotation | float | RW |
| Size | UDim2 | RW |
| Position | UDim2 | RW |
| BackgroundColor3 | Color3 | RW |
| BorderColor3 | Color3 | RW |
| Visible | bool | RW |
ScreenGui
Inherits all GuiObject properties.
| Property | Type | Access |
|---|---|---|
| Enabled | bool | RW |
| DisplayOrder | int | RW |
| ResetOnSpawn | bool | RW |
| IgnoreGuiInset | bool | RW |
| AbsoluteSize | Vector2 | RO |
| AbsolutePosition | Vector2 | RO |
TextLabel
Inherits all GuiObject properties.
| Property | Type | Access |
|---|---|---|
| Text | string | RW |
| TextColor3 | Color3 | RW |
TextBox
Inherits all GuiObject properties.
| Property | Type | Access |
|---|---|---|
| Text | string | RW |
| PlaceholderText | string | RW |
| TextColor3 | Color3 | RW |
| PlaceholderColor3 | Color3 | RW |
TextButton
Inherits all GuiObject properties.
| Property | Type | Access |
|---|---|---|
| Text | string | RW |
| TextColor3 | Color3 | RW |
ImageLabel
Inherits all GuiObject properties.
| Property | Type | Access |
|---|---|---|
| Image | string | RW |
| ImageColor3 | Color3 | RW |
| ImageTransparency | float | RW |
Frame
Inherits all GuiObject properties. No additional own properties.
Custom Types
Vector3, Vector2, Color3, UDim, and UDim2 types with Roblox-like semantics.
Vector3
| Member | Type |
|---|---|
| .x | float |
| .y | float |
| .z | float |
| .Magnitude | float (RO) |
| .Unit | Vector3 (RO) |
Operators: +, -, *, /, unary -
Vector2
| Member | Type |
|---|---|
| .x | float |
| .y | float |
| .Magnitude | float (method) |
| .Unit | Vector2 (RO) |
Color3
| Member | Type |
|---|---|
| .r | float |
| .g | float |
| .b | float |
Static constants: .White, .Red, .Green, .Blue, .Yellow, .Black
UDim
| Property | Type | Access |
|---|---|---|
| .Scale | float | RW |
| .Offset | int | RW |
Operators: +, -, tostring
UDim2
| Property | Type | Access |
|---|---|---|
| .X | UDim | RW |
| .Y | UDim | RW |
Operators: +, -, tostring
Example
RBXScriptSignal (Events)
Roblox-style event connection system.
Built-in Signals
| Signal | Description |
|---|---|
| Players.PlayerAdded | Fires when a new player is detected |
| Players.PlayerRemoving | Fires when a player leaves |
Library Gating
Some libraries must be explicitly enabled before use.
| Library | Gated Functions |
|---|---|
| Memory | All memory.* |
| Clipboard | utility.GetClipboard, utility.SetClipboard |
| File_Management | All file.* |
| Input | All input.* |
Notes
Additional implementation details and behavior notes.
- Compound assignments (
+=,-=,*=,/=,**=) are automatically expanded before execution. pcallandxpcallare overridden to support script interruption.- Scripts can be interrupted mid-execution via a Lua instruction hook (every 10 instructions) that checks the stop flag.
- File operations are sandboxed; path traversal (
..) is blocked. print()outputs with prefix[print];warn()outputs with prefix[warn].tick()returnsGetTickCount64()– milliseconds since system start (not UNIX time).loadstringreturns(function, nil)on success or(nil, error_message)on failure.- Instance property access via
__indexchecks built-in properties first, then registered class properties, then falls back to child lookup by name. - Property writes respect read-only flags – silently fail on RO properties like
Address,FullName,RightVector,UpVector,ForwardVector, etc. - Both
gameandGameglobals resolve to the Roblox DataModel instance. - Compressed data from
compress.Compressdoes NOT store the original size, butcompress.Decompressexpects it. This is a known inconsistency – Compress and Decompress are currently incompatible.