January 2026 updates

More changes than I expected this month! Trying not to let Tilemap Town development take up all of my hobby time, but I'll still fix issues when I see them of course. I guess I should probably try to avoid introducing big new features like doodle boards if I'm not also ready to spend a bunch of time polishing them up (turns out quickly throwing something together will then cause me to see a lot of issues I then need to fix), but I'm really glad I did in this case because they're a huge improvement for the platform and open up a lot of new possibilities.

Client changes:

  • Increase contrast for the chat area when chat isn't expanded/pinned.
  • Reduced chat width on the touch UI version of the web client when the page is in a landscape orientation.
  • Changed default server address on web client to the tilemap.town one.
  • Allow exclamation points in URLs.
  • Fix CSS so that scroll bars are not added to windows when not needed.
  • Add the ability to put "usable" items on your hotbar and then use them with Space.
  • Added buttons to filter the chat to all messages, only message pertaining to your current map, or only private messages.
  • New "send command" option when selecting an entity, to send the entity any of the "verbs" it has listed. This means you can select a doodle board and then easily get its menu.

Server changes:

  • /e command now works for IDs that correspond to users that are offline, and will tell you the username.
  • Scripts can now always get the ID of the map a user is on if the user is on the same map as the script, or if the user is the script's owner.
  • A private message sent to an ID rather than a username should now work, even if the receiving user is offline or is using the messaging client.
  • When a user connects on messaging mode and then normal mode or vice versa, kick the old connection.
  • Fixed errors that happened when scripts or desktop client ran commands.
  • Server no longer adds unnecessary whitespace to the JSON it sends to clients, saving a small amount of bandwidth.
  • Gadgets can now be cloned by default without setting a permission (but you can still deny the ability to clone them).
  • Changed projectile shooter gadget so that when a projectile is set to break on collision with a user, it will do so on the user's coordinate, not adjacent to it.
  • Mini Tilemap gadget can now accept a raw list of tiles and display that. No UI to create this list, though.

Privacy improvements:

  • Add a notice for when an entity starts listening to chat.
  • /listeners command now works again and now includes scripts that are listening to chat.
  • The warning that bots may be listening to a particular map's chat is now shown if the listening is done via scripts or message forwarding, not just /listen.

Doodle board changes:

  • High-color mode with 2x1 tiles, supporting up to 64 colors, flood fill, and color pick.
  • Doodle board's size can be changed, and a preview in pixels is shown for the size.
  • Added a bunch more palettes; see this guide for a list.
  • Read doodle board palettes from a file, so that the colors shown in the color menu will be correct if using a supported alternate palette.
  • Added single-tile invert tool for 4x2 tile doodle boards.
  • Doodle boards no longer re-send the entire canvas every time a few pixels are changed, and now use a new partial update system (protocol change!).
  • No option to do this in the client yet, but you can set properties to apply an offset to the board or ignore clicks.

Previous Post