Hello, I am trying to make an outfit loader where players can type in someone else’s user name and load in their outfit. For some reason though, I get this error, “Unable to cast instance to int64” in the 4th line of my script (server). I cannot think of any solutions, why might this be happening?
Local script:
local plr = game.Players.LocalPlayer
local button = script.Parent
local input = button.Parent.Input
local event = game.ReplicatedStorage.LoadPlayerOutfit
button.MouseButton1Click:Connect(function()
local success, errormessage = pcall(function()
return game.Players:GetUserIdFromNameAsync(input.Text)
end)
if success then
event:FireServer(plr, game.Players:GetUserIdFromNameAsync(input.Text))
else
warn(errormessage)
end
end)
Script:
local event = game.ReplicatedStorage.LoadPlayerOutfit
event.OnServerEvent:Connect(function(plr, ID)
local desc = game.Players:GetHumanoidDescriptionFromUserId(game.Players:GetHumanoidDescriptionFromUserId(ID))
plr.Character.Humanoid:ApplyDescription(desc)
end)
What GetHumanoidDescriptionFromUserId does is return a HumanoiDescription based on the UserId given, what the error means by int64 is a 64 bit signed integer, which is a whole number that has a limit of 2^63 - 1, what the function is getting is the exact same function that is either returning nil, or a HumanoidDescription, which arent numbers, the function sees that they arent numbers, and gives the error: Unable to cast instance to int64, which if you notice Instance, that means it returned a HumanoidDescription, so you need to remove one of the functions.
I figured out the problem myself, although yes, GetHumanoidDescription() returns an Instance. I decided to test something out. In my local script, I replaced the first fireserver() parameter with “Hi” and had my script print that parameter out. I got “Berrinlin” printed instead, which is my username. Apparently, OnServerEvent functions take an extra parameter which is the player who’s local script called the server event.