Skip to content

UI & Menu Customization

Create custom menu controls or query and override native cheat settings.


Declare a groupbox within a tab, then attach widgets:

-- Create a custom tab (optional)
local my_tab = ui.tab("Custom Tab")
-- Create a groupbox in a tab
local group = ui.groupbox("Visuals", "My Custom Feature")
local enabled = group:checkbox("Enabled", true)
local speed = group:slider_int("Speed", 1, 100, 50, "%d units")
local smoothing = group:slider_float("Smoothing", 0.0, 1.0, 0.25, "%.2f")
local mode = group:combo("Mode", "Static", "Dynamic", "Adaptive")
local targets = group:multicombo("Target Bones", "Head", "Chest", "Pelvis", "Legs")
local map_select = group:listbox("Active Map", "de_mirage", "de_dust2", "de_inferno")
local esp_flags = group:listbox_multi("ESP Flags", "Money", "Armor", "Scoped", "Flashed")
local accent_clr = group:color_picker("Accent Color", color(255, 90, 40, 255))
local toggle_key = group:keybind("Activation Key")
local text_input = group:input("Custom Clantag")
local action_btn = group:button("Reset Defaults")
local status_lbl = group:label("Status: Idle")

Method Description
el:get() Returns the current value (number, bool, color, keybind active state).
el:get(index) For multicombo / multi-listbox: returns whether 0-based index is enabled.
el:set(value) Updates widget value programmatically.
el:set(value, index) Sets option state for multicombo / multi-listbox.
el:set_callback(fn) Fires callback whenever the user changes the widget value.
el:visible(boolean) Shows or hides the widget in the menu.
el:update_list({"A", "B"}) Replaces items in combos and listboxes.
enabled:set_callback(function()
local active = enabled:get()
speed:visible(active)
smoothing:visible(active)
end)

Nest secondary controls behind a gear icon popup:

local trail = group:checkbox("Bullet Trails", true)
local width = group:slider_float("Width", 0.5, 5.0, 1.5)
local clr = group:color_picker("Color", color(0, 180, 255))
trail:add_gear_item(width):add_gear_item(clr)

Place a compact checkbox to the left of a slider or combo:

local limit = group:checkbox("Limit Velocity", false)
local max_v = group:slider_int("Max Velocity", 100, 350, 250)
max_v:add_switch(limit)

override() changes the value returned by el:get() without modifying the UI or saved configs:

local aimbot = ui.find("Aimbot", "Aimbot", "Enabled")
-- Temporarily force enable
aimbot:override(true)
-- Clear override
aimbot:override(nil)

For multicombos:

options:override(true, 0) -- Override 1st option
options:override(nil, 0) -- Clear 1st option override
options:override(nil) -- Clear all overrides

Find built-in cheat controls with ui.find(tab, groupbox, widget?):

local autostop = ui.find("Aimbot", "Aimbot", "Auto stop")
local doubletap = ui.find("Aimbot", "Aimbot", "Double Tap")
Tab Groupboxes
Aimbot Aimbot, Settings
Anti aim Angles, Fake lag, Other
Player ESP, Chams
Visuals Other ESP, Effects
Misc Miscellaneous, Movement
Skins Skins, Models
Settings Configs, Scripts