• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

Editing the Customization System

RandomPerson78642

Grizzled Veteran
Sep 28, 2014
756
21
USA
So currently, adding to or editing the customization menu is impossible.

In order to be able to edit the customization options, we need to modify a class called ROPawnHandler.

The problem is, all the files that actually use that class, are hardcoded to use the original, not any modified versions.

For example:

Code:
class ROCharCustMannequin extends Actor
...
var class<ROPawnHandler> PawnHandlerClass;
...
PawnHandlerClass = class'ROPawn'.default.PawnHandlerClass;

That code makes that file use the original class no matter what, and there's no way to change it without changing a million other things like a giant spiderweb.

And that's not the only one, all these files have similar hardcoding for that class:
Code:
ROCharCustMannequin
ROPawn
ROPlayerReplicationInfo
ROUISceneCharacter
ROUIWidgetCharacterFaceItems
ROUIWidgetCharacterHairColour
ROUIWidgetCharacterHeadgear
ROUIWidgetCharacterHeads
ROUIWidgetCharacterShirts
ROUIWidgetCharacterTattoos
ROUIWidgetCharacterTunicMats
ROUIWidgetCharacterTunics
ROUIWidgetCharUnlocks
ROUIWidgetGridScrollable

Until all those references are replaced with something that can be modified, nobody can edit anything in the customization screen.
 
The thing is, you can already set the character models to literally anything you want, they won't be able to change that without removing modding completely.
The problem is that the customization screen can't be updated to reflect the new changes.

To be honest, I don't think that'll be a problem. There's literally only three people who can make mutators in this community: you, me and Shepard. If some rando pops up and tries to make a malicious mutator they'll get reported real quick, like those rankup maps in RO2.
 
Upvote 0
Hey guys. This has only just been brought to my attention. It wasn't intentional to lock this up. I actually went to the trouble of making the pawn handler a variable that modders could change at will, and then went and stuffed it by calling it via the static ROPawn class.

*Facepalm*

It was done to ensure that the handler could always be found regardless of whether the player was online, offline or just at the main menu. That part worked at least...

I will update it to either call a class variable or to live in a different class that will always be instanced regardless of net mode and game state.
 
  • Like
Reactions: nymets1104
Upvote 0