Blox Fruits is an immensely popular game on the Roblox platform, boasting a vast user base. This action-adventure game revolves around a pirate theme, where players engage in combat against a variety of enemies and challenging bosses. Exploring islands and consuming different fruits are essential for advancing your character’s level.
What is Roblox Script?
Roblox Scripts typically refer to snippets of code that offer automation advantages within the game. Independent developers and scripters create these scripts, which are not officially endorsed by the Roblox platform. Nevertheless, you can still utilize these scripts through Roblox executors such as Arceus X, Hydrogen Executor, JJSploit, Fluxus executor, and others.
How to Use Roblox Script?
- Launch Roblox and join your desired game.
- Click the “Copy” button to duplicate the script code.
- Paste the script code into your preferred Roblox executor.
- Execute the script code and savor the enhanced experience.
--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] getgenv().QBAimbotSettings = { Enabled = true, ToggleKeybind = 'Q', AngleBased = false, DesiredAngle = 30, YOffset = 1.25, XZOffset = 0, PowerBased = true, DesiredPower = 94, BoundsTolerance = 15, maxAirTime = 20, JumpPassKeybind = 'LeftControl', JumpPassHeight = 6.36+1.65, MaxYOffset = 12 } getgenv().ballSpawnOffset = Vector3.new(0,3,0) getgenv().ModeConfigs = { Dot = { ['stationary'] = { YOffset = 0, XZOffset = 0 }, ['streak'] = { YOffset = 8, XZOffset = 0 }, ['post/corner'] = { YOffset = 5, XZOffset = .5 }, ['slant'] = { YOffset = 0, XZOffset = .5 }, ['in/out'] = { YOffset = 0, XZOffset = .5 }, ['curl/comeback'] = { YOffset = 0, XZOffset = 0 } }, Dive = { ['stationary'] = { YOffset = 0, XZOffset = 0 }, ['streak'] = { YOffset = 9.5, XZOffset = .5 }, ['post/corner'] = { YOffset = 8.5, XZOffset = .5 }, ['slant'] = { YOffset = 8.5, XZOffset = .5 }, ['in/out'] = { YOffset = 0, XZOffset = .5 }, ['curl/comeback'] = { YOffset = 0, XZOffset = 0 } }, Mag = { ['stationary'] = { YOffset = 0, XZOffset = 0 }, ['streak'] = { YOffset = 10, XZOffset = .5 }, ['post/corner'] = { YOffset = 10, XZOffset = .5 }, ['slant'] = { YOffset = 0, XZOffset = .5 }, ['in/out'] = { YOffset = 0, XZOffset = .5 }, ['curl/comeback'] = { YOffset = 0, XZOffset = 0 } } } getgenv().QBAimbotSettings.TimeToggleKeybind = 'J' local practiceMode = game.PlaceId == 8206123457 local botMode = false local get=function(x)return game:GetService(x)end local players=game:FindFirstChildOfClass("Players")local ws=game:FindFirstChildOfClass("Workspace")local rs=game:FindFirstChildOfClass("ReplicatedStorage")local rus=get'RunService'local uis=get'UserInputService'local http=get'HttpService'local ts=get'TeleportService'local lighting=get'Lighting'local coregui=get'CoreGui'local plr=players.LocalPlayer local cf=CFrame local v3=Vector3 local v2=Vector2 local ud2=UDim2 local c3=Color3 local rgb=c3.fromRGB local step=rus.Stepped local rstep=rus.RenderStepped local heartbeat=rus.Heartbeat local keys=Enum.KeyCode local states=Enum.HumanoidStateType local JSON={stringify=function(x)return http:JSONEncode(x)end,parse=function(x)return http:JSONDecode(x)end}local char=plr.Character or plr.CharacterAdded:Wait()local hum,hrp,torso local function onCharAdded(c)hum=c:WaitForChild'Humanoid'hrp=c:WaitForChild'HumanoidRootPart'torso=char:WaitForChild(hum.RigType==Enum.HumanoidRigType.R6 and'Torso'or'UpperTorso')end onCharAdded(char)plr.CharacterAdded:Connect(onCharAdded)local function create(class,parent,props,children)if not class then return end props=props or {} children=children or {} local obj=Instance.new(class,parent)for prop,name in pairs(props)do obj[prop]=name end for _,child in pairs(children)do child.Parent=obj end return obj end local function bind(key,func)uis.InputBegan:Connect(function(k,gpe)if not gpe and k.KeyCode==key then func()end end)end local function find(tbl,value)local func=type(value)== 'function' and value or function(x)return v==x end for _,v in pairs(tbl)do if func(v)then return v end end return end local function indexOf(tbl,value)for i,v in pairs(tbl)do if v==value then return i end end return end local function draw(type,props)local d=Drawing.new(type)for i,v in pairs(props)do local s,e=pcall(function()d[i]=v end)if not s then warn('Error when setting property "'..i..'": '..e)end end return d end local function handleChar(p, func) local char2 = p.Character if char2 then local hum2 = char2:FindFirstChild('Humanoid') local hrp2 = char2:FindFirstChild('HumanoidRootPart') if hum2 and hrp2 then func(char2, hum2, hrp2) end end end local atan = math.atan local sqrt = math.sqrt local AkiInterface = Instance.new("ScreenGui") local MainContainer = Instance.new("Frame") MainContainer.Visible = false local Container = Instance.new("Frame") local ModeContainer = Instance.new("Frame") local KeybindTips = Instance.new("Frame") local Switch = Instance.new("TextLabel") local UIListLayout = Instance.new("UIListLayout") local UIPadding = Instance.new("UIPadding") local UICorner = Instance.new("UICorner") local Subcontainer = Instance.new("Frame") local UIListLayout_2 = Instance.new("UIListLayout") local UIPadding_2 = Instance.new("UIPadding") local ValueContainer = Instance.new("Frame") local ModeText = Instance.new("TextLabel") local Name = Instance.new("TextLabel") local UIListLayout_3 = Instance.new("UIListLayout") local PowerContainer = Instance.new("Frame") local Subcontainer_2 = Instance.new("Frame") local UIListLayout_4 = Instance.new("UIListLayout") local UIPadding_3 = Instance.new("UIPadding") local ValueContainer_2 = Instance.new("Frame") local PowerText = Instance.new("TextLabel") local Name_2 = Instance.new("TextLabel") local UICorner_2 = Instance.new("UICorner") local AirtimeContainer = Instance.new("Frame") local UICorner_3 = Instance.new("UICorner") local KeybindTips_2 = Instance.new("Frame") local TextLabel = Instance.new("TextLabel") local UIListLayout_5 = Instance.new("UIListLayout") local UIPadding_4 = Instance.new("UIPadding") local Subcontainer_3 = Instance.new("Frame") local UIListLayout_6 = Instance.new("UIListLayout") local UIPadding_5 = Instance.new("UIPadding") local ValueContainer_3 = Instance.new("Frame") local AirtimeText = Instance.new("TextLabel") local Name_3 = Instance.new("TextLabel") local UIListLayout_7 = Instance.new("UIListLayout") AkiInterface.Name = "Aki Interface" AkiInterface.Parent = players.LocalPlayer:WaitForChild("PlayerGui") AkiInterface.ZIndexBehavior = Enum.ZIndexBehavior.Sibling AkiInterface.DisplayOrder = 1000000000 AkiInterface.ResetOnSpawn = false MainContainer.Name = "MainContainer" MainContainer.Parent = AkiInterface MainContainer.AnchorPoint = Vector2.new(0.200000003, 0) MainContainer.BackgroundColor3 = Color3.fromRGB(0, 0, 0) MainContainer.BackgroundTransparency = 1.000 MainContainer.BorderSizePixel = 0 MainContainer.Position = UDim2.new(0.449999988, 0, 0.100000001, 0) MainContainer.Size = UDim2.new(0, 355, 0, 130) Container.Name = "Container" Container.Parent = MainContainer Container.AnchorPoint = Vector2.new(0.5, 0) Container.BackgroundColor3 = Color3.fromRGB(0, 0, 0) Container.BackgroundTransparency = 1.000 Container.BorderSizePixel = 0 Container.Position = UDim2.new(0.491549283, 0, 0.100000001, 0) Container.Size = UDim2.new(0.983098567, 0, 0.800000012, 0) ModeContainer.Name = "ModeContainer" ModeContainer.Parent = Container ModeContainer.BackgroundColor3 = Color3.fromRGB(35, 35, 35) ModeContainer.BorderSizePixel = 0 ModeContainer.LayoutOrder = 2 ModeContainer.Position = UDim2.new(0.187679082, 0, 0.0192307699, 0) ModeContainer.Size = UDim2.new(0, 117, 0, 100) KeybindTips.Name = "KeybindTips" KeybindTips.Parent = ModeContainer KeybindTips.AnchorPoint = Vector2.new(0.5, 0) KeybindTips.BackgroundColor3 = Color3.fromRGB(50, 50, 75) KeybindTips.BackgroundTransparency = 1.000 KeybindTips.BorderSizePixel = 0 KeybindTips.Position = UDim2.new(0.5, 0, 0, 0) KeybindTips.Size = UDim2.new(1, 0, 0.25, 0) Switch.Name = "Switch" Switch.Parent = KeybindTips Switch.AnchorPoint = Vector2.new(0.5, 0.5) Switch.BackgroundColor3 = Color3.fromRGB(50, 50, 75) Switch.BackgroundTransparency = 1.000 Switch.BorderSizePixel = 0 Switch.LayoutOrder = 2 Switch.Position = UDim2.new(0.5, 0, 0.5, 0) Switch.Size = UDim2.new(1, 0, 1, 0) Switch.Font = Enum.Font.SourceSansLight Switch.Text = "T" Switch.TextColor3 = Color3.fromRGB(125, 125, 125) Switch.TextScaled = true Switch.TextSize = 14.000 Switch.TextTransparency = 0.100 Switch.TextWrapped = true Switch.TextXAlignment = Enum.TextXAlignment.Right UIListLayout.Parent = KeybindTips UIListLayout.FillDirection = Enum.FillDirection.Horizontal UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center UIPadding.Parent = KeybindTips UIPadding.PaddingLeft = UDim.new(0, 5) UIPadding.PaddingRight = UDim.new(0, 5) UIPadding.PaddingTop = UDim.new(0, 5) UICorner.CornerRadius = UDim.new(0, 5) UICorner.Parent = ModeContainer Subcontainer.Name = "Subcontainer" Subcontainer.Parent = ModeContainer Subcontainer.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Subcontainer.BackgroundTransparency = 1.000 Subcontainer.BorderSizePixel = 0 Subcontainer.LayoutOrder = 1 Subcontainer.Size = UDim2.new(1, 0, 1, 0) UIListLayout_2.Parent = Subcontainer UIListLayout_2.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout_2.VerticalAlignment = Enum.VerticalAlignment.Center UIPadding_2.Parent = Subcontainer UIPadding_2.PaddingBottom = UDim.new(0, 10) UIPadding_2.PaddingLeft = UDim.new(0, 10) UIPadding_2.PaddingRight = UDim.new(0, 10) UIPadding_2.PaddingTop = UDim.new(0, 10) ValueContainer.Name = "ValueContainer" ValueContainer.Parent = Subcontainer ValueContainer.AnchorPoint = Vector2.new(0.5, 0.5) ValueContainer.BackgroundColor3 = Color3.fromRGB(50, 50, 75) ValueContainer.BackgroundTransparency = 1.000 ValueContainer.BorderSizePixel = 0 ValueContainer.Size = UDim2.new(1, 0, 0.75, 0) ModeText.Name = "ModeText" ModeText.Parent = ValueContainer ModeText.AnchorPoint = Vector2.new(0.5, 0.5) ModeText.BackgroundColor3 = Color3.fromRGB(50, 50, 75) ModeText.BackgroundTransparency = 1.000 ModeText.BorderSizePixel = 0 ModeText.Position = UDim2.new(0.5, 0, 0.582499921, 0) ModeText.Size = UDim2.new(1, 0, 0.552, 0) ModeText.Font = Enum.Font.SourceSansSemibold ModeText.Text = "Dot" ModeText.TextColor3 = Color3.fromRGB(230, 230, 230) ModeText.TextScaled = true ModeText.TextSize = 18.000 ModeText.TextTransparency = 0.100 ModeText.TextWrapped = true Name.Name = "Name" Name.Parent = Subcontainer Name.AnchorPoint = Vector2.new(0.5, 0.5) Name.BackgroundColor3 = Color3.fromRGB(50, 50, 75) Name.BackgroundTransparency = 1.000 Name.BorderSizePixel = 0 Name.LayoutOrder = 1 Name.Position = UDim2.new(0.5, 0, 0.800000012, 0) Name.Size = UDim2.new(1, 0, 0.25, 0) Name.Font = Enum.Font.SourceSansSemibold Name.Text = "Mode" Name.TextColor3 = Color3.fromRGB(150, 150, 150) Name.TextScaled = true Name.TextSize = 14.000 Name.TextTransparency = 0.100 Name.TextWrapped = true UIListLayout_3.Parent = Container UIListLayout_3.FillDirection = Enum.FillDirection.Horizontal UIListLayout_3.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout_3.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout_3.VerticalAlignment = Enum.VerticalAlignment.Center UIListLayout_3.Padding = UDim.new(0, 5) PowerContainer.Name = "PowerContainer" PowerContainer.Parent = Container PowerContainer.BackgroundColor3 = Color3.fromRGB(35, 35, 35) PowerContainer.BorderSizePixel = 0 PowerContainer.LayoutOrder = 2 PowerContainer.Position = UDim2.new(0.645070434, 0, 0.0192307699, 0) PowerContainer.Size = UDim2.new(0, 106, 0, 100) Subcontainer_2.Name = "Subcontainer" Subcontainer_2.Parent = PowerContainer Subcontainer_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Subcontainer_2.BackgroundTransparency = 1.000 Subcontainer_2.BorderSizePixel = 0 Subcontainer_2.LayoutOrder = 1 Subcontainer_2.Size = UDim2.new(1, 0, 1, 0) UIListLayout_4.Parent = Subcontainer_2 UIListLayout_4.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout_4.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout_4.VerticalAlignment = Enum.VerticalAlignment.Center UIPadding_3.Parent = Subcontainer_2 UIPadding_3.PaddingBottom = UDim.new(0, 10) UIPadding_3.PaddingLeft = UDim.new(0, 10) UIPadding_3.PaddingRight = UDim.new(0, 10) UIPadding_3.PaddingTop = UDim.new(0, 10) ValueContainer_2.Name = "ValueContainer" ValueContainer_2.Parent = Subcontainer_2 ValueContainer_2.AnchorPoint = Vector2.new(0.5, 0.5) ValueContainer_2.BackgroundColor3 = Color3.fromRGB(50, 50, 75) ValueContainer_2.BackgroundTransparency = 1.000 ValueContainer_2.BorderSizePixel = 0 ValueContainer_2.Size = UDim2.new(1, 0, 0.75, 0) PowerText.Name = "PowerText" PowerText.Parent = ValueContainer_2 PowerText.AnchorPoint = Vector2.new(0.5, 0.5) PowerText.BackgroundColor3 = Color3.fromRGB(50, 50, 75) PowerText.BackgroundTransparency = 1.000 PowerText.BorderSizePixel = 0 PowerText.Position = UDim2.new(0.5, 0, 0.574166656, 0) PowerText.Size = UDim2.new(1, 0, 0.65166676, 0) PowerText.Font = Enum.Font.SourceSansSemibold PowerText.Text = "40" PowerText.TextColor3 = Color3.fromRGB(230, 230, 230) PowerText.TextScaled = true PowerText.TextSize = 20.000 PowerText.TextTransparency = 0.100 PowerText.TextWrapped = true Name_2.Name = "Name" Name_2.Parent = Subcontainer_2 Name_2.AnchorPoint = Vector2.new(0.5, 0.5) Name_2.BackgroundColor3 = Color3.fromRGB(50, 50, 75) Name_2.BackgroundTransparency = 1.000 Name_2.BorderSizePixel = 0 Name_2.LayoutOrder = 1 Name_2.Position = UDim2.new(0.5, 0, 0.800000012, 0) Name_2.Size = UDim2.new(1, 0, 0.25, 0) Name_2.Font = Enum.Font.SourceSansSemibold Name_2.Text = "Power" Name_2.TextColor3 = Color3.fromRGB(150, 150, 150) Name_2.TextScaled = true Name_2.TextSize = 14.000 Name_2.TextTransparency = 0.100 Name_2.TextWrapped = true UICorner_2.CornerRadius = UDim.new(0, 5) UICorner_2.Parent = PowerContainer AirtimeContainer.Name = "AirtimeContainer" AirtimeContainer.Parent = Container AirtimeContainer.BackgroundColor3 = Color3.fromRGB(35, 35, 35) AirtimeContainer.BorderSizePixel = 0 AirtimeContainer.LayoutOrder = 1 AirtimeContainer.Position = UDim2.new(0.102816902, 0, 0.0192307699, 0) AirtimeContainer.Size = UDim2.new(0, 93, 0, 100) UICorner_3.CornerRadius = UDim.new(0, 5) UICorner_3.Parent = AirtimeContainer KeybindTips_2.Name = "KeybindTips" KeybindTips_2.Parent = AirtimeContainer KeybindTips_2.AnchorPoint = Vector2.new(0.5, 0) KeybindTips_2.BackgroundColor3 = Color3.fromRGB(50, 50, 75) KeybindTips_2.BackgroundTransparency = 1.000 KeybindTips_2.BorderSizePixel = 0 KeybindTips_2.Position = UDim2.new(0.5, 0, 0, 0) KeybindTips_2.Size = UDim2.new(1, 0, 0.25, 0) TextLabel.Name = "-" TextLabel.Parent = KeybindTips_2 TextLabel.AnchorPoint = Vector2.new(0.5, 0.5) TextLabel.BackgroundColor3 = Color3.fromRGB(50, 50, 75) TextLabel.BackgroundTransparency = 1.000 TextLabel.BorderSizePixel = 0 TextLabel.LayoutOrder = 1 TextLabel.Position = UDim2.new(0.790322602, 0, 0.600000024, 0) TextLabel.Size = UDim2.new(1.05421686, 0, 1, 0) TextLabel.Font = Enum.Font.SourceSansLight TextLabel.Text = " F R" TextLabel.TextColor3 = Color3.fromRGB(125, 125, 125) TextLabel.TextScaled = true TextLabel.TextSize = 14.000 TextLabel.TextTransparency = 0.100 TextLabel.TextWrapped = true TextLabel.TextXAlignment = Enum.TextXAlignment.Left UIListLayout_5.Parent = KeybindTips_2 UIListLayout_5.FillDirection = Enum.FillDirection.Horizontal UIListLayout_5.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout_5.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout_5.VerticalAlignment = Enum.VerticalAlignment.Center UIPadding_4.Parent = KeybindTips_2 UIPadding_4.PaddingLeft = UDim.new(0, 5) UIPadding_4.PaddingRight = UDim.new(0, 5) UIPadding_4.PaddingTop = UDim.new(0, 5) Subcontainer_3.Name = "Subcontainer" Subcontainer_3.Parent = AirtimeContainer Subcontainer_3.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Subcontainer_3.BackgroundTransparency = 1.000 Subcontainer_3.BorderSizePixel = 0 Subcontainer_3.LayoutOrder = 1 Subcontainer_3.Size = UDim2.new(1, 0, 1, 0) UIListLayout_6.Parent = Subcontainer_3 UIListLayout_6.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout_6.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout_6.VerticalAlignment = Enum.VerticalAlignment.Center UIPadding_5.Parent = Subcontainer_3 UIPadding_5.PaddingBottom = UDim.new(0, 10) UIPadding_5.PaddingLeft = UDim.new(0, 10) UIPadding_5.PaddingRight = UDim.new(0, 10) UIPadding_5.PaddingTop = UDim.new(0, 10) ValueContainer_3.Name = "ValueContainer" ValueContainer_3.Parent = Subcontainer_3 ValueContainer_3.AnchorPoint = Vector2.new(0.5, 0.5) ValueContainer_3.BackgroundColor3 = Color3.fromRGB(50, 50, 75) ValueContainer_3.BackgroundTransparency = 1.000 ValueContainer_3.BorderSizePixel = 0 ValueContainer_3.Size = UDim2.new(1, 0, 0.75, 0) AirtimeText.Name = "AirtimeText" AirtimeText.Parent = ValueContainer_3 AirtimeText.AnchorPoint = Vector2.new(0.5, 0.5) AirtimeText.BackgroundColor3 = Color3.fromRGB(50, 50, 75) AirtimeText.BackgroundTransparency = 1.000 AirtimeText.BorderSizePixel = 0 AirtimeText.Position = UDim2.new(0.5, 0, 0.574166656, 0) AirtimeText.Size = UDim2.new(1, 0, 0.65166676, 0) AirtimeText.Font = Enum.Font.SourceSansSemibold AirtimeText.Text = "2s" AirtimeText.TextColor3 = Color3.fromRGB(230, 230, 230) AirtimeText.TextScaled = true AirtimeText.TextSize = 20.000 AirtimeText.TextTransparency = 0.100 AirtimeText.TextWrapped = true Name_3.Name = "Name" Name_3.Parent = Subcontainer_3 Name_3.AnchorPoint = Vector2.new(0.5, 0.5) Name_3.BackgroundColor3 = Color3.fromRGB(50, 50, 75) Name_3.BackgroundTransparency = 1.000 Name_3.BorderSizePixel = 0 Name_3.LayoutOrder = 1 Name_3.Position = UDim2.new(0.5, 0, 0.800000012, 0) Name_3.Size = UDim2.new(1, 0, 0.25, 0) Name_3.Font = Enum.Font.SourceSansSemibold Name_3.Text = "Airtime" Name_3.TextColor3 = Color3.fromRGB(150, 150, 150) Name_3.TextScaled = true Name_3.TextSize = 14.000 Name_3.TextTransparency = 0.100 Name_3.TextWrapped = true UIListLayout_7.Parent = MainContainer UIListLayout_7.HorizontalAlignment = Enum.HorizontalAlignment.Center UIListLayout_7.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout_7.VerticalAlignment = Enum.VerticalAlignment.Center UIListLayout_7.Padding = UDim.new(0, 5) local Mode = ModeText local function angleToHitCoords(distXZ, targetHeightRel, projSpeed, grav) local lobAngle = atan((projSpeed^2 + sqrt(projSpeed^4 - grav*(grav*distXZ^2 + 2*targetHeightRel*projSpeed^2)))/(grav*distXZ)) local projHeightAtTarget = distXZ * math.tan(lobAngle) - (grav * distXZ^2) / (2 * projSpeed^2 * math.cos(lobAngle)^2) local correctedTargetHeightRel = targetHeightRel - projHeightAtTarget local normalAngle = atan((projSpeed^2 - sqrt(projSpeed^4 - grav*(grav*distXZ^2 + 2*correctedTargetHeightRel*projSpeed^2)))/(grav*distXZ)) return normalAngle, lobAngle end local function calcAirTime_fromAngle(projSpeed, angleDeg, initialHeight, grav) local thetaRad = math.rad(angleDeg) local v0x = projSpeed * math.cos(thetaRad) local v0y = projSpeed * math.sin(thetaRad) local tMax = v0y / grav local totalTimeOfFlight = 0 if initialHeight >= 0 then local tRise = v0y / grav totalTimeOfFlight = tRise + tMax else totalTimeOfFlight = 2 * tMax end return totalTimeOfFlight end local function getAirTimeForPower(power, distXZ,targetHeightRel,grav,useLobAngle) local useLobAngle = useLobAngle or false local normalAngle,lobAngle = angleToHitCoords(distXZ,targetHeightRel,power,grav) normalAngle = math.deg(normalAngle) lobAngle = math.deg(lobAngle) local airTime = calcAirTime_fromAngle(power,useLobAngle and lobAngle or normalAngle,-targetHeightRel,grav) return airTime end local modes = {} for i,_ in pairs(ModeConfigs) do table.insert(modes,i) end local mode = modes[1] local modeIndex = 1 uis.InputBegan:Connect(function(io,gpe) if not gpe then local k = io.KeyCode if k == keys.T then modeIndex+=1 if modeIndex > #modes then modeIndex = 1 end local lastMode = mode mode = modes[modeIndex] Mode.Text = mode end end end) local function applyRouteThrowConfig(currentRoute) for routeName,config in pairs(ModeConfigs[Mode.Text]) do if routeName == currentRoute then for i,v in pairs(config) do QBAimbotSettings[i] = v end end end end local stats = get('Stats') local function getPing() return stats.PerformanceStats.Ping:GetValue() end local function getServerPing() return stats.Network.ServerStatsItem['Data Ping']:GetValue() end local function clampPosInBounds(pos) if practiceMode then return pos end local BoundsTolerance = QBAimbotSettings.BoundsTolerance local boundX = 80+BoundsTolerance local boundZ = 180+BoundsTolerance local clampedPos = Vector3.new(math.clamp(pos.X,-boundX,boundX),pos.Y,math.clamp(pos.Z,-boundZ,boundZ)) return clampedPos end local function calcVelComponents(startPos, targetPos, grav, T) local displacement = targetPos - startPos local xDisplacement = Vector2.new(displacement.X, displacement.Z).Magnitude local yDisplacement = displacement.Y local horizontalVelocity = xDisplacement / T local verticalVelocity = (yDisplacement + (0.5 * grav * T * T)) / T return horizontalVelocity, verticalVelocity end local function calcVel(startPos, targetPos, grav, T) local horizontalVel, verticalVel = calcVelComponents(startPos, targetPos, grav, T) local diff3 = targetPos - startPos local diff3_XZ = diff3 * Vector3.new(1, 0, 1) local dir3_XZ = diff3_XZ / diff3_XZ.Magnitude local vel3_XZ = dir3_XZ * horizontalVel local vel3 = vel3_XZ + Vector3.new(0, verticalVel, 0) return vel3 end local function estimateTime(startPos, targetPos, maxSpeed) local displacement = targetPos - startPos local distance = (displacement*Vector3.new(1,0,1)).Magnitude local estimatedTime = distance / maxSpeed return estimatedTime end local function calcAngleFromVel3(initialVelocity) local horizontalVelocity = Vector3.new(initialVelocity.X, 0, initialVelocity.Z) local horizontalSpeed = horizontalVelocity.Magnitude local launchAngle = math.atan(initialVelocity.Y / horizontalSpeed) return launchAngle end local function calcTimeFromAngle(angle, initialVelocity, startPosition, endPosition, gravity) local radianAngle = angle local horizontalDistance = (endPosition - startPosition).magnitude local verticalDistance = endPosition.Y - startPosition.Y local timeOfFlight = (2 * horizontalDistance * math.sin(radianAngle)) / initialVelocity local verticalVelocity = initialVelocity * math.sin(radianAngle) - gravity * timeOfFlight local timeToMaxHeight = verticalVelocity / gravity if verticalDistance > 0 then timeOfFlight = timeOfFlight + timeToMaxHeight + math.sqrt((2 * verticalDistance) / gravity) else local timeToLowestPoint = (verticalVelocity + math.sqrt(verticalVelocity * verticalVelocity + 2 * gravity * verticalDistance)) / gravity timeOfFlight = timeOfFlight + timeToLowestPoint end return timeOfFlight end local function calcProjSpeed_From_HorizontalVel_And_Angle(angle, horizontalVel) local radianAngle = angle local initialVelocity = horizontalVel / math.cos(radianAngle) return initialVelocity end local function angleIsLargeEnough(startPosition, targetPosition, launchAngle, launchSpeed, grav) local horizontalDistance = (targetPosition - startPosition).magnitude local timeToReachTarget = horizontalDistance / (launchSpeed * math.cos(math.rad(launchAngle))) local targetHeight = targetPosition.Y - startPosition.Y local verticalVelocity = (targetHeight - (0.5 * -grav * (timeToReachTarget ^ 2))) / timeToReachTarget local maxAngle = math.deg(math.asin(verticalVelocity / launchSpeed)) if launchAngle <= maxAngle then return true else return false end end local function calculateAccuracyOfNumber(value, ideal, upper, lower) return 1 - math.abs(ideal - value) / math.abs(upper - lower) end local function calcRoute(targetPlr) local routeName = '' local routeAccuracy = 0 local char2 = targetPlr.Character if char2 then local hrp2 = char2:FindFirstChild('HumanoidRootPart') local hum2 = char2:FindFirstChild('Humanoid') if hrp2 and hum2 then local md = hum2.MoveDirection if md.Magnitude == 0 then routeName = 'stationary' routeAccuracy = 1 else local streakVector = ((hrp2.Position-hrp.Position)*v3.new(0,0,1)).Unit local dotProd = md:Dot(streakVector) if dotProd >= .8 then routeName = 'streak' routeAccuracy = calculateAccuracyOfNumber(dotProd,1,1,.8) elseif dotProd >= .45 then routeName = 'post/corner' routeAccuracy = calculateAccuracyOfNumber(dotProd,.5,.8,.45) elseif dotProd >= .2 then routeName = 'slant' routeAccuracy = calculateAccuracyOfNumber(dotProd,.3,.45,.2) elseif dotProd >= -.2 then routeName = 'in/out' routeAccuracy = calculateAccuracyOfNumber(dotProd,0,.2,-.2) elseif dotProd < -.2 then routeName = 'curl/comeback' routeAccuracy = calculateAccuracyOfNumber(dotProd,-1,.2,-.2) end end end end return routeName,math.clamp(routeAccuracy,0,1) end local function predictPos(plr2,T) local ch2 = plr2.Character if ch2 then local hrp2 = ch2:FindFirstChild('HumanoidRootPart') local hum2 = ch2:FindFirstChild('Humanoid') if hrp2 and hum2 then local speed = uis:IsKeyDown(keys.C) and 0 or hrp2.Velocity.Magnitude local md = hum2.MoveDirection local currentPos = hrp2.Position local isJumpPass = uis:IsKeyDown(keys[QBAimbotSettings.JumpPassKeybind]) local addedHeightForJump = isJumpPass and QBAimbotSettings.JumpPassHeight or 0 local YOffset = QBAimbotSettings.YOffset+addedHeightForJump local offset = md*QBAimbotSettings.XZOffset + v3.new(0,YOffset,0) local futurePos = currentPos + md*speed*T + offset return futurePos else print('HRP OR HUM NOT FOUND') end else print('NO CHARACTER FOUND') end end local function predictBotPos(botChar,T) local hrp2 = botChar.HumanoidRootPart local hum2 = botChar.Humanoid if hrp2 and hum2 then local speed = 20 local md = hrp2.CFrame.lookVector local currentPos = hrp2.Position local addedHeightForJump = uis:IsKeyDown(keys[QBAimbotSettings.JumpPassKeybind]) and QBAimbotSettings.JumpPassHeight or 0 local offset = md*QBAimbotSettings.XZOffset + v3.new(0,QBAimbotSettings.YOffset + addedHeightForJump,0) local futurePos = currentPos + md*speed*T + offset return futurePos end end local throwDelay = .15 local releaseTime = .15 spawn(function() while wait(.1) do releaseTime = throwDelay + (getPing()+getServerPing())/1000 end end) local values = practiceMode or rs:WaitForChild('Values') local status = practiceMode or values.Status local playType = practiceMode or values.PlayType local QB = practiceMode or values.QB local ball = practiceMode or values.Ball local throwable = practiceMode or values.Throwable local function getNearestPlayerToMouse() local cc = ws.CurrentCamera local target = nil local dist = math.huge for i,v in pairs(players:GetPlayers()) do if v.Name ~= plr.Name then if v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild("HumanoidRootPart") and v.Team == plr.Team then local screenpoint,onscreen = cc:WorldToViewportPoint(v.Character.HumanoidRootPart.Position) local check = (Vector2.new(uis:GetMouseLocation().X,uis:GetMouseLocation().Y)-Vector2.new(screenpoint.X,screenpoint.Y)).magnitude if check < dist then target = v dist = check end end end end return target end local function beamProjectile(g, v0, x0, t1) local c = 0.5*0.5*0.5; local p3 = 0.5*g*t1*t1 + v0*t1 + x0; local p2 = p3 - (g*t1*t1 + v0*t1)/3; local p1 = (c*g*t1*t1 + 0.5*v0*t1 + x0 - c*(x0+p3))/(3*c) - p2; local curve0 = (p1 - x0).magnitude; local curve1 = (p2 - p3).magnitude; local b = (x0 - p3).unit; local r1 = (p1 - x0).unit; local u1 = r1:Cross(b).unit; local r2 = (p2 - p3).unit; local u2 = r2:Cross(b).unit; b = u1:Cross(r1).unit; local cf1 = CFrame.new( x0.x, x0.y, x0.z, r1.x, u1.x, b.x, r1.y, u1.y, b.y, r1.z, u1.z, b.z ) local cf2 = CFrame.new( p3.x, p3.y, p3.z, r2.x, u2.x, b.x, r2.y, u2.y, b.y, r2.z, u2.z, b.z ) return curve0, -curve1, cf1, cf2; end local impossibleThrow = false local angleBased = QBAimbotSettings.AngleBased local desiredAngle = QBAimbotSettings.DesiredAngle local angleMarginError = 1 local angleTimeIncrement = .05 local min_angleTimeIncrement = .001 local ANGLE_THROWING_AT = 0 local grav = 28 local ballTracer = draw("Line", { Visible = false, Thickness = 3, Transparency = .75 }) local function updateAirTimeText() AirtimeText.Text = tostring(math.round(Time*100)/100).."s" end local T = nil local Angle_TimeChangeDir = 0 local Angle_TimeChangeDir___switchCount = 0 local _angleTimeIncrement = angleTimeIncrement local angleTime_redoCounter = 0 local powerTime_redoCounter = 0 local updateThrowInfo_debounce = false local redirectionTime = 1 local function updateThrowInfo(targetPos,_Time,isRedo,originalTime) local isRedo = isRedo or false local originalTime = originalTime or _Time T = _Time or .01 if angleTime_redoCounter >= 20 and angleBased then warn('Retry limit reached') angleBased = false T = originalTime end updateThrowInfo_debounce = true local fbTool = char:WaitForChild('Football') local fb = fbTool:WaitForChild('Handle') local fbRemote = fb:FindFirstChildOfClass('RemoteEvent') local originPos = char:WaitForChild('Head').Position + ballSpawnOffset local vel3 = calcVel(originPos,targetPos, grav, T) local originPosAdjusted = originPos - vel3.Unit*5 local throwDir = vel3.Unit local pow = vel3.Magnitude local adjustedPower = math.round(math.clamp(pow, 0, 95)) PowerText.Text = tostring(adjustedPower) local targetPlayer = getNearestPlayerToMouse() local routeName,routeAcc = calcRoute(targetPlayer) applyRouteThrowConfig(routeName) local angle = calcAngleFromVel3(vel3) local angleDeg = math.deg(angle) if angleBased and math.max(angleDeg,desiredAngle) - math.min(angleDeg,desiredAngle) >= angleMarginError and angleTime_redoCounter < 20 then if isRedo then angleTime_redoCounter+=1 warn(angleTime_redoCounter) end local last__Angle_TimeChangeDir = Angle_TimeChangeDir if angleDeg < desiredAngle then Angle_TimeChangeDir = 1 T+=_angleTimeIncrement*T elseif angleDeg > desiredAngle then Angle_TimeChangeDir = -1 T-=_angleTimeIncrement*T end updateThrowInfo(targetPos,T,true,originalTime) end Time = T Angle_TimeChangeDir = 0 Angle_TimeChangeDir___switchCount = 0 _angleTimeIncrement = angleTimeIncrement angleTime_redoCounter = 0 if QBAimbotSettings.PowerBased then pcall(function() local distXZ = (originPos - targetPos).Magnitude local targetHeightRel = targetPos.Y - originPos.Y local _airTime = getAirTimeForPower(QBAimbotSettings.DesiredPower, distXZ, targetHeightRel, grav) if not tostring(_airTime):lower():find('nan') then Time = _airTime end end) end updateAirTimeText() local roundedAngleDeg = math.round(angleDeg*100)/100 if targetPlayer then local targetPos,onScreen = ws.CurrentCamera:WorldToViewportPoint(targetPos) if onScreen then TargetLabel.Text = tostring(targetPlayer.Name) TimeLabel.Text = targetPlayer.Team ~= nil and tostring(targetPlayer.Team) or "No Team" ballTracer.From = uis.GetMouseLocation(uis) ballTracer.To = v2.new(targetPos.X, targetPos.Y) ballTracer.Color = rgb(255, 255, 255) local mousePos = uis:GetMouseLocation() local framePosition = UDim2.new(0, mousePos.X, 0, mousePos.Y) Frame.Position = framePosition ballTracer.Visible = true Frame.Visible = true MainContainer.Visible = true else Frame.Visible = false ballTracer.Visible = false MainContainer.Visible = false end end beam.Parent = ws updateBeam(originPos,vel3,T,grav) updateThrowInfo_debounce = false return { Power = pow, Angle = angleDeg } end local invalidPower_retryDir = 1 local function toggleTime() if getgenv().Time == 1 then getgenv().Time = 2 else getgenv().Time = 1 end updateAirTimeText() print("Time toggled to: " .. getgenv().Time) end local invalidPower_retryDir = 1 local throw throw = function(targetPos,_Time) if impossibleThrow then return end local fbTool = char:WaitForChild('Football') local fb = fbTool:WaitForChild('Handle') local fbRemote = fb:FindFirstChildOfClass('RemoteEvent') local originPos = char:WaitForChild('Head').Position + ballSpawnOffset T = _Time or .01 local vel3 = calcVel(originPos,targetPos, grav, T) local originPosAdjusted = originPos - vel3.Unit*5 local throwDir = vel3.Unit local pow = vel3.Magnitude local powerRoundedClamped = math.clamp(math.round(pow),1,95) local angle = calcAngleFromVel3(vel3) local angleDeg = math.deg(angle) ANGLE_THROWING_AT = math.round(angleDeg*100)/100 if angleBased == false and pow > 95 then if T > QBAimbotSettings.maxAirTime or T <= 0 then invalidPower_retryDir = -invalidPower_retryDir end T+=.01*invalidPower_retryDir throw(targetPos,T) else if not impossibleThrow then if practiceMode then fbRemote:FireServer('Clicked', originPosAdjusted, originPosAdjusted+throwDir*10000, pow, pow) else fbRemote:FireServer('Clicked', originPosAdjusted, originPosAdjusted+throwDir*10000, 95, pow) end end end end local TargetPos getgenv().Time = 1 -- Ball airtime. Set to 1 for dots, keep at 2 for mag or dives local ready = false local htest = create('Hint',ws,{Text=''}) spawn(function() while task.wait() do htest.Text = Time if tostring(Time):lower():find('nan') then Time = 2 end end end) if not practiceMode then local function onPlayStart() local function isQB() return plr.PlayerGui:FindFirstChild('BallGui') end if isQB() then warn('IS QB!') while QBAimbotSettings.Enabled and step:wait() and isQB() and status.Value == 'InPlay' and throwable.Value do ready = true local targetPlr = getNearestPlayerToMouse() local routeName,routeAcc = calcRoute(targetPlr) applyRouteThrowConfig(routeName) local _time = Time TargetPos = clampPosInBounds(predictPos(targetPlr,_time+releaseTime)) end ready = false ballTracer.Visible = false Frame.Visible = false MainContainer.Visible = false else warn('not qb.') end end status.Changed:Connect(function() warn('Status changed to',status.Value) if status.Value == 'InPlay' then onPlayStart() elseif status.Value == 'DeadPlay' or status.Value == 'PrePlay' then beam.Parent = nil end end) end spawn(function() while practiceMode and step:wait() do pcall(function() if char:FindFirstChild('Football') then MainContainer.Visible = true if botMode then local botCh = ws.npcwr.b['bot 3'] TargetPos = clampPosInBounds(predictBotPos(botCh,Time+releaseTime)) else targetPlayer = getNearestPlayerToMouse() local routeName,routeAcc = calcRoute(targetPlayer) applyRouteThrowConfig(routeName) if targetPlayer then TargetPos = clampPosInBounds(predictPos(targetPlayer,Time+releaseTime)) else print('NO TARGET PLAYER') end end else MainContainer.Visible = false Frame.Visible = false ballTracer.Visible = false end end) end end) local stopVisuals = true uis.InputBegan:Connect(function(io,gpe) local isReady = practiceMode and char:FindFirstChild('Football') or ready if isReady and QBAimbotSettings.Enabled and not gpe then if io.UserInputType == Enum.UserInputType.Keyboard then local k = io.KeyCode if k == keys.R then if angleBased then desiredAngle = math.clamp(desiredAngle+5,5,90) elseif QBAimbotSettings.PowerBased then QBAimbotSettings.DesiredPower = math.clamp(QBAimbotSettings.DesiredPower+5,5,95) else Time = math.clamp(Time + .25, .25, QBAimbotSettings.maxAirTime) updateAirTimeText() end elseif k == keys.F then if angleBased then desiredAngle = math.clamp(desiredAngle-5,5,90) elseif QBAimbotSettings.PowerBased then QBAimbotSettings.DesiredPower = math.clamp(QBAimbotSettings.DesiredPower-5,5,95) else Time = math.clamp(Time - .25, .25, QBAimbotSettings.maxAirTime) updateAirTimeText() end elseif k == keys[QBAimbotSettings.TimeToggleKeybind] then toggleTime() end elseif io.UserInputType == Enum.UserInputType.MouseButton1 and TargetPos then if not impossibleThrow then if QBAimbotSettings.Enabled == true then spawn(playThrowAnim) wait(throwDelay) stopVisuals = true end pcall(function() if QBAimbotSettings.Enabled == true then throw(TargetPos,Time) else return end end) delay(Time,function() stopVisuals = false end) end elseif io.UserInputType == keys[QBAimbotSettings.ToggleKeybind] then QBAimbotSettings.Enabled = not QBAimbotSettings.Enabled end end end) local originalYOffset = QBAimbotSettings.YOffset while task.wait() do local isReady = practiceMode and char:FindFirstChild('Football') or ready if isReady and not stopVisuals then visualPart.Position = TargetPos or visualPart.Position if not updateThrowInfo_debounce then local succ,err = pcall(function() local throwData = updateThrowInfo(TargetPos,Time) if throwData.Power > 95 then local angle45diff = math.max(throwData.Angle,45)-math.min(throwData.Angle,45) if angle45diff <= 1 then warnThrowImpossible() else if throwData.Angle > 45 then Time = math.clamp(Time-.25,.25,QBAimbotSettings.maxAirTime) elseif throwData.Angle < 45 then Time = math.clamp(Time+.25,.25,QBAimbotSettings.maxAirTime) end end updateAirTimeText() end end) if not succ then warn('ERROR:',err) end end end if isReady then local distToTargetXZ = ((hrp.Position-TargetPos)*v3.new(1,0,1)).Magnitude local canHit = true if angleBased and distToTargetXZ <= 30 then angleBased = false QBAimbotSettings.YOffset = 1.25 elseif not canHit then angleBased = false warn("Can't hit target.") elseif not angleBased and canHit then angleBased = QBAimbotSettings.AngleBased QBAimbotSettings.YOffset = originalYOffset end end end warn("[AKI] QB Aimbot Loaded.")
Description
Akihub-QB-Aimbot-Fixed (SOLARA SUPPORTED) Original Leaked Code : https://robloxscripts.com/football-fusion-2-leaked-qb-aimbot-script-from-akihub/ Credit : https://v3rm.net/members/ggbro.51890/ Original: fbRemote:FireServer(‘Clicked’, originPosAdjusted, originPosAdjusted+throwDir*10000, pow, pow) (Detected) Fixed : fbRemote:FireServer(‘Clicked’, originPosAdjusted, originPosAdjusted+throwDir*10000, 95, pow) (Undetected) Minor Interface Issues (UI): – Replaced game.Players with FindFirstChildOfClass or you could use GetService which would also work. – Ball traces won’t work with solara as far as my concern. have not tried with wave but should most likley work. Updates: I Added a keybind (J) to change from bullet to mag since most of the functions return nil and the UI not being able to show due to solara being a shit executor. Wave recommended for better experience. 1 = Bullet, 2 = Mag/Dive You can change the keybind here: getgenv().QBAimbotSettings.TimeToggleKeybind = ‘J’