A downloadable asset pack

Buy Now$12.99 USD or more

Your own town after the fire, the war or the years, made from your own tileset.

Every story with a war, a dragon or a time skip needs the same town twice: before and after. Wrack makes the after from the before. When a map loads it reads the tileset images your project already uses and derives four states from those pixels, then switches the whole map, a region or a single building into one of them, and can play the change on screen. Your map file is never touched, so events, cutscenes and passability stay exactly as you made them. No image files ship with Wrack, and nothing is drawn by hand: every changed tile is made from your own art.


⚠️ Compatibility — the question you actually have

Tested against RPG Maker MZ with the stock scripts unmodified, verified by running the plugin in the real engine rather than only in tests.

Plugin Manager order:

  1. WrackCore.js — [Wrack] Core: derives burned, ruined, overgrown and abandoned tiles from your own tileset pixels.
  2. Wrack.js — [Wrack] Your own town burned, ruined, overgrown or abandoned, re-struck from your own tileset at load time.

Core methods extended — 11 by saved-original prototype extension, none replaced: Tilemap.prototype._addAllSpots, Tilemap.prototype._addSpotTile, Tilemap.prototype.updateTransform, Tilemap.prototype._addSpot, CombinedLayer.prototype.addRect, Spriteset_Map.prototype.loadTileset, Spriteset_Map.prototype.update, Spriteset_Map.prototype.destroy, Scene_Map.prototype.isReady, Game_Switches.prototype.onChange, Game_Interpreter.prototype.updateWaitMode.

Because nothing is clobbered, Wrack co-exists with other plugins that patch the same seams, including large suites.

Four aftermaths

  • Burned. Each roof keeps its own tiles, thatch or slate, blackened, with ragged holes burnt through it, their rims still glowing and the charred beams standing inside, and ash lying in drifts across roofs and ground with embers still glowing in it. Soot climbs the walls, windows go dark with the fire still low inside, the ground burns black and trees burn to bare, forked branches. Smoke columns rise and sparks drift.
  • Ruined. Roofs fall in: a dark void down into the house, grey weathered rafters where they still stand, heaps of the fallen roof inside, and the house's own roof colour left in a torn frame, so every house stays recognisable. Rubble cut from your own wall stone lies against the walls, walls break to jagged courses and crack, boards are stove in, windows are smashed to jagged shards, and the grass dries out in patches of straw.
  • Overgrown. Ivy climbs every wall face from the ground, moss fills the roofs, grass creeps over paths and paving in organic drifts, and lily pads cover the water, all in your tileset's own greens.
  • Abandoned. Colour fades under dust, roof tiles slip, windows are boarded up, damp runs down the walls, grit settles on paths and paving, the lawns brown in patches and the lamps go cold.

Switch it however your story needs

  • A whole map, a region id or a rectangle (one building), by map notetag, switch binding, plugin command or script call.
  • Play the change on screen: a fire whose burning line wanders across the map with flames standing on it and the ground scorching just ahead (water never burns), the years creeping in through organic patches that cross tile borders, or a quick fade. The event can wait for it to finish.
  • What you set is saved with the game, separately for each map.

It reads your tileset the way MZ declares it

Water, ground, roofs, walls, wall tops and floors are read from the sheets MZ assigns them to, and every 48x48 object cell is judged by its own pixels (foliage, glass, wood, stone, a small scatter). Each ground cell is read as grass, earth or paving from its own tile, so straw lands on lawns and grit on cobbles. Green growth, rubble and planks are painted in colours taken from your own tileset. Autotiles stay seamless: every mark inside a tile stays inside one quarter tile with a margin and every recolour is per pixel, and each map cell picks one of three variants. Drifts of ash, straw, dust and creeping grass are painted across the map itself rather than into tiles, so they cross tile borders and never line up on the tile grid.

Tested in the real engine

Every state and every transition was run in RPG Maker MZ's own runtime from the exact zip you download: on four tilesets of our own, and installed into a blank MZ project on the stock Outside, Inside and Dungeon tilesets. A burned town with smoke and embers running, the years creeping in, and a fire front sweeping it measured at most 18.703 draw calls per frame with no texture uploads and no display-object growth.

The towns in these screenshots are drawn with our own Verdant tilesets, sold separately: Verdant 01 Overworld, Verdant 09 Town, Verdant 45 Walls and Roofs, Verdant 04 Tidewater and Verdant Props for the summer town, Verdant 41 Taiga and Verdant 43 Snowbound for the winter one. Wrack itself ships no art and works on any MZ tileset, the stock ones included.

In the zip

  • WrackCore.js (the pixel rules) and Wrack.js (the engine side): raw, readable, commented JavaScript.
  • Readme_for_Users.md and LICENSE.txt (use it in any number of your own commercial or free games).

From the same studio

  • Strew: dresses your own hand-made maps from your tileset in one pass, flowers in drifts and debris in corners.
  • Cloudshadow: the drifting shadows of passing clouds over your maps, shaped to each map.
  • Smithereens: strike a pot, a crate or a rock and it breaks into real pieces that skitter and settle.

AI disclosure: this plugin's code and graphics were made with generative AI. It ships no sounds and no story text.

Made by Core Systems Asset Factory.

Purchase

Buy Now$12.99 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $12.99 USD. You will get access to the following files:

wrack-mz-plugin.zip 57 kB
Version 1

Development log