Skywind uses roles on Discord for handling server/channel permissions, user appearance, and categorizing what teams users work under. To help avoid unintended behavior, Skywind keeps three separate sets of roles that handle these things independently.
Team Roles - Indicates what teams a member contributes to, but does not grant any permissions or affect user appearance
Access Roles - Grants access to channels, but does not indicate what team a user is on or affect appearance
Color Roles - Control user appearance (color and icon), but does not grant any channel access and (although it does correlate) does not necessarily match user team
These are straightforward to indicate what department a user contributes to, or otherwise indicates their role in Skywind. The purpose of these is to (A) be able to see how a member contributes, and (B) allow pinging of a members of that team. You should use these roles and not color roles when you want to ping a group of people.
Main team roles: Coding, Implementation, Navmesh, Optimization, Landscaping, Weather & Lighting, Producer, QA, 3D, 2D, SFX, SFX Integration, VFX, VA Mixer, Music, Animation, Voice Acting, Writing, PR, Filecutter, Website Dev, Video Editor, Wiki
These should be self explanatory.
Sub-team roles: Twin Lamps Team, Hype Team, Critic, Pronunciation, MQO Team, Localizataion Teams, Application Teams, etc.
These are either subsets of departments, or specific teams that are across multiple departments.
Guest Roles: Skywind Veteran, Skyblivion, Morroblivion, Beyond Skyrim, Arcane University, etc.
These give a nod to members of some partner projects.
THESE ROLES ALSO GIVE ACCESS TO THE #VIP-LOUNGE CHANNEL!
These are a select number of roles that control access to the dev channels. These are the important roles for determining who can see what.
Insider - Adds #off-topic, #highlights, #noticeboard, and voice chat channels. This should be used for long-time contributors who are no longer active. Often paired with the "Skywind Veteran" team role.
Contributor - Gives access to restricted channels (#off-topic, etc) and to all of the team-specific development channels: #landscaping, #2D, #coding, and so on. Generally speaking, all teams members should have this role.
Skywind does not limit channels based on team. E.g. coders can see 2D channels and vice versa.
Developer - Gives access to #dev-chat and read-only access to #builds but nothing else. Essentially, and extra role on top of Contributor for team members who need access to the build.
Remember that devs also need to be granted build access through OneDrive and/or Resilio permissions.
(The Developer role used to grant build access, but we restricted that further after the build was leaked in 2023.)
Department Lead - Gives access to the various lead-specific channels and write access to #builds, but nothing else. You still need to have the Contributor role to see team channels and the Developer role for the #dev-chat channel.
There are a few other roles that given channel access for special cases:
"Guest" team roles (Skyblivion, etc) give access to the #vip-lounge channel, as mentioned above.
"Ordinator" gives access to the #ordinator moderation channel.
"Application Reviewer" gives access to the #applications channel. This is used when Leads need help from regular contributors to review applications.
Leads should not change access permissions of any server roles, create new roles for the purpose of controlling channel access, or grant channel access on an individual user level without discussion and approval in #lead-chat.
To my knowledge, the only exception we have to the above roles is that Gamma Metroid is given direct (user-level) write access to #builds in order to post LOD updates.
These roles handle the color and icon on usernames. They are separated from team roles so that members on multiple teams can have a color that corresponds to their primary area of interest, for example someone who does both QA and level design could pick between those two for what color and icon they want.
Important notes on colors:
You should not ever ping the color roles! Ping the team roles instead! For example:
Ping @Writing, not @Color:Writing
Ping @Landscaping not @Color:Level Design
Ping @QA not @Color:Quality Assurance
Because contributors can be on multiple teams, not all members of a team will have the same color roles. Pinging a color instead of a team will mean you may fail to ping some members of that team.
Lead colors will always take precedence over regular contributor colors.
Ideally, users should only have one color role at a time. When a user joins a new team after already being a contributor on an different team, their lead should ask them what color they would prefer to have, add the one they request, and remove any other color roles.
Colors mostly mirror teams, but some teams are grouped under the same color based on similarity of work. For example:
Coding and Implementation fall under Color:Engineering
PR, Video Editors, etc fall under Color:Media & Community
Music, SFX, and VA Mixing all fall under Color:SFX and Music
This handbook page does not give guidance on when or how a lead should mark a user inactive or what level of access an inactive user should be given, only explains the roles and options.
With that said, for inactive users:
Add the Color:Inactive role and remove their team color role. This will gray out their name to make them appear inactive.
Alternatively, you can remove all color roles and not give the inactive role, if you want them to appear as a regular member of the public channels instead of an inactive contributor.
Color roles do not affect access!
Remove the Developer role. If a developer is inactive, they should not have access to the build, no matter the level or degree of inactivity.
Removing the Developer role does not remove build access via OneDrive or Resilio! Be sure to remove access there as well.
Decide on a level of access the inactive member should have:
Keep "Contributor" role: This will let the inactive member continue to see and participate in the majority of dev channels. Arguments for this option are that if a dev plans to return to work in the future, it is helpful for them to keep uo with progress. Another argument is that seeing progress might entice the dev to come back. Generally, this option is intended for short-term/non-permanent inactivity.
Remove "Contributor" role and add "Insider" role: This is will take away access to the main development channels, but still let the user follow progress through the #highlights and #noticeboard channel, and still participate in off-topic chat. This is generally the best option for contributors going inactive permanently or for a long time.
Remove "Contributor" but do not grant "Insider" role: Basically resets the user to public-level permissions. Most often used for users going inactive after not really contributing to the project, for instance joining the project but never completing an assignment.
Decide whether to keep or remove the Team roles (Coding, Landscaping, etc). Keeping team roles is helpful for keeping track of what teams inactive members used to be a part of. However, the inactive member would still get pings for that role in channels they have access to. The decision here likely correlates to the option chosen above.
Team roles do not affect access!