Skip to content
Arseniy B. edited this page Aug 24, 2025 · 18 revisions

Welcome to the Figura-ActionLists documentation


About Action Lists

Action lists are a powerful, practical and convenient tool that allows you to reduce the amount of code and time spent searching for the desired action among a huge pile of other actions. This is also a completely new element of the action wheel. Actions in them are performed either by scrolling, pressing the left mouse button or the right mouse button.

Creating action list

Any action list, like a regular action, is created and placed on any page of the action wheel

local myPage = action_wheel:newPage() -- Creating an Action Wheel Page
local myActionList = myPage:newActionList() -- Creating an Action list

Appearance

You can customize the appearance of the action list in quite a lot of detail.


setColor() Aliases: color()

Sets the background color of the Action List

setColor()

Parameters:

Name Type Is required Description Default
color Vector3 Reqired The RGB value of the background, with each value between 0 and 1 vec(0,0,0)
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setColor(vec(1, 0.5, 0,5)) -- Background is pink now

getColor()

Gets this Action List's background color

getColor()

Returns:

Type Description
Vector3 The RGB background color for this Action List

Example:

myActionList:getColor()

setHoverColor() Aliases: hoverColor()

Sets the background color of the Action List when it is being hovered

setHoverColor()

Parameters:

Name Type Is required Description Default
color Vector3 Reqired The RGB value of the background, with each value between 0 and 1 vec(0,0,0)
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setHoverColor(vec(1, 0.5, 0,5)) -- Background is pink when action list is being hovered

getHoverColor()

Gets this Action List background hover color

getHoverColor()

Returns:

Type Description
Vector3 The RGB background hover color for this action list

Example:

myActionList:getHoverColor()

setItem() Aliases: item()

Sets the item of the Action List

setItem()

Parameters:

Name Type Is required Description Default
item String Reqired The item id for the item to be set "minecraft:air"
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setItem("minecraft:stone")

setHoverItem() Aliases: hoverItem()

Sets the item of the Action List when it is being hovered

setHoverItem()

Parameters:

Name Type Is required Description Default
item String Reqired The item id for the item to be set "minecraft:air"
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setHoverItem("minecraft:stone")

setTexture() Aliases: texture()

Sets a Custom Texture to render in this Action List

setTexture()

Parameters:

Name Type Is required Description Default
texture Texture Reqired The texture that's shown in the Action List nil
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

-- basic
myActionList:setTexture(textures["myTexture"])

-- advanced
-- Not available now :(

setHoverTexture() Aliases: hoverTexture()

Sets a Custom Texture to render while this Action List is being hovered

setHoverTexture()

Parameters:

Name Type Is required Description Default
texture Texture Reqired The texture that's shown in the Action List nil
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

-- basic
myActionList:setHoverTexture(textures["myTexture"])

-- advanced
-- Not available now :(

setTitle() Aliases: title()

Sets the title of the Action List

setTitle()

Parameters:

Name Type Is required Description Default
title string Reqired The title of the Action List, shown when the Action List is hovered over nil
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setTitle("Features")

getTitle()

Gets this Action List title

getTitle()

Returns:

Type Description
string The title of the Action List, shown when the Action List is hovered over

Example:

myActionList:getTitle()

setActionListColor() Aliases: actionListColor()

Sets the color of the Action List

setActionListColor()

Parameters:

Name Type Is required Description Default
color Vector3 Reqired The color of the Action List vec(0.75, 0.75, 0.75)
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setActionListColor(vec(1, 0.5, 0.5))

getActionListColor()

Gets the list's color of this Action List

getActionListColor()

Returns:

Type Description
Vector3 The color of the Action List

Example:

myActionList:getActionListColor()

setSelectedActionColor() Aliases: selectedActionColor()

Sets the color of Selected Action

setSelectedActionColor()

Parameters:

Name Type Is required Description Default
color Vector3 Reqired The color of selected Action in Action List vec(1, 1, 1)
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setSelectedActionColor(vec(1, 0, 1))

getSelectedActionColor()

Gets the selected action's color of this Action List

getSelectedActionColor()

Returns:

Type Description
Vector3 The color of selected Action in Action List

Example:

myActionList:getSelectedActionColor()

setVisualSize() Aliases: visualSize()

Sets the length of the visible part on the screen

setVisualSize()

Parameters:

Name Type Is required Description Default
size number Reqired The length of the visible part of the list on the screen 7
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setVisualSize(15)

getVisualSize()

Gets the length of the visible part of this Action List on the screen

getVisualSize()

Returns:

Type Description
number The length of the visible part of the list on the screen

Example:

myActionList:getVisualSize()

Managing Action list


setActionList() Aliases: actionList()

Set the Action List

setActionList()

Parameters:

Name Type Is required Description Default
actionList table Reqired The list of actions itself {{title = "This action list is empty..."}}
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setActionList(table)

getActionList()

Gets the Action List

getActionList()

Returns:

Type Description
table The action list itself

Example:

myActionList:getActionList()

setSelectedActionIndex() Aliases: selectedActionIndex()

Sets the index of the selected action

setSelectedActionIndex()

Parameters:

Name Type Is required Description Default
index number Reqired The index of the selected action 1
shouldntMakeNewTitle Boolean Optional If there is too much init instructions you can choose to don't update title false

Returns:

Type Description
table Returns self for chaining

Example:

myActionList:setSelectedActionIndex(4)

getSelectedActionIndex()

Gets the index of the selected action

getSelectedActionIndex()

Returns:

Type Description
number The index of the selected action

Example:

myActionList:getSelectedActionIndex()

getUserdata()

It will give you a button(userdata) with which the list of actions is implemented.
Be careful, otherwise you will break everything. This is ONLY for debugging and advanced users.

getUserdata()

Returns:

Type Description
userdata The button(userdata) with which the Action List is implemented

Example:

myActionList:getUserdata()

Creating the Action List itself

An Action List itself is a table made up of other tables.
Each second-order table is an "action" within which the following tags are written

Name Type Description
title string or table The title of the Action List, shown when the Action List is hovered over. May be a table for future JSON transformation
color Vector3 The color that will replace the default background color of the button when the action is selected
hoverColor Vector3 The color that will replace the default background hover color of the button when the action is selected
item string The item that will replace the default item of the button when the action is selected
hoverItem string The item that will replace the default hover item of the button when the action is selected
texture Texture The texture that will replace the default texture of the button when the action is selected
hoverTexture Texture The texture that will replace the default hover texture color of the button when the action is selected
onLeftClick function A function that will be executed when the action is selected and the user left-clicks on the button
onRightClick function A function that will be executed when the action is selected and the user right-clicks on the button
onSelect function A function that will be executed when the user selects this action by scrolling the list

Tip

The onSelect function has a scrollDirection parameter

Example:

actionList = {
    [1] = {
        title = "Printer",
        onLeftClick = function()
            print("Hi! This is the first action!!")
        end
    },
    [2] = {
        title = "============", -- Divider
        onSelect = function(scrollDirection)
            if scrollDirection < 0 then -- Divider was selected from the third action
                myActionList:setSelectedActionIndex(myActionList:getSelectedActionIndex() - 1)
            else -- Divider was selected from the first action
                myActionList:setSelectedActionIndex(myActionList:getSelectedActionIndex() + 1)
            end
        end
    },
    [3] = {
        title = "Change the button color",
        onLeftClick = function()
            myActionList:setColor(vec(math.random(255) / 255, math.random(255) / 255, math.random(255) / 255))
        end
    }
}

That's all the information you need to know. Have fun.

Clone this wiki locally