# GoVer

{% tabs %}
{% tab title="Server Config" %}
&#x20;`!Nickname <on|off>` - Set whether or not new users will be nicknamed to their Roblox name. Default `on`.

`!NicknameFormat [format]` - Set the nickname format, so you could have the nickname include their roblox id or discord name, for example. Available replacements are `%USERNAME%`, `%USERID%`, `%SERVER%`, `%RANK%`, `%DISCORDNAME%`, and `%DISCORDID%`. Example: `%USERNAME% - (%USERID%)`. Default `%USERNAME%`.

`!NicknameGroup [group_id]` - The group ID to use for the %RANK% replacement in nicknames. This allows you to make your usernames look like [this](https://i.imgur.com/4VA1vq9.png). Note that if your group rank name on Roblox.com starts with something in brackets like “\[PVT] Private”, only the “\[PVT]” will be used for the nickname. Otherwise, the entire rank name is used. Default `null`.
{% endtab %}

{% tab title="Channel Config" %}
`!AnnounceChannel [channel]` - Set a channel that the bot will post a message to every time someone verifies. Default `null`.

`!VerifyChannel [channel]` - Set a channel that the bot will delete all messages in except for verification messages. Default `null`.

`!CreateVerifyChannel` Creates a channel category with verification instructions for new members and a channel for users to verify themselves.
{% endtab %}

{% tab title="Other" %}
`!JoinDM <on|off>` Set whether or not new users will be automatically direct messaged with verification instructions when joining this server. Default `on`.

`!WelcomeMessage [welcome message]` - Set the message the user gets when they verify. Will be sent in DMs unless they use `!verify` command. Available replacements are `%USERNAME%`, `%USERID%`, `%SERVER%`, `%DISCORDNAME%`, and `%DISCORDID%`. Default `Welcome to %SERVER%, %USERNAME%!`.

`@GoVer prefix [prefix]` - Change the command prefix. (Default: `!`)
{% endtab %}

{% tab title="Ranks" %}
`!VerifiedRole [exact role name]` - Set the role that verified members will get. Default `null`.

`!UnverifiedRole [exact role name]` - Set the role that non-verified members will get. Default `null`.

`!Bind <"exact role name"> <group_id>:<rank_id> [<group_id>:<rank_id>]...` Binds Roblox group membership or group rank to a Discord role. Put the Discord role name in quotes. Please see [Integrating with Roblox Groups](https://rover.link/#integrating-with-roblox-groups).

`!Unbind <exact role name>` - Unbinds this role from any group ranks.

`!UnbindAll` - Removes all group bindings configured for this server.

`!Bindings` - Shows a list of all bound roles.

`!CreateGroupRanks <group_id>` - Creates Discord roles from all of the roles in a given group, and then binds them to the group. (If a role already exists with a name matching a group rank, that role will be used instead of creating a new one.)
{% endtab %}

{% tab title="User Commands" %}
**User administration**

* `!Update <@user>` - Forcibly update verification status of a user, same as them running `!verify`. Requires “Manage Server” or a role named “GoVer Updater”.

#### User commands <a href="#user-commands" id="user-commands"></a>

* `!Whois <@user>` - Get a link to a verified user’s profile.
* `!Verify` -&#x20;
  {% endtab %}

{% tab title="Magic Roles" %}
Magic roles are special role names that can give specific users in your server special power. There are no commands needed to use these, all you need to do is create a role in your server matching these exact names and assign them to users. These roles are checked for by name exactly, so if you create these roles on your server, ensure that they are spelled and capitalized exactly the same as they appear below.

* `GoVer Bypass` - GoVer will ignore users with a role called “GoVer Bypass”, so you can give them custom names or give people a member role when they aren’t actually verified or in a group.
* `GoVer Nickname Bypass` - The same as GoVer Bypass, except it only bypasses nicknames. Roles will still be given.
* `GoVer Admin` - GoVer will allow anyone with a role called “GoVer Admin” to run any of the server commands, even if they don’t have Manage Server.
* `GoVer Updater` - You can also give users a role called “GoVer Updater”, which will let the holder of that role run !update on others, but no other admin commands.
  {% endtab %}

{% tab title="Roblox Groups" %}
Group bindings can be created to keep Discord roles up to date with Roblox group ranks. GoVer does not support or plan to support changing group ranks or shouts on Roblox.com, and you should be wary of any bots that offer this functionality, as this introduces a major security risk.

Group bindings can be created with the `!Bind` command.

* The first argument in the Bind command is the Discord role name.
  * This needs to be in quotation marks if it has spaces
* After that, you can pass an unlimited amount of groups with a list of ranks for each group.
  * The groups are in the format `<group_id>:<rank_number>` (e.g. `372372:135`).
    * You can find the Roblox group ranks for each role in a Roblox group on the Roblox group admin > roles page; it is a number between 1 and 255.
    * You can provide a list of ranks, like `<groupid>:<rank>,<rank>,<rank>` (e.g. `372372:135,150,250`).
    * You can provide a range of ranks instead of listing them out, like `1-130`, e.g. (`372372:1-130,255`, which will count for anyone who has a rank between 1 and 130 \[inclusive] or the rank 255).
    * You can also bind the rank `0` to bind rank for people who are *not* in the group.
  * If the user meets the requirements for *any* of the groups, they will be considered to have the role.

#### Examples <a href="#examples" id="examples"></a>

**Note**: You need to put the Discord role name in quotation marks if it has spaces. If you don’t do this you will get unexpected results.

* Use the following command to set up giving a role to all members of a group:

  `!Bind "Group Member" 372372`
* Use the following command to set up giving a role to members of a certain rank in a group:

  `!Bind "Group Owner" 372372:255`
* Use the following command to set up giving a role to members of a **certain range** of rank in a group:

  `!Bind "High Rank" 372372:200-254`
* Use the following command to set up giving a role to a specific set of ranks in a group:

  `!Bind "Group Leaders" 372372:50,100-150,200` - This will bind a rank for users with a rank 50, anywhere from 100 to 150 (including 111, 122, etc), and the rank 200
* Use the following command to set up giving a role to a user who meets the requirements in any of a list of groups

  `!Bind "Faction Leader" 372372:250 372838:255 29393:250-255` - This will give the user the `Faction Leader` Discord role when they are rank 250 in the first group, *or* rank 255 in the second group, *or* ranks 250 through 255 in the last group.
* Use the following command to unbind a role from a group:

  `!Unbind Group Member` where `Group Member` is the *Discord role name*

#### Virtual groups <a href="#virtual-groups" id="virtual-groups"></a>

Virtual groups are a way to bind ranks using the group rank binding system for external services that need not be Roblox groups, such as the developer forum. Currently, these are available by default:

**DevForum (devforum.roblox.com)**

* `DevForumNewMember` - “Member” rank on the DevForum (as of Feb 2020)
* `DevForumRegular` - “Regular” rank on the DevForum (as of Feb 2020)
* `DevForumAccess` - DevForum access (either regular or member)
* `DevForumTopContributor` - DevForum Top Contributor
* `CommunitySage` - DevForum Community Sage
* `PostApproval` DevForum Post Approval team member
* `RobloxStaff` - A Roblox staff member (based on DevForum rank)

**Assets & Ownership**

* `GamePass:<gamepass_id>` - Binds ownership of a game pass, takes the id as an argument
* `Badge:<badge_id>` - Binds ownership of a badge, takes the id as an argument
* `Asset:<asset_id>` - Binds ownership of an asset, takes the id as an argument

**Users**

* `Friend:<user_id>` - Binds being a friend to the given user on Roblox
* `NBC` - No builders club or premium
* `Premium` - Roblox Premium

**Group Affiliations**

* `Ally:<group_id>`\* - Binds being in a group that is allied to group\_id
* `Enemy:<group_id>`\* - Binds being in a group that is an enemy of to group\_id

\* indicates a heavily-cached resource that cannot be manually cleared. The cache will expire every two hours on the official version.

To create a role for all members of the dev forum in your server, use the following command:

`!Bind DevForumMember DevForum`

To create a role for all members who own a specific asset, use the following command:

`!Bind Winner Asset:424242`

To create a role for all members who own at least one of two assets, use the following command:

`!Bind Winner Asset:424242 Asset:525252`

To create a role for all members who are either in the DevForum, have OBC, or is in group 372372 as an owner:

`!Bind DevForumOrOBC DevForum OBC 372372:255`

#### Ranks in nicknames <a href="#ranks-in-nicknames" id="ranks-in-nicknames"></a>

If you want users’ group ranks to appear in their nickname, like “\[PVT] evaera”, follow these steps:

* Ensure the RANK is present somewhere in the nickname format: `!NicknameFormat %RANK% %USERNAME%`
* Configure the group id to be used for the ranks: `!NicknameGroup 372372`
* GoVer will automatically pick up on rank labels, so if the group rank is named “\[PVT] Private”, GoVer will only use the “\[PVT]” for the nickname. If there is no label in the rank name, then GoVer will use the entire rank name instead.
  {% endtab %}
  {% endtabs %}
