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

Locator is not valid member of Model?

** i just try to make 2-10 players teleport to random location in the specific map but it got Locator is not valid member of Model

here is the script that i got problem

if character then

-- Teleport them

local num = math.random(1, 10)

player.character.Head.CFrame = CFrame.new(workspace.Desert.["Locator..num"].Position) -- this is what problem i got.

table.remove(AvailableSpawnPoints,1)

and the rest of script is. [there may have more problems]

-- Define variables

  

local ReplicatedStorage = game:GetService("ReplicatedStorage")

  

local ServerStorage = game:GetService("ServerStorage")

  

local MapsFolder = ServerStorage:WaitForChild("Maps")

  

local Status = ReplicatedStorage:WaitForChild("Status")

  

local GameLength = 60

  

local AmountOfPlayersRequired = 2

  

-- Game loop

  

while true do

Status.Value = "Waiting for enough players"

repeat wait(1) until game.Players.NumPlayers >= AmountOfPlayersRequired

Status.Value = "Intermission"

wait(1)

local plrs = {}

for i, player in pairs(game.Players:GetChildren()) do

if player then

table.insert(plrs,player) --Add each player into plrs table

end

end

wait(2)

local AvailabeMaps = MapsFolder:GetChildren()

local ChosenMap = AvailabeMaps[math.random(1,#AvailabeMaps)]

Status.Value = ChosenMap.Name.." Chosen"

local ClonedMap = ChosenMap:Clone()

ClonedMap.Parent = workspace

-- Teleport players to the map

local SpawnPoints = ClonedMap:FindFirstChild("Locator")

if not SpawnPoints then

print("SpawnPoints not found!")

end

local AvailableSpawnPoints = game.Players:GetChildren()

local player = game.Players:GetChildren()

for i, player in pairs(plrs) do

if player then

character = player.Character

if character then

-- Teleport them

local num = math.random(1, 10)

player.character.Head.CFrame = CFrame.new(workspace.Desert.["Locator..num"].Position)

table.remove(AvailableSpawnPoints,1)

  

--Give them a sword

local Sword = ServerStorage.Sword:Clone()

Sword.Parent = player.Backpack

local GameTag = Instance.new("BoolValue")

GameTag.Name = "GameTag"

GameTag.Parent = player.Character

else

-- There is no Character

if not player then

table.remove(plrs,i)

end

end

end

end

Status.Value = "Get ready to play!"

wait(3)

for i = GameLength,0,-1 do

for x, player in pairs(plrs) do

if player then

character = player.Character

if not character then

--Left the game

table.remove(plrs,x)

print(player.Name.." have been left the game")

Status.Value = player.Name.." have been left the game"

else

if character:FindFirstChild("GameTag") then

-- They are still alive

print(player.Name.." is still in the game!")

else

-- They are dead

table.remove(plrs,x)

print(player.Name.." has been removed!")

end

end

else

table.remove(plrs,x)

print(player.Name.." has been removed!")

end

end

Status.Value = "There are "..i.." seconds remaining, and "..#plrs.." players left"

if #plrs == 1 then

-- Last person standin

Status.Value = "The winner is "..plrs[1].Name

break

elseif #plrs == 0 then

Status.Value = "Nobody won!"

break

elseif i == 0 then

Status.Value = "Time up!"

break

end

wait(1)

end

print("End of game")

for i, player in pairs(game.Players:GetPlayers()) do

character = player.Character

if not character then

--Ignore them

else

if character:FindFirstChild("GameTag") then

character.GameTag:Destroy()

end

if player.Backpack:FindFirstChild("Sword") then

player.Backpack.Sword:Destroy()

end

if character:FindFirstChild("Sword") then

character.Sword:Destroy()

end

end

player:LoadCharacter()

end

ClonedMap:Destroy()

Status.Value = "Game ended"

wait(2)

  

end

EDIT: well it actually exist model just exist but i want the script to teleport player to random locator from 1 to 10 but it said locator is not valid member of model

2 comments

0

The error means that locator does not exist in the model.

0

but it actually exist.

1 answer

✓ Accepted answer

You've attempted to concatenate within a string, however you must do this outside of it, else it will just be one big string.

Also, ensure that the 'Locator' model is inside the model that you are cloning.

Additionally, you're moving the position of the player's head, when you should be using their HumanoidRootPart.

Change this:

player.character.Head.CFrame =  CFrame.new(workspace.Desert.["Locator..num"].Position)

To this:

player.Character.HumanoidRootPart.CFrame =  CFrame.new(workspace.Desert["Locator"..num].Position)

You should read up more on how concatenation works, to familiarize yourself with it in the future.

Happy scripting!

4 comments

0

That's not the problem.

0

He left a comment in his script claiming it to be his problem,

0

Nice. Problem Solved!

0

Great! Happy developing!

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