Creating Sets

Creating Collectable Sets

Sets are themed collections of items for players to find. Configure them in config/server.lua.

Example

sets = {
    my_set_name = {
        -- Display
        label = 'My Set Name',
        description = 'Find all the items in this set!',

        -- Object
        model = 'prop_box_wood01a',
        icon = 'my_icon.png',
        grounded = true,

        -- Pickup
        pickupType = 'target',
        pickupDistance = 2.5,

        -- State
        enabled = true,

        -- Hints
        hint = 'Look around the city...',

        -- Rewards
        rewards = {
            onCollect = { money = 100, moneyType = 'cash' },
            onComplete = { money = 5000, moneyType = 'bank' },
        },

        -- Locations
        items = {
            { coords = vec3(123.45, 678.90, 12.34) },
            { coords = vec3(234.56, 789.01, 23.45), hint = 'Near the bench' },
        },
    },
},

Set Structure

Structure for set table.

  • label: Label

    • Display name for the set shown in the UI

  • description: Description

    • Description for the set shown in the UI

  • model Model

    • Model for the spawned collectable object

  • icon: Icon

    • Icon for stickers in UI (image path 'action-figure-pogo.png', or 'fa:icon-name' for Font Awesome)

  • grounded? Grounded

    • Whether to snap the spawned object to the ground, (default: true)

  • pickupType? PickupType

    • How to collect the item, (default: 'target')

  • pickupDistance? PickupDistance

    • Distance to trigger pickup (default: 1.5)

  • enabled? Enabled

    • Whether to enable this collectable set (default: true)

  • collectSound? Sound

    • Play sound on collection (default: true for 'nearby', false for 'target' and 'prompt')

  • hint? Hint

    • Default hint for all items in set

  • rewards? Rewards

    • Rewards for collecting items and completing the set

  • blip? Blip

    • Optional blip for all items

  • animations? Animations

    • Animations to use for this set

  • items Items

    • List of collectable items in this set


Items Structure

Structure for items table.

  • coords: vector3

    • Where to spawn the collectable object

  • rotation?: number

    • Optional rotation of the collectable object

  • grounded?: Grounded

    • Optional toggle of snapping object to ground for this item

  • model? Model

    • Optional model for this item

  • icon?: Icon

    • Optional icon for this item

  • hint? Hint

    • Optional hint for this item

  • blip? Blip

    • Optional blip for this item

  • animations? Animations

    • Optional animation for this item

  • collectSound? Sound

    • Optional sound played when item is picked up for this item


Set Options

Display

Option
Type
Description

label

string

Name shown in the UI

description

string

Description shown in the UI

Object

Option
Type
Default
Description

model

string

required

Prop model to spawn

icon

string

-

Sticker image (filename or fa:icon)

grounded

boolean

true

Snap object to ground

Pickup

Option
Type
Default
Description

pickupType

string

'target'

How to collect: 'target', 'prompt', or 'nearby'

pickupDistance

number

1.5

Distance to trigger pickup

Pickup Types:

  • 'target' - Requires target resource in bridge

  • 'prompt' - Shows TextUI prompt, press key to collect

  • 'nearby' - Auto-collects when player is within range

Enabled

Type
Description

boolean

Whether to enable this set

Blip

Option
Type
Default
Description

enabled

boolean

true

Whether to enable the blip

title

string

nil

The name to use for the blip

Sound

Option
Type
Default
Description

collectSound

boolean/table

varies

Sound on collection

Default: true for 'nearby' pickup type, false for others.

Animations

Option
Type
Default
Description

pickup

table

nil

Animation to play on the client when an object is collected

Hints

Option
Type
Description

hint

string

Default hint for all items in the set

Individual items can override the set hint:

Rewards

Option
Type
Description

onCollect

table

Reward given each time an item is collected

onComplete

table

Reward given when the set is completed

money

number

Amount of currency

moneyType

string

'cash' or 'bank'

item

table

Optional inventory item { name, count }

Full Example


Tips

  • Use unique keys for each set (e.g., action_figures, movie_posters)

  • The key is used internally; players see the label

  • Set enabled = false to disable a set without removing it

  • Use the coordinate finder to place items

  • Test pickup distances in-game to find what feels right

  • If an item you create is spawning inside another object, try using grounded = false, then manually adjust the z coordinate

Last updated