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

Sword giver arena and sword disappear when exiting?

How can I make an arena where upon entrance, the player receives a sword to battle with, but when they exit the arena, the swords disappear. It's ok if it deletes everything in their inventory, too.

The one in MicBlang's ROBLOX doation center is something that I'm looking for.

Thanks in advance,

FredMango

2 answers

You keep the tool in server storage. Then when the players enter the arena you cycle through them using a for loop and give them swords, at the end you cycle through them again, removing all the tools. Please at least attempt to script something it helps us out and it will personally help you get better with scripting, overall though a good question and explanation.

--When players are teleported to the arena
-------Variables
players{} = game.Players:GetPlayers()
SWORDNAME = "" --Put your sword name here

-------Main Script
for i = 1, #players do
	newsword = game.ServerStorage:WaitForChild(SWORDNAME):Clone()
	newsword.Parent = players[i].Backpack
end

--When Players leave the arena
for i = 1, #players do
	players[i].Backpack:WaitForChild(SWORDNAME):Destroy()
end
 

Let me know if this doesn't work or you need more help.

2 comments

0

Do I put the sword in lighting or how do I use the regular sword for the script?

0

Put the sword in ServerStorage

I used a free model teleport blocks for the teleporting, and this is the script I did for the one block that takes the players into the arena. What did I do wrong? (I also put "Sword" in lighting.)

modelname="teleporter1d"
------------------------------------

players{} = game.Players:GetPlayers()
SWORDNAME = "Sword" 

for i = 1, #players do
    newsword = game.ServerStorage:WaitForChild(SWORDNAME):Clone()
    newsword.Parent = players[i].Backpack
end



function onTouched(part)
	if part.Parent ~= nil then
	local h = part.Parent:findFirstChild("Humanoid")
		if h~=nil then
			local teleportfrom=script.Parent.Enabled.Value
			if teleportfrom~=0 then
				if h==humanoid then
				return
				end
				local teleportto=script.Parent.Parent:findFirstChild(modelname)
				if teleportto~=nil then
					local torso = h.Parent.Torso
					local location = {teleportto.Position}
					local i = 1

					local x = location[i].x
					local y = location[i].y
					local z = location[i].z
				
					x = x + math.random(-1, 1)
					z = z + math.random(-1, 1)
					y = y + math.random(2, 3)

					local cf = torso.CFrame
					local lx = 0
					local ly = y
					local lz = 0
					
					script.Parent.Enabled.Value=0
					teleportto.Enabled.Value=0
					torso.CFrame = CFrame.new(Vector3.new(x,y,z), Vector3.new(lx,ly,lz))
					wait(3)
					script.Parent.Enabled.Value=1
					teleportto.Enabled.Value=1
				else
					print("Could not find teleporter!")
				end
			end
		end
	end
end

script.Parent.Touched:connect(onTouched)

6 comments

0

Don't use free models, also, this won't work, ill get back to you on this later and help you develop a new script which teleports all players instead of having players touch a brick to teleport in, if that is what you want

0

I did want a brick to teleport in, I wanted this to be a lobby game, so people won't get bored with waiting around.

0

Please edit your question instead of posting answers on your question.

0

Ok sorry. New to this website. Thanks for the tip though.

0

By the way dragon, If it's possible, it would be even better if you could just enter the arena, (pass through some non collided walls) and receive the sword that way. Then when you leave through the invisible walls, they disappear.

0

In that case you would want to just add a touched event to the brick so that it gives the player the sword when they touch the brick, looks like you need lots of help, please be sure to pm me and check on community chat(you need to answer some ques to get two rep) for help.

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