Ro-Ghoul PvP Aimbot

Ro-Ghoul PvP Aimbot

Made by OminousVibes

22.7K views 12.1K downloads 1 year ago

This new aimbot script is for PVP in Ro-Ghoul its very op and the settings are changeable in the script. This script is also open-sourced. To toggle the Aimbot click "H" and for movement prediction click "J", but you can change these in the script. Hope you enjoy!

Script Features:

This script was last modified 1 year ago
download
--BROUGHT TO YOU BY RSCRIPTS.NET--

_G.Configurations = {
    -- KeyBinds --
    ToggleKeyBind = Enum.KeyCode.H, --You can change this
    PredictionKeyBind = Enum.KeyCode.J; --You can change this

    -- Settings --
    FOV = 250; --You can change this

    -- Filters --
    Filters = {
        "Player1"
    };
    FilterType = "Whitelist";

    -- Aimbot sensitivity --
    Gyro = {
        Power = 15000,                  -- Higher the number, the faster you will spin.
        Dampening = 0,                  -- The lower it is, the more it will look "snappy"
    };
}
-- // Constants \\ --
-- [ Services ] --
local Services = setmetatable({}, {__index = function(Self, Index)
    local NewService = game:GetService(Index)
    if NewService then
        Self[Index] = NewService
    end
    return NewService
end})

-- [ Modules ] --
local Drawing = loadstring(game:HttpGet("https://raw.githubusercontent.com/iHavoc101/Genesis-Studios/main/Modules/DrawingAPI.lua", true))()

-- [ Game Settings ] --
local GameSettings = UserSettings():GetService("UserGameSettings")

-- [ LocalPlayer ] --
local LocalPlayer = Services.Players.LocalPlayer
local Camera = workspace.CurrentCamera

-- [ Interface ] --
local FOVCircle = Drawing.new("Circle", {
    Thickness = 2.5,
    Color = Color3.fromRGB(150, 150, 150),
    NumSides = 20,
    Radius = _G.Configurations.FOV
})

local Target = Drawing.new("Triangle", {
    Thickness = 5,
    Color = Color3.fromRGB(0, 200, 255)
})

-- // Variables \\ --
local SilentAimToggle = true
local PredictionMultiplier = 5

local ClosestTarget = nil

local BodyGyro = Instance.new("BodyGyro")
BodyGyro.P = _G.Configurations.Gyro.Power
BodyGyro.D = _G.Configurations.Gyro.Dampening
BodyGyro.MaxTorque = Vector3.new(0, math.huge, 0)

-- // Functions \\ --
local function ValidCharacter(Character)
    return Character and (Character:FindFirstChildWhichIsA("Humanoid") and Character:FindFirstChildWhichIsA("Humanoid").Health ~= 0) or false
end

local function GetTarget(Distance, IgnoreList)
    local MousePosition = Services.UserInputService:GetMouseLocation()

    local Closest = nil
    local Position = Vector2.new(0, 0)
    local ShortestDistance = Distance or math.huge

    for i,v in ipairs(Services.Players:GetPlayers()) do
        if _G.Configurations.FilterType == "Whitelist" and table.find(_G.Configurations.Filters, v.Name) then
            continue
        elseif _G.Configurations.FilterType == "Blacklist" and table.find(_G.Configurations.Filters, v.Name) == nil then
            continue
        end

        if v ~= LocalPlayer and ValidCharacter(v.Character) then
            local ViewportPosition, OnScreen = Camera:WorldToViewportPoint(v.Character.PrimaryPart.Position)
            local Magnitude = (Vector2.new(ViewportPosition.X, ViewportPosition.Y) - MousePosition).Magnitude

            if OnScreen == false then
                continue
            end

            if Magnitude < ShortestDistance and #Camera:GetPartsObscuringTarget({v.Character.PrimaryPart.Position}, {LocalPlayer.Character, v.Character}) <= 1 then
                Closest = v
                Position = ViewportPosition
                ShortestDistance = Magnitude
            end
        end
    end

    return Closest, Position, ShortestDistance
end

-- // Events \\ --
Services.RunService.Heartbeat:Connect(function()

    -- Aim --
    local Closest, Position, Distance = GetTarget(_G.Configurations.FOV)
    local MouseLocation = Services.UserInputService:GetMouseLocation()

    ClosestTarget = Closest
    if Closest then
        BodyGyro.Parent = LocalPlayer.Character.PrimaryPart

        local Velocity = Closest.Character.PrimaryPart:GetVelocityAtPosition(Closest.Character.PrimaryPart.Position)
        local Prediction = (Velocity * Vector3.new(1, 0, 1)).Unit * PredictionMultiplier
        if Velocity.Magnitude == 0 then
            Prediction = Vector3.new(0, 0, 0)
        end

        if SilentAimToggle == true and Prediction.Magnitude >= 0 then
            BodyGyro.CFrame = CFrame.new(LocalPlayer.Character.PrimaryPart.Position, Closest.Character.PrimaryPart.Position + Prediction)
        else
            BodyGyro.Parent = nil
        end

        Target.PointA = Vector2.new(Position.X - 25, Position.Y + 25)
        Target.PointB = Vector2.new(Position.X + 25, Position.Y + 25)
        Target.PointC = Vector2.new(Position.X, Position.Y - 25)
    else
        BodyGyro.Parent = nil

        Target.PointA = Vector2.new(MouseLocation.X - 25, MouseLocation.Y + 25)
        Target.PointB = Vector2.new(MouseLocation.X + 25, MouseLocation.Y + 25)
        Target.PointC = Vector2.new(MouseLocation.X, MouseLocation.Y - 25)
    end

    -- Update --
    BodyGyro.P = _G.Configurations.Gyro.Power
    BodyGyro.D = _G.Configurations.Gyro.Dampening

    -- Drawing --
    FOVCircle.Position = MouseLocation
end)

-- // Binds \\ --
Services.RunService:BindToRenderStep("SetCameraRotation", Enum.RenderPriority.Camera.Value + 1, function()
    if SilentAimToggle == true and ClosestTarget ~= nil then
        GameSettings.RotationType = Enum.RotationType.MovementRelative
    end
end)

Services.ContextActionService:BindAction("ToggleSilent", function(actionName, InputState, inputObject)
    if InputState == Enum.UserInputState.End then
        return
    end
    SilentAimToggle = not SilentAimToggle
    Services.StarterGui:SetCore("SendNotification", {
        Title = "Silent Aim";
        Text = "Enabled: " .. tostring(SilentAimToggle);
        Icon = SilentAimToggle and "rbxassetid://6031068430" or "rbxassetid://6031068429";
        Duration = 5;
        Button1 = "Dismiss"
    })
end, false, _G.Configurations.ToggleKeyBind)

Services.ContextActionService:BindAction("TogglePrediction", function(actionName, InputState, inputObject)
    if InputState == Enum.UserInputState.End then
        return
    end
    PredictionMultiplier = PredictionMultiplier == 5 and 20 or 5
    Services.StarterGui:SetCore("SendNotification", {
        Title = "Prediction";
        Text = "Enabled: " .. tostring(PredictionMultiplier == 20);
        Icon = "rbxassetid://6034287516";
        Duration = 5;
        Button1 = "Dismiss"
    })
end, false, _G.Configurations.PredictionKeyBind)

0 Comments

Log in here to comment


Similiar Scripts

Hungry for more? Check out these Roblox Scripts!
20.1K views
1 year ago
Krush PVP Kill All
Suero#0538
Krush PVP Kill All
MARIO Krush PVP
Krush PVP Kill All
16.5K views
6 months ago
FORCE Script | PVP Helper
Stefanuk12
FORCE Script | PVP Helper
FORCE PRE ALPHA
FORCE Script | PVP Helper
23.5K views
2 years ago
Ro Ghoul Auto-Farm
z4gS
Ro Ghoul Auto-Farm
Ro Ghoul Auto-Farm
26K views
1 year ago
Ro-Ghoul Auto-Farm
Weismann#8896
Ro-Ghoul Auto-Farm
PS ADMIN Ro Ghoul ALPHA
Ro-Ghoul Auto-Farm
18.3K views
1 year ago
Ro-Ghoul Redeem Codes
JRL
Ro-Ghoul Redeem Codes
ReEyepatch Ro Ghoul ALPHA
Ro-Ghoul Redeem Codes
20.7K views
1 year ago
JRLs Ro Ghoul GUI
JRL#8417
JRLs Ro Ghoul GUI
WEAPON STORAGE INF REDO FOCUS Ro Ghoul ALPHA
JRLs Ro Ghoul GUI


Top