Help with no damage sword

I’m honestly very very confused about this, I noticed whenever I wanted a player to be using a sword for a little mini PVP area. Whenever they tried damaging the other person it did no damage. I may be at first thought it was the sword’s fault, but it was not. I went on ahead and added the sword into an empty game, and it worked perfectly fine there, but not in my game.

Is there an explanation for this?

When your in studio, try the sword on a dummy. Switch from client to server
Use this button:
image
Does the dummy appear dead on client but not on server?

Where exactly would I find that button?

When you playtest, its under the home tab.

It does do damage during playtest but not during the actual game.

I’m not sure what you mean.
If you are in freecam, you are in the Server
If you are your character, you are in your client

It only works for client not server

Can you send the local script inside of the sword?

Tool = script.Parent
Handle = Tool:WaitForChild(“Handle”)

function Create(ty)
return function(data)
local obj = Instance.new(ty)
for k, v in pairs(data) do
if type(k) == ‘number’ then
v.Parent = obj
else
obj[k] = v
end
end
return obj
end
end

local BaseUrl = “rbxassetid://”

Players = game:GetService(“Players”)
Debris = game:GetService(“Debris”)
RunService = game:GetService(“RunService”)

DamageValues = {
BaseDamage = 5,
SlashDamage = 10,
LungeDamage = 30
}

–For R15 avatars
Animations = {
R15Slash = 522635514,
R15Lunge = 522638767
}

Damage = DamageValues.BaseDamage

Grips = {
Up = CFrame.new(0, 0, -1.70000005, 0, 0, 1, 1, 0, 0, 0, 1, 0),
Out = CFrame.new(0, 0, -1.70000005, 0, 1, 0, 1, -0, 0, 0, 0, -1)
}

Sounds = {
Slash = Handle:WaitForChild(“SwordSlash”),
Lunge = Handle:WaitForChild(“SwordLunge”),
Unsheath = Handle:WaitForChild(“Unsheath”)
}

ToolEquipped = false

–For Omega Rainbow Katana thumbnail to display a lot of particles.
for i, v in pairs(Handle:GetChildren()) do
if v:IsA(“ParticleEmitter”) then
v.Rate = 20
end
end

Tool.Grip = Grips.Up
Tool.Enabled = true

function IsTeamMate(Player1, Player2)
return (Player1 and Player2 and not Player1.Neutral and not Player2.Neutral and Player1.TeamColor == Player2.TeamColor)
end

function TagHumanoid(humanoid, player)
local Creator_Tag = Instance.new(“ObjectValue”)
Creator_Tag.Name = “creator”
Creator_Tag.Value = player
Debris:AddItem(Creator_Tag, 2)
Creator_Tag.Parent = humanoid
end

function UntagHumanoid(humanoid)
for i, v in pairs(humanoid:GetChildren()) do
if v:IsA(“ObjectValue”) and v.Name == “creator” then
v:Destroy()
end
end
end

function Blow(Hit)
if not Hit or not Hit.Parent or not CheckIfAlive() or not ToolEquipped then
return
end
local RightArm = Character:FindFirstChild(“Right Arm”) or Character:FindFirstChild(“RightHand”)
if not RightArm then
return
end
local RightGrip = RightArm:FindFirstChild(“RightGrip”)
if not RightGrip or (RightGrip.Part0 ~= Handle and RightGrip.Part1 ~= Handle) then
return
end
local character = Hit.Parent
if character == Character then
return
end
local humanoid = character:FindFirstChildOfClass(“Humanoid”)
if not humanoid or humanoid.Health == 0 then
return
end
local player = Players:GetPlayerFromCharacter(character)
if player and (player == Player or IsTeamMate(Player, player)) then
return
end
UntagHumanoid(humanoid)
TagHumanoid(humanoid, Player)
humanoid:TakeDamage(Damage)
end

function Attack()
Damage = DamageValues.SlashDamage
Sounds.Slash:Play()

if Humanoid then
	if Humanoid.RigType == Enum.HumanoidRigType.R6 then
		local Anim = Instance.new("StringValue")
		Anim.Name = "toolanim"
		Anim.Value = "Slash"
		Anim.Parent = Tool
	elseif Humanoid.RigType == Enum.HumanoidRigType.R15 then
		local Anim = Tool:FindFirstChild("R15Slash")
		if Anim then
			local Track = Humanoid:LoadAnimation(Anim)
			Track:Play(0)
		end
	end
end	

end

function Lunge()
Damage = DamageValues.LungeDamage

Sounds.Lunge:Play()

if Humanoid then
	if Humanoid.RigType == Enum.HumanoidRigType.R6 then
		local Anim = Instance.new("StringValue")
		Anim.Name = "toolanim"
		Anim.Value = "Lunge"
		Anim.Parent = Tool
	elseif Humanoid.RigType == Enum.HumanoidRigType.R15 then
		local Anim = Tool:FindFirstChild("R15Lunge")
		if Anim then
			local Track = Humanoid:LoadAnimation(Anim)
			Track:Play(0)
		end
	end
end	
--[[
if CheckIfAlive() then
	local Force = Instance.new("BodyVelocity")
	Force.velocity = Vector3.new(0, 10, 0) 
	Force.maxForce = Vector3.new(0, 4000, 0)
	Debris:AddItem(Force, 0.4)
	Force.Parent = Torso
end
]]

wait(0.2)
Tool.Grip = Grips.Out
wait(0.6)
Tool.Grip = Grips.Up

Damage = DamageValues.SlashDamage

end

Tool.Enabled = true
LastAttack = 0

function Activated()
if not Tool.Enabled or not ToolEquipped or not CheckIfAlive() then
return
end
Tool.Enabled = false
local Tick = RunService.Stepped:wait()
if (Tick - LastAttack < 0.2) then
Lunge()
else
Attack()
end
LastAttack = Tick
–wait(0.5)
Damage = DamageValues.BaseDamage
local SlashAnim = (Tool:FindFirstChild(“R15Slash”) or Create(“Animation”){
Name = “R15Slash”,
AnimationId = BaseUrl … Animations.R15Slash,
Parent = Tool
})

local LungeAnim = (Tool:FindFirstChild("R15Lunge") or Create("Animation"){
	Name = "R15Lunge",
	AnimationId = BaseUrl .. Animations.R15Lunge,
	Parent = Tool
})
Tool.Enabled = true

end

function CheckIfAlive()
return (((Player and Player.Parent and Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0 and Torso and Torso.Parent) and true) or false)
end

function Equipped()
Character = Tool.Parent
Player = Players:GetPlayerFromCharacter(Character)
Humanoid = Character:FindFirstChildOfClass(“Humanoid”)
Torso = Character:FindFirstChild(“Torso”) or Character:FindFirstChild(“HumanoidRootPart”)
if not CheckIfAlive() then
return
end
ToolEquipped = true
Sounds.Unsheath:Play()
end

function Unequipped()
Tool.Grip = Grips.Up
ToolEquipped = false
end

Tool.Activated:Connect(Activated)
Tool.Equipped:Connect(Equipped)
Tool.Unequipped:Connect(Unequipped)

Connection = Handle.Touched:Connect(Blow)

The script was from the original “Linked Sword” created by roblox.

Nevermind, do you have the model link?

Just tested it out in game, it works against dummies in game but not actual other players.

(1) Sword - Roblox

The sword seems to work fine, are you sure the sword that your using against other players aren’t different models?

100%, its very odd and I don’t understand why it’s not working for this specific game.

Your confident the sword in your game is that model you sent me?

Absolutely very very confident.

I am sorry, I am unable to provide further help

Works for both, I had just rechecked now it works for both but still doesn’t work against an actual player.

The sword has an anti-team kill check.

1 Like