Worldhaus

Worldhaus was added on the 12th June 2017 as a fun update for the talkhaus' 8th birthday. Worldhaus is a massively multiplayer building game inspired by reddit's r/place, which was a collaborative project and social experiment where anyone with a reddit account could connect and draw on the canvas resulting in abject chaos. Comparatively, worldhaus is fairly tame, since the world is infinite and each 16x16 chunk can be locked by a user to prevent griefing.

Originally Rena planned to add more features to make it a sort of online rpg game creator, with features like npcs, objects and scripting, but the initial interest in Worldhaus wasn't long-lived enough to warrant future development. Despite this, a whole lot of stuff got built during this time and is still explorable.

= How to access Worldhaus = At launch, Worldhaus was available through an announcement banner at the top of the page, which automatically logged you into the game in a small frame which expanded when you clicked into it. Worldhaus was also and is still available at by logging into your talkhaus account.

= Mechanics = Worldhaus is a multiplayer building game that can be connected to by signing in with a talkhaus account. Once connected for the first time, a player profile is created, and the player is spawned at the starter town in the default dimension. The player can then walk off in any direction to find some unclaimed land, and use the built in rpg tilesets to build custom buildings, towns, terrains, and pixel art.

The Blocks palette
The blocks palette is the default tab of the tools window at the right. Here, one of 53 tilesets can be chosen, the default of which is 009-CastleTown01, and any tile from within the tileset can be chosen for painting.

The default mode is the selection mode, which doesn't allow you to paint any tiles. This is the cursor icon at the top next to. By switching to one of the other layers you can paint tiles on the map.

Layers
The  selection in the Blocks tab allows you to select a layer to draw tiles on.

The background, midground, foreground, and overlay layers
These four layers allow you to draw tiles on the map. The layers are drawn in order, background first and overlay last, which allows overlapping layers of transparent tiles. The foreground and overlay layers render over player characters, and the background and midground behind.

The collision layer
The other option is the collision layer, which allows the player to paint collision tiles onto the map. These are only visible when the collision layer is selected, but stop players from walking through them. If you get stuck due to collision tiles and you don't have access to the chunk to clear them, you can use the  command to get back to the default spawn.

Originally, collision was determined based on the tile you drew, but in order to give players more options, the collision layer was added so that it can be hand-crafted. This opened up the door to adding more than full-tile collision (such as slopes and partial tiles), but it was never added.

Chunks
The map is divided into 16x16 chunks, which can be claimed by a given player to prevent griefing. The owner of the current chunk is shown at the top left if you mouse-over the padlock icon. If there is no owner of the current chunk, the padlock is unlocked, and can be clicked to claim the current chunk for yourself. If the padlock is locked, the chunk is claimed by someone else and you can't edit the map there.

Dimensions
The worldhaus map extends infinitely in any direction, but you might still want to build on a whole new map. You can go to a new dimension with the  command, which has the same coordinates as the main map, but is entirely separate, and starts off as an empty grass void. Any player can get to the same dimension just by specifying the same dimension name with the  command.

Originally this was intended to be used to provide support for interiors, where you'd be able to warp from a door tile to an interior tile, but this was never added to the game due to waning interest.

Characters
The Character tab on the tools window allows the player to select a different character sprite, which will be visible to all players.

Chat
The chat box allows the player to talk to other players in the game. By pressing enter to focus the chat box, or clicking into it with the mouse, the player can type a message and then press enter to have it broadcast to other players in the chat box. Chat messages can be seen anywhere in the game, as there aren't enough players to need it to be local or anything. Private messages, and server messages such as the results of commands are also shown in the chat window.

setspeed
- sets the player's movement speed to 500

Sets the speed that the player can move at. This was originally an admin command. The base speed of all players is 200 units, but to move faster a player can type, after which time it will be possible to move much faster. The limit of the speed is 500 to prevent database overload from players loading too much of the map too fast.

dimension
- teleports the player to another dimension

Teleports the player to another dimension. The dimensions are provided as a way to have places to build that are separate from the main map. By typing  the player can switch to a dimension called. The default dimension is called  so the player can return to it by typing.

escape
- teleport back to the origin in the default dimension

Teleports the player back to the default spawn in the default dimension, the entry town. By typing, a lost player can always find their way back to civilization.

msg
- send message  to rena

Allows a player to send a private message to another player.

friends
- shows the player's friends list

Shows the player's friends list, which is the list of people allowed to modify a player's chunks.

addfriend/removefriend
- adds or removes a friend from the player's friend list

Allows the player to manage their friends list, which allows other players to modify their chunks.

pos
- gets a player's position

Gets your own, or the given player's position. This allows you to work out where you are in the world and find other players.

getchunkowner
- gets the owner of the current chunk

Allows players to find out who the owner of the current chunk is.

changeflair
- sets the current player's flair to mukyuu

Allows the player to change their own flair. The flair is the text shown above a player's name.

tp
- teleports the player to rena

Allows the player to teleport to other players.

players
- shows the list of online players

Allows the player to view the list of online players.

setname
- changes rena's name to cat

Changes the display name of a player.

setflair
- changes rena's flair to "mukyuu"

The flair is the text displayed above the name of the player, and the setflair command can be used by admins to change it.

tp
- teleports the player rena to (1000, 1000)

Teleports any given player to the given coordinates.

- teleports the player rena to the player someoneElse

Like the previous command, but teleports the player to another player.

kick
- kicks rena from the server

Kicks the given player from the server.

ban/unban
- bans or unbans the given player

Bans players, kicking them from the server and preventing them from reconnecting.

setchunkowner
- sets the owner of the current chunk to rena

Allows an admin to change the owner of a given chunk.

unsetchunkowner
- unsets the owner of a given chunk

Allows an admin to unset the owner of a given chunk.

clearchunkowner
- clears all chunks owned by rena

Allows an admin to clear all chunks owned by a given player.

= Notable locations = (todo...) It might be worth somebody documenting notable locations like the starter town.

= Source code = Like with most things Rena creates, Worldhaus is open source and available at if anybody wants to run their own instance, tweak it, or contribute some new features.

If there was demand for new features to be added to the game I'd probably add them myself (such as warp tiles, objects, npcs, and scripting), but afaik only about 1 person logs into the game per week, so it probably isn't worth the development time.