- en
- pl
OpenTTD GitHub
Contributing to OpenTTD - guidelines
OpenTTD Doxygen
Coding style
Compiling OpenTTD
Debugging
Add a setting
Add a squirrel function
Understanding the SaveGame handler
Bumping the savegame version
Doing an OpenTTD release
Manual of style
Format of langfiles
Using OpenTTD strings
List of special strings
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
The console window
Console commands
Console variables
Using console scripting
Adding functions/commands to the console
Adding variables to the console
Console development history
Graphics and similar (NewGRF)
AI framework (NoAI)
GameScript framework (NoGO)
Social Integration
Map array (landscape grid)
Vehicles
Pathfinding
Train acceleration
Sound IDs
This article or section is outdated. Some of its content may no longer be accurate due to changes in the latest release. Please update this article.
Please see Contributing to OpenTTD on GitHub for guidelines.
Checklist for patches
-
Stability – keep it stable
- No known bugs
- No known network desyncs
- Checked by other people
- Checked in full length game
-
Complexity – keep it simple, straightforward, and easy to understand
- Only one new feature per patch
- Complex algorithms and tricks explained in comments
- No unnecessary tricks
- Adequately commented
- Only change lang/english.txt, no other language files
-
Attitude – please be nice to the devs!
- Remember, it was originally in ASM, changed to C, then changed to C++. There is a lot of work to be done with the language changes.
- Remember this is 100% volunteer work. The devs do this in their free time.
-
Style – please stick with the coding style rules!
- Strings only in english.txt
- Functions
- Variables
- Enumerations / static consts
- Control flow
- Classes
- Templates
- Other rules
- Documentation
- Other tips