My combat script works completely fine when one person is using it, however it starts to fall apart when other players get involved. For some reason whenever I do a combo they cannot do theirs and for me it's the same. And if we somehow are able to do a combo we just end up finishing the other players combo. I honestly don't know how I've managed to do this but if I could get some help it would be greatly appreciated :)
Local Script
Player = game.Players.LocalPlayer
Mouse = Player:GetMouse()
Character = Player.Character
Remote = game.ReplicatedStorage.RemoteEvent
Enabled = true
Action = "Combat"
Mouse.Button1Down:Connect(function()
local Player = game.Players.LocalPlayer
local Character = Player.Character
if Enabled == true then
Remote:FireServer("Combat", Character.HumanoidRootPart.CFrame*CFrame.new(0,0,-2).p, "Left")
end
end)
Mouse.Button2Down:Connect(function()
local Player = game.Players.LocalPlayer
local Character = Player.Character
if Enabled == true then
Remote:FireServer("Combat", Character.HumanoidRootPart.CFrame*CFrame.new(0,0,-2).p, "Right")
end
end)
Server Script
Remote = game.ReplicatedStorage.RemoteEvent
Combo = ""
Enabled = true
Remote.OnServerEvent:Connect(function(Pley, Action, SeaFrame, W)
local character = Pley.Character
local function HitBox(DMG)
local Region = Region3.new(SeaFrame-Vector3.new(1.5,1.5,1.5),SeaFrame+Vector3.new(1.5,1.5,1.5))
local RTable = workspace:FindPartsInRegion3(Region, nil, 20)
for i,v in pairs(RTable) do
if v.Parent:findFirstChild("Humanoid") and v.Parent:findFirstChild("Deb") == nil and v.Parent ~= character then
local Deb = Instance.new("BoolValue", v.Parent)
Deb.Name = "Deb"
game.Debris:AddItem(Deb,0.2)
v.Parent.Humanoid:TakeDamage(DMG)
local FX = Instance.new("Part", workspace.FX)
FX.Name = "CombatHit"
FX.CanCollide = false
FX.Anchored = true
FX.Material = "ForceField"
FX.Color = Color3.new(1,1,1)
FX.Size = Vector3.new(1,1,1)
local SM = Instance.new("SpecialMesh", FX)SM.MeshType = "Sphere"
SM.Scale = Vector3.new(0,0,0)
FX.CFrame = v.CFrame
local SoundFX = Instance.new("Sound", v)
SoundFX.SoundId = "rbxassetid://1693499499"
SoundFX.PlaybackSpeed = math.random(80,120)/100
SoundFX:Play()
end
end
end
if Enabled == false then return end
if Action == "Combat" then
Enabled = false
if Action ~= nil then
character.Humanoid.WalkSpeed = 7
end
if W == "Left" then
Combo = Combo.."L"
elseif W == "Right" then
Combo = Combo.."R"
end
if Combo == "R" then
local Track = Instance.new("Animation")
Track.AnimationId = "rbxassetid://05098485668"
local Anime = character.Humanoid:LoadAnimation(Track)
Anime:Play()
wait (1)
local Region = Region3.new(SeaFrame-Vector3.new(2,2,2),SeaFrame+Vector3.new(2,2,2))
local RTable = workspace:FindPartsInRegion3(Region, nil, 20)
for i,v in pairs(RTable) do
if v.Parent:findFirstChild("Humanoid") and v.Parent:findFirstChild("Deb") == nil and v.Parent ~= character then
local Deb = Instance.new("BoolValue", v.Parent)
Deb.Name = "Deb"
game.Debris:AddItem(Deb,0.2)
v.Parent.Humanoid:TakeDamage(20)
local FX = Instance.new("Part", workspace.FX)
FX.Name = "CombatHit"
FX.CanCollide = false
FX.Anchored = true
FX.Material = "ForceField"
FX.Color = Color3.new(1,1,1)
FX.Size = Vector3.new(1,1,1)
local SM = Instance.new("SpecialMesh", FX)SM.MeshType = "Sphere"
SM.Scale = Vector3.new(0,0,0)
FX.CFrame = v.CFrame
local SoundFX = Instance.new("Sound", v)
SoundFX.SoundId = "rbxassetid://441202925"
SoundFX.PlaybackSpeed = math.random(80,120)/100
SoundFX:Play()
local BV = Instance.new("BodyVelocity", v)
BV.MaxForce = Vector3.new(25000,25000,25000)
BV.Velocity = character.HumanoidRootPart.CFrame.lookVector*40
game.Debris:AddItem(BV, 0.3)
BV.Velocity = BV.Velocity + Vector3.new(0,70,0)
end
end
wait(0.7)
end
if Combo == "L" then
local Track = Instance.new("Animation")
Track.AnimationId = "rbxassetid://05083821136"
local Anime = character.Humanoid:LoadAnimation(Track)
Anime:Play()
wait (0.38)
HitBox(10)
elseif Combo == "LL" then
local Track = Instance.new("Animation")
Track.AnimationId = "rbxassetid://5083826892"
local Anime = character.Humanoid:LoadAnimation(Track)
Anime:Play()
wait(0.3)
HitBox(10)
elseif Combo == "LLL" then
local Track = Instance.new("Animation")
Track.AnimationId = "rbxassetid://05094367877"
local Anime = character.Humanoid:LoadAnimation(Track)
Anime:Play()
wait(0.7)
local Region = Region3.new(SeaFrame-Vector3.new(2,2,2),SeaFrame+Vector3.new(2,2,2))
local RTable = workspace:FindPartsInRegion3(Region, nil, 20)
for i,v in pairs(RTable) do
if v.Parent:findFirstChild("Humanoid") and v.Parent:findFirstChild("Deb") == nil and v.Parent ~= character then
local Deb = Instance.new("BoolValue", v.Parent)
Deb.Name = "Deb"
game.Debris:AddItem(Deb,0.2)
v.Parent.Humanoid:TakeDamage(17)
local FX = Instance.new("Part", workspace.FX)
FX.Name = "CombatHit"
FX.CanCollide = false
FX.Anchored = true
FX.Material = "ForceField"
FX.Color = Color3.new(1,1,1)
FX.Size = Vector3.new(1,1,1)
local SM = Instance.new("SpecialMesh", FX)SM.MeshType = "Sphere"
SM.Scale = Vector3.new(0,0,0)
FX.CFrame = v.CFrame
local SoundFX = Instance.new("Sound", v)
SoundFX.SoundId = "rbxassetid://441202925"
SoundFX.PlaybackSpeed = math.random(80,120)/100
SoundFX:Play()
local BV = Instance.new("BodyVelocity", v)
BV.MaxForce = Vector3.new(25000,25000,25000)
BV.Velocity = character.HumanoidRootPart.CFrame.lookVector*40
game.Debris:AddItem(BV, 0.3)
BV.Velocity = BV.Velocity + Vector3.new(0,15,0)
end
end
wait(0.7)
else
Combo = ""
end
spawn(function()
local OldCombo = Combo
wait(0.7)
if OldCombo == Combo then
Combo = ""
end
end)
Enabled = true
end
Action = nil
if Action == nil then
character.Humanoid.WalkSpeed = 16
end
end)
