You can use another function that was provided by the PlayerService. GetUserIdFromNameAsync and GetNameFromUserIdAsync
local RealName = game.Players:GetNameFromUserIdAsync(Player.Name)
local RealId = game.Players:GetUserIdFromNameAsync(Player.UserId)
if Player.Name ~= RealName then return Player:Kick('ping spoofing') end
if Player.UserId ~= RealId then return Player:Kick('ping spoofing') end
The exploit isn’t done with any injection exploit such as Synapse. You can modify these values in Cheat Engine or via Fiddler (which the public leaked method uses) to edit the information sent in the JoinData.
This data is set before the client even has joined the game.
I was told using those functions they just returned the spoofed values, I assumed from that they just check for the player instance in-game and grab the values from that instance but i’m not sure, this may also work.
This reply in another topic makes it sound like this doesn’t work—it just gives the exploiter’s UID—but based on others in the thread it should be patched soon. Hopefully the testing process is fast enough that it’ll be live soon.
i feel like this is too much code for just one thing,
this can be accomplished like this in only a few lines
local HttpService = game:GetService("HttpService")
local success, data = pcall(function()
if plr.Name ~= data then
This is a network vulneurability and not a traditional exploit. It’s done by modifying the information that is sent from the client to the server before the client loads in, therefore things like playeradded will fire after the info has already been spoofed