Modul Pickpocketing
NPCs that fight back. Modul Pickpocket turns street theft into a real criminal activity: reactive victims, a custom three-phase minigame, deep loot profiles, zone heat, optional progression and hardened server-side validation — built to drop into any Qbox, QBCore, ESX or standalone server.
Qbox QBCore ESX Standalone ox_inventory qb-inventory qs-inventory ox_target qb-target
The Pocket Trace minigame
A custom Modul minigame, not a recycled skill circle. Three quick phases — Approach, Lift, Escape — on a sweeping precision track with random "attention spike" windows where pressing means getting noticed. Better play means more loot and less detection; sloppy play gets you seen. Difficulty scales with the victim: pickpocketing a drunk is easy, lifting a Vinewood wallet is not. Four tunable presets, a configurable confirm key, and one-line fallbacks to ox_lib skill checks, your own minigame export, or pure chance.
NPCs are not loot boxes
- Victims shout for help, panic and flee, turn hostile, or pull out a phone and call the police
- Police calls take time and can be interrupted — but violence raises evidence risk (server-verified damage, not client claims)
- Bystanders can scatter when a theft is noticed; victims sometimes check their pockets after a clean lift
- 10 NPC profiles out of the box — poor, average, worker, tourist, business, wealthy, gang, elderly, drunk, nightlife — each with its own loot table, cash range, difficulty, detection chance and reaction weights
- Ped models map to profiles; unmapped models use a configurable fallback (fixed or random)
- Blacklists for models, ped types, scenarios, zones, interiors and mission/script-owned peds — your shop clerks and quest NPCs are safe
Where and how often you steal matters
- Zones re-flavor areas: wealthy districts pay more but respond harder, tourist strips are wallet country, gang turf answers with fists
- Shared area heat: repeated hits make a neighborhood hotter for every player — more detections, more police calls, thinner loot — then it cools off
- Personal suspicion: grinding the same block makes you sloppier until you lay low
- Per-NPC cooldowns (state-bag synced), global player cooldown, optional hourly/daily caps
- Success factors: movement, stealth, victim movement, crowd cover, night hours, nearby police, heat, suspicion, perks and minigame score
Loot with depth
- Weighted loot tables per profile with rare finds that get logged and fire a developer event
- Wallet system: steal the wallet now, search it later — contents (cash, stolen IDs, credit cards, extras) are rolled server-side at open time, so wallets can't be scanned or duped
- Payouts your way: clean cash, black-money account, money item, marked-bill stacks with metadata worth, or your own handler function
- Optional progression: XP, 20 levels and seven perks — quicker hands, low profile, fence, collector, cold blood, ghost, deep pockets. One switch turns it all off
Dispatch done properly
Three alert tiers — Suspicious Activity, Theft From Person, Robbery In Progress — with configurable codes, blips, chances, delays and suspect descriptions (sex, street, nearby vehicle). Bridges for ps-dispatch, cd_dispatch, qs-dispatch, core_dispatch and lb-tablet, a zero-dependency builtin that alerts online officers directly, and an open custom bridge file for anything else.
Built like it's ours to lose
- Server-authoritative everything: rewards, distances, cooldowns, entity checks, timing windows and every chance roll
- Single-use session tokens, minimum-duration checks and rate limiting on every event
- Client can never suggest an amount, an item or an outcome — only a clamped minigame score
- Inventory capacity checked before granting; exploit attempts logged to console and Discord
- No idle loops with a target resource — ~0.00ms resmon; heat decays mathematically, not on timers
Admin & ops
- Commands: reset cooldowns, reset NPC cooldowns, reset heat, give/remove XP, inspect stats, live debug toggle, test dispatch, test minigame
- ACE permissions and framework admin groups both supported
- Discord webhook logging with per-category toggles (success, fail, alerts, rare loot, exploits, admin)
- Player stats panel in the Modul UI style with level, XP progress, lifetime stats and active perks
- Theme presets (blue-teal, electric blue, orange, lime) or your own two hex colors — no purple unless you ask for it
Requirements: ox_lib and oxmysql. Framework, inventory, target, notify and dispatch resources are all auto-detected — nothing else is mandatory.
Installation: Drop into resources, ensure modul_pickpocket, add three loot items, restart. The database sets itself up on first start. Full install/config/exports/troubleshooting docs included.