2D pixel art virtual world focused around collaborative map editing https://tilemap.town/
  • JavaScript 90.7%
  • Python 6%
  • HTML 3.2%
  • CSS 0.1%
Find a file
NovaSquirrel 2ef7c8c694 Make entity compression threshold configurable
Also lower the default to 600, and add a script to apply this retroactively
2026-09-05 17:31:01 -04:00
client Add button to shift a doodle board a given amount 2026-09-04 22:32:23 -04:00
docs Make entity compression threshold configurable 2026-09-05 17:31:01 -04:00
pyserver Make entity compression threshold configurable 2026-09-05 17:31:01 -04:00
tools Make entity compression threshold configurable 2026-09-05 17:31:01 -04:00
.gitattributes :neckbeard: Added .gitattributes & .gitignore files 2017-08-15 17:27:35 -04:00
.gitignore Save/load users from database 2018-09-08 22:47:15 -04:00
credits.txt Update credits.txt 2025-11-17 19:44:35 -05:00
README.md Update README.md 2026-08-07 01:41:49 -04:00

Tilemap Town

Screenshot

Tilemap Town is a virtual world that allows users to move around 2D top-down maps and freely change tiles on them to create worlds together. It's intended for roleplaying and it has tools to facilitate this, letting you easily place down props, narrate actions, and switch between characters. It takes inspiration from BYOND "building games" that used to be popular long ago, as well as from MUCKs, Second Life, Pony Town, and other platforms, but it's not supposed to be a clone of anything in particular.

Tilemap Town's web client and server are Free Software, and the protocol is documented in this repository, as well as a description of what a useful subset of it might be. The protocol is designed so that a subset can still be meaningfully usable, and so that extensions can be added without causing problems for clients that don't understand them. Third party clients and servers are welcome.

Tilemap Town is proudly made without generative AI. Please keep it that way when you build things with it.

Python server

Run runserver.py with your Python 3 interpreter, after installing the websockets library and aiohttp. You may want to look at docs/config.txt for information on how to configure the server's settings to your liking.

There's an optional addon for adding scripting support: TilemapTownScriptingService

Other clients

Qt 6 client 3DS client MU* gateway