GameSense: Roblox Ball Prediction Script
GameSense: Roblox Ball Prediction Script
░██████╗░░█████╗░███╗░░░███╗███████╗░██████╗███████╗███╗░░██╗░██████╗███████╗
██╔════╝░██╔══██╗████╗░████║██╔════╝██╔════╝██╔════╝████╗░██║██╔════╝██╔════╝
██║░░██╗░███████║██╔████╔██║█████╗░░╚█████╗░█████╗░░██╔██╗██║╚█████╗░█████╗░░
██║░░╚██╗██╔══██║██║╚██╔╝██║██╔══╝░░░╚═══██╗██╔══╝░░██║╚████║░╚═══██╗██╔══╝░░
╚██████╔╝██║░░██║██║░╚═╝░██║███████╗██████╔╝███████╗██║░╚███║██████╔╝███████╗
░╚═════╝░╚═╝░░╚═╝╚═╝░░░░░╚═╝╚══════╝╚═════╝░╚══════╝╚═╝░░╚══╝╚═════╝░╚══════╝
-- ORGIGINAL CREATOR: @__woj__
-- keep the fuckass credits or gay and love cock
]]
--///// Services
local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Debris = game:GetService("Debris")
local TextChatService = game:GetService("TextChatService")
local HTTPService = game:GetService("HttpService")
--///// UI Library
local repo = "[Link]
local Library = loadstring(game:HttpGet(repo .. "[Link]"))()
local ThemeManager = loadstring(game:HttpGet(repo .. "addons/[Link]"))()
local SaveManager = loadstring(game:HttpGet(repo .. "addons/[Link]"))()
[Link] = false
[Link] = true
--///// Variables
--// Tables
local Dump = {
BallPrediction = {}
}
--// Miscs
local IS_4ASIDE = false
local IS_LEGACY = false
local NO_FOLDER = false
--// Instances
local LocalPlayer = [Link]
local Character = [Link]
local Humanoid = Character:WaitForChild("Humanoid")
local HRP = Character:WaitForChild("HumanoidRootPart")
--///// Functions
local function findLandingPosition(Vo, startingPosition, acc, max)
local seconds = quadraticSolver((0.5 * -acc), Vo.Y, startingPosition.Y)
local lastPosition = startingPosition
for i = 1, max do
local t = seconds * (1/max * i)
local nextPosition = findPositionAtTime(Vo, t, startingPosition, acc)
ReachMainGroupbox:AddToggle("ReachMasterToggle", {
Text = "Enabled",
Tooltip = "Master toggle for reach.",
})
ReachMainGroupbox:AddToggle("ReachVisualizerToggle", {
Text = "Visualizer",
Tooltip = "Visualizer of the reach box.",
}):AddColorPicker("ReachVisualizerColor", {
Default = [Link](1, 1, 1),
Title = "Visualizer Color.",
Transparency = 0.9,
})
if [Link] then
CreateReachTab(ReachMainTab, "Main")
else
CreateReachTab(ReachShootTab, "Shoot")
CreateReachTab(ReachPassTab, "Pass")
CreateReachTab(ReachLongTab, "Long")
CreateReachTab(ReachTackleTab, "Tackle")
CreateReachTab(ReachDribbleTab, "Dribble")
CreateReachTab(ReachSaveTab, "Save")
end
BallPredictionGroupbox:AddToggle("BallPredToggle", {
Text = "Ball Prediction",
Tooltip = "Predicts where the ball will land.",
Default = false,
Visible = true,
}):AddColorPicker("BallPredTrailColor", {
Default = [Link](1, 1, 1),
Title = " Color",
Transparency = 0,
})
BallPredictionGroupbox:AddSlider("BallPredTrailSize", {
Text = "Trail Size",
Default = 0.1,
Min = 0.01,
Max = 0.5,
Rounding = 2,
Tooltip = "Changes the trail thickness.",
})
BallPredictionGroupbox:AddSlider("BallPredHZ", {
Text = "Refresh Rate",
Default = 0.1,
Min = 0,
Max = 1,
Rounding = 2,
Tooltip = "Changes how often the ball prediction will refresh.",
})
BallPredictionGroupbox:AddSlider("BallPredThreshold", {
Text = "Prediction Threshold",
Default = 25,
Min = 0,
Max = 100,
Rounding = 0,
Tooltip = "Sets the minimal ball velocity to show the prediction trail.",
})
BallPredictionGroupbox:AddSlider("BallPredAccuracy", {
Text = "Prediction Accuracy",
Default = 5,
Min = 1,
Max = 10,
Rounding = 0,
Tooltip = "Sets how many raycast will be fired per prediction refresh to
ensure accracy. WARNING: The higher the value the more resources it will take to
calculate.",
})
BallMacrosGroupbox:AddToggle("HomboloMacroToggle", {
Text = "Hombolo Macro",
Tooltip = "Makes the ball always be over your head",
Default = false,
Visible = true,
}):AddKeyPicker("HomboloMacroKeybind", {
Default = "P",
SyncToggleState = true,
Mode = "Toggle",
VisualsOtherTab:AddToggle("DumbassToggle", {
Text = "Dumbass on your screen",
Tooltip = "What do you even want to know?",
Default = false,
Visible = true,
})
ConfigGroupbox:AddToggle("KeybindMenuOpen", {
Default = [Link],
Text = "Open Keybind Menu",
Callback = function(value)
[Link] = value
end,
})
ConfigGroupbox:AddToggle("ShowCustomCursor", {
Text = "Custom Cursor",
Default = true,
Callback = function(Value)
[Link] = Value
end,
})
ConfigGroupbox:AddDropdown("NotificationSide", {
Values = { "Left", "Right" },
Default = "Right",
Callback = function(Value)
Library:SetNotifySide(Value)
end,
})
ConfigGroupbox:AddDropdown("DPIDropdown", {
Values = { "50%", "75%", "100%", "125%", "150%", "175%", "200%" },
Default = "100%",
Callback = function(Value)
Value = Value:gsub("%%", "")
local DPI = tonumber(Value)
Library:SetDPIScale(DPI)
end,
})
ConfigGroupbox:AddDivider()
ConfigGroupbox:AddLabel("Menu bind")
:AddKeyPicker("MenuKeybind", { Default = "RightShift", NoUI = true, Text =
"Menu keybind" })
-- ConfigGroupbox:AddButton("Unload", function()
-- Library:Unload()
-- end)
[Link] = [Link]
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({"MenuKeybind"})
ThemeManager:SetFolder("gamesense-mps")
SaveManager:SetFolder("gamesense-mps/mps")
SaveManager:BuildConfigSection([Link])
ThemeManager:ApplyToTab([Link])
SaveManager:LoadAutoloadConfig()
[Link]:OnChanged(function()
[Link] = [Link]
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_ATMO") then
Lighting:FindFirstChild("GS_ATMO").Color = [Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_ATMO") then
Lighting:FindFirstChild("GS_ATMO").Decay = [Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_ATMO") then
Lighting:FindFirstChild("GS_ATMO").Glare = [Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_ATMO") then
Lighting:FindFirstChild("GS_ATMO").Haze = [Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_CCOR") then
Lighting:FindFirstChild("GS_CCOR").TintColor =
[Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_CCOR") then
Lighting:FindFirstChild("GS_CCOR").Brightness =
[Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_CCOR") then
Lighting:FindFirstChild("GS_CCOR").Contrast =
[Link]
end
end)
[Link]:OnChanged(function()
if Lighting:FindFirstChild("GS_CCOR") then
Lighting:FindFirstChild("GS_CCOR").Saturation =
[Link]
end
end)
[Link]:Connect(function(NewCharacter)
Character = NewCharacter
Humanoid = Character:WaitForChild("Humanoid")
HRP = NewCharacter:WaitForChild("HumanoidRootPart")
if [Link]:FindFirstChild("ToolManagment") then
MainModule = [Link]:WaitForChild("ToolManagment")
elseif [Link]:FindFirstChild("module") then
MainModule = [Link]:WaitForChild("module")
end
pcall(function()
for ID, Function in pairs(getgc(true)) do
if typeof(Function) == "function" then
local FunctionName = [Link](Function, "n")
if FunctionName == "reachcheck" then
hookfunction(Function, newcclosure(function()
return false
end))
elseif FunctionName == "touchingcheck" then
hookfunction(Function, newcclosure(function()
return false
end))
elseif FunctionName == "IsBallBoundingHitbox" then
hookfunction(Function, newcclosure(function()
return true
end))
end
end
end
end)
pcall(function()
local OldTouchingParts
OldTouchingParts = hookmetamethod([Link]("Part"), "__namecall",
newcclosure(function(Self, ...)
local Method = getnamecallmethod()
if not checkcaller() and Method == "GetTouchingParts" then
if (NO_FOLDER and [Link](_BALLS, Self)) or
[Link](BallsFolder:GetChildren(), Self) then
local TouchingParts = OldTouchingParts(Self, ...)
for ID, Limb in pairs(Character:GetChildren()) do
if Limb:IsA("Part") then
[Link](TouchingParts, Limb)
end
end
return TouchingParts
end
end
return OldTouchingParts(Self, ...)
end))
end)
if NO_FOLDER then
[Link]:Connect(function(Ball)
_BALLS = {}
for ID, Ball in pairs(workspace:GetChildren()) do
if [Link] == "fakeBaIlExpIoiter" or [Link] == "fakeBall" or
[Link] == "MPS" or [Link] == "TPS" or [Link] == "CSF" or [Link] ==
"l̸̼̔il̷͎̅ ḭ̴͘iḮ̷̙il̶̼̈́ il̴̘̕Ĩ̵̹į̴̌" then
[Link](_BALLS, Ball)
end
end
end)
[Link]:Connect(function(Ball)
_BALLS = {}
for ID, Ball in pairs(workspace:GetChildren()) do
if [Link] == "fakeBaIlExpIoiter" or [Link] == "fakeBall" or
[Link] == "MPS" or [Link] == "TPS" or [Link] == "CSF" or [Link] ==
"l̸̼̔il̷͎̅ ḭ̴͘iḮ̷̙il̶̼̈́ il̴̘̕Ĩ̵̹į̴̌" then
[Link](_BALLS, Ball)
end
end
end)
end
[Link]:Connect(function(DeltaTime)
if HRP and Humanoid then
if [Link] then
local ReachType = nil
local InfReach = false
if [Link] and [Link] and
[Link] then
ReachType = "Main"
if [Link] then
InfReach = true
end
elseif Character:FindFirstChild("Shoot") or
Character:FindFirstChild("Kick") and [Link] then
ReachType = "Shoot"
if [Link] then
InfReach = true
end
elseif Character:FindFirstChild("Pass") and
[Link] then
ReachType = "Pass"
if [Link] then
InfReach = true
end
elseif Character:FindFirstChild("Long") and
[Link] then
ReachType = "Long"
if [Link] then
InfReach = true
end
elseif Character:FindFirstChild("Tackle") and
[Link] then
ReachType = "Tackle"
if [Link] then
InfReach = true
end
elseif Character:FindFirstChild("Dribble") and
[Link] then
ReachType = "Dribble"
if [Link] then
InfReach = true
end
elseif Character:FindFirstChild("Save") or
Character:FindFirstChild("Clear") or Character:FindFirstChild("GK") and
[Link] then
ReachType = "Save"
if [Link] then
InfReach = true
end
end
if ReachType == nil or InfReach then
[Link] = [Link](0, 0, 0)
[Link] = [Link]([Link], [Link],
[Link])
else
[Link] =
[Link](Options["Reach"..ReachType.."SizeX"].Value,
Options["Reach"..ReachType.."SizeY"].Value,
Options["Reach"..ReachType.."SizeZ"].Value)
[Link] = [Link] *
[Link](Options["Reach"..ReachType.."OffsetX"].Value,
Options["Reach"..ReachType.."OffsetY"].Value,
Options["Reach"..ReachType.."OffsetZ"].Value)
end
[Link] = [Link]
if [Link] then
[Link] =
[Link]
else
[Link] = 1
end
[Link](function()
[Link]:Wait()
local TouchingBalls
if InfReach then
if NO_FOLDER then
TouchingBalls = _BALLS
else
TouchingBalls = BallsFolder:GetChildren()
end
else
TouchingBalls = workspace:GetPartsInPart(ReachBox,
ReachOverlapParams)
end
[Link](TouchingBalls, function(a, b) return ([Link]
- [Link]).Magnitude < ([Link] - [Link]).Magnitude end)
if #TouchingBalls > 0 then
local Ball = TouchingBalls[1]
if Toggles["Reach"..ReachType.."CompToggle"].Value
then
if Ball:FindFirstChild("Owner") or
Ball:FindFirstChild("owner") then
local OwnerTag =
Ball:WaitForChild("Owner") or Ball:WaitForChild("owner")
if [Link] == LocalPlayer or
[Link] == [Link] or [Link] == [Link] then
return
end
end
end
for ID, Limb in pairs(Character:GetChildren()) do
if Limb:IsA("Part") then
firetouchinterest(Limb, Ball, 0)
firetouchinterest(Limb, Ball, 1)
end
end
end
end)
else
[Link] = [Link](0, 0, 0)
[Link] = [Link]([Link], [Link], [Link])
end
end
end)
[Link]:Connect(function(DeltaTime)
if HRP and Humanoid then
if [Link] and [Link] then
[Link]:PivotTo([Link] +
[Link] * DeltaTime * [Link])
end
end
end)
[Link]:Connect(function(Key, GameProcessed)
if not GameProcessed then
if [Link] == [Link].G then
if not [Link] then
if Character:FindFirstChild("Shoot") and
[Link] then
pcall(function()
local rlCFrame = [Link](0.5, -1.5, -1) *
[Link](0.3490658503988659, 0, 0)
local raCFrame = [Link](1.5, 0.5, 0.5) *
[Link](-3.141592653589793, 4, 4)
local laCFrame = [Link](-1.5, 0.5, -0.5) *
[Link](-3.141592653589793, 4, -4)
require(MainModule).EditWeld("Right Leg",
rlCFrame)
require(MainModule).EditWeld("Right Arm",
raCFrame)
require(MainModule).EditWeld("Left Arm",
laCFrame)
end)
local TouchEvent
TouchEvent = Character["Right
Leg"].Touched:Connect(function(Ball)
if (NO_FOLDER and [Link](_BALLS, Ball)) or
[Link](BallsFolder:GetChildren(), Ball) then
if IS_4ASIDE then
require(MainModule).shoot(Ball,
[Link] * [Link] + [Link](0,
[Link], 0), [Link]([Link], [Link], [Link]),
false)
elseif IS_LEGACY then
[Link](function()
while [Link]([Link]) do
ClearDump("BallPrediction")
if [Link] then
if NO_FOLDER then
for ID, Ball in pairs(_BALLS) do
if [Link] >
[Link] then
PredictBall(Ball)
end
end
else
for ID, Ball in pairs(BallsFolder:GetChildren()) do
if [Link] >
[Link] then
PredictBall(Ball)
end
end
end
end
end
end)
-- this is so fucking ass i dont know on what drug i was on while making this
if PingRemote and PingHandler then
[Link](function()
while [Link]([Link]) do
if [Link] then
PingRemote:FireServer([Link]([Link] +
[Link](-[Link], [Link]), 15,
[Link]))
end
end
end)
end