Training Commands setup
Chat commands for staff running a training: share trainees across teams, put on uniforms, send players to a waiting team, and open or close doors.
You Need
- Roblox Studio, with your game open.
- Your Prova licence key, from your dashboard.
- To own the experience, or the group that owns it.
- Your Roblox group’s ID, and your uniform’s shirt and pants IDs.
You Get
- A file from the Prova Discord server.
- Prova Core, free, one per experience.
- Your licence key, added as a secret.
What Goes Where
Your Explorer after installing. Don’t rename anything.
ReplicatedStorage
└─ PROVA | Training Commands Folder
├─ README Script
└─ Remotes Folder
└─ Notify RemoteEvent
ServerScriptService
└─ PROVA | Training Commands Folder
├─ CommandRules ModuleScript
├─ CommandService ModuleScript
├─ CommandsConfig ModuleScript
└─ CommandsServer Script
StarterPlayer → StarterPlayerScripts
└─ PROVA | Training Commands Folder
└─ NotificationClient LocalScript
| Service | Object | What it holds |
|---|---|---|
| ReplicatedStorage | PROVA | Training Commands | The README and the remote for notifications. |
| ServerScriptService | PROVA | Training Commands | The system and its settings. |
| StarterPlayer → StarterPlayerScripts | PROVA | Training Commands | Shows the replies as Roblox notifications. |
Installation
Follow the steps in order.
-
Join the Prova Group
You must be in the Prova group when you buy and when you sign in to your dashboard. Players in your game don’t need to join.
-
Buy the Game Pass
One payment in Robux, from the Training Commands page. The Game Pass is your proof of purchase.
Then open your dashboard and create your licence key. It is shown once, so copy it somewhere safe. One key covers every system you own, in up to six of your experiences.
-
Download the Training Commands File
The Training Commands arrives as one file, from the Prova Discord server. Save it somewhere you can find it.
-
Install Prova Core
Once per experience, however many Prova systems you own. Core is free. Open View → Explorer and click the arrow beside ReplicatedStorage. If PROVA | Core is already there, skip this step.
- Download Prova Core from the Prova Discord server.
- In Explorer, right-click Workspace and choose Insert from File. Pick the Prova Core file.
- Among what it adds are two folders named PROVA | Core.
- Drag the one holding Constants, Core, Ed25519 and Log into ReplicatedStorage.
- Drag the one holding CoreServer and LicenseProvider into ServerScriptService.
- Delete anything left over, such as an empty model.
ExplorerReplicatedStorage
└─ PROVA | Core
ServerScriptService
└─ PROVA | Core
Only one copy of Core. A second PROVA | Core stops every system with PC-002. -
Add the Training Commands Folders
In Explorer, right-click Workspace and choose Insert from File. Pick the Training Commands file. Among what it adds are three folders named PROVA | Training Commands. Drag each one into its service.
Add the Training Commands Folders Drag the folder holding Into README and Remotes ReplicatedStorage CommandsConfig ServerScriptService NotificationClient StarterPlayer → StarterPlayerScripts Remove any older scripts for the same commands. Delete anything left over, such as an empty model. -
Make Your Teams
Every team name below must exist, spelled exactly the same. Using other names? Keep yours and change the names in CommandsConfig instead.
- In Explorer, find Teams. If it is missing: Model tab → Service → Teams → Insert.
- Right-click Teams → Insert Object → Team.
- Rename it exactly: Mango, Papaya, Coconut, Pineapple, Awaiting Placement, Host, Co-Host.
- In Properties, give each team a TeamColor no other team uses.
- Untick AutoAssignable on each.
Two teams with the same TeamColor count as one team, and players land on the wrong one. -
Name Your Doors
!open and !close work on parts or models named Door and Door1, placed directly in Workspace, not inside a folder.
A door inside a folder or model? Select it, and in Properties → Attributes click +, name it TrainingCommandsDoor, choose boolean, and tick it.
-
Set Your Group and Uniforms
Open CommandsConfig and check three things.
ServerScriptService/PROVA | Training Commands/CommandsConfig- GroupId: change 0 to your group’s ID, the number in its web address.
- The ranks for each command: AutoGroupMinRank, UniformOthersMinRank, UnteamOthersMinRank, DoorsMinRank.
- The uniform: AutoGroupShirtId, AutoGroupPantsId, UniformShirtId and UniformPantsId. The ID is the number in the clothing’s web address.
-
Turn On Allow HTTP Requests
Turn on Allow HTTP Requests and click Save. Without it the licence can’t be checked and Core stops with PC-004. Already on if another Prova system works in this game.
File/Experience Settings/Security -
Add Your Licence Key as a Secret
Publish your game first: File → Publish to Roblox. Then, in a web browser, open create.roblox.com, click your experience, and in the left menu choose Secrets → Create Secret. Fill in all three fields exactly.
Already done for another Prova system? Skip this step. Lost your key? Rotate it on your dashboard and paste the new one here.
Creator Dashboard/Your Experience/Secrets/Create SecretAdd Your Licence Key as a Secret Field Type Name prova_licence Secret Your licence key Domain api.withprova.app -
Publish and Check the Output
Publish and join your game. Press F9 to open the Developer Console and choose the Server log. When the Training Commands works, you see these lines.
In the game, type !unteam in chat. A Roblox notification appears in the corner: Unteam Success.
Testing in Studio instead? Open View → Output. A normal Play can’t read the published secret, so add a Local Secret named prova_licence with your key under File → Experience Settings → Security, or use a Team Test.
Output[PROVA | Core] v0.2.0 starting.
[PROVA | Core] Training Commands v1.0.0 registered.
[PROVA | Training Commands] v1.0.0 ready.
[PROVA | Core] Licence confirmed.
Every Command.
Typed in chat. Replies arrive as a Roblox notification, only for the person who typed.
| Type | What it does | Who can, as standard |
|---|---|---|
| !autogroup | Shares trainees across their rank’s teams and dresses them | Rank 55+, or the Host team |
| !hruniform | Puts the uniform on you | Everyone |
| !hruniform name | Puts the uniform on someone else | Rank 55+ |
| !unteam | Sends you to Awaiting Placement | Everyone |
| !unteam name · !unteam all | Sends someone, or everyone, there | Rank 55+ |
| !headless | Hides your head until you respawn | Owners of HeadlessGamePassId |
| !open · !close | Opens or closes the doors | Rank 71+, or the Host and Co-Host teams |
Settings
All settings are in one file. Change a value, then publish.
Your Group
Command words can be changed. Each is one word, and capitals don’t matter when typing them.
| Setting | Standard | What it does |
|---|---|---|
| GroupId | 0 | Your group’s ID. 0 means everyone has rank 0. |
!autogroup
| Setting | Standard | What it does |
|---|---|---|
| AutoGroupCommand | "!autogroup" | The command. |
| AutoGroupMinRank | 55 | Lowest rank that can use it… |
| AutoGroupAllowedTeams | { "Host" } | …or anyone on one of these teams. |
| AutoGroupTeams | 15 Mango, 20 Papaya and Coconut, 25 Pineapple | For each trainee rank, the teams its players are shared between, in turn. |
| AutoGroupShirtId | 0 | The shirt put on everyone it moves. 0 is none. |
| AutoGroupPantsId | 0 | The pants put on everyone it moves. 0 is none. |
!hruniform
| Setting | Standard | What it does |
|---|---|---|
| UniformCommand | "!hruniform" | The command. Add a name to dress someone else. |
| UniformMinRank | 0 | Lowest rank that can put it on themselves. |
| UniformOthersMinRank | 55 | Lowest rank that can put it on someone else. |
| UniformShirtId | 0 | The uniform shirt. 0 is none. |
| UniformPantsId | 0 | The uniform pants. 0 is none. |
!unteam
| Setting | Standard | What it does |
|---|---|---|
| UnteamCommand | "!unteam" | The command. Add a name, or all. |
| UnteamTeam | "Awaiting Placement" | The waiting team. |
| UnteamOthersMinRank | 55 | Lowest rank that can unteam someone else, or everyone. |
!headless
| Setting | Standard | What it does |
|---|---|---|
| HeadlessCommand | "!headless" | The command. Hides the head until the player respawns. |
| HeadlessGamePassId | 0 | Only owners of this pass can use it. 0 turns it off. |
!open and !close
| Setting | Standard | What it does |
|---|---|---|
| OpenCommand | "!open" | Opens the doors: players can walk through. |
| CloseCommand | "!close" | Closes the doors: they are solid again. |
| DoorNames | { "Door", "Door1" } | Names of doors placed directly in Workspace. |
| DoorsMinRank | 71 | Lowest rank that can use them… |
| DoorsAllowedTeams | { "Host", "Co-Host" } | …or anyone on one of these teams. |
Notifications and Output
| Setting | Standard | What it does |
|---|---|---|
| NotificationSeconds | 5 | How long Roblox’s notification stays in the corner. |
| VerboseLogging | false | Print every command. |
Troubleshooting
Open Output and look for lines starting with [PROVA |. All PC- codes are also on Error Codes.
| You see | It means | What to do |
|---|---|---|
| Nothing happens when typing a command | No licence yet, or the word is different in CommandsConfig. | Look for a PC- code, then check the command words. |
| Permission Denied | Rank or team too low for that command. | Check the ranks in CommandsConfig. |
| there is no team named | A team is missing or misnamed. | Make Your Teams. |
| No part or model named "Door" is directly inside Workspace | A door is missing, or inside a folder. | Name Your Doors. |
| Players land on the wrong team | Two teams share a TeamColor. | Give each team its own colour. |
| !headless does nothing | HeadlessGamePassId is 0, which turns it off. | Set your pass ID. |
| isn’t valid | A typing mistake in CommandsConfig. | The message names it. |
| PC-001 | Prova Core isn’t installed. | Install Prova Core. |
| PC-002 | Prova Core is installed twice. | Delete one PROVA | Core from each service. |
| PC-003 | No licence key found. | Add the secret. In a Studio Play, add a Local Secret or use a Team Test. |
| PC-004 | HTTP requests are off. | Turn On Allow HTTP Requests. |
| PC-005 | Prova couldn’t be reached. | Usually passes by itself. If not, check the secret’s Domain is api.withprova.app. |
| PC-006 | The key isn’t valid. | Copy it again, or rotate it on your dashboard. |
| PC-014 | You don’t own this experience. | Use it in an experience owned by you or your group. |
| PC-015 | Your licence doesn’t cover the Training Commands. | Buy its Game Pass, or remove it. |
