Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Welcome to my 'Random Scripts' page! Here, you can find plenty of scripts I found during my developing era that may or may not be helpful for your Roblox game. Keep in mind, this is all the script I use in my game 'Sienna Badge Walk' and some other games. There are several badge awarder scripts here and all of them are RATE LIMIT FRIENDLY! Just make sure you follow each step on how to properly set the script and if you would like to correct me or add something, please DM me! Have fun scripting :)
- == Last Updated: July 14th, 2024 (14/07/2024 | 07/14/2024) ==
- Note: I will only update this page whenever I feel like it, so do not expect consistent update!
- === Badge Awarder Scripts === -- [CREDIT TO: @luckyto_shine (Roblox) and @30l50 (Roblox) --- They created this script, not me!]
- == Rate Limit Script ==
- Note 1: Make a folder named 'Scripts' that will consist of the following scripts. If you want to rename the folder, make sure to also change the path that is marked in the script!
- Note 2: Optionally, you can download this asset and remove unnecessary parts you don't want: https://create.roblox.com/store/asset/11647317355/Badge-Awarder-Kit
- // Badge Handler //
- > Name: BadgeHandler
- > Script Type: Script
- > Scripts:
- for _, item in pairs(script:GetChildren()) do
- item.Parent = game.StarterGui
- for _, scripts in pairs(item:GetDescendants()) do
- if scripts:IsA("Script") or scripts:IsA("LocalScript") then
- scripts.Enabled = true
- end
- end
- end
- >> Name: RateUI
- >> Script Type: ScreenGui
- Note: Make sure to customize these settings:
- 'ClipToDeviceSafeArea' set to enabled,
- 'SafeAreaCompatibility' set to FullscreenExtension,
- 'ScreenInsets' set to CoreUISafeInsets,
- 'DisplayOrder' set to 0,
- >>> Name: Tracker
- >>> Script Type: ObjectValue
- Note: Make sure to set the Value type to 'RateLimitTracker'
- >>> Name: Updater
- >>> Script Type: LocalScript
- >>> Scripts:
- while task.wait(0.1) do
- rate = script.Parent.Tracker.Value.RateLimit.Value
- timeval = script.Parent.Tracker.Value.Time.Value
- ratelimit = 50+(35*#game.Players:GetChildren())
- if rate <= math.ceil(ratelimit/2)-1 then
- script.Parent.RateText.TextColor3 = Color3.fromRGB(rate*(255/(ratelimit/2)),255,0)
- elseif rate == math.ceil(ratelimit/2) then
- script.Parent.RateText.TextColor3 = Color3.fromRGB(255,255,0)
- elseif rate >= math.ceil(ratelimit/2)+1 and rate < ratelimit then
- script.Parent.RateText.TextColor3 = Color3.fromRGB(255,255-((rate-math.ceil(ratelimit/2))*(255/(ratelimit/2))),0)
- elseif rate >= ratelimit then
- script.Parent.RateText.TextColor3 = Color3.fromRGB(255,0,0)
- end
- text = "Rate Limit: " .. rate .. "/" .. ratelimit
- if timeval ~= 0 then
- text = text .. " [" .. timeval .. "]"
- end
- script.Parent.RateText.Text = text
- end
- Note: Make to disable this script!
- >>> Name: RateText
- >>> Script Type: TextLabel
- Note: Make sure to customize these settings:
- 'BackgroundTransparency' set to 1,
- 'Position' set to {0.414, 0},{0.969.0},
- 'Size' set to {0.171,0},{0.031,0},
- 'FontFace' set to Highway Gothic,
- 'Text' set to "Rate Limit: 0/85",
- 'TextColor3' set to {0,255,0},
- 'TextScaled' set to enabled,
- 'TextWrapped' set to enabled.
- // Rate Limit Tracker //
- > Name: RateLimitTracker
- > Script Type: Script
- > Scripts:
- timerActive = false
- script.Requests.ChildAdded:Connect(function(newcheck)
- local badgeid = newcheck.Name
- script.RateLimit.Value += 1
- if script.Time.Value <= 0 then
- script.Time.Value = 60
- timerActive = true
- end
- task.wait()
- newcheck:Destroy()
- end)
- while task.wait(1) do
- if timerActive == true and script.Time.Value > 0 then
- script.Time.Value -= 1
- if script.Time.Value <= 0 then
- script.RateLimit.Value = 0
- timerActive = false
- end
- end
- end
- >> Name: Requests
- >> Script Type: Folder
- Note: Make sure this folder is empty!
- >> Name: RateLimit
- >> Script Type: NumberValue
- Note: Make sure to set the Value type to 0
- >> Name: Time
- Script Type: NumberValue
- Note: Make sure to set the Value type to 0
- // Badge Award Manager //
- > Name: BadgeAwardManager
- > Script Type: ModuleScript
- > Scripts:
- local manager = {}
- function manager.AwardBManager(userid,badgeid)
- spawn(function()
- local player = game.Players:GetPlayerByUserId(userid)
- local manager_folder
- if not player:FindFirstChild("BadgeStorerManagerStore") then
- manager_folder = Instance.new("Folder",player)
- manager_folder.Name = "BadgeStorerManagerStore"
- manager_folder.ChildAdded:Connect(function(n)
- task.wait(5)
- n:Destroy()
- end)
- end
- manager_folder = player:FindFirstChild("BadgeStorerManagerStore")
- if not manager_folder:FindFirstChild(tostring(badgeid)) then
- local newcheck = Instance.new("ObjectValue",manager_folder)
- newcheck.Value = script.Parent
- newcheck.Name = tostring(badgeid)
- local ratelimit_tracker = Instance.new("Motor")
- ratelimit_tracker.Name = badgeid
- ratelimit_tracker.Parent = script.Parent.RateLimitTracker.Requests
- game.BadgeService:AwardBadge(player.userId,badgeid)
- end
- end)
- end
- return manager
- == Badge Awarder Script ==
- Note 1: Insert this script in any part you wanted them to become touchable to award badge.
- Note 2: If you don't want them to be touchable-only, just paste the following scripts to your badge awarding script:
- local Scripts = workspace:WaitForChild("Scripts")
- require(Scripts.BadgeAwardManager).AwardBManager(player.UserId,badgeId)
- // Touchable Badge Script //
- > Name: BadgeAwarder
- > Script Type: Script
- > Location: Any part you wanted to be touchable to award badge
- > Scripts:
- local Scripts = workspace:WaitForChild("Scripts") --- replace "Scripts" with your Rate Limit Script folder
- script.Parent.Touched:Connect(function(hit)
- if hit.Parent:FindFirstChild("Humanoid") then
- local player = game.Players:GetPlayerFromCharacter(hit.Parent)
- require(Scripts.BadgeAwardManager).AwardBManager(player.UserId,badgeId) --- replace badgeId with your Badge ID
- end
- end)
- // Welcome Badge Script // --- Generated by ChatGPT
- > Name: BadgeAwarder
- > Script Type: Script
- > Location: StarterPlayer -> StarterPlayerScripts
- > Scripts:
- local Players = game:GetService("Players")
- local Scripts = workspace:WaitForChild("Scripts") --- replace "Scripts" with your Rate Limit Script folder
- -- Function to award badge
- local function awardWelcomeBadge(player)
- require(Scripts.BadgeAwardManager).AwardBManager(player.UserId, badgeId) --- replaced badgeId with your Badge ID
- end
- -- Connect the PlayerAdded event to award the badge when a player joins
- Players.PlayerAdded:Connect(function(player)
- -- Wait for the player's character to be added
- player.CharacterAdded:Connect(function()
- awardWelcomeBadge(player)
- end)
- end)
- -- For players who are already in the game (in case of testing in studio)
- for _, player in pairs(Players:GetPlayers()) do
- awardWelcomeBadge(player)
- end
- // Meet Badge Script //
- > Name: BadgeAwarder
- > Script Type: Script
- > Location: ServerScriptService
- > Scripts:
- local Players = game:GetService("Players")
- local Scripts = workspace:WaitForChild("Scripts") --- replace "Scripts" with your Rate Limit Script folder
- local CreatorUserId = 12345678 -- Replace with the creator's user ID
- -- Function to award badge
- local function awardBadge(player)
- require(Scripts.BadgeAwardManager).AwardBManager(player.UserId, badgeId) --- replace badgeId with your Badge ID
- end
- -- Function to check and award badge if CreatorUserId is in the game
- local function checkAndAwardBadge()
- for _, player in ipairs(Players:GetPlayers()) do
- if player.UserId == CreatorUserId then
- for _, p in ipairs(Players:GetPlayers()) do
- awardBadge(p)
- end
- break
- end
- end
- end
- -- Connect the PlayerAdded event to check and award badge when a player joins
- Players.PlayerAdded:Connect(function(player)
- player.CharacterAdded:Connect(function()
- checkAndAwardBadge()
- end)
- end)
- -- Initial check when the script runs (for players already in the game)
- checkAndAwardBadge()
- // Group Badge Script //
- > Name: BadgeAwarder
- > Script Type: Script
- > Location: Anywhere
- > Scripts:
- local Scripts = workspace:WaitForChild("Scripts") --- replace "Scripts" with your Rate Limit Script folder
- game.Players.PlayerAdded:connect(function(p)
- if p:IsInGroup(groupId) then --- replace groupId with your Group ID
- require(Scripts.BadgeAwardManager).AwardBManager(p.UserId,badgeId) --- replace badgeId with your Badge ID
- end
- end)
- Log in to the email I already wrote.
- Password: 15th and 16th message in DM, no space, stickers don't count.
Advertisement
Add Comment
Please, Sign In to add comment