Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 21 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
Any and all help is very welcome, though we have a handful of rules and standards that must be followed.

First and foremost, to get the elephant in the room out of the way:

LLMs and "AI" agents are expressly forbidden from making unattended PRs, generating most of the code of your PR, and writing on your behalf anywhere where StaionAPI development is had. This primarily includes the GitHub, and the modification station discord.

ML assistance like autocomplete and code fragments are fine.

This stance is partly because LLMs are prone to making stuff up and generating wild amounts of boilerplate. The main reason is because they have absolutely no training data on how StationAPI and an obscure version of Minecraft interact. We (both mine_diver and calmilamsy) have checked and validated this ourselves, it will hallucinate and generate garbage code.

# General Design Principles

- You must write your new code within a pre-existing module if it makes sense.
- Your code must use and integrate with existing API features.
- Ideally, the there should be absolutely no difference in gameplay or visuals when StationAPI is installed by itself. (Exceptions: loading screens, debug features like f3)
- New assets (art, translations, any file that isn't code or part of the build script) must be avoided where reasonable. Try to reuse or adapt vanilla ones before adding new ones.

# Code Format

- Indentation: 4 spaces

# Pull Requests

Bugfix pull requests must base on the `master` branch,
while feature pull request must base on the next major version branch.

## Example

- Current version: 2.0-alpha.2.x
- Bugfix PRs are based on the `master` branch
- Feature PRs are based on the `2.0-alpha.3` branch
- All PRs must be made on the `develop` (default) branch.
- You must be able to explain your code, and provide reasoning for your choices.
- Any code you contribute to the main repo MUST be MIT or relicensable to MIT. We are not going to entertain multiple licences.

# Structuring New Features

Expand Down Expand Up @@ -120,4 +132,4 @@ class Main {
return result;
}
}
```
```