Shared Configuration

The shared configuration defines blacklisted NPC models and zone settings including loot tables, NPC reactions, and spawn areas for the pickpocket system.

Blacklisted Models

The blacklistedModels array defines NPC models that cannot be pickpocketed:

blacklistedModels = {
    `s_m_y_cop_01`,
    `s_m_y_sheriff_01`,
    `s_f_y_sheriff_01`,
    `s_m_y_hwaycop_01`,
}
blacklistedModelsrequiredarray
List of NPC model hashes. Any NPC matching these models will be immune to pickpocketing attempts.

Zones

The zones table defines each pickpocket area. Each entry is a named zone with its own location, loot table, and NPC reaction settings.

Zone Structure

zones = {
    downtown = {
        coords = vec(185.0, -935.0, 30.0),

        radius = 80.0,

        emptyChance = {
            min = 15,
            max = 30,
        },

        reactionChance = {
            flee = 40,
            fight = 35,
            policeCall = 25,
        },

        fightWeapons = {
            { name = 'WEAPON_UNARMED', chance = 60 },
            { name = 'WEAPON_KNIFE',   chance = 30 },
            { name = 'WEAPON_BAT',     chance = 10 },
        },

        items = {
            { name = 'black_money', amount = { min = 1, max = 3 } },
            { name = 'phone',       amount = 1 },
            { name = 'wallet',      amount = 1 },
            { name = 'gold_watch',  amount = 1 },
        },
    },
}
zones.<name>.coordsrequiredvector3
The world coordinates of the zone center.
zones.<name>.radiusrequirednumber
The radius in meters of the zone. Players must be inside this radius to pickpocket.
zones.<name>.emptyChance.minrequirednumber
Minimum percentage chance that an NPC has nothing to steal.
zones.<name>.emptyChance.maxrequirednumber
Maximum percentage chance that an NPC has nothing to steal.
zones.<name>.reactionChance.fleerequirednumber
Percentage chance the NPC flees after being caught. All three reaction chances should sum to 100.
zones.<name>.reactionChance.fightrequirednumber
Percentage chance the NPC fights back after being caught.
zones.<name>.reactionChance.policeCallrequirednumber
Percentage chance the NPC calls the police after being caught.
zones.<name>.fightWeaponsrequiredarray
List of weapons the NPC may use if they fight back. Each entry has a name (weapon hash string) and a chance weight. Chances are relative — they do not need to sum to 100.
zones.<name>.itemsrequiredarray
The loot pool for this zone. Each entry has a name (inventory item name) and an amount which can be a fixed number or a { min, max } table for a random range.

Complete Configuration Example

return {
    blacklistedModels = {
        `s_m_y_cop_01`,
        `s_m_y_sheriff_01`,
        `s_f_y_sheriff_01`,
        `s_m_y_hwaycop_01`,
    },

    zones = {
        downtown = {
            coords = vec(185.0, -935.0, 30.0),

            radius = 80.0,

            emptyChance = {
                min = 15,
                max = 30,
            },

            reactionChance = {
                flee = 40,
                fight = 35,
                policeCall = 25,
            },

            fightWeapons = {
                { name = 'WEAPON_UNARMED', chance = 60 },
                { name = 'WEAPON_KNIFE',   chance = 30 },
                { name = 'WEAPON_BAT',     chance = 10 },
            },

            items = {
                { name = 'black_money', amount = { min = 1, max = 3 } },
                { name = 'phone',       amount = 1 },
                { name = 'wallet',      amount = 1 },
                { name = 'gold_watch',  amount = 1 },
            },
        },

        vinewood = {
            coords = vec(-1600.0, -435.0, 35.0),

            radius = 100.0,

            emptyChance = {
                min = 5,
                max = 15,
            },

            reactionChance = {
                flee = 50,
                fight = 30,
                policeCall = 20,
            },

            fightWeapons = {
                { name = 'WEAPON_UNARMED', chance = 50 },
                { name = 'WEAPON_KNIFE',   chance = 35 },
                { name = 'WEAPON_PISTOL',  chance = 15 },
            },

            items = {
                { name = 'diamond_ring', amount = 1 },
                { name = 'gold_watch',   amount = { min = 1, max = 2 } },
                { name = 'wallet',       amount = 1 },
                { name = 'black_money',  amount = { min = 2, max = 5 } },
            },
        },
    },
}