ARAM_RATLAB
Key Required

ARAM_RATLAB

Rat Lab 🧪 [UPD]Aram222Aram222 1K views 2K executesUpdated Sep 27, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•1564 lines (39783 chars)
-- ARAM_EXPLOITS.lua
-- Full standalone LocalScript for Roblox Studio
-- Place in StarterPlayer > StarterPlayerScripts
-- Features: Blue UI, draggable window, A button, ESP, Speed slider, NoClip,
-- Floating AIMBOT [MMB], target lock until 0 HP, ignore Rat & RatCriminal.

local Players=game:GetService("Players")
local UIS=game:GetService("UserInputService")
local RS=game:GetService("RunService")
local VIM=game:GetService("VirtualInputManager")
local player=Players.LocalPlayer
local camera=workspace.CurrentCamera

-- =========================
-- ONE-SCRIPT KEY SYSTEM
-- =========================
-- Local-only key check. This is convenient for a single-script setup,
-- but it is NOT secure against someone inspecting the LocalScript.
local VALID_KEY="ARAM-2026"
local LINK="https://link-hub.net/4890633/YHGbs3YoPMqL"
local keyVerified=false

local function createKeySystem(parentGui,onUnlocked)
 local keyFrame=Instance.new("Frame",parentGui)
 keyFrame.Name="KeySystem"
 keyFrame.Size=UDim2.fromOffset(390,280)
 keyFrame.Position=UDim2.new(.5,-195,.5,-120)
 keyFrame.BackgroundColor3=Color3.fromRGB(22,22,28)
 keyFrame.BorderSizePixel=0
 Instance.new("UICorner",keyFrame).CornerRadius=UDim.new(0,20)

 local keyStroke=Instance.new("UIStroke",keyFrame)
 keyStroke.Color=Color3.fromRGB(70,220,255)
 keyStroke.Thickness=1.5

 local title=Instance.new("TextLabel",keyFrame)
 title.BackgroundTransparency=1
 title.Position=UDim2.fromOffset(20,18)
 title.Size=UDim2.new(1,-40,0,30)
 title.Text="ARAM_EXPLOITS"
 title.Font=Enum.Font.GothamBold
 title.TextSize=24
 title.TextColor3=Color3.fromRGB(120,230,255)

 local subtitle=Instance.new("TextLabel",keyFrame)
 subtitle.BackgroundTransparency=1
 subtitle.Position=UDim2.fromOffset(20,48)
 subtitle.Size=UDim2.new(1,-40,0,24)
 subtitle.Text="KEY SYSTEM"
 subtitle.Font=Enum.Font.Gotham
 subtitle.TextSize=13
 subtitle.TextColor3=Color3.fromRGB(160,160,170)

 local box=Instance.new("TextBox",keyFrame)
 box.Size=UDim2.new(1,-40,0,44)
 box.Position=UDim2.fromOffset(20,84)
 box.BackgroundColor3=Color3.fromRGB(35,35,40)
 box.BorderSizePixel=0
 box.ClearTextOnFocus=false
 box.PlaceholderText="Enter key..."
 box.Text=""
 box.Font=Enum.Font.Gotham
 box.TextSize=16
 box.TextColor3=Color3.new(1,1,1)
 box.PlaceholderColor3=Color3.fromRGB(100,100,110)
 box.TextXAlignment=Enum.TextXAlignment.Center
 Instance.new("UICorner",box).CornerRadius=UDim.new(0,12)
 local getKey=Instance.new("TextButton",keyFrame)
 getKey.Size=UDim2.new(1,-40,0,42)
 getKey.Position=UDim2.fromOffset(20,138)
 getKey.BackgroundColor3=Color3.fromRGB(40,160,255)
 getKey.BorderSizePixel=0
 getKey.Text="GET KEY"
 getKey.Font=Enum.Font.GothamBold
 getKey.TextSize=15
 getKey.TextColor3=Color3.new(1,1,1)
 Instance.new("UICorner",getKey).CornerRadius=UDim.new(0,12)


 local unlock=Instance.new("TextButton",keyFrame)
 unlock.Size=UDim2.new(1,-40,0,42)
 unlock.Position=UDim2.fromOffset(20,186)
 unlock.BackgroundColor3=Color3.fromRGB(40,170,40)
 unlock.BorderSizePixel=0
 unlock.Text="UNLOCK"
 unlock.Font=Enum.Font.GothamBold
 unlock.TextSize=15
 unlock.TextColor3=Color3.new(1,1,1)
 Instance.new("UICorner",unlock).CornerRadius=UDim.new(0,12)

 local status=Instance.new("TextLabel",keyFrame)
 status.BackgroundTransparency=1
 status.Position=UDim2.fromOffset(20,234)
 status.Size=UDim2.new(1,-40,0,24)
 status.Text="Enter your key"
 status.Font=Enum.Font.Gotham
 status.TextSize=12
 status.TextColor3=Color3.fromRGB(190,190,200)

 local function tryUnlock()
  if box.Text==VALID_KEY then
   keyVerified=true
   status.Text="KEY ACCEPTED"
   status.TextColor3=Color3.fromRGB(80,210,100)
   task.wait(0.15)
   keyFrame.Visible=false
   if onUnlocked then
    onUnlocked()
   end
   return true
  else
   status.Text="INVALID KEY"
   status.TextColor3=Color3.fromRGB(220,70,70)
   box.Text=""
   box:CaptureFocus()
   return false
  end
 end

 getKey.MouseButton1Click:Connect(function()
  local opened=false

  pcall(function()
   local GuiService=game:GetService("GuiService")
   if GuiService and typeof(GuiService.OpenBrowserWindow)=="function" then
    GuiService:OpenBrowserWindow(LINK)
    opened=true
   end
  end)

  pcall(function()
   if setclipboard then
    setclipboard(LINK)
   end
  end)

  if opened then
   status.Text="Link opened! Complete Linkvertise to get your key."
  else
   status.Text=LINK
  end

  status.TextColor3=Color3.fromRGB(80,210,255)
 end)

 unlock.MouseButton1Click:Connect(tryUnlock)

 box.FocusLost:Connect(function(enterPressed)
  if enterPressed then
   tryUnlock()
  end
 end)

 -- Allow the key window to be moved with a mouse or finger.
 local dragging=false
 local dragStart=nil
 local startPos=nil

 keyFrame.Active=true

 keyFrame.InputBegan:Connect(function(i)
  if i.UserInputType==Enum.UserInputType.MouseButton1
     or i.UserInputType==Enum.UserInputType.Touch then
   dragging=true
   dragStart=i.Position
   startPos=keyFrame.Position
  end
 end)

 UIS.InputChanged:Connect(function(i)
  if dragging
     and (i.UserInputType==Enum.UserInputType.MouseMovement
       or i.UserInputType==Enum.UserInputType.Touch) then
   local d=i.Position-dragStart
   keyFrame.Position=UDim2.new(
    startPos.X.Scale,
    startPos.X.Offset+d.X,
    startPos.Y.Scale,
    startPos.Y.Offset+d.Y
   )
  end
 end)

 UIS.InputEnded:Connect(function(i)
  if i.UserInputType==Enum.UserInputType.MouseButton1
     or i.UserInputType==Enum.UserInputType.Touch then
   dragging=false
  end
 end)

 return keyFrame
end

local espEnabled=false
local noclipEnabled=false
local aimbotEnabled=false
local speedValue=16
local currentTarget=nil
local aimButton=nil
local autoBiteEnabled=false
local autoBiteButton=nil

-- GUI
local gui=Instance.new("ScreenGui")
gui.Name="ARAM_EXPLOITS"
gui.ResetOnSpawn=false
gui.IgnoreGuiInset=true
gui.Parent=player:WaitForChild("PlayerGui")

local A=Instance.new("TextButton",gui)
A.Size=UDim2.fromOffset(54,54)
A.Position=UDim2.new(.5,-27,0,14)
A.Text="A"
A.Font=Enum.Font.GothamBlack
A.TextScaled=true
A.BackgroundColor3=Color3.fromRGB(22,22,28)
A.TextColor3=Color3.fromRGB(120,230,255)
A.Visible=false
Instance.new("UICorner",A).CornerRadius=UDim.new(1,0)
local AStroke=Instance.new("UIStroke",A)
AStroke.Color=Color3.fromRGB(70,220,255)

local frame=Instance.new("Frame",gui)
frame.Size=UDim2.fromOffset(720,500)
frame.Position=UDim2.new(.5,-175,.5,-210)
frame.BackgroundColor3=Color3.fromRGB(22,22,28)
frame.Visible=false
Instance.new("UICorner",frame).CornerRadius=UDim.new(0,20)
local fStroke=Instance.new("UIStroke",frame)
fStroke.Color=Color3.fromRGB(70,220,255)

local grad=Instance.new("UIGradient",frame)
grad.Color=ColorSequence.new{
 ColorSequenceKeypoint.new(0,Color3.fromRGB(30,30,36)),
 ColorSequenceKeypoint.new(1,Color3.fromRGB(15,15,20))
}
grad.Rotation=90

local keyFrame=createKeySystem(gui,function()
 A.Visible=true
 frame.Visible=false
end)

local header=Instance.new("Frame",frame)
header.Size=UDim2.new(1,0,0,55)
header.BackgroundTransparency=1

local title=Instance.new("TextLabel",header)
title.BackgroundTransparency=1
title.Position=UDim2.fromOffset(18,8)
title.Size=UDim2.new(1,-90,0,22)
title.Text="ARAM_EXPLOITS"
title.TextXAlignment=Enum.TextXAlignment.Left
title.Font=Enum.Font.GothamBold
title.TextSize=22
title.TextColor3=Color3.fromRGB(120,230,255)

local desc=Instance.new("TextLabel",header)
desc.BackgroundTransparency=1
desc.Position=UDim2.fromOffset(18,30)
desc.Size=UDim2.new(1,-90,0,16)
desc.Text="Premium Utility Hub"
desc.TextXAlignment=Enum.TextXAlignment.Left
desc.Font=Enum.Font.Gotham
desc.TextSize=11
desc.TextColor3=Color3.fromRGB(120,120,130)

local mini=Instance.new("TextButton",header)
mini.BackgroundTransparency=1
mini.Text="–"
mini.Position=UDim2.new(1,-58,0,10)
mini.Size=UDim2.fromOffset(22,22)

local close=Instance.new("TextButton",header)
close.BackgroundTransparency=1
close.Text="✕"
close.Position=UDim2.new(1,-30,0,10)
close.Size=UDim2.fromOffset(22,22)

local line=Instance.new("Frame",frame)
line.Position=UDim2.fromOffset(15,58)
line.Size=UDim2.new(1,-30,0,1)
line.BackgroundColor3=Color3.fromRGB(50,50,60)
line.BorderSizePixel=0

local body=Instance.new("Frame",frame)
body.Position=UDim2.fromOffset(15,70)
body.Size=UDim2.new(1,-30,1,-85)
body.BackgroundTransparency=1

-- Two-column layout.
-- Left side: ESP / Aimbot / AutoBite / Speed / NoClip
-- Right side: Cheese / Keycard / Teleport
local leftColumn=Instance.new("Frame",body)
leftColumn.Name="LeftColumn"
leftColumn.Position=UDim2.new(0,0,0,0)
leftColumn.Size=UDim2.new(0.49,-5,1,0)
leftColumn.BackgroundTransparency=1

local rightColumn=Instance.new("Frame",body)
rightColumn.Name="RightColumn"
rightColumn.Position=UDim2.new(0.51,5,0,0)
rightColumn.Size=UDim2.new(0.49,-5,1,0)
rightColumn.BackgroundTransparency=1

local leftLayout=Instance.new("UIListLayout",leftColumn)
leftLayout.Padding=UDim.new(0,10)

local rightLayout=Instance.new("UIListLayout",rightColumn)
rightLayout.Padding=UDim.new(0,10)

local function card(h)
 local f=Instance.new("Frame",body)
 f.Size=UDim2.new(1,0,0,h)
 f.BackgroundColor3=Color3.fromRGB(35,35,40)
 f.BorderSizePixel=0
 Instance.new("UICorner",f).CornerRadius=UDim.new(0,12)
 return f
end

local function switchCard(name)
 local f=card(50)
 local t=Instance.new("TextLabel",f)
 t.BackgroundTransparency=1
 t.Position=UDim2.fromOffset(15,0)
 t.Size=UDim2.new(.6,0,1,0)
 t.Text=name
 t.TextXAlignment=Enum.TextXAlignment.Left
 t.Font=Enum.Font.GothamBold
 t.TextSize=16
 t.TextColor3=Color3.new(1,1,1)
 local b=Instance.new("TextButton",f)
 b.Size=UDim2.fromOffset(70,30)
 b.Position=UDim2.new(1,-80,.5,-15)
 b.Text="OFF"
 b.BackgroundColor3=Color3.fromRGB(170,40,40)
 Instance.new("UICorner",b).CornerRadius=UDim.new(1,0)
 return b
end

local espBtn=switchCard("ESP")
local aimBtn=switchCard("Aimbot")
aimBtn.Text="ADD"

local autoBiteBtn=switchCard("AutoBite")
autoBiteBtn.Text="ADD"

local speedCard=card(75)
local speedText=Instance.new("TextLabel",speedCard)
speedText.BackgroundTransparency=1
speedText.Position=UDim2.fromOffset(15,8)
speedText.Size=UDim2.new(1,-30,0,20)
speedText.Text="Speed : 16"
speedText.TextXAlignment=Enum.TextXAlignment.Left
speedText.Font=Enum.Font.GothamBold
speedText.TextColor3=Color3.new(1,1,1)

local bar=Instance.new("Frame",speedCard)
bar.Position=UDim2.fromOffset(15,42)
bar.Size=UDim2.new(1,-30,0,10)
bar.BackgroundColor3=Color3.fromRGB(55,55,65)
Instance.new("UICorner",bar).CornerRadius=UDim.new(1,0)

local fill=Instance.new("Frame",bar)
fill.Size=UDim2.new(.16,0,1,0)
fill.BackgroundColor3=Color3.fromRGB(70,220,255)
Instance.new("UICorner",fill).CornerRadius=UDim.new(1,0)

local knob=Instance.new("Frame",bar)
knob.Size=UDim2.fromOffset(18,18)
knob.Position=UDim2.new(.16,-9,.5,-9)
knob.BackgroundColor3=Color3.fromRGB(170,245,255)
Instance.new("UICorner",knob).CornerRadius=UDim.new(1,0)

local noclipBtn=switchCard("NoClip")

-- One-click Cheese pickup
local cheeseCard=card(50)
local cheeseBtn=Instance.new("TextButton",cheeseCard)
cheeseBtn.Size=UDim2.new(1,-20,1,-10)
cheeseBtn.Position=UDim2.fromOffset(10,5)
cheeseBtn.Text="TAKE CHEESE"
cheeseBtn.Font=Enum.Font.GothamBold
cheeseBtn.TextSize=15
cheeseBtn.TextColor3=Color3.new(1,1,1)
cheeseBtn.BackgroundColor3=Color3.fromRGB(170,40,40)
Instance.new("UICorner",cheeseBtn).CornerRadius=UDim.new(0,12)

-- One-click Keycard pickup
local keycardCard=card(50)
local keycardBtn=Instance.new("TextButton",keycardCard)
keycardBtn.Size=UDim2.new(1,-20,1,-10)
keycardBtn.Position=UDim2.fromOffset(10,5)
keycardBtn.Text="TAKE KEYCARD"
keycardBtn.Font=Enum.Font.GothamBold
keycardBtn.TextSize=15
keycardBtn.TextColor3=Color3.new(1,1,1)
keycardBtn.BackgroundColor3=Color3.fromRGB(170,40,40)
Instance.new("UICorner",keycardBtn).CornerRadius=UDim.new(0,12)

-- TELEPORT section
local teleportHeader=Instance.new("Frame",body)
teleportHeader.Size=UDim2.new(1,0,0,24)
teleportHeader.BackgroundTransparency=1

local teleportSection=Instance.new("TextLabel",teleportHeader)
teleportSection.Size=UDim2.new(0.38,0,1,0)
teleportSection.BackgroundTransparency=1
teleportSection.Text="TELEPORT"
teleportSection.TextXAlignment=Enum.TextXAlignment.Left
teleportSection.Font=Enum.Font.GothamBold
teleportSection.TextSize=18
teleportSection.TextColor3=Color3.fromRGB(120,230,255)

local teleportWarning=Instance.new("TextLabel",teleportHeader)
teleportWarning.Size=UDim2.new(0.62,0,1,0)
teleportWarning.Position=UDim2.new(0.38,0,0,0)
teleportWarning.BackgroundTransparency=1
teleportWarning.Text="( Do not use teleport with noclip )"
teleportWarning.TextXAlignment=Enum.TextXAlignment.Right
teleportWarning.Font=Enum.Font.Gotham
teleportWarning.TextSize=11
teleportWarning.TextColor3=Color3.fromRGB(190,190,200)

-- One-click teleport to the Escaped Rat base
local escapedRatCard=card(50)
local escapedRatBtn=Instance.new("TextButton",escapedRatCard)
escapedRatBtn.Size=UDim2.new(1,-20,1,-10)
escapedRatBtn.Position=UDim2.fromOffset(10,5)
escapedRatBtn.Text="TELEPORT TO THE ESCAPEDRAT BASE"
escapedRatBtn.Font=Enum.Font.GothamBold
escapedRatBtn.TextSize=13
escapedRatBtn.TextColor3=Color3.new(1,1,1)
escapedRatBtn.BackgroundColor3=Color3.fromRGB(170,40,40)
Instance.new("UICorner",escapedRatBtn).CornerRadius=UDim.new(0,12)

-- Teleport to the Scientiest Section
local scientistCard=card(50)
local scientistBtn=Instance.new("TextButton",scientistCard)
scientistBtn.Size=UDim2.new(1,-20,1,-10)
scientistBtn.Position=UDim2.fromOffset(10,5)
scientistBtn.Text="TELEPORT TO THE SCIENTIEST SECTION"
scientistBtn.Font=Enum.Font.GothamBold
scientistBtn.TextSize=13
scientistBtn.TextColor3=Color3.new(1,1,1)
scientistBtn.BackgroundColor3=Color3.fromRGB(170,40,40)
Instance.new("UICorner",scientistBtn).CornerRadius=UDim.new(0,12)

-- Put the features into two sides of the UI.
espBtn.Parent.Parent=leftColumn
aimBtn.Parent.Parent=leftColumn
autoBiteBtn.Parent.Parent=leftColumn
speedCard.Parent=leftColumn
noclipBtn.Parent.Parent=leftColumn

cheeseCard.Parent=rightColumn
keycardCard.Parent=rightColumn
teleportHeader.Parent=rightColumn
escapedRatCard.Parent=rightColumn
scientistCard.Parent=rightColumn

-- Responsive UI sizing
local BASE_UI_WIDTH=720
local MIN_UI_SCALE=0.65
local MAX_UI_SCALE=1.35

local function updateResponsiveUI()
 local scale=math.clamp(
  frame.AbsoluteSize.X/BASE_UI_WIDTH,
  MIN_UI_SCALE,
  MAX_UI_SCALE
 )

 -- Keep the two columns balanced as the menu is resized.
 leftColumn.Size=UDim2.new(0.49,-5,1,0)
 rightColumn.Position=UDim2.new(0.51,5,0,0)
 rightColumn.Size=UDim2.new(0.49,-5,1,0)

 -- Switch rows.
 for _,btn in ipairs({espBtn,aimBtn,autoBiteBtn,noclipBtn}) do
  local cardFrame=btn.Parent
  if cardFrame then
   cardFrame.Size=UDim2.new(1,0,0,50*scale)
   btn.Size=UDim2.fromOffset(70*scale,30*scale)
   btn.Position=UDim2.new(1,-80*scale,.5,-15*scale)

   local label=cardFrame:FindFirstChildWhichIsA("TextLabel")
   if label then
    label.Position=UDim2.fromOffset(15*scale,0)
    label.TextSize=16*scale
   end
  end
 end

 -- Speed row.
 speedCard.Size=UDim2.new(1,0,0,75*scale)
 speedText.Position=UDim2.fromOffset(15*scale,8*scale)
 speedText.Size=UDim2.new(1,-30*scale,0,20*scale)
 speedText.TextSize=16*scale

 bar.Position=UDim2.fromOffset(15*scale,42*scale)
 bar.Size=UDim2.new(1,-30*scale,0,10*scale)

 fill.Size=UDim2.new(fill.Size.X.Scale,0,1,0)

 knob.Size=UDim2.fromOffset(18*scale,18*scale)
 knob.Position=UDim2.new(fill.Size.X.Scale,-9*scale,.5,-9*scale)

 -- Action rows.
 for _,cardFrame in ipairs({cheeseCard,keycardCard,escapedRatCard,scientistCard}) do
  if cardFrame then
   cardFrame.Size=UDim2.new(1,0,0,50*scale)
  end
 end

 for _,btn in ipairs({cheeseBtn,keycardBtn,escapedRatBtn,scientistBtn}) do
  btn.Position=UDim2.fromOffset(10*scale,5*scale)
  btn.Size=UDim2.new(1,-20*scale,1,-10*scale)
  btn.TextSize=(btn==escapedRatBtn or btn==scientistBtn) and 13*scale or 15*scale
 end

 -- TELEPORT heading.
 teleportHeader.Size=UDim2.new(1,0,0,24*scale)
 teleportSection.TextSize=18*scale
 teleportWarning.TextSize=11*scale
end

-- Drag (PC + Mobile)
local dragging=false
local dragStart=nil
local startPos=nil

header.Active=true

header.InputBegan:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1
    or i.UserInputType==Enum.UserInputType.Touch then
  dragging=true
  dragStart=i.Position
  startPos=frame.Position
 end
end)

UIS.InputChanged:Connect(function(i)
 if dragging
    and (i.UserInputType==Enum.UserInputType.MouseMovement
      or i.UserInputType==Enum.UserInputType.Touch) then
  local d=i.Position-dragStart
  frame.Position=UDim2.new(
   startPos.X.Scale,
   startPos.X.Offset+d.X,
   startPos.Y.Scale,
   startPos.Y.Offset+d.Y
  )
 end
end)

UIS.InputEnded:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1
    or i.UserInputType==Enum.UserInputType.Touch then
  dragging=false
 end
end)

-- Mobile/PC resize handle
local resizeHandle=Instance.new("TextButton",frame)
resizeHandle.Name="ResizeHandle"
resizeHandle.Size=UDim2.fromOffset(24,24)
resizeHandle.Position=UDim2.new(1,-28,1,-28)
resizeHandle.BackgroundColor3=Color3.fromRGB(70,220,255)
resizeHandle.BackgroundTransparency=0.15
resizeHandle.Text="↘"
resizeHandle.Font=Enum.Font.GothamBold
resizeHandle.TextSize=15
resizeHandle.TextColor3=Color3.new(1,1,1)
resizeHandle.AutoButtonColor=false
resizeHandle.Active=true
Instance.new("UICorner",resizeHandle).CornerRadius=UDim.new(0,6)

local resizing=false
local resizeStart=nil
local startSize=nil

resizeHandle.InputBegan:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1
    or i.UserInputType==Enum.UserInputType.Touch then
  resizing=true
  resizeStart=i.Position
  startSize=frame.AbsoluteSize
 end
end)

UIS.InputChanged:Connect(function(i)
 if resizing
    and (i.UserInputType==Enum.UserInputType.MouseMovement
      or i.UserInputType==Enum.UserInputType.Touch) then

  local d=i.Position-resizeStart

  local newWidth=math.clamp(
   startSize.X+d.X,
   280,
   math.max(300,workspace.CurrentCamera.ViewportSize.X-20)
  )

  local newHeight=math.clamp(
   startSize.Y+d.Y,
   300,
   math.max(350,workspace.CurrentCamera.ViewportSize.Y-20)
  )

  frame.Size=UDim2.fromOffset(newWidth,newHeight)
  updateResponsiveUI()
 end
end)

UIS.InputEnded:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1
    or i.UserInputType==Enum.UserInputType.Touch then
  resizing=false
 end
end)

updateResponsiveUI()

A.MouseButton1Click:Connect(function() frame.Visible=not frame.Visible end)
close.MouseButton1Click:Connect(function() frame.Visible=false end)

local minimized=false
mini.MouseButton1Click:Connect(function()
 minimized=not minimized
 body.Visible=not minimized
 frame.Size=minimized and UDim2.fromOffset(350,65) or UDim2.fromOffset(720,500)
 if not minimized then
  task.defer(updateResponsiveUI)
 end
end)

-- Speed slider
local sliding=false
local speedConnections={}

local function disconnectSpeedConnections()
 for _,connection in ipairs(speedConnections) do
  if connection then
   connection:Disconnect()
  end
 end
 table.clear(speedConnections)
end

local function applySpeed(h)
 if h and h.Parent then
  h.WalkSpeed=speedValue
 end
end

local function setupHumanoidSpeed(c)
 disconnectSpeedConnections()

 local h=c:WaitForChild("Humanoid")

 -- Apply the saved value immediately after spawning.
 applySpeed(h)

 -- Keep the selected value when something in the game changes WalkSpeed.
 -- This is for the user's own game; the server should still be the authority
 -- for any intended gameplay limits.
 table.insert(speedConnections,h:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
  if h.WalkSpeed~=speedValue then
   applySpeed(h)
  end
 end))
end

local function updateSpeedSliderFromX(x)
 x=math.clamp(x,0,1)
 speedValue=math.max(1,math.floor(x*100))

 fill.Size=UDim2.new(x,0,1,0)
 knob.Position=UDim2.new(x,-9,.5,-9)
 speedText.Text="Speed : "..speedValue

 local c=player.Character
 local h=c and c:FindFirstChildOfClass("Humanoid")
 applySpeed(h)
end

bar.InputBegan:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1 then
  sliding=true

  local x=(i.Position.X-bar.AbsolutePosition.X)/bar.AbsoluteSize.X
  updateSpeedSliderFromX(x)
 end
end)

knob.InputBegan:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1 then
  sliding=true
 end
end)

UIS.InputEnded:Connect(function(i)
 if i.UserInputType==Enum.UserInputType.MouseButton1 then
  sliding=false

  local c=player.Character
  local h=c and c:FindFirstChildOfClass("Humanoid")
  applySpeed(h)
 end
end)

UIS.InputChanged:Connect(function(i)
 if sliding and i.UserInputType==Enum.UserInputType.MouseMovement then
  local x=(i.Position.X-bar.AbsolutePosition.X)/bar.AbsoluteSize.X
  updateSpeedSliderFromX(x)
 end
end)

player.CharacterAdded:Connect(function(c)
 setupHumanoidSpeed(c)
end)

if player.Character then
 task.spawn(setupHumanoidSpeed,player.Character)
end

-- ESP
local function refreshESP()
 for _,p in ipairs(Players:GetPlayers()) do
  if p~=player and p.Character then
   local h=p.Character:FindFirstChild("ARAM_ESP")
   if espEnabled then
    if not h then
      h=Instance.new("Highlight")
      h.Name="ARAM_ESP"
      h.FillColor=Color3.fromRGB(70,220,255)
      h.OutlineColor=Color3.new(1,1,1)
      h.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop
      h.Parent=p.Character
    end
   elseif h then
    h:Destroy()
   end
  end
 end
end

-- Floating Aimbot button
local function updateAimButton()
 if aimButton then
  aimButton.BackgroundColor3=aimbotEnabled and Color3.fromRGB(45,175,80) or Color3.fromRGB(180,55,55)
 end
end

local function toggleAim()
 aimbotEnabled=not aimbotEnabled
 if not aimbotEnabled then currentTarget=nil end
 updateAimButton()
end

local function createAimButton()
 if aimButton then aimButton.Visible=true return end
 aimButton=Instance.new("TextButton",gui)
 aimButton.Size=UDim2.fromOffset(170,50)
 aimButton.Position=UDim2.new(1,-190,.5,-25)
 aimButton.Text="🔫 AIMBOT [MMB]"
 aimButton.Font=Enum.Font.GothamBold
 aimButton.TextSize=16
 aimButton.TextColor3=Color3.new(1,1,1)
 Instance.new("UICorner",aimButton).CornerRadius=UDim.new(0,14)
 local st=Instance.new("UIStroke",aimButton)
 st.Color=Color3.fromRGB(120,230,255)
 updateAimButton()
 aimButton.MouseButton1Click:Connect(toggleAim)

 local drag=false
 local ds=nil
 local sp=nil

 aimButton.InputBegan:Connect(function(i)
  if i.UserInputType==Enum.UserInputType.MouseButton1
     or i.UserInputType==Enum.UserInputType.Touch then
   drag=true
   ds=i.Position
   sp=aimButton.Position
  end
 end)

 UIS.InputChanged:Connect(function(i)
  if drag
     and (i.UserInputType==Enum.UserInputType.MouseMovement
       or i.UserInputType==Enum.UserInputType.Touch) then
   local d=i.Position-ds
   aimButton.Position=UDim2.new(
    sp.X.Scale,
    sp.X.Offset+d.X,
    sp.Y.Scale,
    sp.Y.Offset+d.Y
   )
  end
 end)

 UIS.InputEnded:Connect(function(i)
  if i.UserInputType==Enum.UserInputType.MouseButton1
     or i.UserInputType==Enum.UserInputType.Touch then
   drag=false
  end
 end)
end

local function removeAimButton()
 aimbotEnabled=false
 currentTarget=nil
 if aimButton then aimButton:Destroy() aimButton=nil end
 aimBtn.Text="ADD"
 aimBtn.BackgroundColor3=Color3.fromRGB(170,40,40)
end

UIS.InputBegan:Connect(function(i,gp)
 if gp then return end
 if i.UserInputType==Enum.UserInputType.MouseButton3 and aimButton then
  toggleAim()
 end
end)

-- AutoBite floating button
local function updateAutoBiteButton()
 if autoBiteButton then
  autoBiteButton.BackgroundColor3=autoBiteEnabled
   and Color3.fromRGB(45,175,80)
   or Color3.fromRGB(180,55,55)
  autoBiteButton.Text="🦷 AUTOBITE"
 end
end

local function toggleAutoBite()
 autoBiteEnabled=not autoBiteEnabled

 if not autoBiteEnabled then
  updateAutoBiteButton()
  return
 end

 updateAutoBiteButton()

 task.spawn(function()
  while autoBiteEnabled and autoBiteButton and autoBiteButton.Parent do
   pcall(function()
    VIM:SendKeyEvent(true,Enum.KeyCode.Q,false,game)
    task.wait(0.06)
    VIM:SendKeyEvent(false,Enum.KeyCode.Q,false,game)
   end)

   task.wait(0.06)
  end
 end)
end

local function createAutoBiteButton()
 if autoBiteButton then
  autoBiteButton.Visible=true
  return
 end

 autoBiteButton=Instance.new("TextButton",gui)
 autoBiteButton.Size=UDim2.fromOffset(170,50)
 autoBiteButton.Position=UDim2.new(1,-190,.5,35)
 autoBiteButton.Text="🦷 AUTOBITE"
 autoBiteButton.Font=Enum.Font.GothamBold
 autoBiteButton.TextSize=16
 autoBiteButton.TextColor3=Color3.new(1,1,1)
 Instance.new("UICorner",autoBiteButton).CornerRadius=UDim.new(0,14)

 local st=Instance.new("UIStroke",autoBiteButton)
 st.Color=Color3.fromRGB(120,230,255)

 updateAutoBiteButton()

 autoBiteButton.MouseButton1Click:Connect(toggleAutoBite)

 local drag=false
 local ds,sp

 autoBiteButton.InputBegan:Connect(function(i)
  if i.UserInputType==Enum.UserInputType.MouseButton1
     or i.UserInputType==Enum.UserInputType.Touch then
   drag=true
   ds=i.Position
   sp=autoBiteButton.Position
  end
 end)

 UIS.InputChanged:Connect(function(i)
  if drag
     and (i.UserInputType==Enum.UserInputType.MouseMovement
       or i.UserInputType==Enum.UserInputType.Touch) then
   local d=i.Position-ds
   autoBiteButton.Position=UDim2.new(
    sp.X.Scale,
    sp.X.Offset+d.X,
    sp.Y.Scale,
    sp.Y.Offset+d.Y
   )
  end
 end)

 UIS.InputEnded:Connect(function(i)
  if i.UserInputType==Enum.UserInputType.MouseButton1
     or i.UserInputType==Enum.UserInputType.Touch then
   drag=false
  end
 end)
end

local function removeAutoBiteButton()
 autoBiteEnabled=false

 if autoBiteButton then
  autoBiteButton:Destroy()
  autoBiteButton=nil
 end

 autoBiteBtn.Text="ADD"
 autoBiteBtn.BackgroundColor3=Color3.fromRGB(170,40,40)
end

-- Buttons
local function setBtn(btn,on)
 btn.Text=on and "ON" or "OFF"
 btn.BackgroundColor3=on and Color3.fromRGB(40,170,40) or Color3.fromRGB(170,40,40)
end

espBtn.MouseButton1Click:Connect(function()
 espEnabled=not espEnabled
 setBtn(espBtn,espEnabled)
 refreshESP()
end)

noclipBtn.MouseButton1Click:Connect(function()
 noclipEnabled=not noclipEnabled
 setBtn(noclipBtn,noclipEnabled)
end)

aimBtn.MouseButton1Click:Connect(function()
 if not aimButton then
  createAimButton()
  aimBtn.Text="HIDE"
  aimBtn.BackgroundColor3=Color3.fromRGB(70,150,220)
 else
  removeAimButton()
 end
end)

autoBiteBtn.MouseButton1Click:Connect(function()
 if not autoBiteButton then
  createAutoBiteButton()
  autoBiteBtn.Text="HIDE"
  autoBiteBtn.BackgroundColor3=Color3.fromRGB(70,150,220)
 else
  removeAutoBiteButton()
 end
end)

-- Cheese pickup
local cheeseBusy=false

local function normalizedName(name)
 return string.lower((name or ""):gsub("%s+",""))
end

local function findCheeseTrays()
 local trays={}

 -- Search the whole Workspace instead of only Workspace.Cafeteria.
 -- Some games put the visible "Cheese Tray" objects in nested folders/models.
 for _,obj in ipairs(workspace:GetDescendants()) do
  if normalizedName(obj.Name)=="cheesetray" then
   local prompt=obj:FindFirstChildWhichIsA("ProximityPrompt",true)

   -- Also check the object's ancestors in case the prompt is attached
   -- to a nearby part/model rather than directly inside the tray.
   if not prompt then
    local parent=obj.Parent
    for _=1,4 do
     if not parent then break end
     prompt=parent:FindFirstChildWhichIsA("ProximityPrompt",true)
     if prompt then break end
     parent=parent.Parent
    end
   end

   local targetCFrame=nil

   if obj:IsA("BasePart") then
    targetCFrame=obj.CFrame
   elseif obj:IsA("Model") then
    targetCFrame=obj:GetPivot()
   else
    local part=obj:FindFirstChildWhichIsA("BasePart",true)
    if part then
     targetCFrame=part.CFrame
    end
   end

   if targetCFrame then
    table.insert(trays,{
     object=obj,
     prompt=prompt,
     cframe=targetCFrame
    })
   end
  end
 end

 return trays
end

local function findTakeTrayButton()
 local playerGui=player:FindFirstChild("PlayerGui")
 if not playerGui then return nil end

 for _,guiObject in ipairs(playerGui:GetDescendants()) do
  if guiObject:IsA("GuiButton") and guiObject.Visible and guiObject.Active then
   local buttonText=""

   pcall(function()
    buttonText=guiObject.Text or ""
   end)

   local normalized=string.lower(buttonText):gsub("%s+","")

   if normalized=="taketray" or normalized:find("taketray",1,true) then
    return guiObject
   end
  end
 end

 return nil
end

local function findTakeKeycardButton()
 local playerGui=player:FindFirstChild("PlayerGui")
 if not playerGui then return nil end

 for _,guiObject in ipairs(playerGui:GetDescendants()) do
  if guiObject:IsA("GuiButton") and guiObject.Visible and guiObject.Active then
   local buttonText=""

   pcall(function()
    buttonText=guiObject.Text or ""
   end)

   local normalized=string.lower(buttonText):gsub("%s+","")

   if normalized=="takekeycard" or normalized:find("takekeycard",1,true) then
    return guiObject
   end
  end
 end

 return nil
end

local function activateTakeKeycardUI(timeout)
 local deadline=os.clock()+(timeout or 1.5)

 while os.clock()<deadline do
  local button=findTakeKeycardButton()

  if button then
   local ok=pcall(function()
    button:Activate()
   end)

   if ok then
    return true
   end
  end

  task.wait(0.05)
 end

 return false
end

local function activateTakeTrayUI(timeout)
 local deadline=os.clock()+(timeout or 1.2)

 while os.clock()<deadline do
  local button=findTakeTrayButton()

  if button then
   local ok=pcall(function()
    button:Activate()
   end)

   if ok then
    return true
   end
  end

  task.wait(0.05)
 end

 return false
end

local function takeRandomCheese()
 if cheeseBusy then return end
 cheeseBusy=true

 local character=player.Character
 local root=character and character:FindFirstChild("HumanoidRootPart")

 if not root then
  cheeseBusy=false
  return
 end

 local trays=findCheeseTrays()

 if #trays==0 then
  cheeseBtn.Text="NO CHEESE"
  task.wait(0.8)
  cheeseBtn.Text="TAKE CHEESE"
  cheeseBusy=false
  return
 end

 local oldCFrame=root.CFrame
 local chosen=trays[math.random(1,#trays)]
 local trayCFrame=chosen.cframe
 local prompt=chosen.prompt

 -- Teleport near the selected cheese.
 root.CFrame=trayCFrame*CFrame.new(0,2.5,0)
 task.wait(0.35)

 cheeseBtn.Text="TAKING..."

 -- Mobile-friendly route:
 -- if the game creates a visible "Take Tray" button in PlayerGui,
 -- activate that exact button.
 local usedMobileButton=activateTakeTrayUI(1.2)

 -- Standard ProximityPrompt fallback, if one exists.
 if not usedMobileButton and prompt and prompt.Parent and prompt.Enabled then
  pcall(function()
   prompt:InputHoldBegin()

   local holdTime=tonumber(prompt.HoldDuration) or 0
   task.wait(math.max(0.1,holdTime+0.1))

   prompt:InputHoldEnd()
  end)

  task.wait(0.2)
 end

 -- Desktop / keyboard fallback:
 -- the interaction shown in the game uses the F key.
 if not usedMobileButton then
  pcall(function()
   VIM:SendKeyEvent(true,Enum.KeyCode.F,false,game)
   task.wait(0.08)
   VIM:SendKeyEvent(false,Enum.KeyCode.F,false,game)
  end)

  task.wait(0.4)
 end

 -- Return to the exact starting position.
 if root and root.Parent then
  root.CFrame=oldCFrame
 end

 cheeseBtn.Text="TAKE CHEESE"
 cheeseBusy=false
end

cheeseBtn.MouseButton1Click:Connect(takeRandomCheese)

-- Keycard pickup
local keycardBusy=false

local function findKeycardDrops()
 local drops={}

 for _,obj in ipairs(workspace:GetDescendants()) do
  if obj:IsA("Model") and string.find(obj.Name,"BLR_KeycardDrop",1,true) then
   local pivot=obj:GetPivot()

   table.insert(drops,{
    object=obj,
    cframe=pivot
   })
  end
 end

 return drops
end

local function takeRandomKeycard()
 if keycardBusy then return end
 keycardBusy=true

 local character=player.Character
 local root=character and character:FindFirstChild("HumanoidRootPart")

 if not root then
  keycardBusy=false
  return
 end

 local drops=findKeycardDrops()

 if #drops==0 then
  keycardBtn.Text="NO KEYCARD"
  task.wait(0.8)
  keycardBtn.Text="TAKE KEYCARD"
  keycardBusy=false
  return
 end

 local oldCFrame=root.CFrame
 local chosen=drops[math.random(1,#drops)]

 -- Teleport near the selected keycard.
 root.CFrame=chosen.cframe*CFrame.new(0,2.5,0)
 task.wait(0.4)

 keycardBtn.Text="TAKING..."

 -- Mobile-friendly: activate the game's visible "Take Keycard" button.
 local usedUI=activateTakeKeycardUI(1.5)

 -- Desktop / keyboard fallback: the game shows E for this interaction.
 if not usedUI then
  pcall(function()
   VIM:SendKeyEvent(true,Enum.KeyCode.E,false,game)
   task.wait(0.08)
   VIM:SendKeyEvent(false,Enum.KeyCode.E,false,game)
  end)

  task.wait(0.4)
 end

 -- Return to the exact starting position.
 if root and root.Parent then
  root.CFrame=oldCFrame
 end

 keycardBtn.Text="TAKE KEYCARD"
 keycardBusy=false
end

keycardBtn.MouseButton1Click:Connect(takeRandomKeycard)

-- Escaped Rat base teleport
local function findEscapedRatBase()
 -- Exact object name shown in Explorer.
 local exact=workspace:FindFirstChild("EscapedRatSewerGrate",true)
 if exact then
  return exact
 end

 -- Fallback: any object containing EscapedRatSewerGrate in its name.
 for _,obj in ipairs(workspace:GetDescendants()) do
  local name=string.lower(obj.Name)
  if string.find(name,"escapedratsewergrate",1,true) then
   return obj
  end
 end

 return nil
end

local function getTeleportCFrame(obj)
 if obj:IsA("BasePart") then
  return obj.CFrame
 elseif obj:IsA("Model") then
  return obj:GetPivot()
 elseif obj:IsA("Attachment") then
  return obj.WorldCFrame
 end

 local parts={}
 for _,desc in ipairs(obj:GetDescendants()) do
  if desc:IsA("BasePart") then
   table.insert(parts,desc)
  end
 end

 if #parts==0 then
  return nil
 end

 local minX,maxX=math.huge,-math.huge
 local minY,maxY=math.huge,-math.huge
 local minZ,maxZ=math.huge,-math.huge

 for _,part in ipairs(parts) do
  local half=part.Size*0.5
  local p=part.Position

  minX=math.min(minX,p.X-half.X)
  maxX=math.max(maxX,p.X+half.X)
  minY=math.min(minY,p.Y-half.Y)
  maxY=math.max(maxY,p.Y+half.Y)
  minZ=math.min(minZ,p.Z-half.Z)
  maxZ=math.max(maxZ,p.Z+half.Z)
 end

 return CFrame.new(
  (minX+maxX)*0.5,
  (minY+maxY)*0.5,
  (minZ+maxZ)*0.5
 )
end

local function teleportToEscapedRatBase()
 local character=player.Character
 local root=character and character:FindFirstChild("HumanoidRootPart")

 if not root then
  return
 end

 local target=findEscapedRatBase()

 if not target then
  escapedRatBtn.Text="BASE NOT FOUND"
  task.wait(0.8)
  escapedRatBtn.Text="TELEPORT TO THE ESCAPEDRAT BASE"
  return
 end

 local targetCFrame=getTeleportCFrame(target)

 if not targetCFrame then
  escapedRatBtn.Text="NO POSITION"
  task.wait(0.8)
  escapedRatBtn.Text="TELEPORT TO THE ESCAPEDRAT BASE"
  return
 end

 escapedRatBtn.Text="TELEPORTING..."

 -- Teleport slightly above the grate and stay there.
 root.CFrame=CFrame.new(targetCFrame.Position+Vector3.new(0,5,0))

 task.wait(0.4)
 escapedRatBtn.Text="TELEPORT TO THE ESCAPEDRAT BASE"
end

escapedRatBtn.MouseButton1Click:Connect(teleportToEscapedRatBase)

-- Scientiest Section teleport
local function cleanName(name)
 return string.lower((name or ""):gsub("%s+",""))
end

local function hasAncestorNamed(obj, wantedNames)
 local current=obj.Parent

 while current do
  local n=cleanName(current.Name)

  for _,wanted in ipairs(wantedNames) do
   if n==wanted then
    return true
   end
  end

  current=current.Parent
 end

 return false
end

local function findScientiestLever()
 -- Find LeverPullDown anywhere in the game first.
 -- Then prefer the one that is actually inside ScientistSection/MouseTrap.
 local candidates={}

 for _,obj in ipairs(game:GetDescendants()) do
  if cleanName(obj.Name)=="leverpulldown" then
   table.insert(candidates,obj)
  end
 end

 -- Best match: LeverPullDown inside ScientistSection.
 for _,obj in ipairs(candidates) do
  if hasAncestorNamed(obj,{"scientistsection","scientiestsection"}) then
   return obj
  end
 end

 -- Second-best match: LeverPullDown inside MouseTrap.
 for _,obj in ipairs(candidates) do
  if hasAncestorNamed(obj,{"mousetrap"}) then
   return obj
  end
 end

 -- Last fallback: if there is only one LeverPullDown, use it.
 if #candidates==1 then
  return candidates[1]
 end

 return nil
end

local function teleportToScientiestSection()
 local character=player.Character
 local root=character and character:FindFirstChild("HumanoidRootPart")

 if not root then
  return
 end

 local target=findScientiestLever()

 if not target then
  scientistBtn.Text="LEVER NOT FOUND"
  task.wait(0.8)
  scientistBtn.Text="TELEPORT TO THE SCIENTIEST SECTION"
  return
 end

 local targetCFrame=getTeleportCFrame(target)

 if not targetCFrame then
  scientistBtn.Text="NO POSITION"
  task.wait(0.8)
  scientistBtn.Text="TELEPORT TO THE SCIENTIEST SECTION"
  return
 end

 scientistBtn.Text="TELEPORTING..."

 -- 5 studs above the exact LeverPullDown object.
 local p=targetCFrame.Position
 root.CFrame=CFrame.new(p.X,p.Y+5,p.Z)

 task.wait(0.4)
 scientistBtn.Text="TELEPORT TO THE SCIENTIEST SECTION"
end

scientistBtn.MouseButton1Click:Connect(teleportToScientiestSection)

-- NoClip
RS.Stepped:Connect(function()
 if noclipEnabled and player.Character then
  for _,v in ipairs(player.Character:GetDescendants()) do
   if v:IsA("BasePart") then v.CanCollide=false end
  end
 end
end)

-- Aimbot: nearest 360°, ignore Rat / Criminal Rat / RatCriminal.
-- Team is checked from Player.Team every time a target is selected and while locked.
local function isIgnoredAimbotTeam(p)
 if not p then return false end

 local teamName=p.Team and p.Team.Name or ""

 -- Normalize the team name so "Criminal Rat", "CriminalRat"
 -- and "RatCriminal" can all be treated as the protected team.
 local normalized=string.lower(teamName):gsub("%s+","")

 return normalized=="rat" or normalized=="criminalrat" or normalized=="ratcriminal"
end

local function closestTarget()
 local c=player.Character
 if not c then return nil end

 local root=c:FindFirstChild("HumanoidRootPart")
 if not root then return nil end

 local best,bestDist=nil,math.huge

 for _,p in ipairs(Players:GetPlayers()) do
  if p~=player and p.Character and not isIgnoredAimbotTeam(p) then
   local hrp=p.Character:FindFirstChild("HumanoidRootPart")
   local head=p.Character:FindFirstChild("Head")
   local hum=p.Character:FindFirstChildOfClass("Humanoid")

   if hrp and head and hum and hum.Health>0 then
    local d=(root.Position-hrp.Position).Magnitude

    if d<bestDist then
     bestDist=d
     best=p
    end
   end
  end
 end

 return best
end

RS.RenderStepped:Connect(function()
 if not aimbotEnabled then
  currentTarget=nil
  return
 end

 -- Re-check the locked player's team every frame.
 if currentTarget then
  if isIgnoredAimbotTeam(currentTarget) then
   currentTarget=nil
  else
   local character=currentTarget.Character
   local hum=character and character:FindFirstChildOfClass("Humanoid")
   local head=character and character:FindFirstChild("Head")

   if hum and head and hum.Health>0 then
    camera.CFrame=CFrame.new(camera.CFrame.Position,head.Position)
    return
   end

   currentTarget=nil
  end
 end

 currentTarget=closestTarget()

 if currentTarget and not isIgnoredAimbotTeam(currentTarget) then
  local character=currentTarget.Character
  local head=character and character:FindFirstChild("Head")
  local hum=character and character:FindFirstChildOfClass("Humanoid")

  if head and hum and hum.Health>0 then
   camera.CFrame=CFrame.new(camera.CFrame.Position,head.Position)
  else
   currentTarget=nil
  end
 end
end)

-- Keep ESP working after players respawn.
local function setupESPRespawn(p)
 if p==player then return end

 p.CharacterAdded:Connect(function()
  task.wait(0.15)

  if espEnabled then
   refreshESP()
  end
 end)
end

for _,pl in ipairs(Players:GetPlayers()) do
 setupESPRespawn(pl)
end

Players.PlayerAdded:Connect(setupESPRespawn)

refreshESP()

Features & Information

DONT COPY LOADSTRING ITS NOT WORKING COPY THE SCRIPT ARAM_RATLAB Key System: Linkvertise Features: • ESP • Aimbot • AutoBite • Speed • NoClip • Take Cheese • Take Keycard • Teleports • Mobile + PC UI Press GET KEY in the script to get the key link. Key: required

Community Comments (0)

No comments yet for this script.

More Scripts for Rat Lab 🧪 [UPD]