- Add new player-commands.md with user-friendly command guide - Document all 12 commands: reload, ravi, course, rights, tele, kqf, ban, help, psn, discord, timer, playtime - Include usage examples, troubleshooting, and special features (@dice) - Update commands.md with new commands and current config format - Add security considerations for new admin commands - Update docs/README.md to link both player and operator guides Addresses community request for command documentation (issue #147)
11 KiB
In-Game Commands
In-game chat commands for players and administrators.
Looking for player documentation? See Player Commands Reference for a user-friendly guide to using commands in-game.
Configuration
{
"Commands": {
"Enabled": true,
"CommandPrefix": "!",
"Reload": { "Enabled": true, "Prefix": "reload" },
"Raviente": { "Enabled": true, "Prefix": "ravi" },
"Course": { "Enabled": true, "Prefix": "course" },
"Rights": { "Enabled": false, "Prefix": "rights" },
"Teleport": { "Enabled": false, "Prefix": "tele" },
"KeyQuest": { "Enabled": false, "Prefix": "kqf" },
"Ban": { "Enabled": false, "Prefix": "ban" },
"Help": { "Enabled": true, "Prefix": "help" },
"PSN": { "Enabled": true, "Prefix": "psn" },
"Discord": { "Enabled": true, "Prefix": "discord" },
"Timer": { "Enabled": true, "Prefix": "timer" },
"Playtime": { "Enabled": true, "Prefix": "playtime" }
}
}
How Commands Work
- Player Types Command: Player sends a chat message starting with the command prefix
- Command Parser: Server checks if message matches any enabled command prefix
- Command Handler: Executes the command logic
- Response: Server sends feedback message to the player
Commands are parsed in handlers_cast_binary.go:90.
Available Commands
Reload
Prefix: !reload
Recommended: Enabled
Usage: !reload
Reloads all players and objects in the current stage:
- Removes all other players/objects from view
- Waits 500ms
- Re-adds all players/objects with updated data
Use Cases:
- Visual glitches (players appearing in wrong positions)
- Objects not displaying correctly
- Stage synchronization issues
Example:
Player types: !reload
Server: "Reloading all players and objects..."
[View refreshes]
Raviente
Prefix: !ravi
Recommended: Enabled
Usage: !ravi <subcommand>
Control Raviente raid event.
Subcommands:
!ravi start- Start the Raviente event!ravi cmor!ravi checkmultiplier- Check current damage multiplier
Examples:
Player types: !ravi start
Server: "Raviente event started!"
Player types: !ravi cm
Server: "Current Raviente multiplier: 2.5x"
Course
Prefix: !course
Recommended: Enabled
Usage: !course <course_name>
Enable or disable subscription courses for your character.
Course Names:
hunterlifeorhl- Hunter Life Courseextraorex- Extra Coursepremium- Premium Courseassist- Assist Coursen- N Coursehiden- Hiden Coursehuntersupportorhs- Hunter Support Coursenboost- N Boost Coursenetcafeornc- NetCafe Coursehlrenewing- Hunter Life Renewing Courseexrenewing- Extra Renewing Course
Note: Only courses with Enabled: true in the Courses configuration can be toggled.
Examples:
Player types: !course premium
Server: "Premium Course enabled!"
[Player's account rights updated]
Player types: !course premium
Server: "Premium Course disabled!"
[Toggled off]
Player types: !course hiden
Server: "Hiden Course is locked on this server"
[Course not enabled in config]
KeyQuest (KQF)
Prefix: !kqf
Recommended: Disabled (unless intentional)
Usage: !kqf get or !kqf set <hex>
Get or set Key Quest flags (unlocks).
Subcommands:
!kqf get- Display current KQF value!kqf set <16-char hex>- Set KQF value
Examples:
Player types: !kqf get
Server: "Your KQF is: 0123456789ABCDEF"
Player types: !kqf set 0000000000000000
Server: "KQF set successfully!"
[Quest unlocks updated]
Player types: !kqf set invalid
Server: "Usage: !kqf set <16 hex characters>"
Warning: This allows players to unlock content. Disable unless you want players to have this power.
Rights
Prefix: !rights
Recommended: Disabled
Usage: !rights <number>
Modify account rights/permissions (bitfield of enabled courses and permissions).
Example:
Player types: !rights 255
Server: "Account rights set to: 255"
[All courses/permissions enabled]
Player types: !rights abc
Server: "Usage: !rights <number>"
⚠️ SECURITY WARNING: This allows players to grant themselves admin privileges and all courses. Only enable in development or for trusted administrators.
Teleport
Prefix: !tele
Recommended: Disabled
Usage: !tele <x> <y>
Teleport to specific stage coordinates.
Examples:
Player types: !tele 500 -200
Server: "Teleporting to 500 -200"
[Character moves to coordinates]
⚠️ SECURITY WARNING: Allows bypassing normal movement. Only enable for administrators.
Help
Prefix: !help
Recommended: Enabled
Usage: !help
Display a list of all enabled commands on the server.
Example:
Player types: !help
Server: "Available commands: !reload, !ravi, !course, !help..."
Timer
Prefix: !timer
Recommended: Enabled
Usage: !timer
Toggle the quest timer display on/off. Preference is saved to the player's account.
Example:
Player types: !timer
Server: "Quest timer disabled"
Player types: !timer
Server: "Quest timer enabled"
Playtime
Prefix: !playtime
Recommended: Enabled
Usage: !playtime
Display total character playtime.
Example:
Player types: !playtime
Server: "Playtime: 142h 35m 12s"
PSN
Prefix: !psn
Recommended: Enabled
Usage: !psn <psn_id>
Link a PlayStation Network ID to the player's account.
Example:
Player types: !psn MyPSNUsername
Server: "PSN ID set to: MyPSNUsername"
Use Cases:
- Cross-platform account linking
- Server-specific PSN integrations
Discord
Prefix: !discord
Recommended: Enabled
Usage: !discord
Generate a temporary token for Discord account linking.
Example:
Player types: !discord
Server: "Discord token: abc123-xyz789"
[Player uses token with Discord bot to link accounts]
Note: Requires Discord Integration to be configured.
Ban
Prefix: !ban
Recommended: Disabled
Usage: !ban <character_id> [duration]
Ban a player from the server. Supports temporary and permanent bans.
Duration Format: <number><unit> where unit is:
s- secondsm- minutesh- hoursd- daysmo- monthsy- years
Examples:
Admin types: !ban ABC123
Server: "User ABC123 permanently banned"
Admin types: !ban ABC123 7d
Server: "User ABC123 banned for 7 days"
Admin types: !ban ABC123 2h
Server: "User ABC123 banned for 2 hours"
⚠️ SECURITY WARNING: Only enable for trusted administrators. Requires operator permissions.
Command Configuration
Each command has three properties:
{
"Name": "CommandName",
"Enabled": true,
"Prefix": "!prefix"
}
| Property | Type | Description |
|---|---|---|
Name |
string | Command identifier (must match internal name) |
Enabled |
boolean | Whether the command is active |
Prefix |
string | Chat prefix that triggers the command |
Customizing Prefixes
You can change command prefixes:
{
"Name": "Reload",
"Enabled": true,
"Prefix": "/reload"
}
Now players would type /reload instead of !reload.
Disabling Commands
Set Enabled: false to disable:
{
"Name": "Rights",
"Enabled": false,
"Prefix": "!rights"
}
When disabled, typing the command returns:
Server: "The Rights command is disabled on this server"
Security Considerations
High-Risk Commands (Disable in Production)
- Rights: Grants admin privileges and all courses
- KeyQuest: Unlocks restricted content
- Ban: Can permanently remove players from server
- Teleport: Bypasses normal movement restrictions
Medium-Risk Commands (Use with Caution)
- Course: Allows players to toggle courses without payment
- Mitigate by limiting which courses are
Enabledin Courses
- Mitigate by limiting which courses are
Safe Commands
- Reload: Only affects visual state, no persistent changes
- Raviente: Only affects raid event, no account changes
- Help: Read-only, shows available commands
- Timer: User preference only, no gameplay impact
- Playtime: Read-only display
- PSN: Account linking, low risk
- Discord: Token generation, requires Discord bot to be useful
Implementation Details
Commands are initialized on server startup from the config:
// handlers_cast_binary.go:40
func init() {
commands = make(map[string]config.Command)
for _, cmd := range config.ErupeConfig.Commands {
commands[cmd.Name] = cmd
if cmd.Enabled {
logger.Info(fmt.Sprintf("Command %s: Enabled, prefix: %s", cmd.Name, cmd.Prefix))
}
}
}
Each command handler checks if the command is enabled before executing.
Examples
Minimal Safe Configuration
{
"Commands": {
"Enabled": true,
"CommandPrefix": "!",
"Reload": { "Enabled": true, "Prefix": "reload" },
"Raviente": { "Enabled": true, "Prefix": "ravi" },
"Help": { "Enabled": true, "Prefix": "help" }
}
}
Community Server Configuration
{
"Commands": {
"Enabled": true,
"CommandPrefix": "!",
"Reload": { "Enabled": true, "Prefix": "reload" },
"Raviente": { "Enabled": true, "Prefix": "ravi" },
"Course": { "Enabled": true, "Prefix": "course" },
"Help": { "Enabled": true, "Prefix": "help" },
"Timer": { "Enabled": true, "Prefix": "timer" },
"Playtime": { "Enabled": true, "Prefix": "playtime" },
"Discord": { "Enabled": true, "Prefix": "discord" }
}
}
Full Development Configuration
{
"Commands": {
"Enabled": true,
"CommandPrefix": "!",
"Reload": { "Enabled": true, "Prefix": "reload" },
"Raviente": { "Enabled": true, "Prefix": "ravi" },
"Course": { "Enabled": true, "Prefix": "course" },
"Rights": { "Enabled": true, "Prefix": "rights" },
"Teleport": { "Enabled": true, "Prefix": "tele" },
"KeyQuest": { "Enabled": true, "Prefix": "kqf" },
"Ban": { "Enabled": true, "Prefix": "ban" },
"Help": { "Enabled": true, "Prefix": "help" },
"PSN": { "Enabled": true, "Prefix": "psn" },
"Discord": { "Enabled": true, "Prefix": "discord" },
"Timer": { "Enabled": true, "Prefix": "timer" },
"Playtime": { "Enabled": true, "Prefix": "playtime" }
}
}
Custom Prefixes (Slash Commands)
{
"Commands": {
"Enabled": true,
"CommandPrefix": "/",
"Reload": { "Enabled": true, "Prefix": "refresh" },
"Raviente": { "Enabled": true, "Prefix": "ravi" },
"Course": { "Enabled": true, "Prefix": "sub" }
}
}
Related Documentation
- Player Commands Reference - User-friendly guide for players
- Courses - Course configuration for the
!coursecommand - Discord Integration - Commands may post to Discord
- Gameplay Options - Gameplay balance settings