# Controls ## Movement w, k, Arrow-Up a, h, Arrow-Left s, j, Arrow-Down d, l, Arrow-Right Hold direction key to boost ## Specials 0-9: Apply current special to player with that number q: Discard current special ## Meta Space: Respawn/Redraw Esc, C-c: Disconnect n: change nick (only available while dead) h: display this help text # Specials Eating food can give you one of these specials: Boost: Force target to boost ClearSpecials: Remove target's specials Direction: Randomly change target's direction Drunk: Force target to sidestep randomly Foodmageddon: Spawn a large number of food that do not give specials Invert: Invert target's controls Invicible: Invincible snakes can cut through other snakes Longer: Increase target's length MirrorWalls: Mirror position when moving through game border Poison: Poison all food, poisoned food halves a snake's length Portal: Place a portal at your's and target's head position Reverse: Switch head and tail of target snake SolidWalls: Die when attempting to move through game border Switch: Switch snake with target player Teleport: Teleport target's head to a random position Thump: Force target to wobble back and forth Tunnel: Target moves underground to avoid collision # Board | Status Message v ┌Player 1 has reached a new record length of 57.───────────┐ Players: │ │ 1 foobar │ │ 2 unknown │ ██ │ † baz │ ^ | Player 1 │ │ Food | v │ │ █1 │ │ █1 │ │ █1 │ │ █1 │ │ █1 │ │ █1 │ │ █1 │ │ | Player 2 █1 │ │ v █1 │ │ █2 █1 │ │ █2 █1 │ │ █2 █1 │ │ █2█2█2█2█2█2█2█2█2█2█2 █1 │ │ █2 █1 │ │ █2 █1█1█1█1█1█1█1 │ │ █2 █1 │ │ █2 █1 │ │ █1 │ │█1█1█1█1█1█1█1█1█1█1 █1█1█1█1█1│ │ │ │ │ │ │ │ │ └Poison,Direction,Longer,Reverse,Drunk,Longer──────────────┘ ^ | Current Special, Special List # Game Modes There are different game modes. Every server runs in one of these modes. ## Freeplay This is a sandbox game mode. You can join anytime and respawn as often as you like. ## Deathmatch Starts with a 20 second grace period, where everyone can join and respawn. After the grace period, respawning is disabled until all but one player are dead. When a match is over statistics of the match are shown and the next grace period begins. # Misc ## Nicknames You can give your nickname on the telnet command-line with the -l option. You can configure telnet to send a name with every connection by adding this line to your ~/.telnetrc: DEFAULT environ define USER karl_heinz If you connect with the name 'spec', you will be put into spectator mode and you can not spawn any snakes. ## Bot API Telnetsnake supports scripted clients by providing json encoded game state updates. To make your bot join, have it connect to the servers plugin port. This port is typically the one above the port shown in the lobby or used to connect a telnet client. Send two lines, one containing the string 'register' and the second one containing the string 'bot' or 'bot_' to have the bot called . Your bot will now receive gzip compressed lines of json encoded updates. See bot.go in the telnetsnake source for documentation on possible update types. To control your snake, send the ascii characters also used by human clients.