

Does not require MTFO by default to allow other plugins to use it for QoL.
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.
"EntityRayLengthAdd": 0, // Additional length of the entity-only ray, combined with CameraDamageRayLength. Ignored if 0.
"EntityOffset": null, // Position offset for the entity-only attack sphere.
"EntitySize": 0, // Radius of the entity-only sphere. 0 uses AttackSphereRadius.
"EntityUseCenterMod": true, // Applies the "AttackSphereCenterMod" bonus to EntitySize.
"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 + EntityRayLengthAdd 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 }
}
Melee follows a 3-step process:
Capsule hit detection adds an additional 4th step that functions identically to Attack Sphere (but uses a capsule instead).
Small wall hitbox, normal entity hitbox
Big hitbox at the end of the weapon, thin handle hitbox
Extend Hitbox a bit farther but don't hit walls any farther away
Extend range with GtfXP MeleeRangeMultiplier