Skip to main content

RoundSlicingScript

This script will allow slicing from all directions when colliderName hits an enemy.

Code

local table = {
ragdollHitInfoObj = nil,
colliderName = "Blade",
}

function table:Awake()
self.phase1EventHandler = function(fc, mu, thisCol, otherRB, otherCol, point, normal, relaVel)
if otherCol.name ~= self.colliderName then
return
end

if fc.muscleState:IsPowerfulCharacter() and not fc.attr:IsDead() then
return
end

local frag = fc.reactAnim:CheckHitDismemberPoint(mu.muscleName, point)
if frag then
CL.FullBodyMuscleState.dmgEffectData.cutBodyFragment = frag
end
end
self.ragdollHitInfoObj.hitInfo:OnInteractRoleHitPhase1Event("+", self.phase1EventHandler)
end

function table:OnDestroy()
self.ragdollHitInfoObj.hitInfo:OnInteractRoleHitPhase1Event("-", self.phase1EventHandler)
end

return Class(nil,nil,table)

Component

Use this script with LuaBehaviour.

User Variables

ComponentVariableExplanationDefault
Stringself.ragdollHitInfoObjThe ragdollHitInfoObj of your weapon.nil
Stringself.colliderNameThis should be your blade collider's transform name. All other transforms will be ignoredBlade

FAQ

Can I still stab using this script?

Yes you can! Just make sure you add a collider to the tip of your weapon which is slightly in front of your colliderName collider so that it will hit that collider first and stab instead of slice.