Junkbot Universal Script V21
Key RequiredUniversal

Junkbot Universal Script V21

Universal Scripthorlhorl 1.2K views 388 executesUpdated May 12, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•179 lines (7127 chars)
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

-- [[ CONFIG ]] --
local RAID_GROUP_ID = 1234567 
local Spamming = false
local Following = false
local SelectedLeader = ""
local noclip = false
local infJump = false

local Window = Rayfield:CreateWindow({
   Name = "Junkbot Universal Scripts",
   LoadingTitle = "Junkbot Universal Scripts",
   LoadingSubtitle = "First Junkbot Cool Scripts!", -- UPDATED SUBTITLE
   ConfigurationSaving = { Enabled = true, FolderName = "JunkbotHub", FileName = "Universal_Config" },
   KeySystem = false
})

-- [[ TABS ]] --
local MainTab = Window:CreateTab("Main Tools", 4483362458)
local GroupTab = Window:CreateTab("Group Raid", 4483362458)
local VisualsTab = Window:CreateTab("Visuals", 4483345998)
local ConfigTab = Window:CreateTab("Settings", 4483362458)

-- [[ 1. MAIN TOOLS ]] --
MainTab:CreateSection("Movement")
MainTab:CreateInput({
   Name = "WalkSpeed",
   PlaceholderText = "16",
   Callback = function(Text)
      local n = tonumber(Text)
      if n and game.Players.LocalPlayer.Character then game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = n end
   end,
})

MainTab:CreateInput({
   Name = "JumpPower",
   PlaceholderText = "50",
   Callback = function(Text)
      local n = tonumber(Text)
      if n and game.Players.LocalPlayer.Character then 
          game.Players.LocalPlayer.Character.Humanoid.UseJumpPower = true
          game.Players.LocalPlayer.Character.Humanoid.JumpPower = n 
      end
   end,
})

MainTab:CreateToggle({ Name = "Infinite Jump", CurrentValue = false, Callback = function(Value) infJump = Value end })
MainTab:CreateToggle({ Name = "Noclip", CurrentValue = false, Callback = function(Value) noclip = Value end })

MainTab:CreateSection("Soldier Essentials")

MainTab:CreateButton({
   Name = "Click TP (Gives Tool)",
   Callback = function()
      local plr = game.Players.LocalPlayer
      local mouse = plr:GetMouse()
      
      if not plr.Backpack:FindFirstChild("TP_Tool") and not plr.Character:FindFirstChild("TP_Tool") then
          local tool = Instance.new("Tool")
          tool.Name = "TP_Tool"
          tool.RequiresHandle = false
          tool.Parent = plr.Backpack
          Rayfield:Notify({Title = "Tool Received", Content = "Equip 'TP_Tool' to click-teleport!", Duration = 3})
      end

      mouse.Button1Down:Connect(function()
         if plr.Character and plr.Character:FindFirstChild("TP_Tool") then
            plr.Character:MoveTo(mouse.Hit.p)
         end
      end)
   end,
})

MainTab:CreateDropdown({
   Name = "Select Leader",
   Options = (function()
      local list = {}
      for _, v in pairs(game.Players:GetPlayers()) do
         if v ~= game.Players.LocalPlayer then table.insert(list, v.Name) end
      end
      return list
   end)(),
   CurrentOption = "",
   Callback = function(Option) SelectedLeader = Option[1] end,
})

MainTab:CreateToggle({
   Name = "Follow",
   CurrentValue = false,
   Callback = function(Value)
      Following = Value
      task.spawn(function()
         while Following do
            local leader = game.Players:FindFirstChild(SelectedLeader)
            if leader and leader.Character and leader.Character:FindFirstChild("HumanoidRootPart") then
               game.Players.LocalPlayer.Character.Humanoid:MoveTo(leader.Character.HumanoidRootPart.Position)
            end
            task.wait(0.3)
         end
      end)
   end,
})

-- [[ 2. GROUP RAID ]] --
GroupTab:CreateSection("Spammer")
local SpamMessage = "JUNKBOT RAID!"
local function UniversalChat(msg)
    local TextChatService = game:GetService("TextChatService")
    if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
        local channel = TextChatService.TextChannels.RBXGeneral
        if channel then channel:SendAsync(msg) end
    else
        game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(msg, "All")
    end
end

GroupTab:CreateInput({ Name = "Custom Message", PlaceholderText = "Type...", Callback = function(Text) SpamMessage = Text end })
GroupTab:CreateToggle({
   Name = "Enable Spammer",
   CurrentValue = false,
   Callback = function(Value)
      Spamming = Value
      task.spawn(function()
         while Spamming do UniversalChat(SpamMessage) task.wait(3.5) end
      end)
   end,
})

-- [[ 3. VISUALS ]] --
VisualsTab:CreateSection("Tracking")
VisualsTab:CreateInput({ Name = "Group ID", PlaceholderText = "1234567", Callback = function(Text) RAID_GROUP_ID = tonumber(Text) or 1234567 end })
VisualsTab:CreateToggle({ Name = "Team ESP (Green)", CurrentValue = false, Callback = function(Value) _G.GroupESP = Value end })
VisualsTab:CreateToggle({ Name = "Enemy ESP (Red)", CurrentValue = false, Callback = function(Value) _G.EnemyESP = Value end })

task.spawn(function()
    while task.wait(1) do
        for _, v in pairs(game.Players:GetPlayers()) do
            if v ~= game.Players.LocalPlayer and v.Character then
                local isAlly = v:IsInGroup(RAID_GROUP_ID)
                local highlight = v.Character:FindFirstChild("RaidHighlight")
                if (isAlly and _G.GroupESP) or (not isAlly and _G.EnemyESP) then
                    if not highlight then 
                        highlight = Instance.new("Highlight", v.Character) 
                        highlight.Name = "RaidHighlight" 
                    end
                    highlight.FillColor = isAlly and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0)
                else
                    if highlight then highlight:Destroy() end
                end
            end
        end
    end
end)

-- [[ 4. SETTINGS ]] --
ConfigTab:CreateSection("Server Management")
ConfigTab:CreateButton({ Name = "Rejoin Server", Callback = function() 
    game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId) 
end})

ConfigTab:CreateButton({ Name = "Server Hop", Callback = function()
      local Servers = game:GetService("HttpService"):JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Desc&limit=100"))
      for _, s in pairs(Servers.data) do if s.playing < s.maxPlayers and s.id ~= game.JobId then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, s.id) break end end
end})

ConfigTab:CreateButton({ Name = "Enable Anti-AFK", Callback = function()
    game.Players.LocalPlayer.Idled:Connect(function() game:GetService("VirtualUser"):CaptureController() game:GetService("VirtualUser"):ClickButton2(Vector2.new()) end)
end})

ConfigTab:CreateButton({ Name = "Destroy UI", Callback = function() Rayfield:Destroy() end })

-- [[ LOOPS ]] --
game:GetService("UserInputService").JumpRequest:Connect(function() if infJump then game.Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState("Jumping") end end)
game:GetService("RunService").Stepped:Connect(function()
    if noclip and game.Players.LocalPlayer.Character then
        for _, v in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end
    end
end)

Features & Information

You can noclip, change jumppower and walkspeed, anti-AFK, follow someone, rejoin, server hop, infinite jump, and more.
#raid

Community Comments (2)

miyuusakkuokamDevmiyuusakkuokamDevMay 12, 2026

okay

wiewxelnizexsuDevwiewxelnizexsuDevMay 12, 2026

gagaga

More Scripts for Universal Scripts