3.5 KiB
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 82 passive items, stacking/tier rules, proc numbers, synergies |
| Perks | All 22 Mutation Draft perks, XP curve, draft mechanics |
| Enemies | All 11 enemy types, elites, drops, wave and scaling formulas |
| Bosses | All 9 bosses: rotation, scaling, full attack patterns, counters |
| Debug Console | In-game cheat/inspection toolset (backtick ` key, --dev flag): all 8 tabs, run tainting, stat-rebuild internals |
| Changelog | Release history by version |
Quick numbers
- 16 weapons (1 infinite-ammo sidearm + 15 special weapons across 4 tiers)
- 82 passive items (stacking, tier cap IX)
- 22 perks (draft 1 of 3 per level-up)
- 11 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).
Debug console
An in-game cheat/inspection panel is available in dev builds. Launch with the
dev flag — MeatSlicer.exe --dev, npm start -- --dev, or play-dev.bat /
http://localhost:8123/?dev=1 in a browser — then press the backtick `
key in play or pause. Eight tabs cover health, weapons, items, perks, pressure,
spawning enemies/bosses, timescale, visualizers, and a live stats readout. Using
mutating actions voids the run's best score. See Debug Console.
Tech overview
- Stack: plain JavaScript + HTML5 canvas, no framework. Electron wrapper for desktop.
- Entry:
index.htmlloadsjs/main.jsand 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:
localStorageonly (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.