THE TITLE IS THE ERROR FEEDBACK
*** MODULE SCRIPT ***
I know It’s long but bear with me now
local characterStatusManager = {}
laststun = {};
aircombo = {};
aircombocheck = {};
characterStatusManager.currentair = {};
characterStatusManager.__index = characterStatusManager
PS = game:GetService("Players")
local VFX = require(game.ReplicatedStorage.FXModule)
local framework = require(script.Parent)
Characters = {}
function characterStatusManager.new(character)
local self = setmetatable({}, characterStatusManager)
self.Character = character
return self
end
function characterStatusManager:AddCharacter(character)
local player = PS:GetPlayerFromCharacter(character)
if player ~= nil then
local playerStatus = framework.new(character)
Characters[player.UserId] = playerStatus
laststun[player.UserId] = os.clock()
aircombo[player.UserId] = os.clock()
else
local playerStatus = framework.new(character)
Characters[character] = playerStatus
laststun[character] = os.clock()
aircombo[character] = os.clock()
end
end
function characterStatusManager:RemoveCharacter(character)
local player = PS:GetPlayerFromCharacter(character)
if player ~= nil then
Characters[player.UserId] = nil
else
Characters[character] = nil
end
end
function characterStatusManager:RetriveStatus(character)
local player = PS:GetPlayerFromCharacter(character)
if player ~= nil then
return Characters[player.UserId].StatusList
else
return Characters[character].StatusList
end
end
function characterStatusManager:StatusCheck(character, hitcharacter: Model, canblock: boolean, canparry: boolean, ragdoll: boolean, ignorespecial: boolean)
local FStatus = characterStatusManager:RetriveStatus(character)
local Status = characterStatusManager:RetriveStatus(hitcharacter)
if Status.Blocking and canblock then
VFX.CreateSound('rbxassetid://18912884921', 0.2, 1, hitcharacter)
VFX.Highlight(hitcharacter, Color3.new(0, 0, 1), 0.4)
return "blocked"
elseif Status.Blocking and not canblock then
return "true"
end
if Status.Parrying and canparry then
VFX.CreateSound('rbxassetid://8132494511', 0.2, 1, character)
characterStatusManager:Stun(character, 2)
VFX.Highlight(hitcharacter, Color3.new(1, 1, 0), 0.4)
return "parried"
elseif Status.Parrying and not canparry then
return "true"
end
if Status.Misc and ragdoll then
return "true"
elseif Status.Misc and not ragdoll then
VFX.Highlight(hitcharacter, Color3.new(0.4, 0.4, 0.4), 0.4)
return "ragdolled"
end
if Status.IFrames then
return "IFrames"
end
if Status.SpecialAction ~= "" and not ignorespecial then
require(game.ServerScriptService.CombatFramework.SpecialActions).Search(Status.SpecialAction, hitcharacter, character)
return "special"
elseif Status.SpecialAction ~= "" and ignorespecial then
return "true"
end
if Status.SpecialAction == "" and not Status.Blocking and not Status.IFrames and not Status.Misc and not Status.Parrying then
return "true"
end
end
function characterStatusManager:Stun(character: Model, Time)
local current_stun = os.clock()
local plr = PS:GetPlayerFromCharacter(character)
local StatusList
if plr ~= nil then
StatusList = Characters[plr.UserId].StatusList
laststun[plr.UserId] = current_stun
else
StatusList = Characters[character].StatusList
laststun[character] = current_stun
end
local Humanoid = character:FindFirstChildOfClass("Humanoid")
local Animator = Humanoid:FindFirstChildOfClass("Animator")
for _,anim in ipairs(Animator:GetPlayingAnimationTracks()) do
anim:Stop()
end
Humanoid.WalkSpeed = 0
print("stunned")
if StatusList.Blocking or StatusList.Parrying then
StatusList.Blocking = false
StatusList.Parrying = false
end
StatusList.Stunned = true
task.delay(Time, function()
if plr == nil then
if laststun[character] == current_stun then
Humanoid.WalkSpeed = 16
print("unstunned")
StatusList.Stunned = false
end
elseif plr ~= nil then
if laststun[plr.UserId] == current_stun then
Humanoid.WalkSpeed = 16
print("unstunned")
StatusList.Stunned = false
end
end
end)
end
function characterStatusManager:ReturnCombatData(character)
local player = PS:GetPlayerFromCharacter(character)
if player ~= nil then
return Characters[player.UserId].CombatData
else
return Characters[character].CombatData
end
end
return characterStatusManager
I have NEVER had this issue before…
If more Information is required please LMK