Ive tried doing stuff like putting “KingJesseDev” or “AndroidYTX3”, and ive tried doing and, but they lead to either only showing the gui for me or showing it for everyone. I know you can duplicate the gui and change the username to “AndroidYTX3”, but that feels abit slower when you update the gui and having to do that each time. Here’s my code:
if game.Players.LocalPlayer.Name == "KingJesseDev" or "AndroidYTX3" then
wait()
else
script.Parent:Destroy()
end
Your issue with this script is you have to state you’re comparing the string "AndroidYTX3" to game.Players.LocalPlayer.Name, which you did with "KingJesseDev".
It would look something like this
if game.Players.LocalPlayer.Name == "KingJesseDev" or game.Players.LocalPlayer.Name =="AndroidYTX3" then
wait()
else
script.Parent:Destroy()
end
You could simplify this with
local Name = game.Players.LocalPlayer.Name
if Name == "KingJesseDev" or Name =="AndroidYTX3" then
wait()
else
script.Parent:Destroy()
end
It might seem unnecessary to put it twice, and believe me when I began scripting I agreed, but that’s how you can do this with lua. Hope this helps
(Also a better way might be with UserIds, just in case one of you changes your username, you won’t have to update the script every time.)
Although this is already answered and marked as a solution, I’ll give a different approach and more flexible script.
Check as Username:
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local allowedPlayers = {"Roblox", "KingJesseDev", "AndroidYTX3"}
local function checkAllowed()
for _, thisPlayer in pairs(allowedPlayers) do
if thisPlayer == LocalPlayer.Name then
return true
end
end
end
if checkAllowed() then --// This will return if TRUE or FALSE
-- IF TRUE
wait()
else
-- IF FALSE
script.Parent:Destroy()
end
Check as UserId:
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local allowedPlayers = {1, 1295781757, 1056976476}
local function checkAllowed()
for _, thisPlayer in pairs(allowedPlayers) do
if thisPlayer == LocalPlayer.UserId then
return true
end
end
end
if checkAllowed() then --// This will return if TRUE or FALSE
-- IF TRUE
wait()
else
-- IF FALSE
script.Parent:Destroy()
end
I recommend that you use UserId when checking because they might change their Usernames and your allowedPlayers will not work for the listed value inside because they have a different username from the recorded.
UserIds is a much better idea (as I noted) and yes @OP this approach is significantly better if you plan on adding more people, an elongated if statement would be extremely tedious compared to a table of names.