ServerScriptService

local BadgeService = game:GetService("BadgeService")

local Players = game:GetService("Players")


local BADGE_ID = 0000000000


local function awardBadge(player, badgeId)

local success, badgeInfo = pcall(function()

return BadgeService:GetBadgeInfoAsync(badgeId)

end)

if success then

if badgeInfo.IsEnabled then

local awardSuccess, result = pcall(function()

return BadgeService:AwardBadge(player.UserId, badgeId)

end)

end

else

warn("Error while fetching badge info: " .. badgeInfo)

end

end


Players.PlayerAdded:Connect(function(player)

awardBadge(player, BADGE_ID)

end)


Part (Touch)


local BadgeService = game:GetService("BadgeService")

local Players = game:GetService("Players")



local BADGE_ID = 0000000000


local function awardBadge(player, badgeId)


local success, badgeInfo = pcall(function()

return BadgeService:GetBadgeInfoAsync(badgeId)

end)


if success then

if badgeInfo.IsEnabled then

local awardSuccess, result = pcall(function()

return BadgeService:AwardBadge(player.UserId, badgeId)

end)

end

else

warn("Error while fetching badge info: " .. badgeInfo)

end

end


script.Parent.Touched:Connect(function(otherPart)

local player = Players:GetPlayerFromCharacter(otherPart.Parent)

if player then

awardBadge(player, BADGE_ID)

end

end)




Check Badge (Click)


local BadgeService = game:GetService("BadgeService")

local click = script.Parent.ClickDetector

local teleportPart = game.Workspace.InsideCastle.Position + Vector3.new(0,3,0)


local BADGE_ID = 0000000000


local function checkBadge(player, badgeId)

local success, badge = pcall(function()

return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)

end)

return badge

end


click.MouseClick:Connect(function(player)

local hasBadge = checkBadge(player, BADGE_ID)

if hasBadge then

player.Character.HumanoidRootPart.CFrame = CFrame.new(teleportPart)

end

end)