So, I was making a script that would assign you to a reserved server code but I’m having problems getting that code in the codeTeleport
. I wanna know why the onPlayerAdded
Function can get the code but the codeTeleport
Function can’t.
Error
Script
local TeleportService = game:GetService("TeleportService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ShopDataStore = DataStoreService:GetDataStore("ShopCode")
local TeleportPlayer = ReplicatedStorage.Events:WaitForChild("TeleportPlayer")
local shopPlaceId = 7301251769
local function onPlayerAdded(Player)
local shopCode
local getSuccess, getError = pcall(function()
shopCode = ShopDataStore:GetAsync(Player.UserId)
end)
if getSuccess then
print("Success! Data received.")
if shopCode then
print("Player has data! Code is: "..shopCode)
else
print("Player has no data. Creating shop code..")
local updateSuccess, updateError = pcall(function()
local newShop = TeleportService:ReserveServer(shopPlaceId)
ShopDataStore:SetAsync(Player.UserId, newShop)
shopCode = ShopDataStore:GetAsync(Player.UserId)
end)
if updateSuccess then
print("Player now has data! Code is: "..shopCode)
else
warn(updateError)
Player:Kick("\nFailed to store data! Please rejoin.\n\nError:\n"..updateError)
end
end
else
warn(getError)
Player:Kick("\nFailed to get data! Please rejoin.\n\nError:\n"..getError)
end
end
local function codeTeleport(Player, PlayerToTeleport)
local shopCode = nil
local PlayerID = nil
local playerSuccess, playerError = pcall(function() PlayerID = Players:GetUserIdFromNameAsync(Player) end)
local getSuccess, getError = pcall(function()
shopCode = ShopDataStore:GetAsync(PlayerID)
end)
if getSuccess then
print(shopCode)
TeleportService:TeleportToPrivateServer(shopPlaceId, shopCode, {PlayerToTeleport})
else
end
end
game.Players.PlayerAdded:Connect(onPlayerAdded)
TeleportPlayer.OnServerEvent:Connect(codeTeleport)