I've given it a go, and I'm stuck on the part in the comment, **local place **is created within the player when he joins by another script, please ask me questions, if more info is needed.
local badgeID = 295786284 local badgeService = game:GetService("BadgeService") function OnTouch(part) if (part.Parent:FindFirstChild("Humanoid") ~= nil) then local owner = script.Parent.Parent.Parent.Parent.Parent.Owner if part.Parent.Name == owner.Value then --[[ Check all other players in game for the value of Player.Place.Value, find the highest, and change the Player.Place.Value of the "Toucher", to the highest + 1, then checks if place.Value == 1 and awards a badge. --]] local player = game.Players:GetPlayerFromCharacter(part.Parent) local place = player.Place if place.Value == 1 then badgeService:AwardBadge(player.userId, badgeID) end end end end script.Parent.Touched:connect(OnTouch)