Skip to main content
The Ultimate Multiplayer Skill System (UMSS) does not ship with any UI widgets built into the plugin. Instead:
  • The core plugin provides the underlying skill logic, XP flow, leveling, replication, and Blueprint/C++ APIs.
  • The Example Project (optional download) includes several sample UI widgets that demonstrate how to build a skill menu, talent tree, and XP notifications.
This page explains:
  • What UI comes in the Example Project
  • How the example widgets work (if you use them)
  • How to build your own UI using the Skill Component
  • How to listen for level-up and XP events
  • Best practices for multiplayer-safe UI

๐Ÿงฉ 1. UI in the Core Plugin (No UI Included)

UMSS intentionally ships with:
  • NO widgets
  • NO popup notifications
  • NO pre-built XP bars
  • NO skill list UI
  • NO talent tree UI
This keeps the plugin:
  • Lightweight
  • Framework-agnostic
  • Compatible with any UI style
  • Easy to integrate into existing game UI
Everything related to visual presentation is fully up to you.

๐Ÿงช 2. UI in the Example Project (Optional Showcase)

(Only included with the Example Project, not the plugin itself) If you imported the Example Project, it contains several widgets:

โœ” Skill List

Displays all skills, levels, and XP progress.

โœ” Skill Detail Panel

Shows description, parent skill, XP to next level.

โœ” Talent Tree Widget

Simple node-based talent tree with prerequisites.

โœ” XP Gain Popup

Shows floating text when XP is awarded or a level-up occurs.

โœ” Debug Skill Window

Allows testing XP and talent unlocks during development.
afcf1acbf84775431fb4b6e20c3c026c.png
These widgets are not required โ€” they just demonstrate best practices.

๐Ÿ”Œ 3. How UI Communicates with the Skill Component

Whether using the Example Project widgets or creating your own, all UI interacts through the Skill Component API. Typical calls:
Get Skill Level (SkillTag)
Get Current XP (SkillTag)
Get XP Required for Next Level (SkillTag)
Get Percent to Next Level (SkillTag)
Get All Skills
Events you can bind to:
  • OnSkillUpdated
  • OnSkillLeveledUp
  • OnTalentUnlocked
  • OnSkillsInitialized
When XP changes or talents unlock, these events fire and your UI can update instantly.

๐ŸŽฎ 4. Creating Your Own Skill UI

UMSS is designed so you can build any UI style:
  • Survival-style simple XP bars
  • RPG skill windows
  • MMO-style skill grids
  • Profession menus
  • Talent trees
  • Notifications
  • Debugging tools

Typical custom UI setup:

  1. Add a reference to your Skill Component
  2. On Construct, bind to UMSS events
  3. In your widget:
    • Update text when level changes
    • Update progress bar when XP changes
  4. Add animations for level-up (optional)
  5. Add input to open/close UI
  6. For talent trees, enable/disable node buttons based on prerequisites
UMSS gives you all the data โ€” you design the layout.

๐ŸŒณ 5. Talent Tree UI (Custom-built)

If building a custom talent tree:
  • Pull all NodeData from the Skill Definition
  • Use NodeData to create:
    • A layout (grid, vertical, radial, hex-based, etc.)
    • Buttons or images
    • Prerequisite locks
  • Bind each button to call:
Unlock Talent Node (SkillTag, NodeID)

โš  Multiplayer Note

Unlocking talents must be server-authoritative:
  • Example Project uses a Server RPC
  • Your custom UI should too
  • Clients should not modify talents directly

๐Ÿ“ˆ 6. XP Bars & Indicators

To show XP progress:
Percent = SkillComponent->GetPercentToNextLevel(SkillTag)
To show XP text:
CurrentXP / RequiredXP
To show level:
Get Skill Level (SkillTag)
Bind these to:
  • Text blocks
  • Progress bars
  • Animations
  • Sound cues

๐Ÿ“ฃ 7. XP Notifications (Optional Custom Feature)

(Only in Example Project) The Example Project includes a small XP popup widget showing:
+15 XP โ€” Logging
Level Up! Logging 4 โ†’ 5
If you want this in your game:
  • Copy the widget into your project
  • Or create your own notification system
  • Bind to OnSkillUpdated and OnSkillLeveledUp
The core plugin does not include this feature, but all necessary events are available.

๐Ÿงญ 8. Integrating UI With Input

Most games open the skill menu when pressing a button. Example setup (Enhanced Input):
  1. Create Input Action โ†’ IA_OpenSkills
  2. Bind it to a key (ex: K)
  3. In Player Controller:
    • Toggle visibility of your skill UI
    • Set input mode to UI
    • Show mouse cursor
Opening UI should always be client-side.

๐ŸŒ 9. Multiplayer Considerations

โœ” UI is always client-only

Skill data replicates to each client automatically.

โœ” Runtime changes come from server

Your UI responds to replicated updates โ€” no manual sync needed.

โœ” Talent unlocks require server RPC

The Example Project shows how to do this.

โœ” XP awards usually come from the server

Client-side prediction is optional but not required.

๐Ÿ“Œ What to Read Next

๐Ÿ‘‰ XP & Progression โ€“ Learn how XP flows and how to award it.
๐Ÿ‘‰ Talent Trees โ€“ Build your own branching skill tree UI.
๐Ÿ‘‰ Component Integration โ€“ Ensure your player has a Skill Component.