Unable to cast value to object

--make private reserve servers
local TeleportService = game:GetService("TeleportService")
local gameID = 11973353496
local JobID = game.JobId
local ReservedServer = TeleportService:ReserveServer(gameID)
local WhichSpawn = "AP"
	
local teleportData = {
	Data1 = JobID
}
 
function onTouched(hit)
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)
    if player then
		TeleportService:TeleportToPrivateServer(gameID, ReservedServer, player, WhichSpawn, teleportData)
    end
end
 
script.Parent.Touched:connect(onTouched)

Is there anything wrorng with my script, I searched through it but I could not find any errors in script.
Sorry for the bad english

1 Like
local TeleportService = game:GetService("TeleportService")
if TeleportService == nil then
  error("TeleportService not found")
end

local gameID = 11973353496
local JobID = game.JobId
local ReservedServer = TeleportService:ReserveServer(gameID)
if ReservedServer == nil then
  error("ReservedServer not found")
end

local WhichSpawn = "AP"
local teleportData = {
  Data1 = JobID
}
 
function onTouched(hit)
  local player = game.Players:GetPlayerFromCharacter(hit.Parent)
  if player then
    local result = TeleportService:TeleportToPrivateServer(gameID, ReservedServer, player, WhichSpawn, teleportData)
    if result == Enum.TeleportResult.Success then
      print("Teleported player successfully")
    else
      print("Failed to teleport player: "..tostring(result))
    end
  end
end
 
script.Parent.Touched:connect(onTouched)

Try that, hope you tell me if it worked or the error you get!

1 Like

I’m sure TeleportService:TeleportToPrivateServer requires the player list in an array so wrap the player in braces {player}
It is though, recommended to use TeleportAsync these days.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.