
sq-bankrobbery 1.2.1 connects configurable drilling locations to an external plasma-drilling minigame. The inspected client and server import qb-core directly. QBOX appears in the existing article title, but this repository supplies no native Qbox bridge; verify the installed compatibility layer before using it there.
Install the actual dependencies
Copy the inner sq-bankrobbery folder containing fxmanifest.lua into resources. Start qb-core, ox_lib, ox_target and glitch-minigames before ensure sq-bankrobbery. The manifest lists only ox_lib and glitch-minigames, but client code also calls ox_target. The required minigame name uses a hyphen, not glitch_minigames, and its StartPlasmaDrilling export must exist.
Define plasma_drill in the inventory used by QBCore and verify GetItemByName returns it. No item definition or icon is bundled, and the script checks possession without consuming the drill. Config.DrillingLocations contains nine named locations with rewards from 900 to 1300. Config.RewardAccount defaults to bank and Config.MinigameDifficulty to 7.
Understand the cooldown and payout checks
Config.DrillCooldown defaults to 3600000 milliseconds. Despite the README describing a global cooldown after robbery, lastDrillTimes is keyed by player source ID and starts when the cooldown check accepts the attempt, before the minigame. It spans locations for that source ID, not all players. It is not persisted and has no disconnect cleanup, so test restarts and reused connection IDs.
The result handler checks that the player and configured spot exist, but trusts the client success value. It does not require an active attempt, recheck the drill or cooldown, enforce distance, or prevent repeated payouts. Bind results to a server-owned attempt and allow one checked reward only after validating eligibility and completion. Do not treat the target menu or separate callbacks as payout authorization.
Failure triggers a screen flash and camera shake. The code does not apply health damage, a coughing animation or an area gas effect. English notification strings are in locales/en.lua, while the target label is hardcoded in client/client.lua. No police-count requirement, dispatch integration or persistent robbery state is supplied.
Test before opening to players
Use a disposable game environment to check missing items, failed and repeated attempts, separate players, location changes, disconnects, resource restart and rejected rewards. Confirm dependency exports and inventory/account behavior on your framework version. The retained image is an existing illustration, not evidence of a successful installation.
Reviewed on 11 September 2026 at revision 008b69f90e75dc4be3286ee77479fc5fa37c27b2. All six supplied source/README files were read. No minigame, payout or FiveM resource was executed.