Files
MeatSlicer/docs
MeatSlicer Developer 0ec12cd72c Phase 5: active items — room-clear charged, dedicated pedestals, Space to use
- ACTIVES table with 10 actives (Bone Nova, Offal Bomb, Blood Transfusion,
  Cleaver Storm, Butcher's Bell, Marrow Draught, Slaughter Time, Panic Room,
  Skinner's Coin, Gut Reroll); charges accrue +1/combat room, +2/boss
- Dedicated 'active' pickup with weapon-style swap-drop; 30% boss / 15% item-room
  bonus pedestal spawns; flat +2 powerScore while held
- HUD active slot with charge pips + READY state; ACTIVES help page (12 pages);
  teal medallion frame variant in draw_sprites.py; 10 generated icons
- Procedural Sfx.active()/activeEmpty() (real clips deferred to audio batch)
- Fix: toast panel width now fits the wider of title/subtitle and clamps to screen
- Bump asset cache to v=40
2026-07-30 17:14:25 +10:00
..

MeatSlicer: A Butcher's Descent

Clear, harvest, descend.

MeatSlicer is an endless top-down arena roguelite. You are the Butcher, descending floor by floor through an infinite meat-locker hell: clear rooms of flesh-hungry horrors, draft mutations, stack grotesque passive items into a broken build, kill the boss, take the stairs. The descent never ends — the only question is how deep you get before you're butchered, and whether your score becomes the new best cut.

Documentation index

Doc Contents
Gameplay Guide Core loop, controls, player stats, rooms & floors, pickups, leveling, scoring, pressure/difficulty systems, HUD
Weapons All 16 weapons with exact stats, drop tiers, and damage math
Items All 46 passive items, stacking/tier rules, proc numbers, synergies
Perks All 23 Mutation Draft perks, XP curve, draft mechanics
Enemies All 6 enemy types, elites, drops, wave and scaling formulas
Bosses All 9 bosses: rotation, scaling, full attack patterns, counters

Quick numbers

  • 16 weapons (1 infinite-ammo sidearm + 15 special weapons across 4 tiers)
  • 46 passive items (stacking, tier cap IX)
  • 23 perks (draft 1 of 3 per level-up)
  • 6 enemy types (+ elite variants)
  • 9 bosses (fixed rotation, one per floor)
  • ∞ floors (permadeath, endless descent, high-score chase)

Running the game

Browser (quickest)

play.bat

Serves the game locally at http://localhost:8123 and opens it. Close the minimized server window to stop.

Electron (desktop app)

npm install
npm start

Build a distributable

npm run dist

Packages a Windows zip via electron-builder into dist/.

Tests

npm test

Runs the smoke test (test/smoke.js).

Tech overview

  • Stack: plain JavaScript + HTML5 canvas, no framework. Electron wrapper for desktop.
  • Entry: index.html loads js/main.js and the game modules directly (no bundler).
  • Code layout (js/): main (loop, screens), state (global state), rooms (floor gen), player, input, weapons, bullets, items, perks, pickups, enemies, bosses, hud, sprites, particles, audio, sfx, sfxbank, utils.
  • Persistence: localStorage only (best score, volumes, auto-draft setting).

The fantasy in one paragraph

Rooms lock behind you. The meat waves come in threes. Elites gleam gold and drop the good stuff. Set the Pressure Dial before you descend — the gauge climbs the longer you stay flawless, and every point of score rides it. Every boss — saw, crown, mother, flenser, choir, father, auger, scald — cycles back around, deeper and meaner, until the meat finally wins. Take the meat. Take the stairs.