- 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.
- 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
- Lightweight
- Framework-agnostic
- Compatible with any UI style
- Easy to integrate into existing game UI
๐งช 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.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:- OnSkillUpdated
- OnSkillLeveledUp
- OnTalentUnlocked
- OnSkillsInitialized
๐ฎ 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:
- Add a reference to your Skill Component
- On Construct, bind to UMSS events
-
In your widget:
- Update text when level changes
- Update progress bar when XP changes
- Add animations for level-up (optional)
- Add input to open/close UI
- For talent trees, enable/disable node buttons based on prerequisites
๐ณ 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:
โ 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:- 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:- Copy the widget into your project
- Or create your own notification system
- Bind to OnSkillUpdated and OnSkillLeveledUp
๐งญ 8. Integrating UI With Input
Most games open the skill menu when pressing a button. Example setup (Enhanced Input):-
Create Input Action โ
IA_OpenSkills - Bind it to a key (ex: K)
-
In Player Controller:
- Toggle visibility of your skill UI
- Set input mode to UI
- Show mouse cursor
๐ 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.
