Field Types
Every field type you can put into a custom interaction's data table, and the options each one takes.
Common options
Every field takes name and label, plus these optional ones.
Prop
Type
Types
type | Renders | Extra options | Stored as |
|---|---|---|---|
text | single-line input | string | |
number | numeric input | min, max | number |
checkbox | toggle | boolean | |
select | segmented control | options (required) | string |
item | text input with an item-picker popup | string | |
color | swatches + hex input | hasColorPicker | { hex, r, g, b } |
itemlist | rows of item name + amount | min, max, hasPicker | array of { name, amount } |
weaponlist | rows of weapon name + amount | min, max, hasPicker | array of { name, amount } |
vehiclelist | rows of vehicle model + amount | min, max, hasPicker | array of { name, amount } |
accountlist | rows of account + amount | min, max, hasPicker | array of { name, amount } |
list | repeatable group of any other fields | fields (required), min, max | array of objects |
select options
options entries are either a plain string or a value/label pair.
{
name = 'category',
label = 'Category',
type = 'select',
options = {
{ value = 'alpha', label = 'Alpha' },
{ value = 'beta', label = 'Beta' }
}
}color hasColorPicker
Set hasColorPicker to true on a color field and the full RGB picker opens when staff click the
colour preview, exactly like the built-in interactions. Left out or false, the field stays as
swatches plus a hex box.
{ name = 'tint', label = 'Screen Colour', type = 'color', hasColorPicker = true }The four entry lists
itemlist, weaponlist, vehiclelist and accountlist are the same list the Process Point uses
for its required items: rows of a name and an amount, an Add button, and a bin per row. They
differ only in what the Select button offers.
| Type | Select opens | Typical name |
|---|---|---|
itemlist | your server's items | water |
weaponlist | every weapon | WEAPON_PISTOL |
vehiclelist | every vehicle | sultanrs |
accountlist | money, bank, black_money | bank |
All four store the same shape, so consuming code stays uniform:
needed = { { name = 'water', amount = 2 }, { name = 'bread', amount = 1 } }Half-filled rows
Rows with a blank name or an amount of 0 are dropped before min / max are checked, so a
half-filled row never reaches your data, and the editor flags an incomplete row rather than
discarding it silently.
hasPicker
hasPicker controls the Select button. weaponlist, vehiclelist and accountlist show it by
default; itemlist does not. Set hasPicker explicitly to override either way:
{ name = 'gear', label = 'Items', type = 'itemlist', hasPicker = true }, -- add the popup
{ name = 'guns', label = 'Weapons', type = 'weaponlist', hasPicker = false }, -- plain typing onlyNesting
Limits
None of the four entry lists can be nested inside a list, and neither can a list itself.