#player tracker

1 messages · Page 1 of 1 (latest)

cinder lagoon
#

i have a lobby and then a main game via asset manager and i wanted to see if i would make something where i type in a players name in the main game and if they are in the lobby it would tp me to them and vise versa. but nothing is working lol

autumn dome
#

Always post script. Copy the script and paste it between these
```lua
--paste in here
```

cinder lagoon
#

ik how to lol

#

ty tho

#

even went to chat gpt and that didnt do shit crying

#
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MessagingService = game:GetService("MessagingService")

-- RemoteFunction to allow mods to request job ID by code
local JobCodeEvent = Instance.new("RemoteFunction")
JobCodeEvent.Name = "GetJobServerByCode"
JobCodeEvent.Parent = ReplicatedStorage

-- Function to generate a random 5-digit code
local function generateJobCode()
    local code = ""
    for _ = 1, 5 do
        code = code .. tostring(math.random(0, 9))
    end
    return code
end

-- Generate the job code for this server
local jobCode = generateJobCode()
local jobId = game.JobId -- Only works in live servers
local placeId = game.PlaceId

warn("[Server Job Code] Generated Code: " .. jobCode)

-- Publish job to global registry (optional)
MessagingService:PublishAsync("JobCodeRegistry", {
    Code = jobCode,
    JobId = jobId,
    PlaceId = placeId
})

-- Handle requests for a job ID by code
JobCodeEvent.OnServerInvoke = function(player, enteredCode)
    if enteredCode == jobCode then
        return {
            JobId = jobId,
            PlaceId = placeId
        }
    else
        return nil
    end
end
#

heres the server

#
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")

local TeleportToPlayerServer = ReplicatedStorage:WaitForChild("TeleportToPlayerServer")
local player = Players.LocalPlayer

local usernameBox = script.Parent:WaitForChild("jobidbox") -- used for target username
local joinButton = script.Parent:WaitForChild("joinjobid")

joinButton.MouseButton1Click:Connect(function()
    local targetUsername = usernameBox.Text
    local success, data = pcall(function()
        return TeleportToPlayerServer:InvokeServer(targetUsername)
    end)

    if success and data then
        TeleportService:Teleport(data.GameId, player, {
            TeleportData = {
                TargetPlaceId = data.PlaceId,
                TargetJobId = data.JobId
            }
        })
    else
        warn("Failed to find or teleport to player.")
    end
end)
#

this is the local:

#

and then theres the one more server script for the main game

#
local TeleportService = game:GetService("TeleportService")

Players.PlayerAdded:Connect(function(player)
    local joinData = player:GetJoinData()
    local teleportData = joinData.TeleportData

    if teleportData and teleportData.TargetPlaceId and teleportData.TargetJobId then
        print("Redirecting player to target server:", teleportData.TargetJobId)
        TeleportService:TeleportToPlaceInstance(
            teleportData.TargetPlaceId,
            teleportData.TargetJobId,
            player
        )
    end
end)
autumn dome
#

Just making sure. Did you test teleporting in Roblox Studio? @cinder lagoon

#

Cause teleporting doesnt work when testing in Roblox Studio

cinder lagoon
#

i like to really make sure lol

autumn dome
#

Good. Then I will check scripts. Could you add the lua formatting to them? helps me see

#

just append lua like this: ```lua

#

in the script stuff

cinder lagoon
#

with each script

#

right

autumn dome
#

Yes please and thank you

cinder lagoon
#

yeah ofc

#
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")

local TeleportToPlayerServer = ReplicatedStorage:WaitForChild("TeleportToPlayerServer")
local player = Players.LocalPlayer

local usernameBox = script.Parent:WaitForChild("jobidbox") -- used for target username
local joinButton = script.Parent:WaitForChild("joinjobid")

joinButton.MouseButton1Click:Connect(function()
    local targetUsername = usernameBox.Text
    local success, data = pcall(function()
        return TeleportToPlayerServer:InvokeServer(targetUsername)
    end)

    if success and data then
        TeleportService:Teleport(data.GameId, player, {
            TeleportData = {
                TargetPlaceId = data.PlaceId,
                TargetJobId = data.JobId
            }
        })
    else
        warn("Failed to find or teleport to player.")
    end
end)
#

local:

#
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")

local TeleportToPlayerServer = ReplicatedStorage:WaitForChild("TeleportToPlayerServer")
local player = Players.LocalPlayer

local usernameBox = script.Parent:WaitForChild("jobidbox") -- used for target username
local joinButton = script.Parent:WaitForChild("joinjobid")

joinButton.MouseButton1Click:Connect(function()
    local targetUsername = usernameBox.Text
    local success, data = pcall(function()
        return TeleportToPlayerServer:InvokeServer(targetUsername)
    end)

    if success and data then
        TeleportService:Teleport(data.GameId, player, {
            TeleportData = {
                TargetPlaceId = data.PlaceId,
                TargetJobId = data.JobId
            }
        })
    else
        warn("Failed to find or teleport to player.")
    end
end)```
#

server:

#
local TeleportService = game:GetService("TeleportService")

Players.PlayerAdded:Connect(function(player)
    local joinData = player:GetJoinData()
    local teleportData = joinData.TeleportData

    if teleportData and teleportData.TargetPlaceId and teleportData.TargetJobId then
        print("Redirecting player to target server:", teleportData.TargetJobId)
        TeleportService:TeleportToPlaceInstance(
            teleportData.TargetPlaceId,
            teleportData.TargetJobId,
            player
        )
    end
end)
#

server

autumn dome
#

You did a mistake
Like this
```lua

```

#

You can edit your message instead of sending new ones

cinder lagoon
#

oh im dumb

#

sorry i've been up all night

autumn dome
#

oof

cinder lagoon
#

do i need something dif or

#

cause i think im doing it right lol

autumn dome
#

```lua
--Your code inbetween
```

cinder lagoon
#
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")

local TeleportToPlayerServer = ReplicatedStorage:WaitForChild("TeleportToPlayerServer")
local player = Players.LocalPlayer

local usernameBox = script.Parent:WaitForChild("jobidbox") -- used for target username
local joinButton = script.Parent:WaitForChild("joinjobid")

joinButton.MouseButton1Click:Connect(function()
    local targetUsername = usernameBox.Text
    local success, data = pcall(function()
        return TeleportToPlayerServer:InvokeServer(targetUsername)
    end)

    if success and data then
        TeleportService:Teleport(data.GameId, player, {
            TeleportData = {
                TargetPlaceId = data.PlaceId,
                TargetJobId = data.JobId
            }
        })
    else
        warn("Failed to find or teleport to player.")
    end
end)
#

local:

#

ty

autumn dome
#

!!!

cinder lagoon
#
-- ServerScriptService/JobCodeManager.lua
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MessagingService = game:GetService("MessagingService")

-- RemoteFunction to allow mods to request job ID by code
local JobCodeEvent = Instance.new("RemoteFunction")
JobCodeEvent.Name = "GetJobServerByCode"
JobCodeEvent.Parent = ReplicatedStorage

-- Function to generate a random 5-digit code
local function generateJobCode()
    local code = ""
    for _ = 1, 5 do
        code = code .. tostring(math.random(0, 9))
    end
    return code
end

-- Generate the job code for this server
local jobCode = generateJobCode()
local jobId = game.JobId -- Only works in live servers
local placeId = game.PlaceId

warn("[Server Job Code] Generated Code: " .. jobCode)

-- Publish job to global registry (optional)
MessagingService:PublishAsync("JobCodeRegistry", {
    Code = jobCode,
    JobId = jobId,
    PlaceId = placeId
})

-- Handle requests for a job ID by code
JobCodeEvent.OnServerInvoke = function(player, enteredCode)
    if enteredCode == jobCode then
        return {
            JobId = jobId,
            PlaceId = placeId
        }
    else
        return nil
    end
end
#

server:

#
local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")

Players.PlayerAdded:Connect(function(player)
    local joinData = player:GetJoinData()
    local teleportData = joinData.TeleportData

    if teleportData and teleportData.TargetPlaceId and teleportData.TargetJobId then
        print("Redirecting player to target server:", teleportData.TargetJobId)
        TeleportService:TeleportToPlaceInstance(
            teleportData.TargetPlaceId,
            teleportData.TargetJobId,
            player
        )
    end
end)
#

server:

autumn dome
#

Does it warn you of no players found

cinder lagoon
#

yes.

#

before i was using jobid

autumn dome
#

I cant see TeleportToPlayerServer.OnInvoke happening anywhere. So i dont know why it doesnt return data or a false success

cinder lagoon
#

if i was in the same game it would work

cinder lagoon
#

yeah but jobid is for one game and what i need is across games

#

a game on roblox called project delta has a player tracker just like this

#

so i know its some what possible

autumn dome
cinder lagoon
autumn dome
#

Dont think so. You are using TeleportToPlayerServer:InvokeServer
but TeleportToPlayerServer.OnInvoke doesnt exist in the scripts you sent me, meaning afaik it isnt use. I cant debug if i dont know how you handle TeleportToPlayerServer.OnInvoke

cinder lagoon
#

oh

#

im fucking sped

#

bro i just need some sleep haha

autumn dome
#

Hey we can always do this another time

#

my 12:00 is your <t:1747735200:t> atleast if that helps for planning when later

mossy lagoonBOT
#

studio** You are now Level 4! **studio

harsh sphinx
cinder lagoon
cinder lagoon
harsh sphinx
cinder lagoon
#

something ill prolly do in the future

harsh sphinx
#

PlaceId_JobId just save this in the memory store of the player and fetch it when needed