HEX
HexscriptsJobscreatorExportsCustom Interactions

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

typeRendersExtra optionsStored as
textsingle-line inputstring
numbernumeric inputmin, maxnumber
checkboxtoggleboolean
selectsegmented controloptions (required)string
itemtext input with an item-picker popupstring
colorswatches + hex inputhasColorPicker{ hex, r, g, b }
itemlistrows of item name + amountmin, max, hasPickerarray of { name, amount }
weaponlistrows of weapon name + amountmin, max, hasPickerarray of { name, amount }
vehiclelistrows of vehicle model + amountmin, max, hasPickerarray of { name, amount }
accountlistrows of account + amountmin, max, hasPickerarray of { name, amount }
listrepeatable group of any other fieldsfields (required), min, maxarray 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.

TypeSelect opensTypical name
itemlistyour server's itemswater
weaponlistevery weaponWEAPON_PISTOL
vehiclelistevery vehiclesultanrs
accountlistmoney, bank, black_moneybank

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 only

Nesting

Limits

None of the four entry lists can be nested inside a list, and neither can a list itself.