Skip to main content

Developer guide

For those who work on GrayCore itself, and for those who build a plugin on top of it.

PageWhen you need it
Project structureFinding your way in the repository, building and testing.
Local development stackRunning the whole network on your machine.
The stable APIKnowing which classes another plugin may rely on.
Writing a moduleAdding a feature: lifecycle, configuration, player data, events, offering an API.
Text styleWriting player-facing texts that look like the rest of the plugin.
ContributingBranches, commits, pull requests.
DocumentationKeeping this site up to date.

The rules in one place​

  • Code, comments, commit messages and this documentation are written in English.
  • A plugin built on GrayCore, and the modules shipped with it, use only the classes marked @StableApi.
  • Database and network work never runs on the game thread.
  • A change that a server owner or a developer would notice comes with its documentation, in the same pull request.