Learn
Engine Class
RunService
Not Creatable
Service
Not Replicated


API Reference
Properties
ClientGitHash
Read Only
Not Replicated
Roblox Script Security
Read Parallel
Capabilities: Basic
RunService.ClientGitHash:string

RunState
Not Replicated
Plugin Security
Read Parallel
Capabilities: Basic
RunService.RunState:Enum.RunState

Methods
BindToRenderStep
Capabilities: Basic
RunService:BindToRenderStep(
name:string, priority:number, function:function
):()
Parameters
name:string
priority:number
function:function
Returns
()
Code Samples
Frame Moving in Circle
local RunService = game:GetService("RunService")
-- How fast the frame ought to move
local SPEED = 2
local frame = script.Parent
frame.AnchorPoint = Vector2.new(0.5, 0.5)
-- A simple parametric equation of a circle
-- centered at (0.5, 0.5) with radius (0.5)
local function circle(t)
return 0.5 + math.cos(t) * 0.5, 0.5 + math.sin(t) * 0.5
end
-- Keep track of the current time
local currentTime = 0
local function onRenderStep(deltaTime)
-- Update the current time
currentTime = currentTime + deltaTime * SPEED
-- ...and the frame's position
local x, y = circle(currentTime)
frame.Position = UDim2.new(x, 0, y, 0)
end
-- This is just a visual effect, so use the "Last" priority
RunService:BindToRenderStep("FrameCircle", Enum.RenderPriority.Last.Value, onRenderStep)
--RunService.RenderStepped:Connect(onRenderStep) -- Also works, but not recommended
RunService Custom Function
local RunService = game:GetService("RunService")
local function checkDelta(deltaTime)
print("Time since last render step:", deltaTime)
end
RunService:BindToRenderStep("Check delta", Enum.RenderPriority.First.Value, checkDelta)
Bind and Unbind a Function
local RunService = game:GetService("RunService")
-- Step 1: Declare the function and a name
local NAME = "Print Hello"
local function printHello()
print("Hello")
end
-- Step 2: Bind the function
RunService:BindToRenderStep(NAME, Enum.RenderPriority.First.Value, printHello)
-- Step 3: Unbind the function
RunService:UnbindFromRenderStep(NAME)

BindToSimulation
Capabilities: Basic
RunService:BindToSimulation(
function:function, frequency:Enum.StepFrequency, priority:number
Parameters
function:function
Default Value: "Hz30"
priority:number
Default Value: 2000
Code Samples
Synchronizing a Part's Color Property
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local somePart:BasePart = Workspace:WaitForChild("Part")
RunService:BindToSimulation(function(deltaTime: number)
local syncdColor = Color3.fromHSV(math.fmod(time(), 1.0), 1.0, 1.0)
somePart:SetAttribute("SyncdColor", syncdColor)
end)
RunService.RenderStepped:Connect(function(deltaTime: number)
local syncdColor = somePart:GetAttribute("SyncdColor")
somePart.Color = syncdColor
end)

GetPredictionStatus
Capabilities: Basic
Simulation Access
RunService:GetPredictionStatus(context:Instance):Enum.PredictionStatus
Parameters
context:Instance

IsClient
Write Parallel
Capabilities: Basic
RunService:IsClient():boolean
Returns

IsEdit
Plugin Security
Write Parallel
Capabilities: Basic
RunService:IsEdit():boolean
Returns

IsRunMode
Write Parallel
Capabilities: Basic
RunService:IsRunMode():boolean
Returns

IsRunning
Capabilities: Basic
RunService:IsRunning():boolean
Returns

IsServer
Write Parallel
Capabilities: Basic
RunService:IsServer():boolean
Returns

IsStudio
Write Parallel
Capabilities: Basic
RunService:IsStudio():boolean
Returns

Pause
Plugin Security
Capabilities: Basic
RunService:Pause():()
Returns
()

Reset
Deprecated

Run
Plugin Security
Capabilities: Basic
RunService:Run():()
Returns
()

SetPredictionMode
Capabilities: Basic
RunService:SetPredictionMode(
):()
Parameters
context:Instance
Returns
()

Stop
Plugin Security
Capabilities: Basic
RunService:Stop():()
Returns
()

UnbindFromRenderStep
Capabilities: Basic
RunService:UnbindFromRenderStep(name:string):()
Parameters
name:string
Returns
()

Events
Heartbeat
Capabilities: Basic
RunService.Heartbeat(deltaTime:number):RBXScriptSignal
Parameters
deltaTime:number

Misprediction
Capabilities: Basic, PluginOrOpenCloud
RunService.Misprediction(
time:number, instances:{any}, stats:Dictionary
Parameters
time:number
instances:{any}

PostSimulation
Capabilities: Basic
RunService.PostSimulation(deltaTimeSim:number):RBXScriptSignal
Parameters
deltaTimeSim:number

PreAnimation
Capabilities: Basic
RunService.PreAnimation(deltaTimeSim:number):RBXScriptSignal
Parameters
deltaTimeSim:number

PreRender
Capabilities: Basic
RunService.PreRender(deltaTimeRender:number):RBXScriptSignal
Parameters
deltaTimeRender:number

PreSimulation
Capabilities: Basic
RunService.PreSimulation(deltaTimeSim:number):RBXScriptSignal
Parameters
deltaTimeSim:number

RenderStepped
Capabilities: Basic
RunService.RenderStepped(deltaTime:number):RBXScriptSignal
Parameters
deltaTime:number

Rollback
Capabilities: Basic
RunService.Rollback(time:number):RBXScriptSignal
Parameters
time:number

Stepped
Capabilities: Basic
RunService.Stepped(
time:number, deltaTime:number
Parameters
time:number
deltaTime:number

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.