Skip to content

Is there any way to build a weapon mutator that is compatible with UTComp? #16

@edaanen

Description

@edaanen

I'm working on a UT2004 weapon balance mutator that changes some weapon behaviours. For example, the Rocket Launcher alt-fire spawns grenades instead of rockets, and the BioRifle blob deals damage-over-time in addition to direct damage amongst some other features.

The problem I see now is that UTComp replaces all weapon classes, fire classes, and projectiles. This means any weapon mutator that also needs to replace those classes will conflict with UTComp. One mutator wins, the other loses its functionality entirely.

I've gone through all the approaches I could think of:

  • Subclassing UTComp's weapon/fire/projectile classes breaks the tight class coupling UTComp relies on (e.g. fake projectile matching by exact class reference)
  • Replacing fire classes post-spawn via CheckReplacement still throws away UTComp's fire logic
  • Stomping defaultproperties works for stat changes but not for behavioural changes that require new code
  • Dynamic inheritance doesn't exist in UnrealScript unfortunately.

My requirements are: full UTComp compatibility when UTComp is active, full functionality without UTComp, and real behavioural changes (not just stat tweaks).

Is there any extension point, virtual hook, or pattern in UTComp's design that would allow a second weapon mutator to coexist without breaking UTComp's netcode? Or is this simply architecturally impossible given how UT2004's mutator system works?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions