Required
- Paper compatible with the
1.21.8API floor. - Java
21. - WorldGuard. The plugin disables itself if WorldGuard is missing.
Paper plugin documentation
A complete setup, operation, and developer reference for the Steal A Mob arena game mode by RayzStudio.
First playable arena
Use this path when you already have Paper, WorldGuard, and your world ready. The commands below create a single arena named main.
plugins/, start the server, then stop it after the data folder is generated.
/sam setup wizard main/sam setup spawn main/sam setup bounds main/sam setup conveyor main start/sam setup conveyor main end/sam setup validate main/sam arena enable main/sam setup wizard main creates the arena entry and shows the next missing step. /sam setup create main is available, but not required if you start with the wizard.
Before install
Steal A Mob is built for modern Paper servers and stores its own gameplay state while integrating with familiar server tools.
1.21.8 API floor.21.cash currency.%stealamob_*% placeholders.Server owners
The plugin ships as an obfuscated production jar and generates readable YAML config files on first boot.
StealAMob-1.1.0-obfuscated.jar in your server plugins/ folder.plugins/StealAMob/ is created./sam setup wizard main.stealamob.admin during setup.plugins/StealAMob/, especially stealamob.db.Generated data
These are the public files setup staff and server owners should know. Do not publish live database files or private server-specific configs.
| File | Purpose | Edit Live? |
|---|---|---|
config.yml | Main mechanics, economy, locks, gear, scoreboard, GUI titles, holograms, performance, session-base behavior. | Use /sam reload after safe edits. |
arenas.yml | Saved arena spawn, bounds, conveyors, base regions, base locations, display slots, lock plates. | Prefer in-game setup commands. |
mobs.yml | Rarities and mob catalog used by conveyor, shop, base display, income, and API snapshots. | Use /sam mob reload. |
messages.yml | MiniMessage-style command feedback, help, usage, setup, pass, booster, item, and lock text. | Use /sam reload. |
boosters.yml | Personal and server booster definitions. | Use /sam reload. |
pass.yml | Season ID, pass levels, reward tracks, XP sources, daily and weekly missions. | Use /sam reload. |
progression.yml | Permanent level curve, prestige, daily caps, rewards, titles, GUI theme, effects. | Use /sam reload. |
troll-items.yml | Item shop, traps, cooldowns, effects, costs, and item limits. | Use /sam reload. |
arena-menu.yml | Native arena selector layout and text. | Use /sam reload. |
deluxemenus/*.yml | Examples for optional DeluxeMenus entrypoints and reward menus. | Copy into DeluxeMenus and reload DeluxeMenus. |
stealamob.db | Runtime data: players, owned mobs, boosters, codes, pass/progression/rebirth/item state. | Back up. Do not publish. |
Setup staff
An enabled arena requires loaded mob definitions, a spawn, loaded arena bounds, at least one ready conveyor, and the configured number of ready bases.
/sam setup wizard <arena>Creates or opens setup guidance for the arena./sam setup status <arena>Shows current setup state./sam setup markers <arena>Displays setup markers for saved points./sam setup spawn <arena>Saves where players enter the arena./sam setup bounds <arena>Saves the current WorldEdit selection as arena bounds./sam setup conveyor <arena> [id] start|endSaves a straight conveyor path. Default ID is main.For each base, select the base cuboid with WorldEdit and run /sam setup base add <arena> <slot>. The plugin creates a WorldGuard region named like sam_main_base_1 and applies safe defaults: build denied, mob spawning denied, interact and use allowed.
/sam setup base add <arena> <base>Create and save the WorldGuard base region./sam setup base spawn <arena> <base>Where the base owner appears./sam setup base entrance <arena> <base>Legacy one-point entrance fallback./sam setup base <arena> <base> entrance pos1|pos2Two-point entrance area for tighter lock protection and lock beams./sam setup base dropoff <arena> <base> pos1|pos2Two-point deposit area for carried mobs./sam setup base slot <arena> <base> <displaySlot>Save every display/generator slot. Default target is 8./sam setup base lockplate <arena> <base>Save the pressure plate or looked-at trigger block./sam setup validate <arena> reports missing spawn, bounds, conveyor, bases, display slots, and loaded-world problems./sam arena enable <arena> refuses arenas with blocking validation issues.Main config
config.yml controls the shared game feel. Existing server configs keep their values and receive missing keys on reload.
arenaDefault base count, commands blocked while playing, and leave/boundary teleport behavior.
baseDisplay slots, fallback display grid, display entity offsets, session ownership, release on leave/disconnect, and cleanup behavior.
conveyorSpawn timing, path movement, active mob caps, spacing, lifetime, AI/collision settings, glowing mobs, and rebirth-locked visibility.
hologramsFancyHolograms usage, TextDisplay fallback, refresh timing, base labels, dropoff labels, slot labels, and mob labels.
base-lockPressure-plate locking, lock duration, cooldown, new-player auto lock, entry denial, particles, sounds, and laser/fake-beacon beam visuals.
gearEnabled gear IDs, prices, permissions, materials, cooldowns, and ability-specific tuning.
scoreboardSidebar enablement, arena-only display, update rate, title, and placeholder-powered lines.
economyIncome interval, global multiplier, offline multiplier, rarity multipliers, caps, Vault/ExcellentEconomy guidance, and internal fallback.
rebirthConfirm timeout, reset behavior, requirements, scaling, rewards, reveal effects, broadcasts, and milestones.
rebirth-token-shopPermanent upgrades like cash mastery, luck mastery, lock mastery, steal mastery, slot mastery, and pass mastery.
upgradesBase slot upgrade pacing and lock upgrade cost/duration/cooldown tuning.
monetizationOptional permission perks only. Steal A Mob does not define a paid currency or built-in paid store.
Cash and income
Steal A Mob uses cash for mob purchases, income pulses, pass cash rewards, reward commands, and admin cash tools.
For production servers, install Vault plus an economy provider. If using ExcellentEconomy, enable its Vault bridge and set the economy currency to the cash currency you want Steal A Mob to use.
Integration.Vault.Enabled: true
Integration.Vault.EconomyCurrency: cash
If Vault is unavailable and economy.internal-fallback.enabled is true, Steal A Mob uses SQLite-backed internal balances. This is useful for testing, but a Vault provider is safer for network economies.
1000./sam balance.economy.income-interval-seconds.max-per-interval caps public-server runaway income.Player loop
Players join an arena, claim a session base, buy or steal mobs, deposit them into base slots, earn cash pulses, upgrade, rebirth, and climb leaderboards.
/sam join [arena], /arena join [arena], or the arena selector assigns a playable arena with a free base.
Players buy conveyor mobs directly or browse the paginated /sam shop GUI.
Carried mobs follow the player visually. Stolen mobs use the configured stolen carry speed multiplier.
Players deliver mobs to their base dropoff area. Mobs become display generators in saved slots.
Base locks, gear, and items create active defense and counterplay.
Cash, progression XP, pass XP, rebirths, tokens, and leaderboards create long-term goals.
Default settings are network-friendly: base.persistent-ownership: false, base.release-on-leave: true, and base.release-on-disconnect: true. Bases free up when players leave, but owned mobs remain saved and move into the next assigned base. For long-term claimed bases, enable persistent ownership and disable release flags.
Reference
The primary command is /sam. Aliases include /stealamob, /stealmob, and /stam. The plugin also registers shortcut commands like /arena, /base, /rebirth, /level, /codes, /top, /credits, and /store.
| Command | What It Does |
|---|---|
/sam join [arena] | Join a specific arena or the first playable arena. |
/sam leave | Leave the current arena and release a session base if configured. |
/sam arena, /arena menu | Open the arena selector. |
/arena join [arena] | Shortcut for joining an arena. |
/sam shop | Open the mob shop GUI. |
/sam items, /sam shop items | Open the item shop. |
/sam booster list|active|activate <id> | View vouchers, active boosters, or activate a booster. |
/sam pass info|missions | View pass level, XP, rewards, and missions. |
/sam pass claim <level> free|premium | Claim pass rewards. |
/level, /level rewards | Open permanent progression roadmap. |
/level top | Open progression leaderboard. |
/level prestige | Prestige at max progression level. |
/rebirth | Open rebirth preview and confirmation. |
/rebirth confirm | Confirm rebirth after opening the preview. |
/rebirth upgrades | Open rebirth token upgrades. |
/rebirth upgrade <id> | Buy a token upgrade. |
/sam gear claim [all|gearId] | Claim owned gear items. |
/sam reset confirm | Reset your Steal A Mob career. |
/sam balance | Show cash balance and economy source. |
/base | Teleport to your base. |
/base manage | Open base management GUI. |
/base mobs | List owned mobs. |
/base discard <slot> confirm | Discard a base mob. |
/base replace <slot> | Replace a mob slot with the mob you are carrying. |
/base upgrade slots|lock | Buy base upgrades. |
/codes redeem <code> | Redeem a reward code. |
/top [rebirths|networth|steals|income|mobs|progression] | View leaderboard boards. |
/store | Show reward guidance. Aliases: /donate, /support. |
/credits | Show plugin credits. |
| Command | Purpose |
|---|---|
/sam reload | Reload config, messages, mobs, boosters, pass, progression, items, arenas, GUIs, scoreboards, conveyors, income, displays, and holograms. |
/sam admin | Open the admin GUI for players with admin permission. |
/sam arena enable|disable|reset <arena> | Manage arena lifecycle, clear carries/locks/items, respawn generators, and restart conveyors. |
/sam mob list [tier] [page] | Inspect loaded mob catalog. |
/sam mob info <mobId> | Inspect one mob definition. |
/sam mob give <player> <mobId> [carry|slot] [slot] | Give a mob to a player in an active arena. |
/sam mob reload | Reload mob definitions and respawn generators. |
/sam reset <player> confirm | Reset another player's career. |
/sam gear give <player> <gearId> | Give a gear item to an online player. |
/lock | Admin or permission fallback to activate a base lock. Normal gameplay uses lock plates. |
/sam admin cash give|take|set <player> <amount> | Manage Steal A Mob cash. |
/sam admin booster give|take|activate <player> <boosterId> [amount] | Manage booster vouchers or activate boosters for a player. |
/sam admin booster clear <player> | Clear active boosters started by a player. |
/sam admin booster list | List booster definitions. |
/sam admin pass premium [remove] <player> | Grant or remove premium pass. |
/sam admin pass xp give|set <player> <amount> | Modify pass XP. |
/sam admin pass level set <player> <level> | Set pass level. |
/sam admin pass reset <player> | Reset one player's pass progress. |
/sam admin pass resetseason | Reset the active pass season for all players. |
/sam admin progression addxp|setxp|setlevel|setprestige <player> <amount> | Manage permanent progression. |
/sam admin progression reset <player> | Reset progression for a player. |
/sam admin rebirth set|add <player> <amount> | Set or add rebirths. |
/sam admin rebirth reset <player> | Reset rebirth data. |
/sam admin rebirth tokens give|take <player> <amount> | Manage rebirth tokens. |
/sam codes create <code> MONEY|MOB|REBIRTHS|SLOTS|LOCKS <value> [expiresSeconds] [maxUses] | Create a redeemable code. |
/sam codes delete <code> | Delete a code. |
/sam codes list | List saved codes. |
Access control
Use a permissions plugin to assign these nodes. stealamob.user defaults to true and admin nodes default to operator.
| Node | Default | Use |
|---|---|---|
stealamob.user | true | Player command access. |
stealamob.admin | op | Full setup and management access. |
stealamob.booster.use | true | Use owned booster vouchers. |
stealamob.pass.use | true | View and claim pass rewards. |
stealamob.pass.premium | false | Permission-based premium pass access. |
stealamob.progression.use | true | View and claim progression rewards. |
stealamob.rebirth.use | true | Open and confirm rebirths. |
stealamob.rebirth.upgrades | true | Spend rebirth tokens on upgrades. |
stealamob.lock.command | op | Use /lock fallback. |
stealamob.lock.bypass | op | Enter locked bases for moderation/setup. |
stealamob.admin.cash | op | Cash admin commands. |
stealamob.admin.booster | op | Booster admin commands. |
stealamob.admin.pass | op | Pass admin commands. |
stealamob.admin.progression | op | Progression admin commands. |
stealamob.admin.rebirth | op | Rebirth admin commands. |
stealamob.perks.supporter | false | Example configurable permission perk. |
stealamob.perks.vip | false | Example configurable permission perk. |
stealamob.perks.mvp | false | Example configurable permission perk. |
stealamob.gear.blackhole | false | Own and claim Blackhole Slap. |
stealamob.gear.flying_carpet | false | Own and claim Flying Carpet. |
stealamob.gear.laser_gun | false | Own and claim Laser Gun. |
stealamob.gear.ban_hammer | false | Own and claim Ban Hammer. |
stealamob.gear.coil_combo | false | Own and claim Coil Combo. |
stealamob.gear.swap_blaster | false | Own and claim Swap Blaster. |
stealamob.gear.sonic_boom | false | Own and claim Sonic Boom. |
stealamob.gear.freeze_ray | false | Own and claim Freeze Ray. |
Catalog and balancing
mobs.yml defines rarities and the conveyor/shop mob catalog. The default catalog contains 56 mobs across seven rarity tiers.
| Tier | Default Count | Price Range | Base Income Range | Notes |
|---|---|---|---|---|
| Common | 16 | 75 to 4,600 | 1.5 to 50 per pulse | Starter economy and frequent conveyor spawns. |
| Rare | 12 | 5,600 to 71,000 | 66 to 860 per pulse | First meaningful steal pressure. |
| Epic | 10 | 90,000 to 830,000 | 1,100 to 11,800 per pulse | Mid-game visual effects and lower weights. |
| Legendary | 7 | 1,050,000 to 4,700,000 | 15,000 to 70,000 per pulse | Rare spawns and high-value targets. |
| Mythic | 4 | 6,200,000 to 15,000,000 | 90,000 to 215,000 per pulse | Some default mobs require 5 rebirths. |
| Divine | 4 | 21,000,000 to 62,000,000 | 300,000 to 850,000 per pulse | Default mobs require 8 rebirths. |
| Secret | 3 | 90,000,000 to 220,000,000 | 1,200,000 to 3,000,000 per pulse | Default mobs require 10 rebirths. |
mobs:
example_mob:
name: "Example Mob"
description: "Short shop and info text."
entity: "PIG"
tier: "common"
required-rebirths: 0
price: 1000
income: 15.0
spawn-weight: 30
icon:
provider: "vanilla"
material: "PIG_SPAWN_EGG"
custom-model-data: 0
Each rarity can define display color, glow color, particle, spawn/buy/deposit sounds, income multiplier, and spawn multiplier.
Displayed API income includes base mob income multiplied by global income multiplier and rarity income multiplier. Player, rebirth, perk, and booster multipliers apply during payouts.
Icon providers can be vanilla, oraxen, nexo, itemsadder, or ia. Custom providers use custom-id and fall back safely if the plugin is missing.
Long-term systems
These systems share gameplay events but are configured separately so server owners can tune pacing without editing code.
boosters.yml defines voucher-driven multipliers. Default types include CASH_INCOME, RARITY_LUCK, PASS_XP, and REBIRTH_REWARD. Scopes can be personal or server-wide.
Default IDs: cash_1_5x_15m, global_cash_2x_10m, luck_1_25x_10m, pass_xp_2x_15m, rebirth_reward_1_25x_30m.
pass.yml ships with season season_1, name Vault Rush, max level 50, and 1,000 XP per level. XP sources include buying, depositing, stealing, earning cash, locking, rebirthing, and active play minutes.
Rewards support cash, boosters, pass XP, progression XP, and command rewards.
progression.yml handles levels 1 to 100, daily caps, anti-farm active playtime windows, titles, claimable level rewards, and prestige. Level XP uses base, linear, quadratic, and prestige multiplier values.
config.yml controls rebirth requirements, scaling, reset behavior, reward tokens, income multipliers, milestones, reveal effects, and broadcasts. Token upgrades are permanent and configurable.
0.60 seconds by default.Arena tools
Gear is permission or grant based. Items are bought from the item shop and are limited by per-player held limits, cooldowns, and arena-only settings.
| ID | Default Purpose | Permission |
|---|---|---|
blackhole_slap | Pull, hold, then push a nearby arena player. | stealamob.gear.blackhole |
flying_carpet | Short arena flight, disabled while carrying mobs. | stealamob.gear.flying_carpet |
laser_gun | Line-of-sight knockback laser, can force stolen carriers to drop. | stealamob.gear.laser_gun |
ban_hammer | Short-range heavy knockback, slowness, and blindness. | stealamob.gear.ban_hammer |
coil_combo | Speed and jump boost burst. | stealamob.gear.coil_combo |
swap_blaster | Swap locations with an arena player. | stealamob.gear.swap_blaster |
sonic_boom | Area knockback and stolen-mob drop pressure. | stealamob.gear.sonic_boom |
freeze_ray | Freeze a targeted arena player in place. | stealamob.gear.freeze_ray |
troll-items.yml controls shop availability, cash currency use, maximum held items, arena-only usage, global cooldown, trap limits, trap expiry, and cleanup on leave or arena reset.
Presentation
Steal A Mob includes native GUIs and a sidebar scoreboard, and can render holograms through FancyHolograms or TextDisplay fallback.
/sam shop, /base manage, /sam admin, /level, /rebirth, /sam items, and arena selector are built in.
Controlled by scoreboard in config.yml. Use only-in-arena and respect-existing to avoid conflicts with other sidebar plugins.
Base owner labels, dropoff labels, slot labels, and mob labels refresh after joins, leaves, deposits, steals, reloads, and scheduled updates.
Special tiers receive ambient particles. Game-feel settings control rare announcements, steal alerts, income particles, deposit effects, rebirth effects, and ambient sounds.
PlaceholderAPI and scoreboard
If PlaceholderAPI is installed, Steal A Mob registers %stealamob_*%. The internal scoreboard also accepts %sam_*% aliases.
%stealamob_arena%, %stealamob_current_arena%, %stealamob_base_status%, %stealamob_mobs%, %stealamob_base_mobs%, %stealamob_base_slots_used%, %stealamob_base_slots_max%, %stealamob_capacity%, %stealamob_carrying%
%stealamob_cash%, %stealamob_cash_raw%, %stealamob_balance%, %stealamob_income%, %stealamob_income_raw%, %stealamob_networth%, %stealamob_networth_raw%, %stealamob_steals%
%stealamob_base_lock_time%, %stealamob_lock_seconds%, %stealamob_lock_remaining%, %stealamob_traps_active%, %stealamob_troll_items_held%, %stealamob_item_cooldown_banana_peel%
%stealamob_booster_count%, %stealamob_boosters%, %stealamob_booster_cash%, %stealamob_booster_pass_xp%, %stealamob_booster_luck%, %stealamob_booster_amount_cash_1_5x_15m%
%stealamob_pass_level%, %stealamob_pass_xp%, %stealamob_pass_xp_required%, %stealamob_pass_progress_percent%, %stealamob_pass_premium%, %stealamob_pass_reward_claimed_1_free%, %stealamob_pass_mission_progress_buy_5_mobs%
%stealamob_level%, %stealamob_prestige%, %stealamob_level_xp%, %stealamob_level_xp_required%, %stealamob_level_progress_percent%, %stealamob_progression_title%, %stealamob_progression_rank%, %stealamob_progression_claimable%
%stealamob_rebirths%, %stealamob_rebirth_tokens%, %stealamob_rebirth_multiplier%, %stealamob_next_rebirth_cash_required%, %stealamob_next_rebirth_base_value_required%, %stealamob_next_rebirth_income_required%, %stealamob_next_rebirth_progress_percent%, %stealamob_rebirth_upgrade_cash_mastery%
Boards: networth, income, rebirths, steals, mobs, progression. Examples: %stealamob_top_networth_1_name%, %stealamob_top_networth_1_value%, %stealamob_top_networth_1_value_raw%, %stealamob_rank_networth%, %stealamob_rank_networth_ordinal%.
%stealamob_economy_source%, %stealamob_total_mobs%, %stealamob_total_arenas%, %stealamob_registered_players%, %stealamob_active_players%, %stealamob_arena_players%
Add-on developers
Add-ons can use org.rayz.stealamob.api.StealAMobProvider or Bukkit ServicesManager to obtain StealAMobApi. The public API package is preserved by obfuscation rules.
StealAMobProvider.get().ifPresent(api -> {
api.mob("spaghetti_sprinter").ifPresent(mob -> {
double price = mob.price();
});
});
RegisteredServiceProvider<StealAMobApi> registration =
Bukkit.getServicesManager().getRegistration(StealAMobApi.class);
if (registration != null) {
StealAMobApi api = registration.getProvider();
}
| Method | Use |
|---|---|
mobs(), mob(String) | Read configured mob snapshots. |
arenas(), arena(String) | Read arena enabled/playable state, base counts, conveyor counts. |
player(UUID) | Read player arena state, base slot, rebirths, capacity, balance, income, networth, steals, progression, and prestige. |
progression(UUID) | Read XP, total XP, XP required, level, max level, progress percent, prestige, rank, and title. |
balance(OfflinePlayer) | Read current cash balance. |
deposit(OfflinePlayer, double) | Add cash through the active economy source. |
withdraw(Player, double) | Withdraw cash from an online player. |
startCarry(Player, String) | Start a non-stolen mob carry if the player is active, has a base, has capacity, and is not already carrying. |
giveMobToBase(Player, String, int) | Insert mobs directly into available base slots. |
countOwnedMobs(UUID) | Count all owned mobs. |
projectedIncomePerPulse(UUID) | Calculate projected current-base income per payout pulse. |
economyProviderName() | Expose the active economy source name. |
SamMobDefinition: ID, display name, Bukkit entity type, price, income per pulse, tier, spawn weight, description.SamArenaInfo: name, enabled, playable, base count, ready base count, conveyor count, ready conveyor count.SamPlayerProfile: identity, arena/base state, rebirths, owned mob count, capacity, balance, income, money earned, networth, steals, progression, prestige.SamProgressionProgress: XP, total XP, XP required, level, max level, progress percent, prestige, rank, title.Bukkit events
Listen to Steal A Mob events for integrations, custom perks, analytics, and server-specific rules. Cancellable events can be modified before the plugin completes the action.
| Event | Cancellable | Important Data |
|---|---|---|
StealAMobMobPurchaseEvent | Yes | Player, mob ID, source CONVEYOR or SHOP, mutable price. |
StealAMobMobStealEvent | Yes | Thief, original owner UUID, owned mob ID, mob ID. |
StealAMobMobDepositEvent | No | Player, mob ID, owned mob ID, whether it was stolen, original owner UUID. |
StealAMobIncomePayoutEvent | Yes | Offline player and mutable payout amount. |
StealAMobProgressionXpGainEvent | Yes | Player, XP source, mutable XP amount. |
StealAMobProgressionLevelUpEvent | No | Player, old level, new level, prestige. |
StealAMobPrestigeEvent | No | Player, old prestige, new prestige. |
@EventHandler
public void onPurchase(StealAMobMobPurchaseEvent event) {
if (event.getMobId().equalsIgnoreCase("example_mob")) {
event.setPrice(event.getPrice() * 0.9);
}
}
Operations
Most issues come from missing dependencies, unloaded worlds, incomplete setup, economy provider mismatch, or scoreboard conflicts.
Install and enable WorldGuard. Steal A Mob requires it and disables itself if it is missing.
Run /sam setup validate <arena>. Fix missing spawn, unloaded bounds, conveyors in different worlds, missing display slots, or missing WorldGuard base regions.
Check /sam balance for the economy source. For production, make sure Vault has an economy provider. If using ExcellentEconomy, enable its Vault integration and use the same cash currency ID.
Keep scoreboard.respect-existing: true, or disable Steal A Mob's scoreboard and render placeholders in your existing scoreboard plugin.
Install and enable FancyHolograms and keep holograms.use-fancyholograms: true. Without it, TextDisplay fallback is expected.
Confirm the provider plugin is installed and enabled, then verify provider and custom-id in mobs.yml. Vanilla fallback keeps GUIs usable when a provider cannot resolve an item.
Run /sam setup base lockplate <arena> <base> while looking at or standing on an allowed pressure plate. Check base-lock.allow-any-lock-block only if you intentionally want arbitrary trigger blocks.
No vulnerable data
This website intentionally documents useful setup and development surfaces without exposing secrets or private runtime data.
stealamob.db or exported player data.