Paradise Station Development Team Structure


Section 1 - Roles & their purposes

The Paradise development structure is made up of a leading group (Headcoders), and a set of smaller groups. These are:

None of these roles are mutually exclusive, nor do they outrank eachother. For example, you can be a Maintainer, part of the Design Team and be an Issue Manager. However, being part of multiple teams does not grant you 2 votes if a PR concerns both groups. While being part of both the Design Team and Balance Team is not mutually exclusive, it is preferred that one person is only part of one of these teams.

None of these roles (with the exception of Headcoder) grant access to the staff discord or ingame rights (+VIEWRUNTIMES is now a case-by-case basis).

All of these subgroups will have access to a dedicated #development-discussion channel in the public discord. This channel will not be viewable to people outside the development branch. Each group will have their own separate roles to aid discusion in scenarios such as @Review Team could we get #12345 looked at?.

The Maintainers, Review Team and Issue Managers will get access to the servers Kibana server. They will only be granted access to the performance, runtime and qdel metrics. The data here can be shared to others if deemed safe by the development member. Avoid sharing sensitive/personal information from this view, use common sense to determine if it is safe to share. Individuals, who are not part of the above mentioned teams, can be granted this privilege on the discretion of the Headcoders and the Server Host.

All of these subgroups are subject to a biannual review. If the Headcoders deem you are no longer fit for a role, you may lose it.


A - Headcoders

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by both the Heads of Staff and existing Headcoders.


B - Maintainers

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by both the Headcoders and existing Maintainers.


C - Review Team

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by the Headcoders.


D - Design Team

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by both the Headcoders and Heads of Staff.


E - Balance Team

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by both the Headcoders and Heads of Staff.


F - Sprite Team

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by both the Headcoders and Heads of Staff.


G - Issue Managers

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

Unanimous approval by the Headcoders.


H - Mapping Team

i - Duties

ii - Hiring

1 - Requirements for eligibility
2 - Selection

I - External Teams

i - Access and Responsibility

ii - Consequences of Misuse

iii - GitHub Labeling Protocol for Wiki Managers


Section 2 - Procedure

This section outlines all procedure.

A - PR procedure

i - ALL PRs

ii - Pure Fix/Refactor PR with no design implications

iii - Content expansion (Major feature PR)

iv - Minor balance change (Value tweaking)

v - Major balance change (New weapon or ERT class or similar)

vi - Non-balance altering tweak

vii - Spriting PR

viii - Mapping PR

ix - Any PR that doesn't fit above criteria

B - Exploit Procedure

This section uses the term Exploit to mean any process, method, or actions that use an oversight, bug, or flaw either in the game code or game systems in order to perform unintended acts, gain an unfair advantage, harm the game experience, cause crashes, cause lag, or compromise server security.

i - Reporting exploits and the management of exploit reports

ii - Fixing exploits

C - Labeling Procedure

i Label Usage

Labels on PRs are to be used to more easily identify what a PR is about and to look them up. Before, the labels were used to determine the voting groups, this is now separated from the Github labels.

The Headcoder, Maintainer, Review and Issue Manager teams can label PRs as they deem fit. The labels should reflect the main content of the PR as best they can while keeping it ordered and as compact as possible.

For example, a PR that adds a new feature but refactors a little to make this feature possible should get the Feature label and not the Refactor label as the feature part is overshadowing the refactor done.

ii Restricted Labels

The following categories of labels should not be added or removed from PRs, except when approved by a Headcoder on a case per case basis:

iii Special Labels

The following labels are special cases which can be added or removed but with special conditions:

D - Merge Procedure

The primary aim of the merge procedure is to make effective use of merge queues. The merge queue feature permits for each PR to be tested through CI against the updated master branch before merge. This allows PRs introducing stealth conflicts or with other compatibility issues to be filtered out before merge.

i Standard Procedure

All PRs have to be processed as described below unless they meet the criteria in the below Urgent PRs section, or at the discretion of a Headcoder or Maintainer.

ii Urgent PRs

In the event of a PR requiring urgent attention, such as exploit fix PRs or server security PRs, a more streamlined process is to be used for merges. The designation of any PR as urgent is done at the discretion of a Maintainer or Headcoder.


Section 3 - Closing notes

A - Changelog