So, here's a little rundown. I'm making a RPG style type of simulator where there's different areas with different enemies and etc. Well since you need coins to achieve better items you obviously would need a way to get those coins, hence killing the enemies. I've got a system setup where within the enemies it checks if there is a creator tag within the humanoid and if there is it awards the player with how ever many coins it's set to give. Well, when I then went on to make my own sword (since the roblox classic sword is not the most beautiful weapon) I ran into a problem. However I somewhat fixed this problem after a few hours which leads me to here. I got it to make a tag, but it doesn't take the value of the player who dealt it. Some help would be high appreciated.
local TOOL = script.Parent local BLADE = TOOL.Blade local HANDLE = TOOL.Handle local ANIMS = {} for index, CHILD in pairs(script:GetChildren()) do if CHILD.Name == "Slash" then table.insert(ANIMS,CHILD) end end local FIGHT = false local FRIENDLYFIRE = TOOL.FriendlyFire local IDLEANIM = nil local TRAIL = BLADE.Trail local PLAYER = game.Players.LocalPlayer function Slash() if FIGHT == false then local HUM = TOOL.Parent:FindFirstChildOfClass("Humanoid") if HUM then TOOL.Slashing.Value = true BLADE.Swing.Pitch = math.random(8,12)/10 BLADE.Swing:Play() TRAIL.Enabled = true local SHOUT = script.Grunt:Clone() SHOUT.Parent = HUM.Torso SHOUT:Play() SHOUT.Pitch = math.random(8,12)/10 game:GetService("Debris"):AddItem(SHOUT,2) local BOD = Instance.new("BodyPosition",HUM.Torso) BOD.Position = HUM.Torso.CFrame * CFrame.new(0,0,-6).p BOD.P = 750 BOD.D = 35 BOD.MaxForce = BOD.MaxForce*25 local ANIM = HUM:LoadAnimation(ANIMS[math.random(1,#ANIMS)]) ANIM:Play() FIGHT = true local HIT = BLADE.Touched:Connect(function(TOUCHED) if TOUCHED.Parent:FindFirstChildOfClass("Humanoid") then local HUM = TOUCHED.Parent:FindFirstChildOfClass("Humanoid") local PASS = true if game.Players:FindFirstChild(HUM.Parent.Name) and FRIENDLYFIRE.Value == false and TOUCHED.Parent:FindFirstChildOfClass("ForceField") == nil then PASS = false end if PASS == true then UntagHumanoid(HUM) TagHumanoid(HUM,PLAYER) HUM:TakeDamage(TOOL.Damage.Value) end end end) ANIM.Stopped:Connect(function() TOOL.Slashing.Value = false BOD:Remove() TRAIL.Enabled = false HIT:Disconnect() wait() FIGHT = false end) end end end local Debris = game:GetService("Debris") function TagHumanoid(HUM, PLAYER) local Creator_Tag = Instance.new("ObjectValue") Creator_Tag.Name = "creator" Creator_Tag.Value = PLAYER Debris:AddItem(Creator_Tag, 2) Creator_Tag.Parent = HUM end function UntagHumanoid(HUM) for i, v in pairs(HUM:GetChildren()) do if v:IsA("ObjectValue") and v.Name == "creator" then v:Destroy() end end end TOOL.Activated:Connect(function() Slash() end) TOOL.Equipped:Connect(function() local HUM = TOOL.Parent:FindFirstChildOfClass("Humanoid") if HUM and script:FindFirstChild("Idle") then IDLEANIM = HUM:LoadAnimation(script.Idle) IDLEANIM:Play() end end) TOOL.Unequipped:Connect(function() if IDLEANIM then IDLEANIM:Stop() end end)