How would i add a stun system to my already made combat system?

local Tool = script.Parent

local Player = Tool.Parent.Parent
local character = Player.Character or Player.CharacterAdded:Wait()

local Char = ((character and character.Parent ~= nil and character) or Player.CharacterAdded:wait())
local Humanoid = Char:WaitForChild("Humanoid")

local Debounce = {}
local Combo = {}
local bvtable = {0,0,0,0,50}

Tool.Activated:Connect(function()
	
	Char = Player.Character
	if Humanoid:GetState() == Enum.HumanoidStateType.Freefall then return end

	if Debounce[Player] then return end
	Debounce[Player] = true

	if not Combo[Player] then Combo[Player] = 0 end

	Combo[Player] += 1
	
	
	
	local Hit1 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit1)
	local Hit2 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit2)
	local Hit3 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit3)
	local Hit4 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit4)
	local Hit5 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit5)


	local Eyes = Char.HumanoidRootPart.CFrame.LookVector
	local Distance = 4.5
	local GeneralWaitTIme = .4
	local OverallWait = 2.1

	local RayCastPara = RaycastParams.new()
	RayCastPara.FilterDescendantsInstances = {Char}
	RayCastPara.FilterType = Enum.RaycastFilterType.Blacklist

	local RayHitBox = workspace:Raycast((Char.HumanoidRootPart.CFrame).p, Eyes * Distance, RayCastPara)

	local function Speed()
		RayHitBox.Instance.Parent:FindFirstChild("Humanoid").WalkSpeed = 0
		RayHitBox.Instance.Parent:FindFirstChild("Humanoid").JumpPower = 0
	end

	local function Hitbox()
		if RayHitBox then
			if RayHitBox.Instance and RayHitBox.Instance.Parent:FindFirstChild("Humanoid") then
				if Combo[Player] then
					local BV = Instance.new("BodyVelocity",RayHitBox.Instance.Parent:FindFirstChild("HumanoidRootPart")) 
					BV.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
					BV.Velocity = Char.HumanoidRootPart.CFrame.LookVector * bvtable[Combo[Player]]
					script.Parent.Damage:FireServer(RayHitBox.Instance.Parent)
					game.Debris:AddItem(BV,.5)
					Speed()
				end
			end
		end
	end

	if Combo[Player] == 1 then
		Hit1:Play()
		Hitbox()
		wait(GeneralWaitTIme)
	end

	if Combo[Player] == 2 then
		Hit2:Play()
		Hitbox()
		wait(GeneralWaitTIme)
	end

	if Combo[Player] == 3 then
		Hit3:Play()
		Hitbox()
		wait(GeneralWaitTIme)
	end

	if Combo[Player] == 4 then
		Hit4:Play()
		Hitbox()
		wait(GeneralWaitTIme)
	end
	
	if Combo[Player] == 5 then
		Hit5:Play()
		Hitbox()
		wait(GeneralWaitTIme)
		Combo[Player] = nil
	end
	

	Debounce[Player] = nil
end)

I am wondering how i would make a stun system go well with my combat system.

3 Likes