How to Contribute

How to report problems and send changes to Plugify and its documentation.

Plugify is developed in the open on GitHub, in the untrustedmodders organization. Bug reports, fixes, new features and documentation improvements are welcome.

Where things live

Each part is its own repository:

PartRepository
Core and the plug test applicationplugify
Language modulesplugify-module-<language>, for example plugify-module-cpp
Template for a new language moduleplugify-module-template
Game server hostsplugify-source2-launcher, plugify-metamod-loader
Base pluginsplugify-plugin-<name>, for example plugify-plugin-s2sdk
This websiteuntrustedmodders.github.io

Open issues and pull requests in the repository the change belongs to.

Reporting a problem

Search the existing issues first. A good report is:

  • reproducible: the steps that lead to the problem;
  • specific: the versions of the core, the modules and the host, and the platform;
  • one problem per issue.

For a crash or a plugin that does not start, add the report the core logs after loading and, if you have it, the stack trace.

Sending a change

Discuss larger changes first

Open an issue or ask on Discord before starting something big, so the work is not duplicated.

Fork and create a branch

git checkout -b feat/my_feature

Commit with Conventional Commits

The repositories use Conventional Commits: the commit message starts with a type such as feat:, fix:, docs: or chore:. Releases and changelogs are made from these messages by release-please.

git commit -m "feat: add my_feature"

Open a pull request

Describe what changed and why, and link the issue it fixes. Keep pull requests small: they are easier to review.

Before sending code, build it, run it in plug and follow the code style.

Documentation

This website

The site is built with Nuxt and the shadcn-docs-nuxt theme. Pages are Markdown files in content/ (English) and content/ru/ (Russian); every English page has a Russian page at the same path with the same structure.

npm ci
npm run dev

npm run check validates the manifest examples against the Plugify schemas, checks that the English and Russian pages match, builds the site and checks the internal links. Run it before opening a pull request.

API reference of the core

The headers of the core are documented with Doxygen comments. To build the reference locally:

cmake -S . -B build -DPLUGIFY_BUILD_DOCS=ON
cmake --build build --target docs

It is written to build/docs/html. A change to the comments in the headers is all that is needed; the generated HTML is not committed.

Code of conduct

Be respectful in issues, pull requests and on Discord. The core repository has a code of conduct.