Fork me on GitHub

Tilemap Town

Collaborative map building and hangout/roleplay

Basics

Controls
  • Arrow Keys, WASD, Num Pad: Movement. Supports 8 directions. Home, End, Page Up, Page Down also work for diagonal movement. Holding Shift will hold the player in place and rotate on the spot.
  • Mouse Left Click: Varies depending on Build Setting. 'Select' can allow a tile or group of tiles to be selected. 'Draw' will place selected tile from build menu or hotbar. Many other features as well like menu navigation.
  • Mouse Right Click: Opens a context menu when used on hotbar, entities, and objects in the 'selection info'
  • Numbers 0-9: Shortcut to any hotbar item.
  • Spacebar: Place selected hotbar item under you.
  • R: Swap between 'Select' and 'Draw' modes.
  • F: Copies tile mouse is hovering over ('Draw' mode only).
  • Ctrl + Z: Undo last action such as drawing or deleting tiles.
  • Enter: Selects the chat box, or sends a message.
  • Escape: Deselect current selection or chat box.
  • Ctrl + Move: Offsets your avatar from center. /offset can be used to reset.


Useful Commands

/me text
Sends text formatted as an action.
For example: "/me waves hi" becomes "* Player waves hi."


/ooc text
Posts a message that's marked as being out-of-character (OOC).
For example: "/ooc Hello" becomes "[OOC] Player: Hello."


/spoof text
Sends text formatted to narrate something happening.
For example: "/spoof A skeleton appears" becomes "* A skeleton appears (by Player)."

/tell username text
Sends a private message to someone. You may click on a private message to reply to it quickly.

/whereare , /wa
List public maps that have users on them, and topics if they are set. Also includes buttons to teleport to these locations.

/nick name
Change your display name.

/userdesc text , /look user
You can set a character description through /userdesc text which other players can read by using /look name. It's also possible to do by selecting and attempting to edit another player.

/publicmaps
List all public maps. Also includes buttons to teleport to these locations.

/who
List all users on the map.

/sethome , /home
Allows you to set your current location as your "home", which you can teleport to with /home.

/roll xdice ysides
Rolls x many dice each with y many sides then displays the total number.

There's many more commands documented on GitHub, and in the other tabs. Don't worry though, you rarely need most of them.


Registration & Account
A registered account allows users to save character information and create maps, and more.

/register username password
Registers your account under said username and password if not logged in.

/login username password
Can be used as an alternative way to login.

/changepass password
Changes password to new password if logged in.

Chat

BBCode reference
Tilemap Town uses BBCode for text formatting, just like many forums.
Style Raw Post
Plain text text
Italics [i]text[/i] text
Bold [b]text[/b] text
Underline [u]text[/u] text
Strikeout [s]text[/s] text
Superscript x[sup]text[/sup] xtext
Subscript y[sub]text[/sub] ytext
Large [large]text[/large] text
Small [small]text[/small] text
Monospace [tt]text[/tt] or [code]text[/code] text
No Parse [noparse][b][i]text[/i][/b][/noparse]
Displays all bbcode in the tag as plain text.
[b][i]text[/i][/b]
Color [color=#]text[/color]
Where # can be replaced by a color like red, pink, teal, etc.
red pink teal
Specific Size [size=#]text[/size]
where # is text size in pixels. Must be a number from 4 to 40.
Smallest Size to Largest Size
Hyperlink [url=link]text[/url]
Attaches the link to the text. Links open in new tabs.
[url]link[/url] works too.
text
Command [command]cmd[/command]
Given a valid command, it creates a button other users can click in chat. Commands do not use / at the start. Especially useful for creating signs that offer teleports, to act as warps.
[command]roll 2 2[/command]
This would create a button that upon clicked rolls 2 dice with 2 sides each.


Chat commands

/clear
Clears chat log.

/tell username text
Sends a private message to someone. You may click on a private message to reply to it quickly.

/roll xdice ysides
Rolls x many dice each with y many sides then displays the total number.

/privateroll xdice ysides
Roll dice but results are shown just to you.

/me text
Sends text formatted as an action.
For example: "/me waves hi" becomes "* Player waves hi."


/ooc text
Posts a message that's marked as being out-of-character (OOC).
For example: "/ooc Hello" becomes "[OOC] Player: Hello"


/spoof text
Sends text formatted to narrate something happening.
For example: "/spoof A skeleton appears" becomes "* A skeleton appears (by Player)"

/status , /status name (desc), /away (desc)
Set your status, and you can provide an optional status message. You can use whatever word you want as a status, but the web client recognizes away, busy, ic, rp, iic (Interested in being In Character), lfrp (Looking For RolePlay), and ooc.
/away message is a shortcut for /status away message.
/status or /away on their own will clear your status.


/ignore user , /unignore user , /ignorelist
Can be used to add or remove users from your ignore list. Ignored users cannot send you direct messages or send requests. /ignorelist can be used to view the full list.

/watch user , /unwatch user , /watchlist
Can be used to add or remove users from your watch list. This is sort of like a friends list, and future client versions will allow you to easily which of your friends are online. /watchlist can be used to view the full list.

/topic message, /topic, /cleartopic
If allowed, sets a message as the current map's "topic", which can signal what people are currently talking about, or what event is going on, and this topic will show up when entering the map as well as in /whereare.
/topic can be used to get the current topic. /cleartopic will manually clear the topic, and this will also happen automatically when no users are on the map.


/exportlogs
Save a plain text file of your chat log.

/oops
Put the most recent text you tried to send back into the chat bar, so that you can have another attempt at a command.

/time
Displays the server time and date.


Finding people

/findiic
Finds players with their status set to iic (Interested in being In Character) or lfrp (Looking for RolePlay).

/who
Lists all users on the map.

/entitywho
Lists all entities on the map, not just limited to users.

/gwho
Lists all users on the server

/whereare , /wa
List public maps that have users on them, and topics if they are set. Also includes buttons to teleport to these locations. /wa c will add coordinates to each player.

/last username
Lists the last time the user logged in.

/offlinequeue username
View what messages you have queued up for when that user logs in. /offlinequeue username clear will clear the queue.

Avatar / Account

Setting up a custom player graphic

You can use custom player graphics on Tilemap Town! If you register an account you can upload PNGs directly to the server (click the Files button) but an alternative is to use an image hosting site. Currently the server is set up to accept images from Imgur, ImgBB and Postimages. Additional image hosts can be added on request, as long as they are set up properly.

For creating the actual image you'll use for your character, there are templates available on GitHub. Player animation frames are 32x32 and the bottom center will be aligned with the bottom center of the tile you're standing on. The width and height of the image is used to determine how many animation frames and directions the player graphic has, so pick a template that matches your needs.

You can use /userpic your_image_url_here to set your avatar to a URL. Make sure this is actually a link to the PNG file itself, and not just to a webpage that has the image on it. For example, you want https://i.imgur.com/aQlAIjk.png and not https://imgur.com/aQlAIjk. On Imgur this can be done by right-clicking on the image and copying its link.



Player Customization

/nick name
Change your display name.

/userdesc text , /look user
You can set a character description through /userdesc text which other players can read by using /look name. It's also possible to do by selecting and attempting to edit another player.

/userpic preset
Sets your player graphic to one of the preset avatars. This includes: bunny, cat, hamster, fire, snail, turtle, and invisible.

/userpic x y
Sets your player graphic to a tile (x,y) in the potluck tileset.

/userpic tileset x y
Sets your player graphic to a tile (x,y) in any tileset you like.

/userpic link
Sets your player graphic to an image link; must be a site that is specifically allowed by the server. See "Setting up a custom player graphic" above.

/savedpiclist set name url
Sets up a shortcut to switch to a particular player image URL quickly.

/savedpic name
Switch to a picture that was previously saved with /savedpiclist set.

/savedpiclist del name , /savedpiclist clear
Deletes a saved player image shortcut. Using /savedpiclist clear will remove all saved shortcuts.

/savedpic , /savedpiclist , /savedpiclist list2
Presents a bunch of buttons you can click on to switch between the different player image URLs you have saved. Using list2 will list as text (for clients that can't use buttons)

/offset x y , /roffset x y , /offset
Moves your avatar off-center horizontally right x pixels and vertically down y pixel. Values range from -32 to 32. /roffset is relative and will add the values to your current offset. /offset 0 0 or /offset will reset your offset to (0,0)

/userflags add flag , /userflags del flag, /userflags
Using add will add said flag, del will delete said flag, and /userflags by itself will list your current flags. Valid flags include:
  • bot: Marks this user as a bot
  • hide_location: Sets user's location to private so they will not show up in /whereare and similar commands.
  • hide_api: User will not show up on the API, which includes the list for who's currently online on the main page.
  • no_watch: Disables watching the user.
  • secret_pic: Prevents checking the user's pic and desc remotely.


Morphs
Morphs let you store a name, player graphic, description, tags, and a collection of saved player images under a name, and quickly switch between these with a single command. This lets you store multiple characters or forms and swap between them easily.

/morph name
Switches to a different morph.

/morphlist set name
Stores all of your current information to a morph with a given name, overwriting it if it already exists..

/morphlist del name , /morphlist clear
Deletes a morph with said name. Using /morphlist clear will remove all morphs.

/morph , /morphlist , /morphlist list2
Lists all morphs as quickswap buttons. Using list2 will list it as text (for clients that can't use buttons)


Registration & Account
A registered account allows users to save character information and create maps, and more.

/register username password
Registers your account under said username and password if not logged in.

/login username password
Can be used as an alternative way to login.

/changepass password
Changes password to new password if logged in.

Map / Teleports

Teleport

/coords
Display your coordinates.

/tpa user , /mjoin user
Request to teleport to user.

/tpahere user , /msummon user
Request a user teleport to you.

/tpherecommand
Get a command you can paste to other people (or put on a sign) that will allow them to teleport to your current location.

/tpaaccept user
Command to accept teleport requests. This command is also use for other kinds of requests, like giving someone items.

/tpdeny user , /mdecline user
Command to decline teleport requests.

/tpcancel user , /mcancel user
Cancels all teleport requests you made towards a specific user.

/publicmaps
List all public maps. Also includes buttons to teleport to these locations.

/defaultmap
Teleports you to the default map.

/map mapID (x y)
Teleport to a specific map. X and Y are optional and will teleport you to a specific tile coordinate on said map.

/goback
Go back to the ma pyou were previously on.

/sethome , /home
Allows you to set your current location as your "home", which you can teleport to with /home.


Map management

/mymaps
Lists all maps you are the owner of.

/newmap
Generates a new map and map ID number (if registered).

/mapid
Lists the map ID of the current map you are on.

/mapname name
Renames the map you are on.

/mapdesc text
Changes the description of the map.

/mapowner user
Transfers ownership of the map to someone else.

/mapsize x y
Resizes the map to be x tiles wide and y tiles high. Caution: extends/shrinks maps by moving the right and bottom edge of the map.

/mapedgelink edge mapID
Allows maps to be linked to another. Edge should be a number from 0 to 7 indicating a direction starting from east and moving clockwise. none is a valid mapId and will remove the link.

/mapspawn
Sets starting position to the tile you are on.

/mapdefaultfloor tile
Sets default ground tile. Set to grass tile by default.

/mapwallpaper url (type)
Sets a wallpaper for the map. Wallpapers are images overlaid on a map and replaces the default floor (unless over_turf is enabled, which makes the wallpaper overwrite all ground tiles). Multiple types can be accomplished by putting them in a line (example: /mapwallpaper url center repeat repeat_x repeat_y offset=8,8). Wallpaper options include: absolute, center, repeat, repeat_x, repeat_y, over_turf, offset=x,y (where x and y are the offset in pixels). /mapwallpaper none will remove a wallpaper.

/mapmusic url
Sets background music for the map. You can use MOD, S3M, XM, IT, or MPTM formats. /mapmusic none will remove music that was previously set.

/mapprivacy type
Sets map privacy. The types are:
  • public: Map is listed publicly through commands like /publicmaps. Anyone can join by default.
  • unlisted: Map is not listed publically but anyone can join by default.
  • private: Map is not listed and users must be explicitly given permission to join.


Map Permissions

/permlist
Lists default and user permissions.

/mapbuild on/off
Enables or disables building on the map by people who aren't the owner.

/grant permission target , /deny permission target , /revoke permission target
Adjust map premissions for a particular 'target'. Permissions can be set to allow (with grant), disallowed (with deny), or map default (with revoke). The 'target' can be:
  • user : Changes permissions on that specific user.
  • !default : Default map permissions. Any user who joins will have these permissions enabled (unless denied).
  • !guest : Applies to all unregisted guests to add further restrictions. Works with Deny & Revoke only.
  • group:groupid : Applies to all members of a group. Works with Grant & Revoke only. (replace groupid with the ID number of said group)
The permissions that can be granted or denied include:
  • entry: Allowed to teleport to the map
  • build: Allowed to build
  • sandbox: Allowed to edit or delete other peoples' objects freely ()
  • admin: Allowed to use admin commands
  • map_bot: Allowed to use /listen
  • bulk_build: Allowed to use builk-build protocol commands (BLK)
  • object_entry: Allowed to bring non-player entities here
  • persistent_object_entry : Allowed to bring non-player entities here persistently (otherwise, they'll be sent home when the map unloads)
  • modify_properties: Allowed to modify properties of the map or other enity
  • remote_command: Allowed to make the entity do a command
  • modify_appearance: Allowed to modify certain properties of the map
  • list_contents: Allowed to get a list of the entities on the map remotely
  • set_owner_to_this: Allowed to set the owner of their entities to this entity
  • set_topic: Allowed to change the topic on this map


Saving and Other Features

/savemap
Saves any changes made to the map. Normally this happens automatically when the map is unloaded, but this guarantees the map changes are safe.

/mapdisablesave on/off
Enable or disable map saving temporarily.

/mapexport
Download the current map.

Moderation

Map Moderation

/kick user
Kicks the user off the map.

/kickallusers
Kicks all users off the map.

/returnall user , /returnall
Returns/removes all entities belonging to that specific user from the map. Without a specific user, all placed entities that are not owned by the map owner will also be returned/removed.


Server Moderation

/broadcast text
Sends a message to everyone on the server.

/operoverride
Toggles whether or not you can bypass permissions.

/ipwho
Lists all online users & matching IPs.

/ipban ip;reason;length
Bans a user from accessing the site from said IP. Reason will show up whenever the user tries to access the server. Length is specifed #units. Such as 1d (for 1 day) or 30m (for 30 minutes). For units:
m=minutes
h=hours
d=days
w=week
y=year
Blank=If length is left blank, the IP will be banned indefinitely unless unbanned.


/ipunban ip
Removes all bans to an IP.

/ipbanlist
Lists all IP bans.

/resetpassfor user
Resets the password for a specific account.

/rehash
Reloads the config file, including any resource files the config includes.

Other

Rides

/carry user
Offer to carry a user. Carried users overlap and move on top of the user that's carrying them whenever the ride moves.

/carryme user
Requests a user to carry you.

/hopon user
Command to accept being carried.

/carrywho
Lists who you are carrying.

/ridewho
Shows who you are riding.

/followme user
Offer for a user to follow you. The following user will move to the last tile the leading user was at.

/followyou user
Request to follow another user.

/followmap user , /followyoumap user
Offer to teleport to other maps when the other user does.

/syncmove user
Offer to sync movement with a user. When synced, if either player moves then both move to the same position.

/dropoff user , /rideend
Stops carrying, leading, or syncing with a specific user. /rideend will end all interactions at once.

/hopoff
Stop riding, following, or syncing.


Inventory

/giveitem user item type
Offers a user an item from your inventory (or at the very least loaded somewhere). For give types there are:
  • transfer: Moves the item to the user's inventory and assigns them as the owner.
  • move: Moves the item to the user's inventory without changing ownership.
  • copy: Puts a copy in the user's inventory without removing it from your inventory.
  • tempcopy: Gives a copy that's marked as temporary (even if already marked)

/getturf
Creates an inventory item that is a copy of the ground tile you are on.

/getobj
Creates inventory items that are copies of every object you are on.


Permissions

/requestpermission user permission
Requests that the user grants you a temporary permission(s). Permissions can be revoked manually or automatically revoked when either is logged out. Permissions include:
  • move: Teleport user around the current map.
  • move_new_map: Teleport user between maps.
  • minigame: Act on your control inputs, and/or show you a custom hotbar
  • set_owner_to_this: Set you as the owner of any inventory item belonging to the user.
  • modify_appearance: Allows you to change the user's name, description, avatar, and/or tags


Miscellaneous

/playmusic url
Starts playing tracker music from a given URL

/stopmusic
Stops whatever music is currently playing

/undodel
Undoes your most recent delete

/releasekeys
If a script is currently acting on your inputs, this command will cancel it out.

/disconnect
Disconnect yourself from the server.


Groups
The main purpose of groups is to allow granting a permission to every user within a group, and tie the permission to group membership.

/newgroup
Creates a new group.

/namegroup id text
Rename a group (owner only).

/descgroup id text
Change the description of a group (owner only).

/changegroupowner id user
Transfer ownership from you to another user.

/deletegroup id
Deletes a group (owner only).

/joingroup id (password)
Join a group. A password may be needed if set.

/joinpassgroup id password
Sets a password for joining the group. If left blank, unsets the password.

/ownedgroups
Displays all groups you own.

/mygroups
Displays all groups you are a part of.


Entities
Entities are player objects, inventory items, and anything else that can exist on a map that isn't part of the map data itself. All players are considered entities and it's possible to make NPC entities that players can move and use commands on. There is a utility command name /entity which can do a variety of actions on entities, with /e as a shortcut.

/e id, /e id info
Gets info of entity, such as properties and contents.

/e id locate
Displays where the entity is.

/e id tags
Displays tags associated with the entity.

/e id addtag tag_group tag value , /e id addtag_root tag value
Add a tag to an entity.

/e id deltag tag_group tag , /e id deltag_root tag
Delete a tag from an entity.

/e id grant permission id , /e id deny permission id , /e id revoke permission id
Sets permissions (see Map section for info). There is also tempgrant & temprevoke to temporarily grant permissions that will be gone when either entity unloads.

/e id temprevokeall
Revokes all temporary permissions given through tempgrant.

/e id temprelease user
Remove a temp permission given to the entity/user.

/e id summon
Teleports entity to the tile you are on.

/e id move x y (direction), /e id rmove x y (direction)
Moves entity to tile (x,y) on the current map. Direction optional. Using rmove will relatively move it, adding x and y values to it's current coordinates.

/e id do command
Entity will be issued a command to use. For example /e id do map mapnumber x y will teleport the entity to tile (x,y) on the associated map with the corresponding mapnumber.

/e id save
Saves any changes that have happened to the entity. Normally this happens automatically, but this is provided just in case.

/e id delete
Delete an entity that belongs to you.

/deletemytempitems
Deletes all temporary entities that belong to you.

/deletemytempitems all/here/inventory
Deletes all temporary entities that belong to you, in a specific area.


Bots and listening
Bots can listen to events happening on a map and receive messages as if they were there. See the protocol document for more info.

/listen category,category,... map_id,map_id,... , /unlisten category,category,... map_id,map_id,...
Sets the bot to listen to a specific category of event on a given map id. Bot must have been granted the map_bot permission for the map in question, though remote_chat is also acceptable for the chat and chat_listen categories specifically. The categories to listen in on are:
  • move: MOV
  • build: PUT, DEL, BLK; will send an initial MAI and MAP
  • entry: WHO; will send an initial WHO
  • chat: MSG
  • chat_listen: sends WHO messages when users start and stop listening to chat on this entity; refer to the protocol document for more info
/unlisten will make the bot stop listening.


/kicklisten category,category,... map_id,map_id,... username,username,...
Makes some amount of users stop listening to some amount of categories on some amount of maps

/listeners
List all remote clients listening into the map.

/keep_entities_loaded (id,id,id...)
Creates a list of enties to keep loaded. Using /keep_entities_loaded will reset the list.

/test_entities_loaded id,id,id...
Tests if specific entities are loaded.

/message_forwarding set entity_id,entity_id,entity_id... (MAP,MAI,PRI ...)
Sets messaging forwarding properties. See the protocol document for more info.