Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How to make a creator tag take the value of the player who dealt damage?

I've got it to create a creator tag but I want the creator tag to have the value of the player who dealt it so that I can make an award script that awards the player for killing said thing.

Here's the script to the sword

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
			wait(15)
			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)

The award script

local hum = script.Parent.Humanoid
function dead()
	local tag = hum:FindFirstChild("creator")
	if tag.Value ~= "" then
		local leaderstats = tag.Value:FindFirstChild("leaderstats")
		leaderstats.Coins.Value = leaderstats.Coins.Value + 100
	end
end
hum.Died:Connect(dead)

2 comments

0

You need to do the creator tag by the Server.

0

How would I do that?

1 answer

This discussion is preserved as it was. New answers, comments, and votes are closed.