World External · Luau VM

Offset Accessors

The generated read_/write_ pair behind every Roblox class property the External knows about.

How they work

A Roblox property lives at a fixed byte offset from the start of its instance. The External ships a table of those offsets and generates a typed getter and setter for each one, so you never have to write the arithmetic yourself.

Named vs raw
local part = find_instance_by_path("Workspace.Baseplate")

-- Named accessors: the offset and the width are handled.
print(read_BasePart_Transparency(part))
write_BasePart_Transparency(part, 0.5)
write_BasePart_CastShadow(part, false)

-- The equivalent raw work, which you do not have to do.
-- write_float(part + <offset>, 0.5)

Offsets move with Roblox

Every Roblox rebuild can move them. If accessors start returning nonsense after an update, the offset set is behind — that is what the link below is for.

Every accessor

Grouped by class. Each property listed has both a read_ and a write_ form.

Every listed property exposes a matching getter and setter that follow a fixed naming pattern:

read_<Class>_<Property>(addr: number)<type>write_<Class>_<Property>(addr: number, val: any)boolean
Find the latest offsets World runs off

AirProperties

2
AirDensityqword
GlobalWindfloat

AnimationTrack

6
Animationqword
Animatorqword
IsPlayingqword
Loopedbool
Speedqword
TimePositionfloat

Animator

1
ActiveAnimationsqword

Atmosphere

6
Colorfloat
Decayqword
Densityqword
Glareqword
Hazeqword
Offsetqword

Attachment

1
Positionfloat

Attribute

3
Keyqword
Sizefloat
Valueqword

AttributesMap

2
Attributesqword
Lengthqword

BasePart

8
CastShadowbool
Color3float
Lockedbool
Masslessbool
Primitiveqword
Reflectanceqword
Shapeint
Transparencyqword

Beam

13
Attachment0qword
Attachment1qword
Brightnessqword
CurveSize0float
CurveSize1float
LightEmissionqword
LightInfluenceqword
Texturestring
TextureLengthqword
TextureSpeedqword
Width0qword
Width1qword
ZOffsetqword

BloomEffect

4
Enabledbool
Intensityqword
Sizefloat
Thresholdqword

BlurEffect

2
Enabledbool
Sizefloat

ByteCode

2
Pointerqword
Sizefloat

Camera

8
CameraSubjectqword
CameraTypeqword
FieldOfViewqword
ImagePlaneDepthqword
Positionfloat
Rotationfloat
Viewportqword
ViewportSizefloat

CharacterMesh

4
BaseTextureIdqword
BodyPartqword
MeshIdstring
OverlayTextureIdqword

ClickDetector

2
MaxActivationDistanceqword
MouseIconqword

Clothing

2
Color3float
Templatestring

ColorCorrectionEffect

4
Brightnessqword
Contrastqword
Enabledbool
TintColorfloat

ColorGradingEffect

2
Enabledbool
TonemapperPresetqword

DataModel

12
CreatorIdqword
GameIdqword
GameLoadedbool
JobIdstring
PlaceIdqword
PlaceVersionint
PrimitiveCountint
ScriptContextqword
ServerIPstring
ToRenderView1qword
ToRenderView2qword
ToRenderView3qword

Patterns worth knowing

A few classes come up constantly:

ClassWhy you reach for it
CameraPosition, Rotation, FieldOfView and ViewportSize — everything a projection needs.
BasePartPrimitive is the pointer to the physics object; Transparency, Color3 and CastShadow are the visual ones.
DataModelPlaceId, JobId, GameLoaded and ServerIP — session facts without walking anything.
AnimationTrackIsPlaying, Speed and TimePosition for reading what a character is doing.
Atmosphere / BloomEffect / BlurEffectThe lighting effects the visual toggles work through.