> For the complete documentation index, see [llms.txt](https://enoch.code4tomorrow.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enoch.code4tomorrow.org/2.2.1/commands-reference/setup.md).

# Setup

| Command          | Usage                      | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| setup name       | +setup name \<name>        | <p>Changes a user's nickname on the server to their full name.<br></p><p><strong>Arguments</strong></p><p><code>name</code> is the name the user used to sign up for C4T programs.<br>For students, this should be the student's name.<br>For parents, this should be the parent's name.<br>For volunteers, this should be the volunteer's name.<br></p><p><strong>Examples</strong></p><p><code>+setup name Jane Doe</code></p><p>Do <em><strong>NOT</strong></em> do this: <code>+setup Jane Doe</code></p><p></p><p><strong>IMPORTANT</strong></p><p>This name must match the <em>name you signed up with</em> in order for the setup subcommands to work.</p><p></p><p>This command will automatically remove <, >, \[, or ] characters from the given display name.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| setup student    | +setup student \[code] ... | <p>Sets up a student's account on the server and displays the result of the setup (if it was successful or not).</p><p><strong>Arguments</strong></p><p><code>code</code> is a unique numerical class code sent via email that represents the class the student is enrolled in (note: you can enter one or more codes separated by spaces).<br>Students only need to enter code(s) if there is another student with the same name as them - Enoch will notify them if this happens.</p><p><strong>Checks</strong></p><p>This command can only be invoked...</p><p>- in the #commands channel</p><p>- in the C4T Classes server</p><p><strong>Important</strong></p><p>Before using this command, you must use <code>+setup name \<name></code>to set your display name to the name you signed up with. This must match EXACTLY in order for the verification process to work.</p><p><strong>Examples</strong><br>+setup student</p><p>+setup student 1111</p><p>+setup student 2111 3111</p><p>Do <em><strong>NOT</strong></em> do this: +setup student @1111</p>                                                                                                                                                                                                                            |
| setup parent     | +setup parent \[code] ...  | <p>Sets up a parent's account on the server and displays the result of the setup (if it was successful or not).</p><p><strong>Arguments</strong></p><p><code>code</code> is a unique numerical class code sent via email that represents the class the parent's child is enrolled in (note: you can enter one or more codes separated by spaces). <code>codes</code> is optional. You won't have to input it unless Enoch tells you to.</p><p><strong>Checks</strong></p><p>This command can only be invoked...</p><p>- in the #commands channel</p><p>- in the C4T Classes server</p><p><strong>Important</strong></p><p>Before using this command, you must use <code>+setup name \<name></code></p><p>to set your display name to the name you signed up with. This must match EXACTLY in order for the verification process to work.</p><p><strong>Examples</strong><br>+setup parent</p><p>+setup parent 1111</p><p>+setup parent 2111 3111</p><p>Do <em><strong>NOT</strong></em> do this: +setup parent @1111</p>                                                                                                                                                                                                                                                                     |
| setup teacher    | +setup teacher \[code] ... | <p>Sets up a teacher's account on the server and displays the result of the setup (if it was successful or not).</p><p><strong>Arguments</strong></p><p><code>code</code> is a unique numerical class code that represents the class the teacher is teaching (note: you can enter one or more codes separated by spaces). <code>codes</code> is optional. You won't have to input it unless Enoch tells you to.</p><p><strong>Checks</strong></p><p>This command can only be invoked...</p><p>- in the #commands channel</p><p>- in the C4T Classes server</p><p> <strong>Important</strong></p><p>Before using this command, you must use <code>+setup name \<name></code></p><p>to set your display name to the name you signed up with. This must match EXACTLY in order for the verification process to work.</p><p><strong>Examples</strong><br>+setup teacher</p><p>+setup teacher 1111</p><p>+setup teacher 2111 3111</p><p>Do <em><strong>NOT</strong></em> do this: +setup teacher @1111</p>                                                                                                                                                                                                                                                                                        |
| setup member     | +setup member \<dept>      | <p>Sets up a C4T member on the Code 4 Tomorrow server by adding the member's primary department role</p><p><strong>Arguments</strong></p><p><code>dept</code> is the C4T member's primary department</p><p><strong>Valid Department Names</strong> (case insensitive)</p><p>outreach</p><p>internal affairs</p><p>classes</p><p>coco</p><p><strong>Checks</strong></p><p>This subcommand can only be used on the Code 4 Tomorrow server</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| setup addproj    | +setup addproj \<project>  | <p>Adds a project role to the user<br></p><p><strong>Arguments</strong></p><p><code>project</code> is a C4T member's project group<br></p><p><strong>Valid Project Names</strong> (case insensitive)</p><p>partnerships</p><p>social media, sm</p><p>website design, wd</p><p>public relations, pr</p><p>documentations, docs</p><p>volunteer management, vm</p><p>finance</p><p>java</p><p>python</p><p>web development, web dev</p><p>scratch</p><p>machine learning, ml</p><p>javascript, js</p><p>ios app development, ios app dev</p><p>curriculum expansion, curr exp</p><p>class scheduling, class sched</p><p>coco project<br></p><p><strong>Checks</strong></p><p>This subcommand can only be used on the Code 4 Tomorrow server.</p><p>The user must have at least 1 department role (see <code>setup member</code>).<br></p><p><strong>IMPORTANT</strong></p><p>You must use the <code>setup member</code> command to add a department role before using this command.<br></p><p><strong>Aliases:</strong> add\_proj, addproject, add\_project</p>                                                                                                                                                                                                                                |
| setup done       | +setup done                | <p>Checks if a user is done with setup on the Code 4 Tomorrow server.</p><p>If the user is done (they have at least 1 department role and at least 1 project role), then the Unverified role is removed from the user and they are sent a setup complete DM. Otherwise, they are sent a setup fail DM.</p><p><strong>Checks</strong></p><p>This subcommand can only be used on the Code 4 Tomorrow server</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| setup ambassador | +setup ambassador          | <p>Sets up an ambassador on the C4T Community server by adding the Ambassador role to the user.</p><p></p><p><strong>Checks</strong></p><p>This command can only be invoked...</p><p>- in the #commands channel</p><p>- in the C4T Community server</p><p></p><p><strong>IMPORTANT</strong></p><p>Before using this command, you must use <code>+setup name \<name></code>to set your display name to the name you signed up with. This must match EXACTLY in order for the verification process to work.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| classup          | +classup \[codes] ...      | <p>This command is an alias for using <code>roleup</code>, <code>textup</code>, and <code>voiceup</code> all together. For more details, see those commands' help texts. </p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to set up </p><p></p><p><strong>Examples</strong> </p><p><code>+classup</code></p><p><code>+classup 11111</code> </p><p><code>+classup 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong></p><p>Only users with administrator permissions can use this command.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| classdown        | +classdown \[codes] ...    | <p>This command is an alias for using <code>roledown</code>, <code>textdown</code>, <code>voicedown</code>, and <code>convertroles</code> all together. For more details, see those commands' help texts. </p><p></p><p><strong>Arguments</strong> </p><p><code>type</code> - the role you want to convert (see <code>convertroles</code>). You must specify this argument. </p><p></p><p><code>codes</code> - the class code(s) that you want to shut down </p><p></p><p><strong>Examples</strong> </p><p><code>+classdown both</code> </p><p><code>+classdown both 11111</code> </p><p><code>+classdown student 11111</code></p><p><code>+classdown teacher 11111 11112 22231</code> </p><p></p><p><strong>Do NOT do this</strong></p><p><code>+classdown</code> (missing <code>type</code> argument) </p><p><code>+classdown 11111</code> (missing <code>type</code> argument)</p><p><code>+classdown 11111 both</code> (<code>type</code> argument before <code>codes</code> argument(s)) </p><p></p><p><strong>Checks</strong> </p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong> </p><p>The user who invoked the command must confirm this operation within 10 seconds otherwise the classdown operation will be canceled.</p> |
| voiceup          | +voiceup \[codes] ...      | <p>Creates or updates a private voice channel for each valid class code. <strong>IMPORTANT:</strong> Make sure to use <code>roleup</code> before this command to create class roles.</p><p></p><p>If no codes are given, voice channels will only be made for class codes which use Discord as a meeting location as specified on the class roster spreadsheet. (Specifically, the Meeting Location column must contain the words 'Discord Channel'.)</p><p></p><p>Also creates categories for each course and level combination if they don't already exist. (For example, it will create a Java Beginner category if there are Java Beginner class codes.)</p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to make voice channels for </p><p></p><p><strong>Examples</strong></p><p><code>+voiceup</code></p><p><code>+voiceup 11111</code></p><p><code>+voiceup 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong> </p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong> </p><p>If a class voice channel already exists, it will be edited so it has the correct category and permissions. </p>                                                                      |
| voicedown        | +voicedown \[codes] ...    | <p>Deletes the corresponding voice channel for each valid class code. </p><p></p><p>This command will also delete any empty categories.</p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to remove channels and roles for </p><p></p><p><strong>Examples</strong> </p><p><code>+voicedown</code></p><p><code>+voicedown 11111</code> </p><p><code>+voicedown 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong></p><p>Only users with administrator permissions can use this command.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| roleup           | +roleup \[codes] ...       | <p>Creates or updates cosmetic roles for each valid class code. If no class codes are given, the command will create roles for all class codes for this series. </p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to make roles for </p><p></p><p><strong>Examples</strong> </p><p><code>+roleup</code> </p><p><code>+roleup 11111</code></p><p><code>+roleup 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong></p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong> </p><p>If a class role already exists, its permissions will be cleared to ensure that it is a cosmetic role.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| roledown         | +roledown \[codes] ..*.*   | <p>Deletes cosmetic roles for each valid class code. If no class codes are given, the command will delete roles for all class codes for this series. </p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to delete roles for </p><p></p><p><strong>Examples</strong> </p><p><code>+roledown</code> </p><p><code>+roledown 11111</code> </p><p><code>+roledown 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong></p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong> </p><p>The user who invoked the command must confirm this operation within 10 seconds otherwise the operation will be canceled.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| convertroles     | +convertroles \[type]      | <p>Converts student or teacher roles to alumnus and former teacher, respectively.</p><p></p><p><strong>Arguments</strong> </p><p><code>type</code> - the role that you want to change (student, teacher, or both) </p><p></p><p><strong>Examples</strong> </p><p><code>+convertroles</code></p><p><code>+convertroles student</code></p><p><code>+convertroles teacher</code></p><p><code>+convertroles both</code> </p><p></p><p><strong>Checks</strong> </p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong> </p><p>The user who invoked the command must confirm this operation within 10 seconds otherwise the operation will be canceled.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| textup           | +textup \[codes] ...       | <p>Creates or updates a private text channel for each valid class code.</p><p></p><p>Also sets the text channel topic and creates categories for each course and level combination. (For example, it will create a Java Beginner category if there are Java Beginner class codes.) </p><p></p><p><strong>IMPORTANT:</strong> Make sure to use <code>roleup</code> before this command to create class roles. </p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to make text channels for </p><p></p><p><strong>Examples</strong> </p><p><code>+textup</code></p><p><code>+textup 11111</code></p><p><code>+textup 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong> </p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong> </p><p>Created class text channels will be appended to their categories in ascending order. Created categories will be appended in ascending order. </p><p></p><p>If a class text channel already exists, it will be edited so it has the correct topic, category, position, and permissions.</p>                                                                                                                                             |
| textdown         | +textdown \[codes] ...     | <p>Deletes the text channel for each valid class code. Also deletes any empty categories. </p><p></p><p><strong>Arguments</strong> </p><p><code>codes</code> - the class code(s) that you want to remove text channels for </p><p></p><p><strong>Examples</strong> </p><p><code>+textdown</code></p><p><code>+textdown 11111</code></p><p><code>+textdown 11111 11112 22231</code> </p><p></p><p><strong>Checks</strong> </p><p>Only users with administrator permissions can use this command. </p><p></p><p><strong>Note</strong></p><p>The user who invoked the command must confirm this operation within 10 seconds otherwise the textdown operation will be canceled.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://enoch.code4tomorrow.org/2.2.1/commands-reference/setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
