1# Contributing to OpenRCT2 2Any contribution to OpenRCT2 is welcome and valued. Contributions can be in the form of bug reports, translation or code 3additions / changes. Please read this document to learn how to contribute as effectively as possible. If you have any 4questions or concerns, please ask in the [Discord chat](https://discordapp.com/invite/fsEwSWs). 5 6# Reporting bugs 7To report a bug, ensure you have a GitHub account. Search the issues page to see if the bug has already been reported. 8If not, create a new issue and write the steps to reproduce. Upload a saved game if possible as this is very helpful 9for users to replicate the bug. Please state which architecture and version of the game you are running, e.g. 10``` 11OpenRCT2, v0.0.6-develop build 84ddd12 provided by AppVeyor 12Windows (x86-64) 13``` 14 15This can be found either at the bottom left of the title screen or 16by running: 17``` 18openrct2 --version 19``` 20 21For Windows builds, OpenRCT2 will generate a memory dump and saved game when the game crashes unexpectedly. The game 22will open explorer to these files automatically for you. They are placed inside your configured user directory which 23by default is `%HOMEPATH%\Documents\OpenRCT2`. 24 25# Translation 26Translation is managed in a separate repository, [OpenRCT2/Localisation](https://github.com/OpenRCT2/Localisation). 27You will find more information there. 28 29# Contributing code 30Please read [How To Contribute](https://github.com/OpenRCT2/OpenRCT2/wiki/How-To-Contribute) 31 32## Code hints 33### Adding new strings 34If you need to add a new localisable string to OpenRCT2, please add your new string entry to ```./data/language/en-GB.txt```. 35It is important that you only edit en-GB in the OpenRCT2 repository as this is the base language that is used for 36translation to other languages. A separate repository OpenRCT2/Localisation is used for translation pull requests, and changes 37to that repository are merged with the OpenRCT2 main repository every night. When your pull request is merged, it is helpful 38to create a new issue in the OpenRCT2/Localisation repository about the new strings you have added. This notifies translators 39so that they can translate the new strings as quick as possible. Similarly if you change any existing string, it is more 40important that you create an issue as this can be more easily overlooked. 41 42When coding, please also add a string constant for your strings to ```./src/localisation/StringIds.h```. 43 44### Coding style 45Use [this](https://github.com/OpenRCT2/OpenRCT2/wiki/Coding-Style) code style as a reference for new or changed code. 46 47### Language 48For now, it is recommended that you only write C++ files as the majority of the game is currently in 49C++. Exceptions are to modules that have direct relationship to original code. 50