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