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

I MADE THIS SCRIPT TO GIVE A SWORD TO A RANDOM PLAYER WHEN TOUCHED BUT IT DOES NOT WORK?

part = script.Parent

serverstorage = game:GetService("ServerStorage")

part.Touched:connect(function(hit)

if game.Players:GetRandomPlayer(hit.Parent) then

p = game.Players:GetRandomPlayer(hit.Parent)

part.BrickColor = BrickColor.new("Really red")

if not p.Backpack:findFirstChild("Sword") then --To check if the player already has a sword. If they don't then the script continues.

local sword = serverstorage:WaitForChild("Sword"):Clone()

sword.Parent = p.Backpack

end

end

end)

1 comment

0

Edit your post to be a reasonable title and to fix your code formatting to use the Lua code formatting option.

1 answer

(Updated) Try this:

-- Don't forget to upvote me XD!
local ServerStorage = Game:GetService("ServerStorage")
local PlayerService = Game:GetService('Players')
local Brick = script.Parent

local function OnTouched(hit)
	local Humanoid = hit.Parent:findFirstChild('Humanoid')
	if Humanoid then
		local Number = math.random(#PlayerService :GetChildren())
		local Player = PlayerService:GetChildren()[Number]
		local ToolName = ('Sword')
		local Tool = Player.Backpack:findFirstChild(ToolName )
		print(Player, ' is chosen for random give sword,')

		if not Tool then
			Tool = ServerStorage:findFirstChild(ToolName ):clone()
			Tool.Parent = Player.Backpack
		end -- End If		
	end -- End If
end -- End Sub

Brick.Touched:connect(OnTouched)

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