Important
This fork was created to serve as tested and reliable library for Killing Floor mods specifically.
Unflect is a proof-of-concept that exploits the UnrealScript compiler to trick it into compiling an illegal class casting. For example, we can retrieve the values of strictly native fields by casting a UFunction instance into our own mirrored UFunction.
Use KF Compile Tool for easy compilation.
EditPackages=KFUnflectIf you need to replace a function in a class, follow these steps:
- Create a new class that extends the class in which the function you want to replace is located.
- Declare that function in the created class.
- DO NOT change the function declaration and argument types/amount.
- DO NOT create new local variables, as this can cause random crashes. If you need additional variables, make them global and access them using the
class'myNewClass'.default.myNewVariablesyntax. - If you want to call or override parent code, make sure to always specify the desired parent class name. For example, use
super(TargetClass).PostBeginPlay()instead ofsuper.PostBeginPlay(). This will prevent runaway loop crashes. - Make your edits to the function's code, and then call the replacement function:
class'CoreAPI'.static.ReplaceFunction(self, "package.class.targetFunction", "myNewClass.newFunction")Following these steps will help ensure that your code changes are compatible with the rest of the codebase and do not cause unexpected crashes.
Works with int, float, bool, byte, string, name types, make sure that your variable name length >= 2 characters.
var int MyCommentStringProperty "Hello world!";
log("MetaData: " $ class'CoreAPI'.static.GetTypeMetaData(Property'MyCommentStringProperty'));- KFPatcher - Killing Floor 1 serverside fixes and QoL additions.
- AccuracyBroadcaster - print headshot accuracy message. Show em your skills!
