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

How Do I Put This Script Into A Tool And Make It Work?

Can anybody help me? How can I put this script into a tool? I try, but it doesn't work. What can I do for it to work?

Player = script.Parent.Parent
Player.CharacterAdded:wait(1)
Char = Player.Character
Left, Right = Char:WaitForChild("Left Arm"), Char:WaitForChild("Right Arm")

--Put in starterpack

--Controlls: Q And E

Distance = 10 --How far they can reach

Can = true

Mouse = Player:GetMouse()

Mouse.KeyDown:connect(function(Key)
	if string.lower(Key) == "q" then
		local Q = Left:FindFirstChild("Q")
		if Q then
			Q:remove()
		end
		local Pos = Mouse.Hit.p
		if (Pos - Left.Position).magnitude < Distance then
		if Can then
		Can = false
		local Body = Instance.new("BodyPosition", Left)
		Body.Name = "Q"
		Body.maxForce = Vector3.new(20000, 20000, 20000)
		Body.position = Pos
		local Part = Instance.new("Part", Char)
	    Part.Transparency = 1
	    Part.FormFactor = "Custom"
	    Part.Size = Vector3.new(1, 1, 1)
	    local Box = Instance.new("SelectionBox", Part)
	    Box.Adornee = Part
	    Part.CFrame = CFrame.new(Pos)
	    Part.Name = "Q"
	    wait(0.25)
	    Can = true
	    end
		end
	end
	if string.lower(Key) == "e" then
		local Pos = Mouse.Hit.p
		local E = Right:FindFirstChild("E")
		if E then
			E:remove()
		end
		if (Mouse.Hit.p - Right.Position).magnitude < Distance then
		if Can then
		Can = false
		local Body = Instance.new("BodyPosition", Right)
		Body.Name = "E"
		Body.maxForce = Vector3.new(20000, 20000, 20000)
		Body.position = Pos
		local Part = Instance.new("Part", Char)
	    Part.Transparency = 1
	    Part.FormFactor = "Custom"
	    Part.Size = Vector3.new(1, 1, 1)
	    local Box = Instance.new("SelectionBox", Part)
	    Box.Adornee = Part
	    Part.CFrame = CFrame.new(Pos)
	    Part.Name = "E"
	    wait(0.25)
	    Can = true
	    end
		end
	end
end)

Mouse.KeyUp:connect(function(Key)
	if string.lower(Key) == "q" then
		local Q = Left:FindFirstChild("Q")
		local Q2 = Char:FindFirstChild("Q")
		if Q then
			Q:remove()
		end
		if Q2 then
			Q2:remove()
		end
	end
	if string.lower(Key) == "e" then
		local E = Right:FindFirstChild("E")
		local E2 = Char:FindFirstChild("E")
		if E then
			E:remove()
		end
		if E2 then
			E2:remove()
		end
	end
end)

Thanks.

1 answer

✓ Accepted answer

script.Parent.Parent is not the player, it is the character. The script runs when the tool is selected, it doesn't run while it's still in the backpack. The wait method also does not take any arguments. You don't need to wait for the character in this case, though.

Replace the first 3 lines with this

Char = script.Parent.Parent
Player = game.Players:GetPlayerFromCharacter(Char)

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