Files
Erupe/docs/commands.md
Houmgaor 09f829f8be docs: add player commands reference and update command documentation
- 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)
2026-02-05 11:34:06 +01:00

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

  1. Player Types Command: Player sends a chat message starting with the command prefix
  2. Command Parser: Server checks if message matches any enabled command prefix
  3. Command Handler: Executes the command logic
  4. 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:

  1. Removes all other players/objects from view
  2. Waits 500ms
  3. 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 cm or !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:

  • hunterlife or hl - Hunter Life Course
  • extra or ex - Extra Course
  • premium - Premium Course
  • assist - Assist Course
  • n - N Course
  • hiden - Hiden Course
  • huntersupport or hs - Hunter Support Course
  • nboost - N Boost Course
  • netcafe or nc - NetCafe Course
  • hlrenewing - Hunter Life Renewing Course
  • exrenewing - 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 - seconds
  • m - minutes
  • h - hours
  • d - days
  • mo - months
  • y - 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 Enabled in Courses

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" }
  }
}