MegaBlock Survivors Gameplay
MegaBlock Survivors is a roguelike survival minigame. Each run takes the player through procedurally generated worlds where they fight waves of enemies, collect equipment upgrades, complete portal challenges, and progress through increasingly difficult stages.
Starting a Match
Use /mbs start to begin a new match. Each match creates one or more instanced worlds for that player only. A second /mbs start while you are already in a match (or while your world is still generating) is refused -- use /mbs quit to leave first.
After the world is ready the player is walked through three pre-match dialogs:
- Game Mode -- Challenge vs Endless (see below).
- Difficulty -- Easy, Medium, or Hard (see below).
- Class / Starting Weapon -- Reaper (Scythe), Mystic (Censer), Duelist (Whip), or Marksman (Crossbow).
Each dialog chains into the next, and every one of them offers a Cancel button that runs /mbs quit. Once a class is picked, a 3-second countdown runs and the match transitions into the first world.
Game Modes
The first pre-match screen picks how the run ends:
| Mode | Behavior |
|---|---|
| Challenge | After the World 3 portal scorpion falls, the player is teleported to WORLD_4 (the final-boss arena) for a definitive ending fight. |
| Endless | Same balance, same difficulty curve, same content -- but instead of WORLD_4, the player loops back to a fresh World 1. The run only ends when the player dies. |
Game mode is also recorded on each leaderboard entry so the two modes are ranked separately.
Difficulty
The second pre-match screen sets a per-match difficulty tier. The tier scales both the base mob speed and the per-level speed growth slope:
| Difficulty | Base speed multiplier | Slope multiplier |
|---|---|---|
| Easy | 0.90 (10% easier at start) | 0.80 (20% easier on the curve) |
| Medium | 1.00 (baseline) | 1.00 (baseline) |
| Hard | 1.10 (10% harder at start) | 1.20 (20% harder on the curve) |
The underlying mob speed formula is 0.15 * baseMul + 0.0163296 * slopeMul * sqrt(level). The slope has been progressively flattened over multiple balance passes to ease the late-game difficulty wall.
Multi-World Progression
Matches progress through four world types:
- WORLD_1 -- Sculk and gray concrete powder (Overworld environment)
- WORLD_2 -- Red nether bricks and crimson nylium (Nether environment)
- WORLD_3 -- End stone and purpur block (End environment)
- WORLD_4 -- Dedicated final-boss arena. A flat sculk disc (radius 33 blocks, centred on (0, baseY, 0)) ringed by 10 evenly spaced netherrack pillars (2x2 footprint, 8 blocks tall, glowstone caps), all painted synchronously at world-construction time. Only reachable in Challenge mode.
Worlds 1-3 are noise-generated explorable maps that extend indefinitely (no border). Each is gated by its own portal scorpion fight. WORLD_4 has no grid structures, no POIs, and no portal progression -- but the wave spawner keeps running, so ordinary wave mobs (and the ghost-army timer) still apply pressure during the final fight.
Worlds 1, 2, and 3 use grid-cell per-chunk structure placement rather than all-at-once seeding. The world is tiled into per-type grid cells (e.g. 160 blocks per cell for towers, 96 per cell for chests, 64 per cell for trees / vases), and each cell deterministically places one anchored structure at a seeded jittered offset when its chunk loads. This means structures stream in as the player explores rather than appearing only near spawn. Approximate per-cell sizes (in chunks):
| Structure | Cell size | Notes |
|---|---|---|
| Tower | 10x10 chunks | W1-W3 |
| Wall | 10x10 chunks | W1-W3 |
| Tree | 4x4 chunks | W1-W3 |
| Vase | 4x4 chunks | W1-W3 |
| Chest | 6x6 chunks | W1-W3 |
| Shrine | 10x10 chunks | W1-W3 |
| Hourglass | 16x16 chunks | W1-W3 |
| Portal | 32x32 chunks | W1-W3, force-loaded around spawn at match start |
| Blood Altar | 32x32 chunks | WORLD_2 only |
| Magnet Shrine | 18x18 chunks | W1-W3 |
| Time Stop Shrine | 22x22 chunks | WORLD_3 only |
| Loot Chest | Schematic-baked into tower chunks; 70% cleared / 20% Rare / 10% Legendary roll per baked chest block |
POI chests are placed by a separate per-stage one-shot pass (one per octant at 1200-1700 blocks from that world's spawn; see POI Rewards below) rather than the grid. A fresh set is placed at the start of every world, including each looped world in Endless mode.
Weapons
Weapons attack automatically on a cooldown. All four weapons are derived from a unified DPS framework (WeaponBalance), so each one's level-1 damage is back-solved against a single shared baseline (~10 DPS in the standard scenario of 3 enemies in range). Only damage grows with level; cadence, area, bounces, and arrow count stay fixed at their constructor values, with one exception (the crossbow gains arrows on a milestone curve).
Each upgrade multiplies the weapon's damage by 1 + 0.2 * rarity -- so a Common upgrade is +20%, an Uncommon is +40%, all the way up to +100% for a Legendary upgrade.
| Weapon (Class) | Type | Cadence | Description |
|---|---|---|---|
| Scythe (Reaper) | Area | 2 seconds | Sweep in a forward arc. Damage grows with level; area is fixed. |
| Censer (Mystic) | Area | 2 seconds | DoT aura around you, re-ticking every enemy in zone 12 times per cycle. Damage grows with level; area is fixed. |
| Whip (Duelist) | Hitscan | 1.5 seconds | Chain-lightning strike that bounces. Starts at 2 bounces (3 hits total); +1 bounce every 2 levels. Bounce range 10 blocks. |
| Crossbow (Marksman) | Projectile | 2 seconds | Fires piercing arrows in a fan. Arrow count grows on a milestone curve: 1 arrow at L1, +1 every 4 levels (so L5=2, L9=3, L13=4, L17=5). Arrows travel 30 blocks, pierce through anything they hit. |
Passive Items
Passive items are gained through level-up rewards, hourglass and chest pickups, shrine purchases, and special POI rewards. Their effect scales with the rarity tier of the reward.
| Passive | Base value per acquisition (at Common rarity) |
|---|---|
| Ebon Heart | +10% max health (cosmetic netherite helmet) |
| Health Up | +5 HP (flat) |
| Shadow Glide | -10% gravity (cosmetic elytra; also enables multi-jump via the elytra-trigger keybind) |
| Shadow Leap | +10% jump strength (cosmetic netherite boots) |
| Shadow Step | +6.67% move speed (cosmetic netherite leggings) |
| Experience Boost | +10% experience |
| Luck | +1 luck |
| Twilight Coin | +1 luck (same effect as Luck; alternate-themed pickup) |
| Dodge | +1% dodge chance |
| Crit Chance | +5% crit chance |
| Shields | +10% max shields |
| Attack Speed | +5% attack speed |
| Vampirism | +10% chance and amount to heal from damage dealt |
| Chronomancer Token | Reduces hourglass challenge time by 10% (clamped at 0-50% total) |
Each upgrade at higher rarity scales the per-pick value linearly: a Common upgrade applies baseValue * 1, an Uncommon baseValue * 2, etc., up to Legendary at baseValue * 5. Chest-acquired passives are awarded at 20% of normal strength (so a Common chest Health Up is +1 HP instead of +5).
Equipment Hotbar
During a match the whole hotbar is reserved and rebuilt by the plugin -- it refreshes whenever equipment changes, and otherwise on a 2-second cycle:
| Slot | Contents |
|---|---|
| 1-2 | Weapons, sorted by acquisition. Slot 2 shows a barrier placeholder labelled "Weapon Slots" until the Weapon Slots meta-progression track unlocks it. |
| 3 | Always empty -- a deliberate spacer between weapons and passives. |
| 4-9 | Passives, sorted by acquisition. Slots past your Passive Slots allowance show a barrier placeholder labelled "Passive Slots". |
Every reserved slot is enforced: any non-equipment item that ends up in slots 1-9 is relocated into the main inventory, or dropped if there is no room. Slot counts come straight from the player's meta-progression, so buying a slot upgrade is visible on the hotbar the next refresh.
Player Stats
Use /mbs stats during a match to open the equipment + stats dialog. The match auto-pauses while it is open. The dialog shows:
- Vitals -- current/max HP, current/max shields, shield regen, health regen.
- Combat -- damage multiplier, vampirism %, crit chance %, dodge chance %, attack speed multiplier, extra projectiles.
- Movement -- move speed, jump strength %, jump gravity %.
- Other -- experience multiplier %, luck, current level.
- Equipment -- each owned weapon and passive with its current level and effect summary.
Structures
| Structure | Function |
|---|---|
| Hourglass | Stand inside the 15-block sphere to charge through rarity tiers (Uncommon 10s -> Rare 20s -> Epic 30s -> Legendary 60s). Leaving before Uncommon awards nothing and tells you how many seconds were left. At Uncommon or better it opens a three-option reward screen drawn from the full pool (weapons included), with every option's rarity set by the tier reached. Chronomancer Token shortens the wait. |
| Chest | Right-click to buy with emeralds, then pick from a three-option passive-only reward screen. Chest-bought passives are awarded at 20% of normal strength. Base price 50, scaling by 50 + 25 * totalPurchases (where totalPurchases is the running count of chest + shrine buys this run). Disabled while a boss is active. |
| Shrine | Purchase a random outcome with emeralds. Base price 25, scaling by 25 + 12.5 * totalPurchases. 60% reward (shrine stays), 10% reward (shrine consumed), 30% nothing. Disabled while a boss is active. |
| Portal | One of many grid-placed portals across the world. Activating any portal that the player reaches with the match-wide sacrifice threshold met starts the boss fight. Sacrifice thresholds: 100 (W1) / 200 (W2) / 400 (W3). |
| Vase | Breakable container (one of three random models). Breaking it always drops 5 shadow fragments, plus a 20% chance of a magnet and a 15% chance of a cooked chicken. Damaging a vase also procs vampirism, so it doubles as a free heal source. |
| Loot Chest | Schematic-baked Rare (mbs_chest_rare) or Legendary (mbs_chest_legendary) chest. Right-click to drop a single passive at a luck-shifted rarity (+5 luck for Rare, +10 for Legendary) and 15 shadow fragments. Schematic scan rolls 70% cleared / 20% Rare / 10% Legendary per baked chest block. |
| Blood Altar (W2 only) | 3-stage HP sacrifice: 25% -> 50% -> 75% of current HP. Each stage drops 10 shadow fragments per HP spent (so the altar is an HP-to-XP converter, not currency). A 20%-of-max-HP floor is enforced; if a sacrifice would drop you below it, the altar warns and holds on the same stage. The altar despawns after the 75% stage. Triggered by right-click or by /mbs sacrifice. |
| Magnet Shrine | One-shot trigger on hitbox contact: spawns a 15-second magnet effect that pulls all shadow fragment drops in the match toward the player. Despawns after use. |
| Time Stop Shrine (W3 only) | One-shot trigger on hitbox contact that freezes the match for 10 seconds. Pauses all enemy AI, weapon timers, and DrawLine telegraphs. The match-tick countdown decrements during the freeze and the player sees a live "Time Stopped" title. Despawns after use. |
| POI | Bespoke reward chest placed at the start of each world at long range (1200-1700 blocks from that world's spawn); see "POI Rewards" below. |
Portal Compass
While in a match the action bar shows a 63-character directional strip pointing at the closest portals and POI markers in your current world. The compass hides itself when nothing is in range -- it doesn't compete for the action bar otherwise. When portals exist, only the nearest three are shown to keep the strip readable.
Enemies and Bosses
Enemies spawn in player-anchored waves around the player (40-90 block ring, 80% biased into a 90-degree cone facing the player's direction of travel so you can't outrun the spawner). A wave fires roughly every 8 seconds of unpaused match time.
Wave level is purely a function of elapsed match time, not kills: waveLevel = max(1, secondsSurvived / 36). One wave level per 36 seconds, and it never resets on a world transition. It drives the mob stat curve, the wave budget, and the composition weights below.
Every mob's baseline stats come from its spawn wave level:
| Stat | Formula |
|---|---|
| Max HP | round(waveLevel * 1.6 - 1.0, 1dp). Bosses x10; Artillery halved; Ghosts x5. |
| Contact damage | max(1, waveLevel / 2.5). Bosses x2. |
| Acceleration | 0.15 * baseMul + 0.0163296 * slopeMul * sqrt(waveLevel) (see Difficulty). Max speed is 1.1x acceleration. |
| Emerald value on death | ((waveLevel + 9) + waveLevel/10) * waveLevel, times the boss loot multiplier |
See Enemies for the per-type behavior of each mob.
Each wave is built by a weighted budget composer (SpawnComposition). The budget grows linearly with wave level (round(5 + waveLevel * 1.5) -- so wave 1 = 7, wave 10 = 20, wave 20 = 35) and is spent on mob picks drawn against per-bracket weights:
| Wave level | Shadow Slime | Volatile | Artillery | Laser Sentinel |
|---|---|---|---|---|
| 1-2 | 100% | 0% | 0% | 0% |
| 3-5 | 70% | 25% | 5% | 10% |
| 6-9 | 50% | 25% | 20% | 15% |
| 10-14 | 35% | 25% | 25% | 18% |
| 15+ | 25% | 25% | 25% | 13% |
Slimes cost 1 budget per pick; Volatile / Artillery / Laser Sentinel cost 2 each. Ghost Mobs are intentionally absent from this composer -- they spawn on a separate timer (see Ghost Army). Death Orbs are spawned by the powered-up final boss only.
Portal Bosses
Activating a portal stages a Scorpion Boss fight. Every scorpion spawn rolls a rarity -- 2% Nightmare, 10% Elite, otherwise Normal -- which scales HP, damage, scale, and the loot it drops:
| Rarity | Roll chance | Stat multiplier | Loot multiplier | Scale stack | Soul Echo drop |
|---|---|---|---|---|---|
| Normal | 88% | 1x | 1x | x2 (baseline) | 10-15 |
| Elite | 10% | 4x | 4x | x3 | 15-24 |
| Nightmare | 2% | 8x | 8x | x4 | 25-35 |
The loot multiplier applies to the emerald and shadow-fragment payout, so an Elite drops 4x the currency and 4 XP per fragment indicator instead of 1. The boss bar is colour-coded by tier (red / yellow / purple).
Nightmare scorpions additionally drop a Legendary-tier loot chest reward at their death location. Scorpions also accelerate progressively when the player is more than 50 blocks away, scaling linearly with distance and capping at 4x speed at 200+ blocks -- preventing kite-out escapes in the larger endless worlds.
Final Boss (Challenge mode only)
In Challenge mode, after the World 3 portal scorpion is killed, the match advances to WORLD_4 instead of looping. The player is teleported to the edge of a small sculk arena facing the centre, and a final boss (mbs_angel_of_death) spawns at the centre. The final boss has 2.5x the baseline boss HP, stands immobile at the arena centre, and picks one of two attacks every 5 seconds based on player distance:
- Sweep -- chosen when the player is within 10 blocks. 9-block radial slam at the player's location with a 50-tick telegraph (yellow -> orange -> red glass shell).
- Pillar Volley -- chosen when the player is past 10 blocks. Three 5-block pillars chained along the player's predicted movement at +12 / +24 / +36-tick offsets, each with a 40-tick telegraph (rising flame column + red dust ring).
Trophy Powers (Boss Tributes) -- if the player carried Boss Tribute POIs into the final fight, the boss gains stacking powers based on the count:
- 1 tribute: attack cooldown halved (5s -> 2.5s between attacks).
- 2 tributes: also spawns a minion pulse every 15s (2 volatile creepers + 1 ghost mob clustered near the boss).
- 3 tributes: also spawns two Death Orbs, which home in on the player for the rest of the fight and cannot be damaged or destroyed.
The final boss also guarantees a Soul Echo drop scaled by tribute count: round(100 * 1.5^tributes) -- so 1 tribute = 150, 2 tributes = 225, 3 tributes = ~338. The final boss is immune to Nuke and the Second Wind respawn clear (bosses are not wiped by those panic buttons). Killing it triggers the victory sequence.
Ghost Army
If the player spends more than 5 minutes in any single world, a Ghost Army starts spawning. Ghosts pursue in a straight line and insta-kill on contact, and every 30 seconds the entire army (existing and future) gets a 1.2x speed ramp. The 5-minute timer resets on every world transition -- including transition into WORLD_4, where ghosts will still pursue if the player stalls the final fight.
A match-level bossbar shows the MM:SS countdown to ghost summoning, then flips to a red "Ghost Army: active" readout once summoning has begun.
Match-Level Sacrifice Pool
Each non-boss kill increments a shared sacrifice pool (boss bar at the top of the screen). When the pool hits the per-world threshold, any portal the player reaches activates. Killing the portal boss resets the pool for the next world.
Mob Drops
Defeated enemies can drop:
| Drop | Chance per kill | Effect |
|---|---|---|
| Shadow Fragments | Always | XP that levels up the player. Worth 1 XP each, or the boss loot multiplier (4 / 8) for Elite / Nightmare scorpions. Auto-attracted on pickup. |
| Emeralds | Always | In-match currency, auto-attracted to the player. Used at chests, shrines, and blood altars. Value scales with wave level. |
| Redstone Dust | Always | Sacrifice item that auto-routes to the nearest portal in the current world (each dust computes its own closest portal, not a hardcoded one). Each one consumed by a portal increments the match-wide sacrifice pool. |
| Cooked Chicken | 10% | Heals 1 HP on pickup (capped at max health). |
| Magnet | 5% | 15-second effect that pulls every shadow fragment in the match toward the player on a parabolic arc. |
| Nuke | 0.1% | Wipes every non-boss enemy on the map. Rolls before the magnet and suppresses it, so a single kill can never drop both. |
| Soul Echo | 1% | One Soul Echo (meta-progression currency). Bosses skip this roll and drop a guaranteed range instead -- see Meta-Progression. |
Ghost-army mobs are reward-disabled: killing one awards no drops, no kill credit, no XP, and no portal sacrifice.
Nuke and Ghost Army Banner drops produce a single aggregated emerald / soul-echo / fragment payout at the player's feet rather than per-mob drops, to avoid flooding the client with item entities during mass-kills.
Rarity System
Equipment rewards have a rarity tier that scales their effect:
| Tier | Name | Luck roll range |
|---|---|---|
| 1 | Common | 0 - 20 |
| 2 | Uncommon | 20 - 40 |
| 3 | Rare | 40 - 60 |
| 4 | Epic | 60 - 80 |
| 5 | Legendary | 80 - 100 |
The player's luck level (0-100) sits at the centre of a bell curve with standard deviation 15. Higher luck shifts the distribution toward higher tiers.
Luck affects only the rarity at which a rolled passive is awarded -- the pool itself is the same set of equipment regardless of luck. Tier loot chests (RARE/LEGENDARY) and Nightmare scorpion drops add a temporary luck bonus to the roll (+5 for Rare, +10 for Legendary) so those drops skew toward higher-tier outcomes without ever mutating the player's permanent luck stat.
Level-Up System
Collecting enough shadow fragments triggers a level-up. The XP required to go from level L to L+1 is round(L * ln(L) + 5) -- 5 XP for the first level, 6 at level 2, ~28 at level 10, ~65 at level 20. Overflow XP carries into the next level, so a big lump (an XP Geyser, for instance) can chain several level-ups back to back.
The reward screen shows three randomly drawn equipment options, each assigned a rarity tier per the luck bell curve. The game pauses during reward selection.
The level-up screen first plays a short spinning animation (skippable with /mbs skip) before settling on the final three options.
If the player has meta-progression Ban Tokens or Reroll Tokens available, the reward screen also exposes:
- Ban -- one button per option; consumes one ban token and removes that equipment type from the rest of the run's reward pool.
- Reroll -- a single screen-level button; consumes one reroll token and re-rolls the three options against the current pool (banned types stay banned).
Both are available on the chest and hourglass reward screens too, not just the level-up screen.
POI Rewards
POI chests are placed at the start of each world, one per octant (8 total) at 1200-1700 blocks from that world's spawn. A fresh batch is drawn for every world (and every looped world in Endless mode). Boss Tribute is always among the 8; the other 7 are drawn from the remaining 11 reward types without replacement. The portal compass surfaces each POI as a coloured glyph so the player can navigate to them deliberately. They are not random drops -- claimed by walking onto the chest.
| POI | Glyph | Effect |
|---|---|---|
| Soul Shard Cache | Cyan diamond | Banks +50 Soul Echoes directly into the player's meta-progression balance. |
| 1up | Red heart | Banks one extra life for the run (stacks on top of the meta-progression Extra Lives starting total). |
| XP Geyser | Green arrow | Grants +500 XP (usually 3-5 levels at mid-run). |
| Sealed Shard | Purple gem | Rolls one of four canonical shard passives (Luck / Shadow Step / Shadow Leap / Ebon Heart) at rarity 1 and layers it onto the player's stats without occupying a passive slot. |
| Lost Passive | Gold star | Grants a random passive the player does not currently own, stacking its stats without occupying a slot. |
| Chicken Feast | Red cross | Fully restores health to max and grants an overshield equal to max shields. |
| Arcana Fragment | Pink star | Rolls one of three stage-long stat boons (Area Arcana +10% scale, Tempo Arcana +10% attack speed, or Crit Arcana +10% crit chance). |
| Nuke | Gold radiation | Wipes every non-boss enemy on the map; loot is consolidated into a single aggregate drop at the player's feet. |
| Weapon Stone | Crossed swords | Picks a random equipped weapon and grants +5 levels at Common rarity. |
| Passive Stone | White spire | Picks a random equipped passive and grants +5 levels (escalating rarity for configurable passives so the stat actually advances). |
| Ghost Army Banner | White banner | Localized sweep: kills every non-boss mob within 40 blocks of the player; aggregated loot. |
| Boss Tribute | Yellow chess piece | Adds one tribute to the player's carry total. Tributes persist through stage/world transitions and trigger the final boss's "trophy powers" (see Final Boss). |
Second Wind / Extra Lives
Players who have purchased the Extra Lives meta-progression track start each run with one or two banked revives. The 1up POI grants additional banked lives that stack on top of the meta-progression baseline.
On a fatal hit the player is revived in place at full HP + full shields, granted a 60-tick Resistance V buff, shown a "Second Wind" title, and a Nuke is triggered to clear non-boss mobs around them. Bosses (Scorpion + Final Boss) are immune to that clear, like with regular Nuke drops.
Health and Shield Display
Players have a visual health + shield bar during matches (rendered as a floating display above the player). Shields act as an additional health layer that absorbs damage before HP and regenerates over time after a 3-second grace period since the last hit.
Movement and Jumping
During a match, vanilla food / damage tracking is bypassed (food never depletes, vanilla fall/contact damage is suppressed and replaced by the match's own damage system).
The plugin also exposes a multi-jump mechanic: pressing the elytra-trigger keybind in mid-air consumes a "jump" if the player is wearing an elytra (granted by the Shadow Glide passive). Default maximum jump count is 1; future stat sources may extend this via the JUMP_COUNT modifier.
Scoreboard
An in-match sidebar scoreboard refreshes in place (only changed lines are rewritten, so it doesn't flicker) with:
| Line | Value |
|---|---|
| Wave | Current wave level (max(1, secondsSurvived / 36)) |
| Time | MM:SS of unpaused match time |
| Enemies | Live mob count in the match |
| Fragments | Current emerald currency balance |
| Luck | Effective luck stat, to one decimal (chest LUCK rolls grant fractional +0.2 increments, so the decimal matters) |
| Difficulty | A wave-derived threat label, not the difficulty tier you picked at match start: Easy (wave 1-5), Medium (6-10), Hard (11-20), Very Hard (21-35), EXTREME (36+) |
Level and XP live on the player's own boss bar (Level N -- xp/required), not the scoreboard. The sacrifice pool and the ghost-army countdown each get their own boss bar as well.
Match End
When the player dies or quits, the run is summarized in chat (kills, level, time survived, weapon and damage breakdown). Completed Challenge-mode runs and Endless-mode runs that died produce a leaderboard entry under their respective Mode x Difficulty bucket. Cheated runs (/mbs cheat used) are flagged and not posted to the leaderboard.
Any unflushed Soul Echoes collected during the run are added to the player's meta-progression balance at match teardown.
See Leaderboard and Meta-Progression for details on those systems.