Skip to content

Roles

Roles, not ranks

v1 locked you into six numbered ranks. v2 replaces them with named roles that you can create, reorder and edit freely, so your staff structure can be whatever suits your game. Each role bundles three things: the commands its members can use, the permissions they hold, and the panel pages they can open. If you're coming from v1, Migrating from v1 explains how your old ranks map across.


The default roles

You start with six roles:

  • Player is given to everyone and covers the everyday player commands.
  • Fun adds the fun command pack, ideal for trusted regulars or a purchasable perk.
  • Mod adds moderation commands and pages like Bans, Warns and Logs.
  • Admin adds the admin pack, task editing and abusive modifiers like loop.
  • Dev can edit roles and game settings, and use global modifiers.
  • Owner holds every permission. The game creator receives it automatically.

Info

One extra internal role exists for HD Admin's purchasable booster commands. HD Admin manages it itself, so it never appears in your role list.


Giving people roles

There are two ways to hand out a role: automatically through its giveTo fields, or live while your game runs.

A role's giveTo fields decide who receives it automatically. Here's a trimmed Mod role handing itself to specific users, group members, gamepass owners and private server owners:

-- HD Admin > Config > Roles > Mod
return {

    rank = 3,
    color = Color3.fromRGB(59, 130, 246),

    -- Give To
    giveToEveryone = false,
    giveToPrivateServerOwner = true,
    giveToUsers = {
        {type = "UserId", userId = 1234567},
    },
    giveToGroups = {
        {type = "AnyMember", groupId = 1234567},
        {type = "SpecificRoles", groupId = 7654321, roles = {{rank = 254, name = "Moderator"}}},
    },
    giveToProducts = {
        {type = "GamePass", id = 1234567}, -- also accepts "Asset", "Bundle" and "Subscription"
    },

    -- Commands
    inheritCommandsWithTags = {"PackMod"},
    inheritCommandsFromJuniorRoles = true,

}

Every field is optional. Anything you leave out falls back to a sensible default, which is why the roles that ship with HD Admin only set a handful of fields each.

Open a player's profile in the panel, pick a role, then choose whether it applies permanently or just for the current server. Permanent grants travel cross-server, so they reach the player even if they're playing on another server or not in the game at all.

The same works in chat:

;givePermRole ben mod
;giveServerRole ben mod

Permissions

Permissions live directly on each role:

  • permit* fields govern commands: permitAll, permitTargetingOthers, permitMultipleTargets, permitBypassLimits, permitModifiersAbusive (modifiers like loop and delay) and permitModifiersGlobal (global and perm, so be very careful who holds this one).
  • inheritCommandsWithTags grants every command carrying one of the listed tags, and inheritCommandsFromJuniorRoles also pulls in the tags of every role ranked below. See Commands for how tags work.
  • mayView* fields govern the panel: mayViewPages lists the pages a role can open, mayViewIcon picks the topbar icon ("Dashboard", "Commands" or "None") and mayViewUnavailableCommands shows locked commands in the commands list.
  • mayEdit* fields govern changes: mayEditSettingsYou, mayEditSettingsGame, mayEditTasks, mayEditRoles and the mayEditAll umbrella. mayEditRoles is rank-relative. You can only manage roles ranked below your own, and you can only grant permissions you already hold, so nobody can hand out power they don't have.
  • limitCommandsPerMinute and limitRequestsPerSecond cap how quickly members of the role can run things.
  • promptWelcome shows the "You're a [role]" notice when members join, promptWarnings shows warnings such as invalid-command and no-permission notices, and promptAll shows the lot.

Editing roles in game

Everything above is editable while your game runs. The Roles page lets anyone with mayEditRoles create roles, change their settings, drag them into a new order and delete them. Edits save automatically and sync to every server within seconds.

The order of the list matters. A role's rank comes from its position rather than a fixed number, so dragging a role up the list makes it more senior. If you'd rather stick with your loader config, toggle "Use Studio Defaults" to revert every role to it. Your saved edits stay on record, so switching the toggle back off restores them.


Previewing roles

Give a role mayPreviewRoles and its members can temporarily act as any role at or below their own rank, to see exactly what a Mod or a Player experiences. Previewing never escalates anything. Safety checks always use your real roles, so previewing can't be used to slip past rank checks in either direction.