I have modified your code adjusting it to what @ChipioIndustries has mentioned above. All I did was create a function to check if any of the developers are in the server and return the boolean true if they are. This function is called when a player joins to award passes to the players who met the developer and don’t own the badge.
Let me know if this works.
local BadgeService = game:GetService("BadgeService")
local BadgeID = 2124495817
for _, player in pairs(game:GetService("Players"):GetPlayers()) do
if player.Name == "Nanonauts" or player.Name == "Strongjohnfgamer" or player.Name == "Nanoswamp" then
if CheckDevs() then
for i, Plr in pairs(game.Players:GetPlayers()) do
if BadgeService:UserHasBadge(Plr.UserId, BadgeID) == false then -- Check if they don't own the badge first.