Drakeling Tamed XP Multiplier - ASA Mod
Links
- CurseForge page: Maglucen: Drakeling Tamed XP Multiplier
- DevLog: How I hooked a vanilla Drakeling without remapping it
- Quick note: Detecting a vanilla shoulder buff with BPNotifyOtherBuffActivated
Overview
Drakeling Tamed XP Multiplier is a small ARK: Survival Ascended mod focused on one thing: restoring Drakeling Gift of Knowledge stored XP when the kill comes from:
XP_TAMEDKILLXP_UNCLAIMEDKILL
The main constraint from the start was keeping it lightweight. I did not want a remap, a replacement creature, or anything that would tie the save to a custom Drakeling class.
What It Does
- restores only the excluded non-wild stored XP cases
- leaves wild-kill behavior alone
- works with existing and future Drakelings
- exposes a simple server-side percentage config
Why It Was Worth Doing This Way
The most interesting part was not the XP amount itself. It was finding a clean way to hook into vanilla shoulder logic without touching the Drakeling class.
The real blocker was that we did not have a clean way to know when the relevant buff events were happening. The solution was to place the detector buff on the player and use BPNotifyOtherBuffActivated and BPNotifyOtherBuffDeactivated so it could react when Buff_ShoulderDragonMounted appeared.
Implementation Summary
The final setup uses two buffs:
- one buff on the player detects when the vanilla mounted Drakeling buff appears
- from there it resolves the Drakeling reference and applies a second buff
- that second buff lives on the Drakeling
- it listens to
BPNotifyExperienceGained - it filters
XP_TAMEDKILLandXP_UNCLAIMEDKILL - and it handles the XP restore logic from the Drakeling side
That keeps the feature narrow and avoids turning the project into a creature overhaul.
For bootstrap, the first step was ModDataAsset -> Additional Default Buffs, but that only covered players when they spawned or respawned. Existing living survivors could still miss the detector buff, so the final version added a server singleton through ModDataAsset -> ServerExtraWorldSingletonActorClasses that applies the detector to logged-in players if they do not already have it.
Key Decisions
- No remap and no replacement. That was the main constraint.
- No timers as the base solution. The final route was event-driven.
- Simple external config. The value comes from
GameUserSettings.inias an integer percent. - Bootstrap had to work on already-living survivors. That is why the final build uses both the default buff route and a server singleton actor.
[DrakelingTamedXPMultiplier]
NonWildKillXPPercent=50
That value is then converted into the internal multiplier:
0= disabled100= full restoration- anything in between = partial restoration
Result
From a portfolio point of view, this project matters to me because it combines:
- a very specific gameplay problem
- a compatibility-first runtime solution
- a small technical hook that ended up being the whole project
Follow The Project
If you want the public page for the mod, use the CurseForge link above.