The reproduction steps are as simple as: You just go in game, teleport to the city. press on the button from the menu on top you either return to menu or Trading or u could even enter a dungeon.
in this game you cant access the city till you finish the tutorial so I do understand why you would take time. about how I handle teleportation here is the code:
function Quests.TeleportToPrivatePlace(Players, teleportToPlace, attempts, KickOnFail, Freeze)
if typeof(Players) ~= "table" then
Players = {Players}
end
if Freeze then
for _, Player in ipairs(Players) do
local PrimaryPart = Player.Character and Player.Character.PrimaryPart
if PrimaryPart then
PrimaryPart.Anchored = true
end
end
end
if KickOnFail == nil then
KickOnFail = true
end
attempts = attempts or 1
local placeId = Functions.Places[teleportToPlace]
if placeId then
local succ, err = pcall(function()
--RemoteEvent:FireClient(Player, "SetTeleportGui", teleportToPlace)
print(workspace:GetAttribute("ServerCode"), "TELEPORTINGGGG")
local ReservedServerAccessCode, privateServerId = TeleportService:ReserveServer(placeId)
local Gui = Assets.Guis.Places:FindFirstChild(teleportToPlace)
for _, Player in ipairs(Players) do
if Gui and Player:FindFirstChild("PlayerGui") then
Gui = Gui:Clone()
Gui.Parent = Player.PlayerGui
end
end
local serverCode = workspace:GetAttribute("ServerCode") or workspace:GetAttribute("OriginCode")
if not serverCode then
print("NO CODE!")
TeleportService:TeleportToPrivateServer(placeId, ReservedServerAccessCode, Players, nil, nil, Gui)
else
local memoryStoreQueue = game:GetService("MemoryStoreService"):GetQueue(privateServerId, 120)
memoryStoreQueue:AddAsync(workspace:GetAttribute("RestrictedAccessCode"), 120) -- 120 for the same reasons as above
memoryStoreQueue:AddAsync(serverCode, 120)
--local teleportOptions = Instance.new("TeleportOptions")
--local teleportData = {
-- ReservedServerAccessCode = ReservedServerAccessCode
--}
--teleportOptions:SetTeleportData(teleportData)
--TeleportService:TeleportPartyAsync(placeId, Players, teleportOptions)
TeleportService:TeleportToPrivateServer(placeId, ReservedServerAccessCode, Players, nil, {game.PrivateServerId, game.PlaceId, workspace:GetAttribute("ServerCode"), workspace:GetAttribute("RestrictedAccessCode")}, Gui)
end
end)
if succ then
print("Teleport Succeeded", succ)
end
if err then
for _, Player in ipairs(Players) do
Quests.EndQuest(Player)
end
warn("Teleporting Error:", err)
if attempts > 1 then
print("Trying Again...")
Quests.TeleportToPrivatePlace(Players, teleportToPlace, attempts-1)
elseif KickOnFail then
for _, Player in ipairs(Players) do
if game:GetService("RunService"):IsStudio() then break end
Player:Kick("An Error Occured Please Try Rejoining.")
end
elseif Freeze then
if Freeze then
for _, Player in ipairs(Players) do
local PrimaryPart = Player.Character and Player.Character.PrimaryPart
if PrimaryPart then
PrimaryPart.Anchored = false
end
end
end
end
end
else
warn("Place id not found:", teleportToPlace)
end
end