Skip to main content
Any contribution to OpenRCT2 is welcome and valued. Contributions can be in the form of bug reports, translation or code additions/changes. If you have any questions or concerns, please ask in the Discord chat.

Reporting Bugs

To report a bug, ensure you have a GitHub account. Search the issues page to see if the bug has already been reported.

Bug Report Requirements

If the bug hasn’t been reported, create a new issue and include:
  • Steps to reproduce the bug
  • A saved game if possible (very helpful for replication)
  • Your system architecture and game version

Version Information

You can find your version information at the bottom left of the title screen or by running:
openrct2 --version
Example version output:
OpenRCT2, v0.0.6-develop build 84ddd12 provided by AppVeyor
Windows (x86-64)
For Windows builds, OpenRCT2 will generate a memory dump and saved game when the game crashes unexpectedly. The game will open explorer to these files automatically. They are placed inside your configured user directory which by default is %HOMEPATH%\Documents\OpenRCT2.

Translation

Translation is managed in a separate repository: OpenRCT2/Localisation. See the Localization page for detailed information about the translation workflow.

Contributing Code

OpenRCT2 uses the gitflow workflow. If you are implementing a new feature or fixing a bug, please branch off and perform pull requests to develop. The master branch only contains tagged releases.

Before You Start

Please talk to the OpenRCT2 team first before starting to develop a new feature. We may already have plans for or reasons against something that you’d like to work on. Contact us via Discord to discuss your ideas.

Code Hints

Adding New Strings

If you need to add a new localisable string to OpenRCT2:
  1. Add your new string entry to ./data/language/en-GB.txt
  2. Important: Only edit en-GB in the OpenRCT2 repository as this is the base language used for translation
  3. Add a string constant for your strings to ./src/localisation/StringIds.h
After your pull request is merged, create a new issue in the OpenRCT2/Localisation repository about the new strings you have added. This notifies translators so they can translate the new strings as quickly as possible.

Language Files Location

./data/language/en-GB.txt          # Base language file
./src/localisation/StringIds.h     # String constants

Coding Style

Use the OpenRCT2 Coding Style as a reference for new or changed code.

Language Choice

For now, it is recommended that you only write C++ files as the majority of the game is currently in C++. Exceptions are modules that have direct relationship to original code.

Community Channels

Discord - Development

Join the developer channel to discuss contributions and get help

GitHub Issues

Browse and report bugs in the issue tracker

Localisation

Contribute translations in the localisation repository

Contributing Wiki

Detailed guide on how to contribute code

Frequently Asked Questions

If you change any existing string, it is important that you create an issue in the OpenRCT2/Localisation repository. String changes can be more easily overlooked by translators, so notifying them helps keep translations up to date.
Always branch off and perform pull requests to develop. The master branch only contains tagged releases and you should never branch off this.
No. Only edit en-GB.txt in the main OpenRCT2 repository. The OpenRCT2/Localisation repository is used for translation pull requests, and changes to that repository are merged with the OpenRCT2 main repository every night.
See the Building the Game guides for information on compiling OpenRCT2 on different platforms. Once built, you can test your changes locally before submitting a pull request.