MeleeSwingCustomization
Adds additional melee customization for devs.
| Last updated | 7 months ago | 
| Total downloads | 8829 | 
| Total rating | 0 | 
| Categories | Rundown Mods Dev Tools | 
| Dependency string | Dinorush-MeleeSwingCustomization-1.3.0 | 
| Dependants | 8 other packages depend on this package | 
This mod requires the following mods to function
BepInEx-BepInExPack_GTFO
BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.
Preferred version: 3.2.1README
MeleeSwingCustomization
Does not require MTFO by default to allow other plugins to use it for QoL.
Customization (Requires MTFO)
Reads custom files under Custom/MeleeSwingCustomization. You can customize the hitbox location for swings (i.e. the attack sphere) and pushes, set capsule hitboxes for swings, and adjust the speed of swing/push animations. Speed adjustments automatically scale attack timings (i.e. MeleeAnimation times). A template file is generated on game launch if the folder does not exist. Files support LiveEdit and immediately apply changes on save. They have the format:
[ // Can contain multiple blocks
    {
        "ArchetypeID": 4,       // MeleeArchetypeID of the target weapon
        "Name": "Improved Bat", // Purely for organization
        "AttackOffset": "(0 0.55 0)", // Position offset for the attack sphere. null uses the original.
        "PushOffset": null,     // Position offset the push sphere. null uses the original.
        "LightAttackSpeed": 1,  // Speed modifier for light attacks/hits
        "ChargedAttackSpeed": 1,// Speed modifier for charged attacks/hits
        "PushSpeed": 1          // Speed modifier for pushes
        "AttackSphereCenterMod": 1.9; // Modifier on attack sphere radius when the hitbox is at the center of the screen.
    },
]
AttackOffset also supports capsule hit detection. To use it, specify 2 or 3 offsets. The first specifies the position offset for the attack sphere, while the next two specify the start and end for the capsule, respectively. If a third offset is not specified, the capsule end is set as the attack offset. For exmaple, this makes a capsule hitbox from (0, -0.2, 0) to (0, 0.55, 0):
"AttackOffset": "(0 0.55 0) (0 -0.2 0)"
AttackOffset also supports a larger object definition for further customization:
"AttackOffset": {
    "Offset": "(0 0.55 0) (0 -0.2 0)",   // Position offset for the attack sphere/capsule.
    "CapsuleOffset": "(0 -0.2 0)"        // Parallel field to Offset that specifies only capsule offsets.
                                           // Useful if you don't want to modify the attack sphere offset.
    "CapsuleUseCamFwd": false,           // Capsule uses CameraDamageRayLength to compute capsule length.
                                           // Starts at the first capsule offset, drawing towards the second.
                                           // If none are specified, draws from (0, 0, 0) to the attack offset.
    "CapsuleCamFwdAdd": 0,               // Modifier added with CameraDamageRayLength to compute capsule length.
    "CapsuleSize": 0,                    // Radius/size of the capsule. 0 uses AttackSphereRadius.
    "CapsuleUseCenterMod": false         // Applies the "AttackSphereCenterMod" bonus to CapsuleSize.
    "CapsuleDelay": 0                    // Delay after DamageStartTime before the capsule becomes active.
                                           // Can use an object format to adjust specific attacks, e.g.
                                           // { "Light": 0.05, "ChargedLeft": 0.1, "ChargedRight": 0.2 }
}
Short Guide to Melee Hitboxes
Melee follows a 3-step process:
- Direct Hits
- Hits whatever is being looked at within CameraDamageRayLength (MeleeArchetype) distance.
 - If something is being looked at within said distance, no other hitboxes can be active.
 
 - Attack Sphere
- Centered on the attack offset, hits any enemy/lock within AttackSphereRadius (MeleeArchetype) of the offset.
 
 - View to Attack Offset
- Checks for hits on a line from the player's viewpoint to the attack offset.
 - Hits enemies/locks if AttackSphere hit something, otherwise hits anything.
 
 
Capsule hit detection adds an additional 4th step that functions identically to Attack Sphere (but uses a capsule instead).
Examples
Big hitbox at the end of the weapon, thin handle hitbox
- Set attack offset to the location of the big hitbox and specify AttackSphereRadius as needed.
 - Specify capsule endpoints for the handle with a small CapsuleSize.
 
Extend Hitbox a bit farther but don't hit walls any farther away
- Specify a capsule endpoint (start or end) past the attack offset.
 
Extend range with GtfXP MeleeRangeMultiplier
- Use CapsuleUseCamFwd to scale with the same modifier
 - Use CapsuleCamFwdAdd to get the hitbox to be close to the standard range
 - Optional: Specify capsule start point and/or end point (draws from 0 -> attack offset by default).