Member System Documentation

The Member System is the core component of AlbionManager that handles member registration, role management, and integration with Discord roles. This comprehensive guide will walk you through all aspects of the member system.

🎯 Prerequisites: Before using any member system features, you must complete the initial bot setup. Please follow the First Steps guide to configure your bot with the /setup start command.

📖 Table of Contents

🔍 System Overview

The Member System provides:

💡 Best Practice: Always use the dashboard for bulk operations and Discord commands for individual member management.

👥 Member Registration

Automatic Registration (Recommended)

Members can register themselves using the Discord slash command:

/register player-name: YourPlayerName first-role: DPS second-role: Healer region: EU

Registration Process:

  1. Member uses the /register command in Discord
  2. Bot validates the player name with Albion Online API
  3. Verifies if player is part of the configured guild
  4. Creates member record in database with roles and region
  5. Assigns appropriate Discord role (if configured)
  6. Sends confirmation message with member details

Manual Registration (Admin Only)

Administrators can register members using:

/force-register user: @DiscordUser player-name: PlayerName first-role: DPS second-role: Healer region: EU
⚠️ Important - Albion Online API Dependency: Player names must exist in Albion Online and be part of the configured guild. The bot validates this through the Albion Online API. Note that the Albion API can be slow to update - if a player recently joined your guild, it may take time for the API to recognize them. In some cases, the API has taken up to 3 days to update player guild information. This delay is completely outside of our control and depends on Sandbox Interactive's API update schedule.
💡 API Delay Solutions: If registration fails due to "player not found in guild" but you know they recently joined, try again in a few hours. For urgent cases, you can use /force-register as an admin, then update the information later when the API catches up.

🖥️ Dashboard Management

The web dashboard provides member viewing and basic management tools:

Accessing the Dashboard

  1. Visit your bot's web interface
  2. Login with Discord OAuth
  3. Select a guild from the sidebar dropdown
  4. Click "View Members" from the guild overview

Dashboard Features

Member List View

Setup Configuration Management

The dashboard also provides access to modify bot configuration:

📝 Configuration Updates: Changes to setup configuration through the dashboard have the same effect as running /setup start again, but with a more user-friendly interface.

Member Information Displayed

Available Actions

� Dashboard Editing: You can modify member information (player name, roles, region) directly through the web dashboard without needing Discord commands. This is especially useful for bulk updates and corrections.

💬 Discord Commands

User Commands

/register

Purpose: Register your Discord account with an Albion Online player

Usage: /register player-name: [name] first-role: [role] second-role: [role] region: [region]

Parameters:

Available Roles:

Example: /register player-name: JohnWarrior first-role: DPS second-role: Healer region: EU

Admin Commands

/force-register

Purpose: Register another user (admin only)

Usage: /force-register user: [@user] player-name: [name] first-role: [role] second-role: [role] region: [region]

Permissions: Requires "Manage Roles" permission

/members

Purpose: Display paginated member list with search and filter options

Usage: /members

Features:

/remove

Purpose: Remove a member from the system

Usage: /remove user: [@user]

Permissions: Requires administrator permissions

/check-unregistered

Purpose: List Discord users who haven't registered

Usage: /check-unregistered

Output: Shows unregistered users with registration prompts

/flush

Purpose: Manually clean up Discord roles for users who are no longer registered or no longer in the Albion Online guild

Usage: /flush

Permissions: Requires administrator permissions

Function:

⚠️ Important - Manual Role Cleanup: The bot does NOT automatically remove Discord roles when members are removed from the system or leave the Discord server. You must manually run the /flush command periodically to clean up roles from users who are no longer registered. This is by design to prevent accidental role removal and give administrators control over when cleanup occurs.
🔍 API Verification: The /flush command performs a comprehensive check by querying the Albion Online API to verify that registered players are still active members of your configured guild. If a player has left the guild in-game, their Discord roles will be automatically removed during the flush operation.
💡 Best Practice: Run /flush regularly (weekly or monthly) to keep your Discord roles clean and organized. This is especially important after removing multiple members or during server cleanups.

🎭 Role Management

The bot automatically assigns Discord roles based on member registration data. The system supports multiple types of roles that are configured per guild.

Role Types

Main Member Role

Every registered member automatically receives the main member role configured in the guild setup. This is the primary role that identifies registered members.

Class Roles

Based on the first-role and second-role selections during registration, members receive corresponding Discord roles:

Region Roles

Members also receive a region role based on their selection:

Role Configuration

Roles are configured through the /setup start command by guild administrators. All role types must be mapped to existing Discord roles:

⚠️ Important: All role mappings are now mandatory during setup. You must create Discord roles for all 8 combat classes and 3 regions before running the setup command.

Automatic Role Assignment

Roles are automatically assigned during registration:

  1. Main Member Role: Always assigned to registered members
  2. Primary Class Role: Based on first-role selection
  3. Secondary Class Role: Based on second-role selection (if different from primary)
  4. Region Role: Based on region selection
📝 Note: All role mappings are mandatory during setup. If you need to update role assignments later, re-run the setup command with the new role mappings.

Role Assignment Behavior

Manual Role Cleanup

The bot does not automatically remove Discord roles when members are removed from the system. This requires manual intervention using the /flush command.

Why Manual Cleanup?

When to Run /flush

📝 Cleanup Process: The /flush command will scan all Discord server members, compare against registered users in the database, verify current guild membership via Albion Online API, and remove bot-managed roles from users who are not registered or no longer in the configured guild. It provides a detailed report of all actions taken.

📊 Data Structure

Member Model

Each member record contains:

{
  "id": "auto_increment_id",
  "playerName": "Albion Online Player Name",
  "playerId": "albion_player_id_from_api", 
  "discordServerId": "discord_server_id",
  "discordMemberId": "discord_user_id",
  "firstRole": "DPS",
  "secondRole": "Healer",
  "region": "EU",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T12:30:00.000Z"
}

Database Relationships & Constraints

🔧 Troubleshooting

Common Issues

Setup Command Fails

Symptoms: Setup command returns error or doesn't complete

Solution: Please refer to the comprehensive First Steps guide which covers all setup requirements, troubleshooting, and step-by-step instructions.

Registration Fails

Symptoms: User gets error when trying to register

Possible Causes:

Solutions:

Roles Not Assigned

Symptoms: Member registers but doesn't get Discord role

Solutions:

Dashboard Access Issues

Symptoms: Cannot access member management in dashboard

Solutions:

Data Recovery

If member data is lost or corrupted:

  1. Check automatic database backups
  2. Use backup restoration tools
  3. Re-register members if necessary
  4. Contact support with error logs