
KeylessUniversal

--[[
RPYF TROLL SCRIPT - COMPLETE FIXED VERSION
Features: Fling, Aimbot with FOV, Fly, Car Throwing, Backshots
WARNING: This script is for educational purposes only.
Using exploits in Roblox violates Terms of Service and can result in account bans.
Use at your own risk.
]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
-- Configuration
local Config = {
FlingPower = 500,
AimbotEnabled = false,
AimbotFOV = 200,
AimbotTarget = "Head", -- Head, Body, Legs+Body, Body+Head, All
FlyEnabled = false,
FlySpeed = 100,
ThrowPower = 300,
FlingAllRadius = 50,
BackshotsEnabled = false,
BackshotsSpeed = 0.3,
BackshotsDistance = 3,
}
-- Keybind Configuration (customizable)
local Keybinds = {
Aimbot = Enum.KeyCode.G,
Fly = Enum.KeyCode.H,
FlingNearest = Enum.KeyCode.F,
FlingAll = Enum.KeyCode.R,
ThrowCar = Enum.KeyCode.T,
Backshots = Enum.KeyCode.B,
}
local KeybindNames = {
[Enum.KeyCode.G] = "G",
[Enum.KeyCode.H] = "H",
[Enum.KeyCode.F] = "F",
[Enum.KeyCode.R] = "R",
[Enum.KeyCode.T] = "T",
[Enum.KeyCode.B] = "B",
[Enum.KeyCode.Q] = "Q",
[Enum.KeyCode.E] = "E",
[Enum.KeyCode.Z] = "Z",
[Enum.KeyCode.X] = "X",
[Enum.KeyCode.C] = "C",
[Enum.KeyCode.V] = "V",
[Enum.KeyCode.Y] = "Y",
[Enum.KeyCode.U] = "U",
[Enum.KeyCode.I] = "I",
[Enum.KeyCode.O] = "O",
[Enum.KeyCode.P] = "P",
[Enum.KeyCode.K] = "K",
[Enum.KeyCode.L] = "L",
[Enum.KeyCode.N] = "N",
[Enum.KeyCode.M] = "M",
}
-- GUI Setup with modern design
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "RpyfTrollGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = game.CoreGui
-- Main Frame with gradient
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 380, 0, 520)
MainFrame.Position = UDim2.new(0.5, -190, 0.5, -260)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 12)
MainCorner.Parent = MainFrame
-- Shadow effect
local Shadow = Instance.new("ImageLabel")
Shadow.Name = "Shadow"
Shadow.Size = UDim2.new(1, 30, 1, 30)
Shadow.Position = UDim2.new(0, -15, 0, -15)
Shadow.BackgroundTransparency = 1
Shadow.Image = "rbxasset://textures/ui/GuiImagePlaceholder.png"
Shadow.ImageColor3 = Color3.fromRGB(0, 0, 0)
Shadow.ImageTransparency = 0.7
Shadow.ZIndex = 0
Shadow.Parent = MainFrame
-- Gradient background
local Gradient = Instance.new("UIGradient")
Gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 45)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
}
Gradient.Rotation = 45
Gradient.Parent = MainFrame
-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 50)
TitleBar.BackgroundColor3 = Color3.fromRGB(40, 40, 60)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 12)
TitleCorner.Parent = TitleBar
local TitleGradient = Instance.new("UIGradient")
TitleGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(138, 43, 226)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(75, 0, 130))
}
TitleGradient.Rotation = 90
TitleGradient.Parent = TitleBar
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -100, 1, 0)
Title.Position = UDim2.new(0, 15, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "š Rpyf Troll"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 22
Title.Font = Enum.Font.GothamBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = TitleBar
-- Close Button
local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 40, 0, 40)
CloseButton.Position = UDim2.new(1, -45, 0, 5)
CloseButton.BackgroundColor3 = Color3.fromRGB(220, 53, 69)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "ā"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 20
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Parent = TitleBar
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 8)
CloseCorner.Parent = CloseButton
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
-- Tabs Container
local TabContainer = Instance.new("Frame")
TabContainer.Size = UDim2.new(1, -20, 0, 40)
TabContainer.Position = UDim2.new(0, 10, 0, 60)
TabContainer.BackgroundTransparency = 1
TabContainer.Parent = MainFrame
-- Content Frame
local ContentFrame = Instance.new("ScrollingFrame")
ContentFrame.Size = UDim2.new(1, -20, 1, -120)
ContentFrame.Position = UDim2.new(0, 10, 0, 110)
ContentFrame.BackgroundTransparency = 1
ContentFrame.BorderSizePixel = 0
ContentFrame.ScrollBarThickness = 4
ContentFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ContentFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
ContentFrame.Parent = MainFrame
local ContentLayout = Instance.new("UIListLayout")
ContentLayout.Padding = UDim.new(0, 8)
ContentLayout.SortOrder = Enum.SortOrder.LayoutOrder
ContentLayout.Parent = ContentFrame
-- Keybind Change Popup
local KeybindPopup = Instance.new("Frame")
KeybindPopup.Size = UDim2.new(0, 300, 0, 150)
KeybindPopup.Position = UDim2.new(0.5, -150, 0.5, -75)
KeybindPopup.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
KeybindPopup.BorderSizePixel = 0
KeybindPopup.Visible = false
KeybindPopup.ZIndex = 100
KeybindPopup.Parent = ScreenGui
local PopupCorner = Instance.new("UICorner")
PopupCorner.CornerRadius = UDim.new(0, 12)
PopupCorner.Parent = KeybindPopup
local PopupTitle = Instance.new("TextLabel")
PopupTitle.Size = UDim2.new(1, -20, 0, 40)
PopupTitle.Position = UDim2.new(0, 10, 0, 10)
PopupTitle.BackgroundTransparency = 1
PopupTitle.Text = "Press any key..."
PopupTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
PopupTitle.TextSize = 16
PopupTitle.Font = Enum.Font.GothamBold
PopupTitle.Parent = KeybindPopup
local PopupSubtitle = Instance.new("TextLabel")
PopupSubtitle.Size = UDim2.new(1, -20, 0, 60)
PopupSubtitle.Position = UDim2.new(0, 10, 0, 50)
PopupSubtitle.BackgroundTransparency = 1
PopupSubtitle.Text = "Press ESC to cancel"
PopupSubtitle.TextColor3 = Color3.fromRGB(180, 180, 180)
PopupSubtitle.TextSize = 12
PopupSubtitle.Font = Enum.Font.Gotham
PopupSubtitle.TextWrapped = true
PopupSubtitle.Parent = KeybindPopup
local PopupCancel = Instance.new("TextButton")
PopupCancel.Size = UDim2.new(0, 100, 0, 35)
PopupCancel.Position = UDim2.new(0.5, -50, 1, -45)
PopupCancel.BackgroundColor3 = Color3.fromRGB(220, 53, 69)
PopupCancel.BorderSizePixel = 0
PopupCancel.Text = "Cancel"
PopupCancel.TextColor3 = Color3.fromRGB(255, 255, 255)
PopupCancel.TextSize = 14
PopupCancel.Font = Enum.Font.GothamBold
PopupCancel.Parent = KeybindPopup
local CancelCorner = Instance.new("UICorner")
CancelCorner.CornerRadius = UDim.new(0, 8)
CancelCorner.Parent = PopupCancel
-- Helper Functions
local function createTab(text, icon, layoutOrder)
local Tab = Instance.new("TextButton")
Tab.Size = UDim2.new(0.32, -5, 1, 0)
Tab.Position = UDim2.new((layoutOrder - 1) * 0.33, 0, 0, 0)
Tab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
Tab.BorderSizePixel = 0
Tab.Text = icon .. " " .. text
Tab.TextColor3 = Color3.fromRGB(200, 200, 200)
Tab.TextSize = 14
Tab.Font = Enum.Font.GothamSemibold
Tab.Parent = TabContainer
local TabCorner = Instance.new("UICorner")
TabCorner.CornerRadius = UDim.new(0, 8)
TabCorner.Parent = Tab
return Tab
end
local currentKeybindChanging = nil
local function openKeybindChanger(keybindName, currentKey, callback)
currentKeybindChanging = keybindName
KeybindPopup.Visible = true
PopupTitle.Text = "Change " .. keybindName .. " Keybind"
PopupSubtitle.Text = "Current: " .. (KeybindNames[currentKey] or "Unknown") .. "\nPress any key to change or ESC to cancel"
local connection
connection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType ~= Enum.UserInputType.Keyboard then return end
if input.KeyCode == Enum.KeyCode.Escape then
KeybindPopup.Visible = false
currentKeybindChanging = nil
connection:Disconnect()
return
end
-- Update keybind
callback(input.KeyCode)
KeybindPopup.Visible = false
currentKeybindChanging = nil
connection:Disconnect()
end)
end
PopupCancel.MouseButton1Click:Connect(function()
KeybindPopup.Visible = false
currentKeybindChanging = nil
end)
local function createButton(text, icon, callback)
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1, 0, 0, 45)
Button.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
Button.BorderSizePixel = 0
Button.Text = ""
Button.AutoButtonColor = false
Button.Parent = ContentFrame
local ButtonCorner = Instance.new("UICorner")
ButtonCorner.CornerRadius = UDim.new(0, 8)
ButtonCorner.Parent = Button
local IconLabel = Instance.new("TextLabel")
IconLabel.Size = UDim2.new(0, 40, 1, 0)
IconLabel.BackgroundTransparency = 1
IconLabel.Text = icon
IconLabel.TextSize = 20
IconLabel.Font = Enum.Font.GothamBold
IconLabel.TextColor3 = Color3.fromRGB(138, 43, 226)
IconLabel.Parent = Button
local TextLabel = Instance.new("TextLabel")
TextLabel.Size = UDim2.new(1, -50, 1, 0)
TextLabel.Position = UDim2.new(0, 45, 0, 0)
TextLabel.BackgroundTransparency = 1
TextLabel.Text = text
TextLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
TextLabel.TextSize = 14
TextLabel.Font = Enum.Font.Gotham
TextLabel.TextXAlignment = Enum.TextXAlignment.Left
TextLabel.Parent = Button
local StatusIndicator = Instance.new("Frame")
StatusIndicator.Size = UDim2.new(0, 10, 0, 10)
StatusIndicator.Position = UDim2.new(1, -20, 0.5, -5)
StatusIndicator.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
StatusIndicator.BorderSizePixel = 0
StatusIndicator.Parent = Button
local IndicatorCorner = Instance.new("UICorner")
IndicatorCorner.CornerRadius = UDim.new(1, 0)
IndicatorCorner.Parent = StatusIndicator
Button.MouseEnter:Connect(function()
TweenService:Create(Button, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(55, 55, 75)}):Play()
end)
Button.MouseLeave:Connect(function()
TweenService:Create(Button, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(45, 45, 65)}):Play()
end)
Button.MouseButton1Click:Connect(callback)
return Button, StatusIndicator, TextLabel
end
local function createButtonWithKeybind(text, icon, keybindName, callback)
local Button, StatusIndicator, TextLabel = createButton(text, icon, callback)
-- Add keybind button
local KeybindButton = Instance.new("TextButton")
KeybindButton.Size = UDim2.new(0, 60, 0, 25)
KeybindButton.Position = UDim2.new(1, -90, 0.5, -12.5)
KeybindButton.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
KeybindButton.BorderSizePixel = 0
KeybindButton.Text = KeybindNames[Keybinds[keybindName]] or "?"
KeybindButton.TextColor3 = Color3.fromRGB(255, 255, 255)
KeybindButton.TextSize = 12
KeybindButton.Font = Enum.Font.GothamBold
KeybindButton.ZIndex = 2
KeybindButton.Parent = Button
local KeybindCorner = Instance.new("UICorner")
KeybindCorner.CornerRadius = UDim.new(0, 6)
KeybindCorner.Parent = KeybindButton
KeybindButton.MouseButton1Click:Connect(function()
openKeybindChanger(keybindName, Keybinds[keybindName], function(newKey)
Keybinds[keybindName] = newKey
KeybindButton.Text = KeybindNames[newKey] or "?"
print("ā
" .. keybindName .. " keybind changed to: " .. (KeybindNames[newKey] or "Unknown"))
end)
end)
KeybindButton.MouseEnter:Connect(function()
TweenService:Create(KeybindButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(80, 80, 100)}):Play()
end)
KeybindButton.MouseLeave:Connect(function()
TweenService:Create(KeybindButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(60, 60, 80)}):Play()
end)
return Button, StatusIndicator, KeybindButton
end
local function createToggle(text, icon, callback)
local Button, StatusIndicator = createButton(text, icon, function() end)
local isActive = false
Button.MouseButton1Click:Connect(function()
isActive = not isActive
if isActive then
TweenService:Create(StatusIndicator, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(0, 255, 127)}):Play()
TweenService:Create(Button, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(50, 65, 55)}):Play()
else
TweenService:Create(StatusIndicator, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(100, 100, 100)}):Play()
TweenService:Create(Button, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(45, 45, 65)}):Play()
end
callback(isActive)
end)
return Button, StatusIndicator
end
local function createToggleWithKeybind(text, icon, keybindName, callback)
local Button, StatusIndicator, TextLabel = createButton(text, icon, function() end)
local isActive = false
-- Add keybind button
local KeybindButton = Instance.new("TextButton")
KeybindButton.Size = UDim2.new(0, 60, 0, 25)
KeybindButton.Position = UDim2.new(1, -90, 0.5, -12.5)
KeybindButton.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
KeybindButton.BorderSizePixel = 0
KeybindButton.Text = KeybindNames[Keybinds[keybindName]] or "?"
KeybindButton.TextColor3 = Color3.fromRGB(255, 255, 255)
KeybindButton.TextSize = 12
KeybindButton.Font = Enum.Font.GothamBold
KeybindButton.ZIndex = 2
KeybindButton.Parent = Button
local KeybindCorner = Instance.new("UICorner")
KeybindCorner.CornerRadius = UDim.new(0, 6)
KeybindCorner.Parent = KeybindButton
KeybindButton.MouseButton1Click:Connect(function()
openKeybindChanger(keybindName, Keybinds[keybindName], function(newKey)
Keybinds[keybindName] = newKey
KeybindButton.Text = KeybindNames[newKey] or "?"
print("ā
" .. keybindName .. " keybind changed to: " .. (KeybindNames[newKey] or "Unknown"))
end)
end)
KeybindButton.MouseEnter:Connect(function()
TweenService:Create(KeybindButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(80, 80, 100)}):Play()
end)
KeybindButton.MouseLeave:Connect(function()
TweenService:Create(KeybindButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(60, 60, 80)}):Play()
end)
Button.MouseButton1Click:Connect(function()
isActive = not isActive
if isActive then
TweenService:Create(StatusIndicator, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(0, 255, 127)}):Play()
TweenService:Create(Button, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(50, 65, 55)}):Play()
else
TweenService:Create(StatusIndicator, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(100, 100, 100)}):Play()
TweenService:Create(Button, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(45, 45, 65)}):Play()
end
callback(isActive)
end)
return Button, StatusIndicator, KeybindButton
end
local function createSlider(text, min, max, default, callback)
local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, 0, 0, 60)
Container.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
Container.BorderSizePixel = 0
Container.Parent = ContentFrame
local ContainerCorner = Instance.new("UICorner")
ContainerCorner.CornerRadius = UDim.new(0, 8)
ContainerCorner.Parent = Container
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(1, -20, 0, 25)
Label.Position = UDim2.new(0, 10, 0, 5)
Label.BackgroundTransparency = 1
Label.Text = text .. ": " .. default
Label.TextColor3 = Color3.fromRGB(220, 220, 220)
Label.TextSize = 13
Label.Font = Enum.Font.Gotham
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Container
local SliderBack = Instance.new("Frame")
SliderBack.Size = UDim2.new(1, -20, 0, 6)
SliderBack.Position = UDim2.new(0, 10, 1, -15)
SliderBack.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
SliderBack.BorderSizePixel = 0
SliderBack.Parent = Container
local SliderCorner = Instance.new("UICorner")
SliderCorner.CornerRadius = UDim.new(1, 0)
SliderCorner.Parent = SliderBack
local SliderFill = Instance.new("Frame")
SliderFill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
SliderFill.BackgroundColor3 = Color3.fromRGB(138, 43, 226)
SliderFill.BorderSizePixel = 0
SliderFill.Parent = SliderBack
local FillCorner = Instance.new("UICorner")
FillCorner.CornerRadius = UDim.new(1, 0)
FillCorner.Parent = SliderFill
local SliderButton = Instance.new("TextButton")
SliderButton.Size = UDim2.new(1, 0, 1, 0)
SliderButton.BackgroundTransparency = 1
SliderButton.Text = ""
SliderButton.Parent = SliderBack
local dragging = false
SliderButton.MouseButton1Down:Connect(function()
dragging = true
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
RunService.RenderStepped:Connect(function()
if dragging then
local mousePos = UserInputService:GetMouseLocation()
local relativePos = mousePos.X - SliderBack.AbsolutePosition.X
local percentage = math.clamp(relativePos / SliderBack.AbsoluteSize.X, 0, 1)
local value = math.floor(min + (max - min) * percentage)
SliderFill.Size = UDim2.new(percentage, 0, 1, 0)
Label.Text = text .. ": " .. value
callback(value)
end
end)
return Container
end
local function createDropdown(text, options, default, callback)
local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, 0, 0, 45)
Container.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
Container.BorderSizePixel = 0
Container.Parent = ContentFrame
local ContainerCorner = Instance.new("UICorner")
ContainerCorner.CornerRadius = UDim.new(0, 8)
ContainerCorner.Parent = Container
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(0.5, -10, 1, 0)
Label.Position = UDim2.new(0, 10, 0, 0)
Label.BackgroundTransparency = 1
Label.Text = text
Label.TextColor3 = Color3.fromRGB(220, 220, 220)
Label.TextSize = 13
Label.Font = Enum.Font.Gotham
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Container
local DropButton = Instance.new("TextButton")
DropButton.Size = UDim2.new(0.5, -10, 0, 30)
DropButton.Position = UDim2.new(0.5, 0, 0.5, -15)
DropButton.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
DropButton.BorderSizePixel = 0
DropButton.Text = default .. " ā¼"
DropButton.TextColor3 = Color3.fromRGB(220, 220, 220)
DropButton.TextSize = 12
DropButton.Font = Enum.Font.Gotham
DropButton.Parent = Container
local DropCorner = Instance.new("UICorner")
DropCorner.CornerRadius = UDim.new(0, 6)
DropCorner.Parent = DropButton
local DropList = Instance.new("Frame")
DropList.Size = UDim2.new(0.5, -10, 0, #options * 30)
DropList.Position = UDim2.new(0.5, 0, 1, 5)
DropList.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
DropList.BorderSizePixel = 0
DropList.Visible = false
DropList.ZIndex = 10
DropList.Parent = Container
local ListCorner = Instance.new("UICorner")
ListCorner.CornerRadius = UDim.new(0, 6)
ListCorner.Parent = DropList
local ListLayout = Instance.new("UIListLayout")
ListLayout.SortOrder = Enum.SortOrder.LayoutOrder
ListLayout.Parent = DropList
DropButton.MouseButton1Click:Connect(function()
DropList.Visible = not DropList.Visible
Container.Size = UDim2.new(1, 0, 0, DropList.Visible and (45 + #options * 30 + 5) or 45)
end)
for i, option in ipairs(options) do
local OptionButton = Instance.new("TextButton")
OptionButton.Size = UDim2.new(1, 0, 0, 30)
OptionButton.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
OptionButton.BorderSizePixel = 0
OptionButton.Text = option
OptionButton.TextColor3 = Color3.fromRGB(200, 200, 200)
OptionButton.TextSize = 11
OptionButton.Font = Enum.Font.Gotham
OptionButton.Parent = DropList
OptionButton.MouseButton1Click:Connect(function()
DropButton.Text = option .. " ā¼"
DropList.Visible = false
Container.Size = UDim2.new(1, 0, 0, 45)
callback(option)
end)
end
return Container
end
-- FOV Circle for Aimbot (Single RGB circle)
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 2
FOVCircle.NumSides = 100
FOVCircle.Radius = Config.AimbotFOV
FOVCircle.Color = Color3.fromRGB(255, 0, 0)
FOVCircle.Visible = false
FOVCircle.Filled = false
FOVCircle.Transparency = 1
-- RGB Animation values
local rgbHue = 0
-- Game Functions
local function getCharacter()
return LocalPlayer.Character
end
local function getHumanoidRootPart()
local char = getCharacter()
return char and char:FindFirstChild("HumanoidRootPart")
end
local function getTargetPart(player)
if not player.Character then return nil end
if Config.AimbotTarget == "Head" then
return player.Character:FindFirstChild("Head")
elseif Config.AimbotTarget == "Body" then
return player.Character:FindFirstChild("Torso") or player.Character:FindFirstChild("UpperTorso")
elseif Config.AimbotTarget == "Legs+Body" then
return player.Character:FindFirstChild("HumanoidRootPart")
elseif Config.AimbotTarget == "Body+Head" then
local head = player.Character:FindFirstChild("Head")
local torso = player.Character:FindFirstChild("Torso") or player.Character:FindFirstChild("UpperTorso")
return head or torso
elseif Config.AimbotTarget == "All" then
return player.Character:FindFirstChild("HumanoidRootPart")
end
end
local function isInFOV(targetPos)
local viewportSize = Camera.ViewportSize
local screenCenter = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2)
local screenPos, onScreen = Camera:WorldToViewportPoint(targetPos)
if not onScreen then return false end
local screenPosition = Vector2.new(screenPos.X, screenPos.Y)
local distance = (screenPosition - screenCenter).Magnitude
return distance <= Config.AimbotFOV
end
local function getNearestPlayerInFOV()
local nearestPlayer = nil
local shortestDistance = math.huge
local viewportSize = Camera.ViewportSize
local screenCenter = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2)
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local targetPart = getTargetPart(player)
if targetPart then
local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position)
if onScreen and isInFOV(targetPart.Position) then
local screenPosition = Vector2.new(screenPos.X, screenPos.Y)
local distance = (screenPosition - screenCenter).Magnitude
if distance < shortestDistance then
shortestDistance = distance
nearestPlayer = player
end
end
end
end
end
return nearestPlayer
end
local function getNearestPlayer()
local nearestPlayer = nil
local shortestDistance = math.huge
local myRootPart = getHumanoidRootPart()
if not myRootPart then return nil end
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local theirRootPart = player.Character:FindFirstChild("HumanoidRootPart")
if theirRootPart then
local distance = (myRootPart.Position - theirRootPart.Position).Magnitude
if distance < shortestDistance then
shortestDistance = distance
nearestPlayer = player
end
end
end
end
return nearestPlayer
end
local function getNearestCar()
local nearestCar = nil
local shortestDistance = math.huge
local myRootPart = getHumanoidRootPart()
if not myRootPart then return nil end
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("VehicleSeat") or (obj:IsA("Model") and obj:FindFirstChild("VehicleSeat")) then
local model = obj:IsA("Model") and obj or obj.Parent
local primaryPart = model.PrimaryPart or model:FindFirstChildWhichIsA("BasePart")
if primaryPart then
local distance = (myRootPart.Position - primaryPart.Position).Magnitude
if distance < shortestDistance and distance < 100 then
shortestDistance = distance
nearestCar = model
end
end
end
end
return nearestCar
end
local function getAllNearbyPlayers(radius)
local nearbyPlayers = {}
local myRootPart = getHumanoidRootPart()
if not myRootPart then return nearbyPlayers end
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local theirRootPart = player.Character:FindFirstChild("HumanoidRootPart")
if theirRootPart then
local distance = (myRootPart.Position - theirRootPart.Position).Magnitude
if distance <= radius then
table.insert(nearbyPlayers, player)
end
end
end
end
return nearbyPlayers
end
-- Feature Functions
local function flingPlayer(targetPlayer)
local char = getCharacter()
local myRootPart = getHumanoidRootPart()
if not char or not myRootPart then return end
if not targetPlayer or not targetPlayer.Character then return end
local targetRootPart = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if not targetRootPart then return end
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Velocity = Vector3.new(0, Config.FlingPower, 0)
bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bodyVelocity.Parent = myRootPart
myRootPart.CFrame = targetRootPart.CFrame
wait(0.1)
bodyVelocity:Destroy()
myRootPart.CFrame = myRootPart.CFrame + Vector3.new(0, 5, 0)
end
local function flingNearestPlayer()
local target = getNearestPlayer()
if target then
flingPlayer(target)
print("šÆ Flinging: " .. target.Name)
else
print("ā No nearby players found")
end
end
local function flingAllNearby()
local nearbyPlayers = getAllNearbyPlayers(Config.FlingAllRadius)
if #nearbyPlayers == 0 then
print("ā No nearby players found")
return
end
print("š„ Flinging " .. #nearbyPlayers .. " nearby players")
for _, player in pairs(nearbyPlayers) do
spawn(function()
flingPlayer(player)
end)
wait(0.5)
end
end
-- Aimbot (FIXED - Single RGB circle, only locks players in front)
local aimbotConnection = nil
local fovUpdateConnection = nil
local function startAimbot()
Config.AimbotEnabled = true
-- Separate connection for FOV circle updates with RGB animation
fovUpdateConnection = RunService.RenderStepped:Connect(function()
local viewportSize = Camera.ViewportSize
local screenCenter = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2)
-- Update circle position and radius
FOVCircle.Position = screenCenter
FOVCircle.Radius = Config.AimbotFOV
FOVCircle.Visible = true
-- RGB color animation
rgbHue = rgbHue + 0.01
if rgbHue >= 1 then
rgbHue = 0
end
FOVCircle.Color = Color3.fromHSV(rgbHue, 1, 1)
end)
-- Main aimbot logic
aimbotConnection = RunService.RenderStepped:Connect(function()
if not Config.AimbotEnabled then return end
-- Only target players within the FOV circle and in front
local target = getNearestPlayerInFOV()
if not target or not target.Character then return end
local targetPart = getTargetPart(target)
if not targetPart then return end
-- Verify target is in front of camera (not behind)
local cameraLookVector = Camera.CFrame.LookVector
local targetDirection = (targetPart.Position - Camera.CFrame.Position).Unit
local dotProduct = cameraLookVector:Dot(targetDirection)
-- Only lock if target is in front (dot product > 0)
if dotProduct <= 0 then return end
-- Double check if target is still in FOV
if not isInFOV(targetPart.Position) then return end
-- Smoothly aim at target
Camera.CFrame = CFrame.new(Camera.CFrame.Position, targetPart.Position)
end)
print("šÆ Aimbot enabled (RGB circle, only targets players in FOV)")
end
local function stopAimbot()
Config.AimbotEnabled = false
FOVCircle.Visible = false
if aimbotConnection then
aimbotConnection:Disconnect()
aimbotConnection = nil
end
if fovUpdateConnection then
fovUpdateConnection:Disconnect()
fovUpdateConnection = nil
end
print("ā Aimbot disabled")
end
-- Fly
local flyConnection = nil
local flyBodyVelocity = nil
local flyBodyGyro = nil
local function startFly()
local char = getCharacter()
local myRootPart = getHumanoidRootPart()
if not char or not myRootPart then return end
Config.FlyEnabled = true
flyBodyVelocity = Instance.new("BodyVelocity")
flyBodyVelocity.Velocity = Vector3.new(0, 0, 0)
flyBodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
flyBodyVelocity.Parent = myRootPart
flyBodyGyro = Instance.new("BodyGyro")
flyBodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
flyBodyGyro.P = 9000
flyBodyGyro.Parent = myRootPart
flyConnection = RunService.RenderStepped:Connect(function()
if not Config.FlyEnabled then return end
local myRootPart = getHumanoidRootPart()
if not myRootPart then return end
local moveDirection = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.W) then
moveDirection = moveDirection + Camera.CFrame.LookVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then
moveDirection = moveDirection - Camera.CFrame.LookVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
moveDirection = moveDirection - Camera.CFrame.RightVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then
moveDirection = moveDirection + Camera.CFrame.RightVector
end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
moveDirection = moveDirection + Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
moveDirection = moveDirection - Vector3.new(0, 1, 0)
end
flyBodyVelocity.Velocity = moveDirection * Config.FlySpeed
flyBodyGyro.CFrame = Camera.CFrame
end)
print("āļø Fly enabled")
end
local function stopFly()
Config.FlyEnabled = false
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
if flyBodyVelocity then
flyBodyVelocity:Destroy()
flyBodyVelocity = nil
end
if flyBodyGyro then
flyBodyGyro:Destroy()
flyBodyGyro = nil
end
print("ā Fly disabled")
end
-- Car Throwing
local function throwCar()
local nearestCar = getNearestCar()
local myRootPart = getHumanoidRootPart()
if not nearestCar then
print("ā No nearby car found")
return
end
if not myRootPart then return end
print("š Throwing car: " .. nearestCar.Name)
for _, part in pairs(nearestCar:GetDescendants()) do
if part:IsA("BasePart") then
part.Anchored = false
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Velocity = Camera.CFrame.LookVector * Config.ThrowPower + Vector3.new(0, 50, 0)
bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bodyVelocity.Parent = part
game:GetService("Debris"):AddItem(bodyVelocity, 0.5)
end
end
end
-- Backshots Feature (Realistic back and forth motion)
local backshotsConnection = nil
local backshotsTarget = nil
local backshotsCurrentDistance = 0
local backshotsMovingForward = true
local function startBackshots()
Config.BackshotsEnabled = true
backshotsTarget = getNearestPlayer()
backshotsCurrentDistance = Config.BackshotsDistance
backshotsMovingForward = true
if not backshotsTarget then
print("ā No player found for backshots")
Config.BackshotsEnabled = false
return
end
print("š Backshots activated on: " .. backshotsTarget.Name)
backshotsConnection = RunService.RenderStepped:Connect(function()
if not Config.BackshotsEnabled then return end
local myRootPart = getHumanoidRootPart()
if not myRootPart then return end
if not backshotsTarget or not backshotsTarget.Character then
Config.BackshotsEnabled = false
return
end
local targetRootPart = backshotsTarget.Character:FindFirstChild("HumanoidRootPart")
if not targetRootPart then return end
-- Animate back and forth movement
if backshotsMovingForward then
backshotsCurrentDistance = backshotsCurrentDistance - (Config.BackshotsSpeed * 0.1)
if backshotsCurrentDistance <= 0.5 then
backshotsMovingForward = false
end
else
backshotsCurrentDistance = backshotsCurrentDistance + (Config.BackshotsSpeed * 0.1)
if backshotsCurrentDistance >= Config.BackshotsDistance then
backshotsMovingForward = true
end
end
-- Position behind the target with animated distance
local behindPosition = targetRootPart.CFrame * CFrame.new(0, 0, backshotsCurrentDistance)
-- Keep character facing the target's back
local lookAtTarget = CFrame.new(behindPosition.Position, targetRootPart.Position)
myRootPart.CFrame = lookAtTarget
-- Lock camera to view from behind and slightly above
local cameraOffset = targetRootPart.CFrame * CFrame.new(0, 3, Config.BackshotsDistance + 2)
Camera.CFrame = CFrame.new(cameraOffset.Position, targetRootPart.Position)
end)
end
local function stopBackshots()
Config.BackshotsEnabled = false
backshotsTarget = nil
backshotsCurrentDistance = 0
backshotsMovingForward = true
if backshotsConnection then
backshotsConnection:Disconnect()
backshotsConnection = nil
end
print("ā Backshots disabled")
end
-- Create Tabs
local combatTab = createTab("Combat", "āļø", 1)
local movementTab = createTab("Movement", "š", 2)
local trollTab = createTab("Troll", "š", 3)
local currentTab = "Combat"
local function showTab(tabName)
for _, child in pairs(ContentFrame:GetChildren()) do
if child:IsA("GuiObject") then
child:Destroy()
end
end
currentTab = tabName
if tabName == "Combat" then
combatTab.BackgroundColor3 = Color3.fromRGB(138, 43, 226)
combatTab.TextColor3 = Color3.fromRGB(255, 255, 255)
movementTab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
movementTab.TextColor3 = Color3.fromRGB(200, 200, 200)
trollTab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
trollTab.TextColor3 = Color3.fromRGB(200, 200, 200)
createToggleWithKeybind("Aimbot", "šÆ", "Aimbot", function(enabled)
if enabled then
startAimbot()
else
stopAimbot()
end
end)
createDropdown("Aimbot Target", {"Head", "Body", "Legs+Body", "Body+Head", "All"}, "Head", function(value)
Config.AimbotTarget = value
print("šÆ Aimbot target: " .. value)
end)
createSlider("Aimbot FOV", 50, 500, Config.AimbotFOV, function(value)
Config.AimbotFOV = value
end)
elseif tabName == "Movement" then
combatTab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
combatTab.TextColor3 = Color3.fromRGB(200, 200, 200)
movementTab.BackgroundColor3 = Color3.fromRGB(138, 43, 226)
movementTab.TextColor3 = Color3.fromRGB(255, 255, 255)
trollTab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
trollTab.TextColor3 = Color3.fromRGB(200, 200, 200)
createToggleWithKeybind("Fly Mode", "āļø", "Fly", function(enabled)
if enabled then
startFly()
else
stopFly()
end
end)
createSlider("Fly Speed", 50, 300, Config.FlySpeed, function(value)
Config.FlySpeed = value
end)
elseif tabName == "Troll" then
combatTab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
combatTab.TextColor3 = Color3.fromRGB(200, 200, 200)
movementTab.BackgroundColor3 = Color3.fromRGB(45, 45, 65)
movementTab.TextColor3 = Color3.fromRGB(200, 200, 200)
trollTab.BackgroundColor3 = Color3.fromRGB(138, 43, 226)
trollTab.TextColor3 = Color3.fromRGB(255, 255, 255)
createToggleWithKeybind("Backshots Mode", "š", "Backshots", function(enabled)
if enabled then
startBackshots()
else
stopBackshots()
end
end)
createSlider("Backshots Distance", 2, 8, Config.BackshotsDistance, function(value)
Config.BackshotsDistance = value
end)
createSlider("Backshots Speed", 0.5, 5, Config.BackshotsSpeed, function(value)
Config.BackshotsSpeed = value
end)
createButtonWithKeybind("Fling Nearest", "š„", "FlingNearest", flingNearestPlayer)
createButtonWithKeybind("Fling All Nearby", "š«", "FlingAll", flingAllNearby)
createButtonWithKeybind("Throw Car", "š", "ThrowCar", throwCar)
createSlider("Fling Power", 100, 1000, Config.FlingPower, function(value)
Config.FlingPower = value
end)
end
end
combatTab.MouseButton1Click:Connect(function() showTab("Combat") end)
movementTab.MouseButton1Click:Connect(function() showTab("Movement") end)
trollTab.MouseButton1Click:Connect(function() showTab("Troll") end)
-- Show Combat tab by default
showTab("Combat")
-- Keyboard Shortcuts (using customizable keybinds)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed or currentKeybindChanging then return end
if input.UserInputType ~= Enum.UserInputType.Keyboard then return end
-- Check each keybind dynamically
for action, keyCode in pairs(Keybinds) do
if input.KeyCode == keyCode then
if action == "FlingNearest" then
flingNearestPlayer()
elseif action == "Aimbot" then
if Config.AimbotEnabled then
stopAimbot()
else
startAimbot()
end
elseif action == "Fly" then
if Config.FlyEnabled then
stopFly()
else
startFly()
end
elseif action == "ThrowCar" then
throwCar()
elseif action == "FlingAll" then
flingAllNearby()
elseif action == "Backshots" then
if Config.BackshotsEnabled then
stopBackshots()
else
startBackshots()
end
end
break
end
end
end)
-- Cleanup
LocalPlayer.CharacterAdded:Connect(function()
stopFly()
stopAimbot()
stopBackshots()
end)
print("ā
Rpyf Troll Script loaded! (COMPLETE FIXED VERSION)")
print("š Hotkeys (customizable):")
print("F - Fling Nearest | G - Aimbot | H - Fly")
print("T - Throw Car | R - Fling All | B - Backshots")
print("š” Click the keybind buttons in GUI to customize!")
print("š Made by Rpyf")No comments yet for this script.



