Menu API #

ImGui widgets for script settings panels (onMenu / sdk2.Menu.*).

core.menu.Checkbox #

core.menu.Checkbox(name, value)

Toggle. Returns updated boolean.

enabled = core.menu.Checkbox("Enable", enabled)
1

core.menu.SliderInt #

core.menu.SliderInt(name, value, min, max)

Integer slider. Returns updated value.

delay = core.menu.SliderInt("Delay frames", delay, 0, 30)
1

core.menu.SliderFloat #

core.menu.SliderFloat(name, value, min, max)

Float slider. Returns updated value.

Demo:

speed = core.menu.SliderFloat("Speed", speed, 0.0, 1.0)
1

core.menu.Combo #

core.menu.Combo(name, index, items)

items is Lua array of strings. Returns selected index.

mode = core.menu.Combo("Mode", mode, { "Auto", "Manual" })
1

core.menu.Button #

core.menu.Button(name)

Returns true when clicked.

Demo:

if core.menu.Button("Run test") then print("clicked") end
1

core.menu.Text #

core.menu.Text(text)

Label, (?) tooltip, horizontal rule.

Demo:

core.menu.Text("Settings")
1

core.menu.help #

core.menu.help(tooltip)

Shows a (?) icon with tooltip on hover.

Demo:

core.menu.Text("Option")
core.menu.help("Tooltip shown on (?) icon")
1
2

core.menu.Separator #

core.menu.Separator()

Horizontal divider line.

Demo:

core.menu.Text("Section A")
core.menu.Separator()
core.menu.Text("Section B")
1
2
3

core.menu.Begin #

core.menu.Begin(name [, flags])

Window begin/end.

Demo:

if core.menu.Begin("My Panel") then
    core.menu.Text("Inside window")
    core.menu.End()
end
1
2
3
4

core.menu.End #

core.menu.End()

End ImGui window started with Begin().

Demo:

core.menu.End()  -- pair with Begin()
1

core.menu.BeginChild #

core.menu.BeginChild(name, size, border [, flags])

size is { x, y } table.

Demo:

core.menu.BeginChild("Child", { 200, 120 }, true)
core.menu.Text("Child area")
core.menu.EndChild()
1
2
3

core.menu.EndChild #

core.menu.EndChild()

End child region started with BeginChild().

Demo:

core.menu.EndChild()  -- pair with BeginChild()
1

core.menu.SetNextWindowPos #

core.menu.SetNextWindowPos(vec2)

Set position for the next window (before Begin()). vec2 is { x, y }.

Demo:

core.menu.SetNextWindowPos({ 100, 100 })
core.menu.Begin("Positioned")
1
2

core.menu.SetNextWindowSize #

core.menu.SetNextWindowSize(vec2)

Set size for the next window (before Begin()). vec2 is { x, y }.

Demo:

core.menu.SetNextWindowSize({ 320, 240 })
core.menu.Begin("Sized")
1
2

core.menu.ColorEdit #

core.menu.ColorEdit(name, color)

RGBA table { r, g, b, a }.

Demo:

print(getLocalColorEdit(), getOpponentColorEdit())
1

core.menu.Image #

core.menu.Image(file, size)

Draw texture; size is { x, y }.

Demo:

print(getLocalImage(), getOpponentImage())
1

core.menu.KeySelect #

core.menu.KeySelect(name, vk)

Virtual-key picker; returns selected VK.

Demo:

hotkey = core.menu.KeySelect("Hotkey", hotkey or 0x70)
1

core.menu.PushID #

core.menu.PushID(id)

Scope widget IDs.

Demo:

core.menu.PushID("unique")
core.menu.Checkbox("Only once", enabled)
core.menu.PopID()
1
2
3

core.menu.PopID #

core.menu.PopID()

Pop ID scope pushed with PushID().

Demo:

core.menu.PopID()
1

core.menu.PushStyleFloat #

core.menu.PushStyleFloat(idx, value)

Push float ImGui style var. Pair with PopStyleVar().

Demo:

core.menu.PushStyleFloat(0, 1.2)
core.menu.Text("Scaled")
core.menu.PopStyleVar(1)
1
2
3

core.menu.PushStyleVec2 #

core.menu.PushStyleVec2(idx, vec2)

Push ImVec2 style var. Pair with PopStyleVar().

Demo:

core.menu.PushStyleVec2(1, { 8, 8 })
core.menu.Button("Spaced")
core.menu.PopStyleVar(1)
1
2
3

core.menu.PopStyleVar #

core.menu.PopStyleVar(count)

Pop count style vars pushed with PushStyle*.

Demo:

core.menu.PopStyleVar(1)
1

core.menu.uts #

core.menu.uts(str)

UTF-8 ↔ system locale encoding for ImGui text.

Demo:

local label = core.menu.uts("中文标签")
1

core.menu.stu #

core.menu.stu(str)

Convert system locale string to UTF-8.

Demo:

local text = core.menu.stu(label)
1

core.menu.SameLine #

core.menu.SameLine()

Continue on same ImGui line.

Demo:

core.menu.Text("A")
core.menu.SameLine()
core.menu.Button("B")
1
2
3