Cards


Displays one or more card-style panels in a grid or list format. Cards can contain an image, a title, a description, tooltips on hover, and interactive buttons or keybind actions.
Structure
left = {
type = "cards",
title = "Items",
layout = {
columns = 2,
flex = "column",
scroll_x = "none"
},
cards = {
{
image = "https://placehold.co/252x126",
title = "My Card",
description = "This is a test card.",
layout = "column",
on_hover = {
title = "Extra Info",
description = { "You can use", "- multiple lines", "- like this" },
values = {
{ key = "Item", value = "Something" },
{ key = "Owner", value = "Case" }
},
actions = {
{
id = "inspect_item",
key = "E",
label = "Inspect",
on_action = function(data)
-- Inspect logic
end
}
},
rarity = "common"
},
buttons = {
{
id = "edit_card",
label = "Edit",
class = "primary",
on_action = function(data)
-- Edit card logic
end,
dataset = {
card_id = "card_1"
}
},
{
id = "close_ui",
label = "Close",
action = "close_builder",
class = "danger"
}
}
}
}
}
Card Options
Each card supports the following fields:
title
Title text for the card.
description
Text shown below the title.
image
(Optional) Image shown at the top. Full URLs or nui://
paths supported.
layout
(Optional) "column"
or "row"
layout inside the card.
on_hover
(Optional) Shows tooltip with extra info:
→ title
Tooltip header.
→ description
List of lines for the tooltip.
→ values
Array of { key, value }
to show below tooltip.
→ actions
Keybinding actions with on_action
support.
→ rarity
(Optional) A style tag such as "common"
, "rare"
, etc.
buttons
(Optional) Array of button objects (same structure as Buttons component).
Layout Options
columns
Number of columns in the card layout (e.g., 2
).
flex
"row"
or "column"
for internal card layout.
scroll_x
"auto"
, "on"
, or "none"
to enable horizontal scroll.
scroll_y
"auto"
, "on"
, or "none"
to enable vertical scroll.
Notes
Cards are perfect for displaying item lists, inventories, player entries, or shops.
You can freely mix images, hover tooltips, and buttons per card.
Each
button
oraction
supports:on_action = function(data)
— your custom logic.action = "close_builder"
— a built-in safe UI close.Optional
dataset = {}
to pass values to the function.
This structure keeps your logic uniform across both
cards.buttons
andcards.on_hover.actions
.
Last updated