Skip to main content

(Optional – Designer-Built)

The Ultimate Multiplayer Skill System (UMSS) does not include a built-in Talent Tree system. Instead, UMSS provides a flexible hierarchical skill framework and optional metadata structures that you can use to build your own talent tree, perk grid, or specialization system. If you want a working example, the Example Project includes a simple demonstration tree β€” but this is not part of the plugin itself. This page explains:
  • What UMSS provides for talent/perk systems
  • How to define hierarchical/perk data
  • How to unlock perks via the Skill Component
  • How to build your own UI or use the Example Project as reference
  • How multiplayer validation works

🧱 1. What UMSS Actually Provides

UMSS includes the following core systems that support talent trees:

βœ” Skill Hierarchy

Skills support parent/child relationships, allowing you to build:
Combat
 └─ One-Handed
      └─ Swordsmanship
or
Crafting
 └─ Blacksmithing
      └─ Weaponsmithing
           β”œβ”€ Swords
           β”œβ”€ Axes
           └─ Shields
This hierarchy is the backbone of any talent or perk system.

βœ” Metadata for Perk/Talent Nodes

Skill Definitions support custom node/metadata arrays, letting you define:
  • Perk IDs
  • Prerequisites
  • Unlock conditions
  • Descriptions
  • Icons
  • Custom data fields
  • Designer-defined effect names
UMSS does not interpret this data β€” it simply stores and replicates it.

βœ” Unlock API

Skill Component includes a safe, server-authoritative way to activate any node/perk:
UnlockNode(SkillTag, NodeID)
or your own:
UnlockSpecialization(SkillTag, SpecializationID)
UMSS validates:
  • The skill exists
  • The node exists
  • The unlock is valid
  • The call came from the server
Then it replicates the updated state.

βœ” Events

UMSS provides:
  • OnNodeUnlocked
  • OnSkillUpdated
  • OnSkillsInitialized
These are used by your UI or your game logic to respond to unlocks.

βœ” Replication

All hierarchical + node/perk data replicates automatically.

❌ UMSS Does NOT Provide

  • No built-in talent tree UI
  • No built-in talent node system
  • No node layout logic
  • No example perk effects
  • No ability unlock system
  • No visual editor tooling
All of those belong to the Example Project or to your game design.

🌿 2. Designer-Built Talent Trees

To build a talent tree, designers typically:
  1. Create a Skill Definition
  2. Inside the skill’s metadata, define:
    • Node IDs
    • Descriptions
    • Icons
    • Prerequisite node IDs
    • Skill or level requirements
    • Any custom data needed
  3. Build a UI (grid, radial, branch, etc.)
  4. Use the Skill Component to unlock nodes
  5. Apply effects in your game logic
UMSS intentionally does not restrict how you design the tree.

πŸ“˜ 3. Example Metadata Structure (Designer Defined)

Your Skill Definition might contain metadata like:
NodeID: Boost_Stamina
DisplayName: Stamina Boost I
Description: Increases max stamina by 10.
Prerequisites: []
LevelRequirement: 5
Cost: 1

NodeID: Boost_Stamina_II
DisplayName: Stamina Boost II
Description: Increases max stamina by 20.
Prerequisites: [Boost_Stamina]
LevelRequirement: 10
Cost: 1
UMSS does not interpret these β€” you do.

πŸ”Œ 4. Unlocking a Talent/Perk Node

To unlock custom nodes, call:
SkillComponent β†’ UnlockNode(SkillTag, NodeID)
UMSS will:
  • Validate that the skill exists
  • Validate the node exists
  • Validate the request came from the server
  • Update the node state
  • Replicate changes
  • Fire event: OnNodeUnlocked
Everything else (stat bonuses, ability unlocks, recipe unlocks) is up to your game’s logic.

⚠ 5. Multiplayer Rules

βœ” All unlock logic must happen on the server

Clients should only request unlocks.

βœ” State automatically replicates to the owning client

No manual syncing required.

βœ” UI reads replicated data

Widgets simply respond when events fire.

🎨 6. Designer-Controlled Talent Tree UI

UMSS does not include a UI system for talent trees. You are free to design:
  • A linear unlock path
  • A branching tree
  • A hex grid
  • A radial wheel
  • A β€œskill book”
  • A tablet-like system
  • An RPG-style specialization panel
Your UI should:
  1. Get Skill Component
  2. Query metadata for that skill
  3. Build visual nodes/buttons
  4. Determine if prerequisites are met
  5. Determine if unlock is available
  6. On click:
    • Client RPC β†’ Server β†’ UnlockNode
If you want a working example, refer to the Example Project.

πŸ§ͺ 7. Applying Talent/Perk Effects

UMSS does not apply effects β€” you connect them in Blueprint or C++.

Common examples:

  • Modify attributes
  • Add/remove abilities
  • Unlock crafting recipes
  • Increase harvesting yield
  • Reduce stamina cost
  • Improve weapon handling
  • Change movement speed
  • Unlock profession specializations
Use the OnNodeUnlocked event to apply effects.

πŸ“Œ 8. Example Tree (Designer-Built)

Example swordsmanship specialization:
[ Weapon Handling ]
        |
[ Precision Strikes ]
        |
      /   \
[ Parry ] [ Riposte ]
This is defined entirely in Skill Definition metadata.
UMSS just stores and replicates the node state.
The Example Project includes a simple version of this for reference.

πŸ“˜ 9. Summary

UMSS provides:
  • Skill hierarchy
  • Metadata storage
  • Unlock API
  • Replication
  • Events for UI
  • Foundation for perk/talent systems
UMSS does not provide:
  • A built-in talent system
  • Talent UI
  • Node layout tools
  • Visual editors
  • Predefined nodes
  • Predefined effects
This ensures the system is fully flexible and does not enforce any game design choices.

πŸ“Œ Next Steps

πŸ‘‰ Example Implementations – Combat, crafting, and gathering XP examples
πŸ‘‰ Troubleshooting – Common mistakes and how to fix them