Skip to content


Registers a Material Design Checkbox PseudoInstance which can be instantiated via"Checkbox")

local Resources = require(game:GetService("ReplicatedStorage"):WaitForChild("Resources"))
local PseudoInstance = Resources:LoadLibrary("PseudoInstance")
local Checkbox ="Checkbox")

Only Global ZIndexBehavior is officially supported.

Checkbox API

Checkbox inherits from PseudoInstance and SelectionController, so all properties, methods, and events of these can also be used on Checkboxes.


void Checkbox:SetChecked(boolean Checked = not self.Checked)

Sets the Checked property and animates to the new state. Fires OnChecked


Wrapped Properties

Properties which access its top-level ImageButton:

Property Type
AnchorPoint Vector2
Name string
Parent Instance
Position UDim2
LayoutOrder int
NextSelectionDown Instance
NextSelectionLeft Instance
NextSelectionRight Instance
NextSelectionUp Instance
ZIndex int

SelectionController Properties

Property Type Description
Indeterminate Boolean Whether the Checkbox is Indeterminate
Checked Boolean Whether the Checkbox is Checked
Disabled Boolean Whether the Checkbox is Disabled
PrimaryColor3 Color3 The Color3 of the Checkbox when Checked
Theme Enumeration.MaterialTheme "Dark" or "Light" colored frame when not Checked


Event Description
OnChecked Fires after the Checked property was changed
Checkbox inherits from PseudoInstance


Click here for the example place

Demo code:

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local Resources = require(ReplicatedStorage:WaitForChild("Resources"))

local Color = Resources:LoadLibrary("Color")
local PseudoInstance = Resources:LoadLibrary("PseudoInstance")

local LocalPlayer repeat LocalPlayer = Players.LocalPlayer until LocalPlayer or not wait()
local PlayerGui repeat PlayerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui") until PlayerGui or not wait()

local Screen ="ScreenGui", PlayerGui)
local Frame ="Frame", Screen)
Frame.BackgroundColor3 = Color.Grey[200]
Frame.BorderSizePixel = 0
Frame.Size =, 0, 1, 0)

local ReceiveUpdates ="Checkbox")
ReceiveUpdates.PrimaryColor3 = Color.Teal[500]
ReceiveUpdates.Checked = true
    print(On) -- On is the new value of `Checked`
ReceiveUpdates.AnchorPoint =, 0.5)
ReceiveUpdates.Position =, 0, 0.5, 0)
ReceiveUpdates.Theme = "Light" -- "Dark" is also valid
ReceiveUpdates.Parent = Frame