So I've tried and tried and tried to fix this, but I have no idea how. I've asked TehIcyStar to help me, but this is all he could manage. The goal is to make it look like this https://cdn.discordapp.com/attachments/225572345631342592/414789154774450186/unknown.png but nothing happens. Instead I just get this https://cdn.discordapp.com/attachments/225572345631342592/414789268477837314/unknown.png here is the TagClean/Sword itself. I'm not good with words, but this is what I can manage to say and do.

r = game:service("RunService")
local UIS = game:GetService("UserInputService") -- grabs userinputservice


local damage = 2

local tagcleanable = false --variable for when player can press T to tagclean


local slash_damage = 2 --The punch is 3 because its is normal attack
local lunge_damage = 4 --Its by 5 when it gets stronger

sword = script.Parent.Handle
Tool = script.Parent



function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		tagHumanoid(humanoid, vPlayer)
		humanoid.Health = humanoid.Health - damage
		wait(1)
		untagHumanoid(humanoid)
	end
end


function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end


function attack()
	damage = slash_damage
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end

function lunge()
	damage = lunge_damage


	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Lunge"
	anim.Parent = Tool
	
	
	
	
	
	wait(.25)
	swordOut()
	wait(.25)
	
	wait(.5)
	swordUp()

	damage = slash_damage
end

function swordUp()
	Tool.Handle.CanCollide = false
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
	Tool.Handle.CanCollide = true
end

function swordOut()
	Tool.Handle.CanCollide = false
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
	Tool.Handle.CanCollide = true
end

function swordAcross()
	-- parry
end


Tool.Enabled = true
local last_attack = 0
function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		return 
	end

	t = r.Stepped:wait()

	if (t - last_attack < .2) then
		lunge()
	else
		attack()
	end

	last_attack = t

	wait(.5)

	Tool.Enabled = true
end


function onEquipped()
	tagcleanable = true
end

UIS.InputBegan:connect(function (input, _) -- recognizes input is being given
    if input.KeyCode == Enum.KeyCode.T and tagcleanable then -- checks to see if the key pressed was the 'T' key
	print("KeyPressed!!!")
    	game.ReplicatedStorage.TagOut:FireServer() -- send server the message to tag out
print("Sent message to server")
    end
end)


script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)
script.Parent.Unequipped:connect(function ()
	tagcleanable = false
end)


connection = sword.Touched:connect(blow)



TagClean Script

local ChatService = game:GetService("Chat")


game.ReplicatedStorage.TagOut.OnServerEvent:connect(function (plyr)
	if plyr then
		if plyr.Character then
			ChatService:Chat(plyr.Character.Head, "Tag", "Blue")
		end
	end
end)

i even have the Tagout at ReplicatedStorage where it's supposed to be. Thanks if you manage to help. You'll be my hero.