3M House Robbery

Documentation

At documentation file you can search for guidelines, error fixes and find answers to your questions.

https://3m-studio.gitbook.io/3m-documentation/

3M House Robbery – Stealth Apartment Heists with Noise System & Dispatch

Bring immersive, configurable house robberies into your city with a fully framework- and inventory-bridged script. Players sneak into high-end apartments and vanilla shells, manage their noise level, and fight the clock before cops arrive.

Preview

Core Features

  • 🎯 ESX & QB Autodetect

    • Auto-detects es_extended, qb-core or qbx-core via a unified framework bridge.

    • Uses native callbacks & player objects for both frameworks.

  • 📦 Inventory Bridge (ox_inventory / qb-inventory)

    • Auto-detects ox_inventory or qb-inventory.

    • Uses a shared Inventory wrapper for:

      • Adding items

      • Removing items

      • Checking if the player has an item

    • Item labels are pulled from inventory data (no hardcoding).

  • 🎮 Pluggable Minigame System

    • One simple config controls which minigame library you use:

      • boii_minigames wire-cut minigame (boii_wire)

      • ps-ui circle minigame (psui_circle)

      • ox_lib skill check (ox_skill)

      • t3_lockpick integration

      • Built-in fallback progress bar if nothing is installed

    • Configurable difficulty, timers, circles, keys, etc.

  • 🕵️‍♂️ Stealth Noise System

    • Player generates noise based on movement:

      • Running / sprinting

      • Walking

      • Shooting / actions

    • Crouching reduces/decays noise.

    • Visible noise bar HUD at the bottom of the screen.

    • When noise passes the configured threshold:

      • House alarm is triggered.

      • Dispatch alert is sent to police (if enough cops are online).

  • 🏠 Multiple House Interiors

    • Config-driven list of interiors:

      • GTA:O apartment IPLs (apa_v_mp_*)

      • Vanilla shells (vanilla_1, vanilla_2, vanilla_3, etc.)

    • Weighted chance per house – script randomly picks a house based on your weights.

  • 🧭 World Start Points

    • Configurable StartLocations in the world (doors, alleys, etc.).

    • Player walks into radius, presses E to start a robbery.

    • Checks:

      • Required item in inventory (e.g. lockpick)

      • Minimum police online

      • Cooldown between attempts

  • 🔍 Target Interaction (ox_target / qb-target)

    • Auto-detects ox_target or qb-target.

    • Uses a target bridge:

      • Exit zone inside the house

      • Multiple loot zones per house interior

    • Each loot spot has a radius + per-spot item pool.

  • 💰 Configurable Loot System

    • Per-house IPL loot configuration:

      • Each spot: coords, radius, items

      • Each item: name, chance, min, max

    • Server-side roll:

      • Weighted random pick by chance

      • Random amount between min and max

    • Item label pulled from inventory for nice notifications.

    • Discord log for every successful loot (optional).

  • 🚔 Dispatch Integration

    • Dispatch bridge supports:

      • lb-tablet (LB Tablet dispatch)

      • tk_dispatch

      • ps-dispatch

      • dispatch (Next Scripts)

      • Or none for no dispatch at all

    • Separate events for:

      • Break-in start (when the player starts / fails the minigame)

      • Alarm (when noise passes threshold)

    • Fully uses translation keys for titles/descriptions.

  • 📢 Flexible Notification Bridge

    • Config.Notify = 'esx' | 'okok'

    • Bridges:

      • ESX notifications

      • okokNotify

      • QBCore QBCore.Functions.Notify

    • Falls back to GTA feed if nothing is available.

  • 🌐 Multi-language Locales

    • Built-in en and hr locales in locale/locales.lua.

    • All texts are key-based (L('key')), easy to translate or change.

  • 🧾 Discord Webhook Logs

    • Optional Discord webhook for:

      • Robbery start logs (player + coords)

      • Loot logs (player, item label, amount)

    • Clean JSON embeds with timestamps.


Requirements

  • Required

    • framework

  • Optional / Supported

    • Frameworks: es_extended, qb-core

    • Inventories: ox_inventory, qb-inventory

    • Target: ox_target, qb-target

    • Notify: okokNotify

    • Dispatch: lb-tablet, tk_dispatch, ps-dispatch, dispatch

    • Minigames: boii_minigames, ps-ui, t3_lockpick


How it Works (Player Flow)

  1. Player walks near a configured start location and presses E.

  2. Script checks:

    • Has required item (e.g. lockpick)?

    • Enough police online?

  3. Required item is consumed server-side.

  4. Selected minigame is played (configurable provider).

  5. On success:

    • Player is teleported into a configured interior (IPL).

    • Noise bar is visible and starts tracking movement.

    • Exit + loot target zones are created.

  6. Player searches loot spots for configurable rewards.

  7. If the player makes too much noise:

    • Alarm triggers and sends a dispatch call to police.

  8. Player leaves the house via the exit zone and returns to streets.


Why 3M House Robbery?

  • Clean & modern architecture (shared bridges for FW/Inv/Notify/Minigame/Dispatch).

  • Everything configurable without touching the core code.

  • Works out-of-the-box on both ESX and QBCore servers.

  • Ready for production use, with Discord logging and full localization support.