All pluginsMC Skylines

Crime scenarios

MCSkylines-Robberies

Version 1.3.6 · Documentation refreshed October 12, 2026

Persistent street crime, gas station and ATM robberies, plus staged multi-crew bank heists with dispatch and recovery.

Required plugins: MCSkylines-Core, WorldGuard, MCSkylines-Economy, MCSkylines-Justice. Optional integrations: Citizens, WeaponMechanics, CarbonChat.

01

Feature reference

What it handles

Feature overview

Street robberies

Registered Citizens NPCs support risk, rewards, independent cooldowns, and police dispatch.

Gas stations & ATMs

WorldGuard locations and registered interaction blocks turn city landmarks into controlled scenarios.

Multi-stage banks

Prerequisite breach chains, multiple planters, alarms, crew locking, finite room loot, and escape timers.

Safe block restoration

Breach regions are snapshotted, cleared, and restored after completion or server recovery.

Crash-safe escrow

Bank loot moves from the government treasury through a recoverable escrow account.

Dynamic balancing

Gaussian rewards, police scaling, staff-balance compression, and configurable timing shape payouts.

Gangster perk

A permission-backed role perk improves street success, shortens gas robberies, and anonymizes dispatch.

Integrated policing

Justice supplies police counts and alerts while WeaponMechanics identifies real firearms.

02

Mechanics, workflows & reference

Encyclopedia

Contents · jump to a topic

Configuration defaults: Values shown for operator-configurable settings are the bundled defaults, and can be changed in the module’s configuration or definitions. The server’s active settings take precedence, so costs, speeds, ranges, durations, chances, effects, recipes, limits and enabled features may differ. Command examples illustrate syntax; fixed mechanics and validation bounds are not configuration defaults.

Robberies provides bank breach chains and finite loot, Citizens mugging/gas hold-ups and ATM robberies. WorldGuard, Economy and Justice services are required; Citizens and WeaponMechanics provide the relevant NPC/firearm identity. Loot is funded, not minted.

How a bank robbery progresses

The first successful breach locks the crew from non-police survival/adventure players who are physically inside the configured crew region. Later arrivals do not join that robbery. Every breach checks its registered region, required charge count, number of distinct planters, and prerequisite breaches.

Use only genuine serialized breaching charges. Contributing a charge records its planter so a single crew member cannot satisfy a multi-planter requirement by placing every pack. The first breach always dispatches police; a large vault always requires at least two distinct contributors even if its configuration is weaker.

When a breach completes, Robberies snapshots and clears the door region. Keep that region tight and free of containers because block data, not container inventory, is the recovery contract. The blocks are restored when the robbery ends and during crash recovery.

Each loot room rolls one finite Gaussian total once. Registered pickups divide that same room total, so additional props improve presentation without multiplying money. A carrier leaving the building region starts the configured escape timer. Loot is backed by Economy's treasury escrow and finalized or restored through the recovery-safe state machine.

Street robbery workflows

NPC mugging requires a configured Citizens NPC and the firearm identification supplied by WeaponMechanics. Gas stations use the configured region/NPC and a timed hold-up. ATMs are registered against the exact interaction block. Each NPC and each gas station tracks an independent server-wide cooldown; these are not per-player cooldowns.

The gangster perk adjusts only its documented outcomes: mugging success, gas duration, and dispatch identification. It does not bypass cooldowns, police requirements, region checks, or item authenticity.

Funding and payout behavior

Bank robbery money comes from the government treasury through escrow. NPC, gas, and ATM payouts come from the staff account. Street rewards compress when the staff balance is below the configured threshold instead of minting the advertised full value. Confirm both accounts are deliberately funded before live testing.

Current boundaries

Door-region snapshots do not preserve container inventories. Pickups are interaction registrations, not automatically discovered cash props. Ordinary TNT is never accepted. The plugin relies on Citizens and WeaponMechanics for the relevant NPC/firearm identity and does not invent substitutes when those integrations are missing.

Bank regions

Create these WorldGuard regions before running the setup commands:

  • One crew region covering the space behind the teller desk. At the first detonation, every non-police survival/adventure player inside becomes part of the locked crew.
  • One building region covering the complete bank interior. Leaving it starts a carrier's escape timer.
  • One tight region around the blocks of each breachable door. The plugin snapshots every block in this region, replaces it with air, and restores it when the robbery ends or the server recovers.

Door regions should contain only the blocks that are safe to replace. Do not include container blocks: block data is restored, but container inventories are not part of the door snapshot. The default safety limit is 1,024 blocks per breach region.

Example bank

/robbery setup bank central world bank_behind_tellers central_bank
/robbery setup breach central entry bank_first_door entry ENTRY 3 1 true
/robbery setup breach central small-a bank_small_a_door small-a SMALL 2 1 false entry
/robbery setup breach central small-b bank_small_b_door small-b SMALL 2 1 false entry
/robbery setup breach central large bank_large_door large LARGE 6 2 false small-a small-b

The final number before true/false is the minimum number of distinct charge planters. Thus, the large vault above requires six packs with contributions from at least two crew members. Names after the alarm value are prerequisite breach IDs.

The first breach in a chain always triggers dispatch even if its alarm argument is accidentally set to false. Large-vault breaches always require at least two distinct crew members to contribute charges.

For each visible stack, pile, or drawer of cash, look directly at its interaction block and register a pickup:

/robbery setup pickup central small-a-1 small-a
/robbery setup pickup central small-a-2 small-a
/robbery setup pickup central small-b-1 small-b
/robbery setup pickup central large-1 large
/robbery setup pickup central large-2 large
/robbery setup pickup central large-3 large

Each room rolls its Gaussian total once. Its registered pickups divide that finite total; adding pickups does not create more money.

Supply serialized charges with /core give robberies:breaching_charge [player] [amount] (or /skylines give ...). /robbery give [player] [amount] is also available as a direct administrative fallback. Ordinary TNT is not accepted as a breaching charge. /robbery status confirms the module is active and reports the configured location counts.

Street locations

Look at a Citizens NPC when omitting the numeric Citizens ID:

/robbery setup npc downtown-citizen
/robbery setup gas route-7 route_7_gas

Or provide an explicit ID as the last argument. Each NPC and each gas station has an independent server-wide cooldown.

Look at an ATM interaction block and run:

/robbery setup atm downtown-atm

Balancing and permissions

All timings, Gaussian distributions, police scaling, staff-balance compression, currency formatting, and permissions are in config.yml. Every player-facing string and action bar is in messages.yml.

  • justice.police counts online cops and receives dispatch alerts by default.
  • With the configurable defaults, robberies.perk.gangster adds 15 percentage points to mugging success (mugging.gangster-success-bonus: 0.15) and shortens gas robberies by 10% (gas.gangster-duration-multiplier: 0.9) in config.yml. It also anonymizes dispatch identification.
  • Bank loot comes from the government treasury through a crash-recoverable escrow account.
  • NPC, gas, and ATM payouts come from the staff account and compress below the configured threshold.

Robber actions and failure states

Threaten configured NPCs with a recognized firearm, use genuine charges on registered breach targets, and interact with registered cash pickups after unlocking their room. The first detonation freezes crew membership from eligible people inside the crew region. More players arriving later do not join. Leave the bank building with loot and survive its escape channel for settlement. Police response, crew/police eligibility, cooldowns, prerequisite doors and funding still constrain attempts. Interrupted operations restore door block data and recover escrow; inventories inside a breach region are not included in its snapshot.

Reading command syntax

Configuration defaults: Values shown for operator-configurable settings are the bundled defaults, and can be changed in the module’s configuration or definitions. The server’s active settings take precedence, so costs, speeds, ranges, durations, chances, effects, recipes, limits and enabled features may differ. Command examples illustrate syntax; fixed mechanics and validation bounds are not configuration defaults.

<argument> is required; [argument] is optional. Replace the placeholder, including its brackets, with your value. Choices separated by a vertical bar mean choose one. ... accepts the remaining words. Do not type quotation marks around multiword names unless the command specifically requires them. A bare command has no required arguments. Examples use sample players/IDs: substitute entries from your server and use Tab for configured IDs.

player means a username; operational actions usually require that player online. amount and price are currency values such as 25.00, unless the row specifies items, levels, or units. reason, memo, message, name, and statement accept text where supported. duration uses the module's duration format (for example 10m, 2h, or 7d); it is not a bare number of minutes unless stated. id is the exact identifier displayed by that system, not its friendly name. Permissions and ownership/state/location checks both apply.

Robbery commands

SyntaxArguments / actionPermission
/robbery or /robbery helpHelpEntry access
/robbery statusActive module and location countsrobberies.status
/robbery reloadReload configuration/definitions/messagesrobberies.reload
/robbery give [player] [amount]Issue genuine charges; self and one by default; console must name online playerrobberies.give
/robbery setup npc <id> [citizens-id]Register citizen; omitted integer NPC ID uses looked-at Citizens entityrobberies.setup
/robbery setup gas <id> <region> [citizens-id]Register hold-up region and clerkrobberies.setup
/robbery setup atm <id>Register looked-at interaction block within six blocksrobberies.setup
/robbery setup bank <id> <world> <crew-region> <building-region>Register existing WG bank regionsrobberies.setup
/robbery setup breach <bank> <id> <region> <room> <ENTRY or SMALL or LARGE> <packs> <minimum-planters> <alarm> [required-doors...]Door region, finite room ID/tier, integer charge/unique contributor counts, true/false alarm, prerequisite breach IDsrobberies.setup
/robbery setup pickup <bank> <id> <room>Bind looked-at block to existing bank room's finite lootrobberies.setup

Setup requires an in-game player; region names must already exist and bank is the registered bank ID. Example: /robbery setup bank central world teller_area bank_building. The bank-chain example above supplies every required breach argument in order. Ordinary TNT is not an accepted charge.

Root commands and aliases

These are the registered command entry points. The subcommand tables above describe their complete operations. Alias names use the same arguments as their root.

SyntaxPurposePermission / aliases
/robbery <help|status|setup|give|reload>Configure and administer robberies.Checked by operation; aliases: /robberies, /rob

03

Registered entry points

Command roots

Use the command syntax sections above for every required argument and subcommand. The short usage below is the plugin’s registered help text.

CommandUsageDescriptionPermission
/robberyAliases: robberies, rob/robbery <help|status|setup|give|reload>Configure and administer robberies.Subcommand-based

04

LuckPerms reference

Permissions

NodeDefaultDescription / children
robberies.committrueNo additional description.
robberies.perk.gangsterfalseImproves street robberies and hides the robber's identity from dispatch.
robberies.adminopFull Robberies administration. Operators receive this parent automatically.Includes robberies.commit, robberies.perk.gangster, robberies.setup, robberies.give, robberies.status, robberies.reload
robberies.setupfalseNo additional description.
robberies.givefalseNo additional description.
robberies.statusfalseNo additional description.
robberies.reloadfalseNo additional description.
Next pluginMCSkylines-Narcotics

Command and permission references reflect the current plugin.yml manifests in this workspace.