Quark maintains a high bar for contributions so that the codebase stays consistent and every change is genuinely worth the maintenance cost. Read this page in full before opening an issue or submitting a pull request — most rejected contributions can be traced back to missing information or unmet style requirements that are documented here.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/VazkiiMods/Quark/llms.txt
Use this file to discover all available pages before exploring further.
Reporting Issues
Good bug reports let the team reproduce and fix problems quickly. Poor ones get closed. Follow the checklist below every time.Always attach your log. Even if the game didn’t crash, the log often contains the information needed to diagnose the problem. Find it at:
- Client:
<instance folder>/logs/latest.log - Server:
/logs/latest.log
What is accepted
- Bug reports against the latest version of both Quark and NeoForge on the latest supported Minecraft version
- Reproduction steps that work on a vanilla NeoForge installation (no other mods if possible)
What is not accepted
Outdated versions
Outdated versions
Issues filed against any version of Quark, AutoReglib, or Minecraft older than the current release are not accepted. Always update both Quark and NeoForge to their latest releases before reporting.
Cauldron, Spigot, or Sponge servers
Cauldron, Spigot, or Sponge servers
Bugs that only appear on Cauldron, Spigot, Sponge, or other hybrid server implementations are not accepted unless the issue can be reproduced on a standard NeoForge-only server.
Duplicate reports
Duplicate reports
Use the search feature before filing. Duplicates are closed without discussion. If the issue already exists but is still happening for you, comment on the existing report with the details you would have used for a new one. If the issue is locked, you may open a fresh report.
Suggestions and feature requests
Suggestions and feature requests
The issue tracker is for bugs only. Suggestions are not accepted here. Post them to the Quark subreddit (r/quarkmod) instead, unless a team member has specifically asked you to file one.
Pull Requests
Before you submit
- Do not use the GitHub web editor. Changes must be built and run locally before submission.
- Small or superficial PRs that touch very few lines and are not flawless will likely be closed — it is often faster for the maintainer to apply the fix directly than to check out, review, and merge a partial patch.
Code style
Quark enforces syntax consistency across the entire codebase. Your PR must match the style of the surrounding code. The key rules are:No space after control-flow keywords
No space after control-flow keywords
Write
if(condition), for(...), while(...) — not if (condition). This applies to all control-flow keywords.Opening bracket on the same line
Opening bracket on the same line
Opening curly braces go on the same line as the statement, never on a new line.
No brackets for single-line blocks
No brackets for single-line blocks
Omit curly braces when a block contains exactly one statement.
camelCase naming
camelCase naming
All identifiers — fields, methods, local variables — use
camelCase. Classes and interfaces use PascalCase. Constants use SCREAMING_SNAKE_CASE.Tab indentation
Tab indentation
Indent with tabs, not spaces. The entire Quark codebase uses tab indentation. Configure your editor accordingly before committing.
Release Process
Releases are handled by the core Violet Moon team. The process is mostly automated once the release tag is pushed. The steps below are provided so contributors understand how version numbers work and whatbuild.properties tracks.
Sync and verify
Pull
master to make sure you are fully up to date, and confirm that all changes intended for the release are committed.Create the annotated release tag
Tags use the format Git will open your configured editor. Write the changelog for this release in the editor, then save and close it.
release-<mc_version>-<build_number>. Look up the current values in build.properties if needed (e.g. mc_version=1.21.1, build_number=481):Increment the build number
Open Commit this change:
build.properties and increment build_number by one so the next development build gets a fresh version: