if game.PlaceId ~= 14747334292 then warn("Wrong game!") return end local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Kohl Admin Troll", Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default). LoadingTitle = "Kohl Admin Troll Hub", LoadingSubtitle = "by Whopper", ShowText = "Rayfield", -- for mobile users to unhide Rayfield, change if you'd like Theme = "Default", -- Check https://docs.sirius.menu/rayfield/configuration/themes ToggleUIKeybind = "K", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode) DisableRayfieldPrompts = false, DisableBuildWarnings = false, -- Prevents Rayfield from emitting warnings when the script has a version mismatch with the interface. -- ScriptID = "sid_xxxxxxxxxxxx", -- Your Script ID from developer.sirius.menu — enables analytics, managed keys, and script hosting ConfigurationSaving = { Enabled = false, FolderName = nil, -- Create a custom folder for your hub/game FileName = "Big Hub" }, Discord = { Enabled = false, -- Prompt the user to join your Discord server if their executor supports it Invite = "noinvitelink", -- The Discord invite code, do not include Discord.gg/. E.g. Discord.gg/ABCD would be ABCD RememberJoins = true -- Set this to false to make them join the Discord every time they load it up }, KeySystem = false, -- Set this to true to use our key system KeySettings = { Title = "Untitled", Subtitle = "Key System", Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key FileName = "Key", -- It is recommended to use something unique, as other scripts using Rayfield may overwrite your key file SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from Key = {"Hello"} -- List of keys that the system will accept, can be RAW file links (pastebin, github, etc.) or simple strings ("hello", "key22") } }) local Tab = Window:CreateTab("Troll", "drama") -- Title, Image local RemoveAllAdmins = Tab:CreateButton({ Name = "Remove all admins", Callback = function() local cd = workspace.Terrain._Game.Admin.Regen:FindFirstChild("ClickDetector") if cd then fireclickdetector(cd) else warn("ClickDetector not found!") end end, }) local AdminPadsButton = Tab:CreateButton({ Name = "Get all unused admins", Callback = function() local adminPads = workspace.Terrain._Game.Admin.Pads local character = game.Players.LocalPlayer.Character local hrp = character:WaitForChild("HumanoidRootPart") local touchCount = 0 -- Recursive function to find all TouchInterest/TouchTransmitter at any depth local function findAndFireTouchInterests(parent) for _, child in pairs(parent:GetDescendants()) do -- TouchInterest is actually class "TouchTransmitter" if child:IsA("TouchTransmitter") or child.Name == "TouchInterest" then local padPart = child.Parent -- The part that has the TouchInterest if padPart and padPart:IsA("BasePart") then -- Fire touch (0 = began, 1 = ended) firetouchinterest(hrp, padPart, 0) task.wait(0.05) firetouchinterest(hrp, padPart, 1) touchCount = touchCount + 1 end end end end -- Search in Pads folder findAndFireTouchInterests(adminPads) -- Also check direct children models for _, model in pairs(adminPads:GetChildren()) do if model:IsA("Model") then findAndFireTouchInterests(model) end end Rayfield:Notify({ Title = "Admin Pads", Content = "Fired " .. touchCount .. " touch interests!", Duration = 3 }) end, }) local OverwriteAdminsButton = Tab:CreateButton({ Name = "Overwrite Admins to You", Callback = function() -- Step 1: Remove all admins (fire the regen) local cd = workspace.Terrain._Game.Admin.Regen:FindFirstChild("ClickDetector") if cd then fireclickdetector(cd) else warn("ClickDetector not found!") end -- Wait for regen to complete task.wait(1.5) -- Step 2: Get all unused admin pads local adminPads = workspace.Terrain._Game.Admin.Pads local hrp = game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart") local touchCount = 0 -- Recursive function to find all TouchInterest/TouchTransmitter at any depth local function findAndFireTouchInterests(parent) for _, child in pairs(parent:GetDescendants()) do if child:IsA("TouchTransmitter") or child.Name == "TouchInterest" then local padPart = child.Parent if padPart and padPart:IsA("BasePart") then firetouchinterest(hrp, padPart, 0) task.wait(0.05) firetouchinterest(hrp, padPart, 1) touchCount = touchCount + 1 end end end end -- Search in Pads folder findAndFireTouchInterests(adminPads) -- Also check direct children models for _, model in pairs(adminPads:GetChildren()) do if model:IsA("Model") then findAndFireTouchInterests(model) end end -- Final notification Rayfield:Notify({ Title = "Overwrite Complete", Content = "All admins removed & " .. touchCount .. " pads claimed! You are now super evil!", Duration = 5 }) end, }) Rayfield:LoadConfiguration()