Updates

Everything that changed on Decimated, newest first. Restart Minecraft after an update to get the new mod.

  1. ▍11 November 2026

    1. Places, soldiers and survivors, NPC movement, the Editor, admin guide

      01:30 · 38012bf
      • Places: safe zones and named areas merged into one table (places, migration 6) and one command (/place; /area and /safezone still work); any place can be a safe zone and play a sound
      • Soldiers guard places (/soldiers <place> <count>|on|off|dress|respawn): random or custom outfits, Point Blank guns drawn when zombies come, firing with each gun's rate, damage, magazine and reload, bursts or single shots
      • The wild: lone soldiers and survivors turn up near players; zombies hunt them and they can die; every setting is adjustable (/soldiers wild set), spawn one now (/soldiers wild spawn)
      • NPCs can stand still (as before), walk around within a radius or stay inside their place; bring here
      • The Editor (admin tools): places, NPCs (what they wear, their menu, movement), loot crates (contents, open as it is, cooldown), players (record, live inventory, quests, coins, waypoints, conditions), clans, the world and the wild
      • Website: hidden admin guide at /guide/admin; docs updated
    2. Update capes feature

      00:12 · b54a8aa
      • The cape setting is just "Capes" in the game now: "Players' capes, on their backs and elytras." (Settings > Experimental), no longer called OptiFine capes
      • In the code: OptifineCapes is Capes
    3. Round safe zones and areas on the map, airdrops on the compass, rotating minimap with shapes

      00:12 · 1b22294
      • Safe zones and named areas made as boxes count as round: the circle through the box's corners (bigger, never smaller), for protection, zombies, outlines and the map
      • The map shows every safe zone (green) and area (amber) as a softly filled circle with its name, explored or not
      • Airdrops: the nearest one on the compass bar (distance and an arrow towards it) and on the map while it's down
      • Minimap: rotates with you by default (north up as a setting), and can be a square, circle or hexagon
  2. ▍10 November 2026

    1. Head slot with night vision and thermal goggles, map waypoints, update log, experimental settings

      23:40 · bda5e6a
      • Gear: a third slot for the head; Night Vision Goggles (dual tube, green intensifier view) and Thermal Imaging Goggles (grey view, living things in sight glow white); N flips them down/up, battery as durability, a Battery (coal) or Scavenged Battery (charcoal) recharges them; drawn on players with a hinge that swings
      • Map: right-click the full map (or + Waypoint here) for a named, coloured waypoint; shown on the map and minimap, saved in the database by account (waypoints table, migration 4) and synced over the live link
      • Settings: an EXPERIMENTAL tab with Capes and Body in first person, both off by default
      • Body in first person (experimental): your own legs, arms and gear when you look down; guns use Point Blank's first-person view only while aiming
      • Website: /updates lists every update from the git history, /api/updates for the game; the main menu shows the latest update (NEW until seen) and an Update log screen
      • Docs: features, guide
    2. Zoom, lie-down Toggle/Hold setting, DEV region, hot reload dev runs

      18:01 · a26d4f8
      • Zoom: hold C (like OptiFine), smooth camera while zoomed, scroll for 1.5x-16x
      • Lie down: Toggle or Hold, a setting under Settings > Decimated
      • Main menu: a dev server running on this computer shows up as the DEV region (status reports "dev")
      • Play Online button just says Play Online
      • Dev runs on the JetBrains Runtime with enhanced class redefinition; shared IntelliJ configurations in mod/.run (Dev Game, Dev Server, Attach...), ModDevGradle's own ones off; bun run swap sends everything compiled since each run's last swap
    3. Prone (Ctrl / Space), one Settings screen with Minecraft's options, capes off

      04:16 · 8edcd50
      • Lie down with Ctrl (rebindable), get up with Ctrl or Jump; forced crawling pose on both sides, no sprinting, ends in water, riding, flying, gliding, sleeping, death, respawn and dimension change
      • Settings: DECIMATED and MINECRAFT tabs (Video, Sound, Controls, Skin, Chat, Language, Accessibility, More options); the main menu and pause menu have one Settings button
      • Singleplayer and Multiplayer moved off the main menu onto Minecraft's Options screen
      • Minecraft's options screens drawn in Decimated's look (buttons, sliders, lists, background)
      • Capes toggle greyed out and OptiFine capes forced off for now
    4. Server mods: decide what's installed from the jars in the mods folder itself

      03:44 · 31dad23
      • Sodium unpacks its real jar elsewhere at start and NeoForge points there, so the check saw a different hash and
      • reinstalled (and would have removed that unpacked file). Now the mod id inside each jar in mods/ decides: the right
      • jar there under any name counts as installed, and only other versions in mods/ are ever removed.
    5. Regenerated assets

      03:33 · 7a4172f
    6. Server mods: a jar already in the mods folder counts as installed

      03:31 · 95b26fa
      • Sodium is a jar inside a jar, so NeoForge can't name its file and the check treated the copy in mods/ as freshly
      • installed: "Sodium installed, restart" on every start.
    7. web/files: files the project hosts itself, in git, served at /files/<name>

      03:24 · 7f720ec
      • Player mods that aren't on Modrinth go there (IrisSodiumCompat moved from scripts/player-mods/); player-mods.json
      • points at them with { "file": ... }, and deploy's git pull puts them on the server.
    8. gitignore: no jars, except scripts/player-mods/ and Gradle's wrapper

      03:21 · ebcf0ed
    9. Extra mods for players come from scripts/player-mods.json

      03:19 · c507b49
      • One file in the project lists them: from Modrinth by name and version (or latest), or jars in scripts/player-mods/.
      • Sodium, Iris and IrisSodiumCompat are in it. build-mods no longer reads your own .minecraft folder.
    10. The mod list also takes the mods in your own game's mods folder, for every player

      03:16 · b570570
      • scripts/build-mods.mjs reads the server's mods (needed to join) and scripts/local.json's playerMods (default: your
      • game's mods folder: Sodium, Iris...), one entry per mod id, marked "for": "server" or "players".
    11. LAST DAYS look: new shop counter and door, weathered textures, texture resolution rule

      03:07 · b6e3716
      • Shop counter rebuilt from LAST DAYS's own textures (tbox); the original kept as Shop Counter (Classic); new Shop Counter Door that opens and closes (right-click: model and barrier).
      • Every palette colour is now a weathered swatch per material (wood grain, scratched and rusting metal, chipped paint, woven fabric, stained cardboard...), less saturated and dirtier, like LAST DAYS.
      • Resolution rule: items and models 64x64, blocks (block textures, placed traps) LAST DAYS's 32x32 with their own block palette; hand-drawn block textures weathered at that size.
      • Previews draw the real textures (art/png.mjs reads LAST DAYS's).
      • The flat-colour art is backed up in art/backup/2026-11-10-flat-colours/.
    12. Show each region's ping in the region selector and the main menu

      02:25 · abd76da
      • The mod's API answers /api/ping without touching the database; the game times it (one warm-up, then the fastest of
      • three) and shows it per region, coloured like the HUD's ping.
    13. Docs for the current setup; server scripts only go into a local server when there is one

      02:20 · 65c2200
      • SETUP.md rewritten for how it runs now: building and signing here, the VPS with the game server and website in
      • pm2 behind Nginx Proxy Manager, the firewall, deploy and its .env, releasing each kind of change, working on
      • another computer. README, FEATURES and CLAUDE.md follow (listening on every address, deploy, the game server's pm2
      • file). build-server-scripts no longer writes next to the project when local.json names no game server.
    14. deploy.sh: never delete published files on the server

      02:18 · 7b7d815
      • A computer that only built the mod would otherwise wipe the mod list and game scripts there.
    15. deploy.sh: join the nvm paths with paste

      02:05 · 9e5676f
    16. deploy.sh: every nvm node version on the server's PATH (pm2 may be in an older one)

      02:05 · 31e7408
    17. deploy.sh: dry run skips the jar and server script copies

      02:03 · cb83e85
    18. deploy.sh: never wait for a git login; quote .env commands

      02:01 · 1bd5b5f
    19. deploy.sh: find pm2 installed with nvm on the server

      01:55 · 73f3668
    20. Regenerated asset listing

      01:50 · 461e0e1
    21. Listen on every address by default

      01:40 · 54949c9
      • The website (web/server.ts) and each region's API (webServer.host in server.json) now bind 0.0.0.0, so a proxy on
      • the VPS can reach them. "host": "127.0.0.1" limits either to the machine itself. SETUP.md updated.
    22. Add scripts

      01:11 · 059d7ac
    23. first commit

      00:45 · 166325e