Skip to content

Contributing

BeestoXd edited this page Aug 15, 2026 · 1 revision

Contributing

The canonical version of this page is CONTRIBUTING.md in the repository. This is a summary for people arriving via the wiki.

By contributing you agree that your work is licensed under the MIT License.

Where to go

💬 Questions and setup help Discordnot the issue tracker
🐛 Bugs and feature requests GitHub Issues
🔒 Security issues Discord, privately — never a public issue

Reporting issues

Blank issues are disabled; pick the template that matches (bug report, feature request, or documentation). Before opening one:

  1. Search existing issues, including closed ones.
  2. Reproduce on the latest build — the nightly pre-release is rebuilt on every push to main.
  3. Test with only UltimateVirtualSpawner installed (plus Vault / PlaceholderAPI if the bug involves them), so another plugin is not the actual cause.

A useful bug report includes:

  • exact server software and version (/version)
  • plugin version (/spawner version)
  • Java version
  • the full stack trace from logs/latest.log — text, not a screenshot of chat
  • the relevant section of any config you changed

Security issues — do not open a public issue for anything exploitable (dupe bugs, permission bypasses, economy exploits). Report them privately on Discord.

Development setup

See Building from Source for the full walkthrough: requirements, build commands, project layout and code style.

Pull requests

Work on a branch off main, one logical change per PR.

PR titles must follow Conventional Commits — the pr-title-check CI job fails otherwise. Allowed types:

feat, fix, chore, docs, style, refactor, perf, test, ci, build

feat: add per-world spawner limits
fix: prevent XP duplication when claiming during a sell
docs: document the AUTO economy provider

Scopes are optional. The description must be at least 10 characters — an empty PR body fails CI. Fill in the template, or pick a specific one from .github/PULL_REQUEST_TEMPLATE/ by appending ?template=bug_fix.md, feature.md or maintenance.md to the PR URL.

Before requesting review:

  • mvn clean test passes
  • mvn package succeeds
  • Tested on a live Paper server — and Folia, if the change touches scheduling or world access
  • Added tests for anything with logic worth pinning down
  • Updated the relevant .yml defaults and README.md if the change is user-visible
  • No unrelated reformatting in the diff

CI must be green — title check, description check, build and test on JDK 21, and dependency review — before a PR can be merged. CI runs on changes to src/**, pom.xml and .github/workflows/**.

Translations

Everything player-facing lives in messages.yml (plus menus.yml for GUI text). Translations are welcome as a PR adding a language file — keep every key from the English default present so nothing falls back to a blank string.

Improving this wiki

Spotted something wrong or missing here? Open a documentation issue describing the page and what needs changing.

See also

Clone this wiki locally