OpenTTD Development Documentation
External Links

OpenTTD GitHub
Contributing to OpenTTD - guidelines
OpenTTD Doxygen

General Reference

Coding style
Compiling OpenTTD
Add a setting
Add a squirrel function
Understanding the SaveGame handler
Bumping the savegame version
Doing an OpenTTD release

Language and Strings

Manual of style
Format of langfiles
Using OpenTTD strings
List of special strings

Window System

Using the window system
Colour codes that exist in OpenTTD
Adding a text box
Understanding the widget focus system
GUI style guide


The OpenTTD TCP protocol
The OpenTTD UDP protocol
Debugging desyncs
Server Admin Port development

Ingame Console

The console window
Console commands
Console variables
Using console scripting
Adding functions/commands to the console
Adding variables to the console
Console development history

Content APIs (modding frameworks)

Graphics and similar (NewGRF)
AI framework (NoAI)
GameScript framework (NoGO)
Social Integration

Other Reference

Map array (landscape grid)
Train acceleration
Sound IDs


Open TTD Network Protocol - UDP

Packet List

The packet list is ordered in the same way as PacletUDPType enum from network/core/udp.h

Packet name Sent by Purpose
PACKET_UDP_CLIENT_FIND_SERVER Client Queries a game server for game information
PACKET_UDP_SERVER_RESPONSE Server Reply of the game server with game information
PACKET_UDP_CLIENT_DETAIL_INFO Client Queries a game server about details of the game, such as companies
PACKET_UDP_SERVER_DETAIL_INFO Server Reply of the game server about details of the game, such as companies
PACKET_UDP_SERVER_REGISTER Server Packet to register itself to the master server
PACKET_UDP_MASTER_ACK_REGISTER Master Server Packet indicating registration has succedeed
PACKET_UDP_CLIENT_GET_LIST Client Request for serverlist from master server
PACKET_UDP_MASTER_RESPONSE_LIST Master Server Response from master server with server ip's + port's
PACKET_UDP_SERVER_UNREGISTER Server Request to be removed from the server-list
PACKET_UDP_CLIENT_GET_NEWGRFS Client Requests the name for a list of GRFs (GRF_ID and MD5)
PACKET_UDP_SERVER_NEWGRFS Server Sends the list of NewGRF's requested.
PACKET_UDP_END None Must ALWAYS be on the end of this list!! (period)

Packet Format

Enumerate Server List

Enumerate Company Information