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)