It stores all active skills, XP values, levels, parent/child relationships, and talent tree state for the player. To ensure skills persist during gameplay and replicate correctly in multiplayer, the Skill Component should be placed on the Player Controller, not on the Character. This page explains:
- Why Player Controller is the correct location
- How to add and configure the Skill Component
- How to reference it in Blueprints and UI
- Alternatives: Player State setups
- Multiplayer considerations
- Best practices
π― 1. Where the Skill Component Should Live
UMSS is designed for the Skill Component to live on one of two locations:β Recommended: Player Controller
For 99% of projects:- Survival games
- RPGs
- Action games
- Shooters
- Co-op
- Session-based multiplayer
- Open-world games
- Anything with respawnable Characters
- Player Controllers do not get destroyed on respawn
- Player identity persists across Character changes
- UI can easily reference the Controller
- No risk of losing skill data
- Simpler replication flow
- Cleaner architecture for XP awarding
β Alternative (MMO-style): Player State
Use this only if:- You want progression to persist across seamless travel
- You use custom Player Controllers per game mode
- You have multi-server zones
- You require extremely persistent data across map transitions
β Not Recommended: Player Character
Do NOT place the Skill Component on the Character unless you accept data loss. It breaks when:- Player respawns
- Player changes Characters
- Possession swaps
- You use Character pooling
- You use AIPawn β PlayerPawn transitions
π§± 2. Adding the Skill Component (Blueprint)
Step-by-step:
- Open your PlayerController Blueprint
- In the Components panel β Add Component β Skill Component
- Name it:
SkillComponent - Compile & Save
πΈ Screenshot NeededUMSS automatically loads all skills at BeginPlay based on your Skill Manager asset.
PlayerController Blueprint with SkillComponent in the Components list.
βοΈ 3. Assigning the Skill Manager
UMSS relies on a Skill Manager Data Asset to load skill definitions. To assign it:- Select your Skill Component
- In Details panel β Skill Manager Data
- Assign your
DA_SkillManagerasset
If no Skill Manager is assigned, the component will log a warning and load zero skills.![]()
π 4. Accessing the Skill Component in Blueprints
Since the Skill Component lives on the Player Controller, you can access it anywhere like:Inside Widgets (Common)
Inside Character
From Gameplay Systems (Melee, Crafting, Interaction)
You can always safely access:π 5. Initialization Flow
At BeginPlay:- Player Controller is created
- Skill Component initializes
- Skill Manager is loaded
- Skill Instances are created
- UMSS fires: OnSkillsInitialized
π 6. Multiplayer Behavior
UMSS is designed for multiplayer from the ground up.β Skill Component replicates automatically
XP, level, and talent node states replicate to the owning client.β Server should award XP
Always callAwardXP on the server.
β UI should live on the client
UI reads data from replicated skill instances; no manual replication needed.β PlayerController location is safe
PlayerControllers replicate and do not respawn β which gives you consistent skill state during the entire match/session.π§ 7. Awarding XP: Where It Should Happen
Server Side
- Combat hits
- Crafting completion
- Gather events
- Quest rewards
- Level-up triggers
- Talent unlocks
Client Side (UI Only)
- Animations
- Popups
- Opening skill menu
- Highlighting nodes
π¦ 8. Player State Alternative (Advanced)
If your design requires cross-level persistence: Place Skill Component on the Player State instead. Pros:- Survives seamless travel
- Useful for MMO territory travel
- Useful across multiple maps with different PlayerControllers
- Harder to work with UI
- Harder to reference
- Requires more networking awareness
π Next Steps
π Component Integration β Setting up talents, perks, and prerequisitesπ Example Implementations β Combat, crafting, and gathering XP examples
π Troubleshooting β Common mistakes and how to fix them
