If you are interested in contributing to make UGS even more awesome, there are many places you can pitch in.

Browse through the already reported issues or check out the discussion forum. You might know how to code, have ideas on how to improve the documentation or want to translate the software to your language.


Pull requests are welcome! Is there a feature you would like to see, or a bug thats been bothering you? Feel free to dig in. Not sure where to start? Ask on github, use an existing ticket or create a new one.

If you're planning to make a lot of changes please create an issue to discuss implementation details. A lot of effort has gone into the current design so we want to make sure everything will to work together.

Checkout the Developing wiki page for more details


If you find any errors in the documentation or if there are missing pages, you are welcome to contribute!


We are currently using POEditor to manage localization. If you would like to help please consider signing up to contribute through this service.

To join the project sign up here:

Adding a new language

You can add a new language from POEditor and start translating.

If you want to stop here, create a ticket on GitHub and someone will update the project. To finish the job completely you'll need to know how to use git.

  • Create an empty property file for your language in ugs-core/src/resources.
  • Open src/com/willwinder/universalgcodesender/i18n/
  • Add your new translation to the availableLanguages object.
  • Update the file in with a mapping between the POEditor key and your new file.
  • Run, see README in scripts directory for configuration detail. Only commit the new file even if others were updated.
  • Create a GitHub pull request.

Future language syncs will be done periodically with the script.