Skip to main content
The Ultimate Multiplayer Skill System (UMSS) uses a flexible, data-driven XP pipeline that supports any type of progression, including:
  • XP-based leveling
  • Use-based (โ€œlearn by doingโ€) systems
  • Parent/child shared XP
  • Profession systems
  • Combat XP
  • Crafting/gathering XP
  • Custom rule-driven XP sources
  • Talent progression tied to skill levels
UMSS does not dictate when or how XP is awarded โ€” you control that entirely through Blueprints or C++. This page explains how XP works, how to award XP, how leveling is calculated, and how parent/child relationships affect progression.

๐Ÿง  1. How XP Works in UMSS

Each Skill Instance has:
  • Current XP
  • XP Required for Next Level
  • Current Level
  • Level Cap (from the Skill Definition)
  • XP Curve (controls growth rate)
When XP is added:
  1. XP is accumulated
  2. Required XP is checked
  3. If XP meets the requirement:
    • Level increases
    • Remainder XP carries over
  4. Events fire:
    • OnSkillUpdated
    • OnSkillLeveledUp
  5. Replication syncs changes to clients
UMSS handles the leveling logic automatically.

๐ŸŽฏ 2. Awarding XP (Blueprint)

To give a skill XP, call:

Award XP

SkillComponent โ†’ AwardXP(SkillTag, Amount)
You can call this from:
  • Anim BP
  • Weapon BP
  • Interaction BP
  • Crafting events
  • Gathering events
  • Quest completion
  • Ability hits
  • Timer-based tick
  • Environmental logic
๐Ÿ“ธ Screenshot Needed
Blueprint node calling AwardXP with a Gameplay Tag.

๐Ÿงฉ 3. Awarding XP (C++)

If your project uses C++:
SkillComponent->AwardXP(FGameplayTag::RequestGameplayTag("Skill.Combat.Sword"), 25.f);
This is safe to call on the server only.
(Clients may request XP through RPCs if desired.)

๐Ÿ” 4. XP Curves (Level Requirements)

The XP curve defines how much XP is required per level.

Supported progression types:

  • Flat (same XP every level)
  • Linear (steady growth)
  • Quadratic (good for profession-style skills)
  • Exponential (RPG / MMO style)
  • Curve Table (full control)
Set this inside each Skill Definition.

Example XP Curve Rules

StyleGood ForExample Formula
FlatUse-based skills50 XP per level
LinearSurvival games100 * Level
QuadraticProfessions25 * Levelยฒ
ExponentialMMO combat skills75 * (1.5^Level)
UMSS does not enforce a specific formula.

๐ŸŒฒ 5. Parent / Child XP Behavior

Parent/child relationships allow ecosystem-like skills, such as:
Crafting
 โ””โ”€ Carpentry
      โ””โ”€ Bowmaking
UMSS supports several XP behaviors (designer-controlled):

A. No Shared XP

Parent and child each level independently.

B. Child โ†’ Parent XP

When a child gains XP, the parent also gains XP.

C. Parent โ†’ Child XP

Leveling the parent skill pushes XP into its children.

D. Mixed or Custom Rules

You can apply custom logic in your XP-award calls to route XP however you want. UMSS does not force any specific pattern โ€” you define the relationships.

๐ŸŽฎ 6. Use-Based Progression

UMSS supports โ€œlearn by doingโ€ systems easily. Example workflow:
  • Player chops a tree
  • Tree BP calls AwardXP(SkillTag.Logging, 8)
  • Skill updates automatically
  • XP popup (custom UI) appears
  • Logging skill slowly increases
No timers, no extra systems โ€” just call AwardXP whenever an action happens.

๐Ÿช“ 7. Example: Gathering XP

Example BP logic for gathering:
OnResourceHarvested:
    AwardXP(Skill.Gathering.Logging, 12)
You can scale XP based on:
  • Tool quality
  • Tree tier
  • Skill multipliers
  • Region buffs
  • Weight/size of item harvested
UMSS stays out of this logic โ€” it only processes the XP you award.

โš”๏ธ 8. Example: Combat XP

Workflow:
  • Hit detection event on server
  • Determine weapon type
  • Award XP for the matching skill
Example:
AwardXP(Skill.Combat.Sword, 15)
Or award XP based on damage dealt:
AwardXP(Skill.Combat.Sword, DamageAmount * 2)

๐Ÿ”ง 9. Level-Up Behavior

When a skill levels up:
  1. New level is set
  2. Remainder XP carries over
  3. Level-up event fires
  4. Replicated updates are sent
  5. UI can display a notification (your custom UI)
UMSS fires these events:
  • OnSkillUpdated
  • OnSkillLeveledUp
Your UI or gameplay logic can tie into these. Examples:
  • Play VFX/SFX
  • Unlock recipes
  • Improve stat bonuses
  • Activate a talent node
  • Notify the player

๐Ÿ’ก 10. Progress Queries (Useful for UI)

Common Blueprint accessors:
  • GetSkillLevel(SkillTag)
  • GetCurrentXP(SkillTag)
  • GetXPRequiredForNextLevel(SkillTag)
  • GetPercentToNextLevel(SkillTag)
  • GetSkillDisplayName(SkillTag)
  • GetAllSkills()
These make UI building straightforward.

๐ŸŒ 11. Multiplayer Behavior

UMSS is fully replicated.

โœ” XP is processed on the server

Clients can request XP, but all final calculations occur server-side.

โœ” Values replicate automatically

Level, XP, talents โ€” all synced.

โœ” Level-up events fire on clients

Your UI can safely respond on each playerโ€™s machine.

โœ” Talent unlocks must be server-authoritative

The same rule applies for XP.

๐Ÿ”ฅ 12. Advanced: XP Modifiers

You may add your own modifiers outside UMSS:
  • Temporary XP boosts (double XP)
  • Region-based bonuses
  • Equipment bonuses
  • Potion buffs
  • Skill synergy bonuses
Common pattern:
FinalXP = BaseXP * XPBoostMultiplier
AwardXP(SkillTag, FinalXP)
UMSS does not impose limits here โ€” you build the system you want.

๐Ÿ“Œ Next Steps

Now that you understand XP flow: ๐Ÿ‘‰ Talent Trees โ€“ Build perks, branches, and prerequisites.
๐Ÿ‘‰ Component Integration โ€“ Ensure your Skills Component is set up correctly.
๐Ÿ‘‰ Example Implementations โ€“ See practical BP examples of combat, crafting, and gathering XP.