Golem Nemesis - ASA Mod

Technical design, Blueprints, balance-system configuration

Problem
Rock Golems reduce damage so heavily that stone and metal gatherers do not matter as much as the server balance wanted.
Work
Built a runtime rule system for DamageType detection, exact and parent class overrides, and normalized admin config.
Tech
ARK: Survival Ascended DevKit, Blueprints, damage handling, GameUserSettings.ini
Result
Servers can tune golem counterplay with targeted rules instead of replacing creatures or hardcoding one attacker list.

Overview

Golem Nemesis is a focused ARK: Survival Ascended balance mod for Rock Golems and any creature that inherits from them, including variants such as Chalk Golems and Ice Golems.

Visual note: The thumbnail for this entry is a generated concept image, not a real in-game screenshot.

The original goal was narrow: make stone and metal gatherers actually matter against Rock Golems instead of leaving that interaction buried behind the golem’s heavy default damage reduction.

But the final mod is more than a flat damage multiplier. It became a small runtime rule system that can:

  • qualify attackers through supported DamageType detection, using stone or metal gathering attacks as the default rule
  • fall back to a classic hardcoded attacker set when detection is disabled
  • override the result with exact dino whitelist or blacklist rules
  • override the result again through parent class whitelist or blacklist rules
  • keep all of that configurable through GameUserSettings.ini

What It Does

  • applies the change to Rock Golems and compatible child classes
  • restores qualifying stone or metal gatherers from the golem’s reduced-damage baseline to normal damage by default
  • supports runtime DamageType detection with optional tool-damage participation
  • supports exact dino whitelist or blacklist overrides
  • supports parent class whitelist or blacklist overrides for inheritance-heavy creature hierarchies
  • accepts multiple admin-facing class formats and normalizes them internally
  • clamps the exposed percentage floor so servers cannot go below the intended vanilla reduced baseline
  • keeps the balance surface targeted instead of turning into a generic creature-overhaul framework

Implementation Summary

The public config started simple, but the internal handling grew into a cleaner data-driven pipeline:

[GolemNemesis]
DamagePercentage=100
bUseDamageTypeDetection=true
bAllowToolDamageTypes=true
DinoWhitelist=
DinoBlacklist=
DinoParentWhitelist=
DinoParentBlacklist=

Internally, the system now does four separate jobs:

1. Target resolution

The buff resolves Rock Golems and compatible child classes instead of hardcoding only the base creature, so derived variants inherit the same behavior.

2. Config parsing and normalization

The singleton reads GameUserSettings.ini once and normalizes admin input into runtime-safe sets and class arrays.

That includes handling different exact-class formats such as:

  • Doed_Character_BP_C
  • /Game/.../Doed_Character_BP.Doed_Character_BP_C
  • Blueprint'/Game/.../Doed_Character_BP.Doed_Character_BP'
  • BlueprintGeneratedClass'/Game/.../Doed_Character_BP.Doed_Character_BP_C'

That kept the config flexible without pushing ugly string handling into the hot damage path.

3. Rule priority

The final resolution order is explicit:

  1. exact blacklist
  2. exact whitelist
  3. parent blacklist
  4. parent whitelist
  5. base detection

That matters because it lets server owners do things like:

  • block an entire parent family
  • re-allow one exact child class
  • or hard-block one exact class regardless of any broader whitelist

4. Runtime damage qualification

When bUseDamageTypeDetection=true, the mod evaluates the active hit context instead of assuming a creature class is always valid.

That detail became important once I hit creatures with multiple attacks using different damage types. A class-level cache alone was not enough, because a dino could have one valid stone or metal gathering attack and one invalid one. The final logic keeps class caching only where the result is stable by class and leaves attack-dependent checks in the live runtime path.

The exposed percentage is still interpreted against the intended normal-damage baseline:

  • 10 = Wildcard’s default behavior
  • 100 = normal damage
  • 200 = double normal damage

Values below 10 are clamped so servers cannot go under the mod’s intended vanilla reduced floor, but they can raise damage as high as they want.

Why It Matters

This is still a smaller project than some of the other ASA mods in this portfolio, but it shows a lot of the blueprint systems work I care about:

  • narrow scope without pretending the runtime problem is trivial
  • compatibility with vanilla inheritance chains
  • server-side config normalization instead of trusting raw admin strings
  • explicit rule priority instead of ambiguous override behavior
  • runtime evaluation where the underlying gameplay context actually changes per attack
  • a simple external config over what became a more complex internal decision system

Want to talk about this kind of work?

Share the project where it fits. X opens with a question draft; LinkedIn shares the article link.

Ask on X Share on LinkedIn