Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

Locator is not valid member of Model?

Asked by 5 years ago
Edited 5 years ago

** 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

0
The error means that locator does not exist in the model. Thesquid13 301 — 5y
0
but it actually exist. Somone_exe 224 — 5y

1 answer

Log in to vote
0
Answered by
awfulszn 394 Moderation Voter
5 years ago
Edited 5 years ago

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!

0
That's not the problem. DeceptiveCaster 3761 — 5y
0
He left a comment in his script claiming it to be his problem, awfulszn 394 — 5y
0
Nice. Problem Solved! Somone_exe 224 — 5y
0
Great! Happy developing! awfulszn 394 — 5y
Ad

Answer this question