Entitlements User Guide
Overview
Welcome to the SoulWars Entitlements System! This guide explains how to manage user access to game features, themes, and tools through the admin interface.
What Are Entitlements?
Entitlements are permissions that control what users can access in SoulWars. Think of them as digital keys that unlock specific features.
Default Entitlements
game_access
Allows users to launch matches
Enables game mode selection
Unlocks chat features
Required for core gameplay
theme_creator
Grants access to the Theme Creator tool
Allows creating and customizing visual themes
For content creators and designers
Theme-Specific Entitlements
Format:
theme:theme-idExample:
theme:cyberpunk-2077Controls access to premium/custom themes
Note: The default
soulwars-defaulttheme is always accessible
Entitlement Categories
Game Features
Core gameplay functionality
Match creation and joining
Game modes and special features
Themes
Visual customizations
Battlefield appearances
UI styling
Tools
Development and creation tools
Theme Creator
Future admin tools
Admin Panel Access
Requirements
To access the admin panel, you must have one of these permission levels:
adminmoderatorsuper_admin
Accessing the Panel
Granting Access
Basic Grant Flow
Configure Grant Details
Grant Type: Select how this access was obtained
Admin Grant: You're giving them access
Trial: Temporary trial period
Gift: Given as a reward or promotion
Purchased: They bought it (usually automatic)
Creator: For content creators
Expiration Date (Optional):
Leave blank for permanent access
Set a date/time for temporary access
Notes (Optional):
Add context for why access was granted
Example: "Beta tester - Phase 1"
Example: Giving a User Game Access
Managing User Entitlements
Viewing a User's Entitlements
Review Entitlements
See all active entitlements for that user. For each entitlement, you'll see:
Name (e.g., "Game Access")
Description
ID (technical identifier)
Type (how it was granted: admin, trial, etc.)
Category (game_feature, theme, or tool)
Granted (when it was given)
Expires (when it expires, if applicable)
Notes
Revoking Access
Revoking is immediate and cannot be undone. The user will lose access right away.
Creating New Entitlements
When to Create New Entitlements
Create a new entitlement when you need to:
Launch a new premium theme
Add a new game feature that requires access control
Create a new tool or capability
Set up a new tier of access
How to Create
Fill Details
Required and recommended fields:
Entitlement ID (Required)
Technical identifier used in code
Must be unique
Format rules:
Game features: lowercase with underscores (e.g.,
tournament_access)Themes:
theme:theme-id(e.g.,theme:neon-nights)Tools: descriptive name (e.g.,
map_editor)
Cannot be changed after creation
Name (Required)
Human-readable display name
Description (Optional but recommended)
Explain what this entitlement provides
Category (Required)
Select one: Game Feature, Theme, Tool
Example: Creating a Theme Entitlement
Common Scenarios
Scenario: Onboarding a New Player
Search for their wallet address
Grant "Game Access" entitlement
Grant Type: Admin Grant; Leave expiration blank (permanent); Notes: "New player onboarding - [Date]"
Result: Player can now launch matches and play games.
Scenario: Beta Testing a New Theme
Create theme entitlement:
ID:
theme:beta-theme-v1Name: "Beta Theme v1"
Category: Theme
For each tester:
Grant the theme entitlement
Grant Type: Trial
Expires At: [30 days from now]
Notes: "Beta tester - Group A"
Result: Testers can use the theme for 30 days, then access automatically expires.
Scenario: Rewarding Content Creators
Search for creator's wallet
Grant "Theme Creator" entitlement
Grant Type: Creator
No expiration
Notes: "Verified content creator - Application #123"
Result: User sees "Theme Creator" link in menu and can access the tool.
Scenario: Limited-Time Promotion
For each promotional user:
Grant "Game Access"
Grant Type: Gift
Expires At: [7 days from now]
Notes: "Launch week promotion"
Result: Users have access for exactly 1 week, then it expires automatically.
Scenario: Theme Creator Needs Their Own Theme
Create theme entitlement:
ID:
theme:artist-theme-nameName: "[Artist Name]'s Theme"
Category: Theme
Grant to creator:
Type: Creator (or Owned)
No expiration
Notes: "Theme creator - owns this theme"
Grant to any buyers/users as needed
Result: Creator can always use their theme, others need to be granted access.
Troubleshooting
Below are common issues and checks. Each entry is collapsible for convenience.
User Says They Can't Access a Feature
Checklist:
Does the user have the required entitlement? — View their entitlements in admin panel
Is the entitlement expired? — Check "Expires" date
Has the user refreshed their page? — Tell them to reload the website
Is the user logged in with the correct wallet? — Verify wallet address matches
Fix:
Grant missing entitlement
Extend expiration date if needed
Ask user to reconnect wallet
Grant Fails with "User already has this entitlement"
Cause: User already has an active (non-expired) entitlement
Solutions:
View the user's entitlements to see existing grant
If you want to extend it: revoke the old one, then grant a new one with new expiration
If it's expired, it should allow re-granting (if not, database issue)
Can't Access Admin Panel
Possible Causes:
Not logged in: Connect your wallet first
Wrong wallet: Make sure you're using an admin wallet
No admin permission: Your user account doesn't have admin status
Fix:
Verify your user ID has an entry in
permissionstablePermission level must be: admin, moderator, or super_admin
Contact a super admin to grant you permissions
Theme Entitlement Not Working
Checklist:
Entitlement ID follows format:
theme:theme-idTheme ID matches exactly (case-sensitive)
User has the entitlement (not expired)
Theme exists in the system
Common Mistake:
The colon (:) is required for theme entitlements.
Entitlement Granted But User Still Locked Out
Steps:
Confirm entitlement appears in database: view user's entitlements in admin panel
Ask user to:
Hard refresh (Ctrl+Shift+R or Cmd+Shift+R)
Clear browser cache
Disconnect and reconnect wallet
Check browser console for errors (F12)
If still not working:
Frontend may not be checking for entitlement correctly
Report to development team with:
User ID
Entitlement ID
Browser and wallet used
Best Practices
For Granting Entitlements
Always add notes explaining why access was granted — helps with auditing and record-keeping.
Use appropriate grant types:
Admin: Manual grants
Trial: Testing/temporary access
Gift: Promotions and rewards
Purchased: Payment-based (usually automatic)
Set expiration dates for trials to avoid forgotten permanent access.
Double-check user before granting — verify wallet address or username.
For Managing Entitlements
Regularly review active entitlements — check for expired access and remove test accounts.
Document new entitlements — clear descriptions and consistent naming.
Communicate with users — notify when access is granted or revoked and provide support.
Getting Help
For Users
If a user contacts you about entitlement issues:
Check their entitlements in the admin panel
Verify expiration dates
Ask them to refresh/reconnect wallet
Grant or extend entitlement if appropriate
For Admins
If you need technical help:
Check Entitlements System Architecture for developer docs
Contact development team for:
New entitlement categories
Custom entitlement logic
Database issues
Permission problems
Appendix: Entitlement ID Reference
Current Default Entitlements
game_access
Game Access
game_feature
Launch matches, use chat, play game
theme_creator
Theme Creator Access
tool
Access theme creation tool
theme:soulwars-default
-
-
No entitlement needed (always accessible)
Naming Conventions
Game Features:
Format:
feature_nameorgame_feature_nameExamples:
tournament_access,ranked_matches,spectator_mode
Themes:
Format:
theme:theme-idExamples:
theme:cyberpunk-2077,theme:medieval-fantasy,theme:space-stationTheme ID should match the theme's technical ID in the system
Tools:
Format:
tool_nameor descriptive identifierExamples:
map_editor,replay_analyzer,tournament_organizer
ID Guidelines
Use lowercase
Use hyphens for themes:
theme:my-theme-nameUse underscores for features:
my_feature_nameBe descriptive and concise
No spaces; only hyphens and underscores as special characters
Conclusion
The Entitlements System gives you powerful control over user access to SoulWars features. By following this guide, you can effectively manage permissions, create new access types, and provide a great experience for your users.
Remember: Entitlements are instantly active when granted and instantly removed when revoked. Always double-check before taking action!
For technical implementation details, see the Architecture Documentation.
