-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[ BOMBRIL HUB — SILENT AIM + ESP + FLING ]] local Rayfield for _,u in ipairs{'https://sirius.menu/rayfield','https://raw.githubusercontent.com/SiriusSoftwareLtd/Rayfield/main/source'}do local ok,r=pcall(function()return loadstring(game:HttpGet(u,true))()end) if ok and r then Rayfield=r break end end if not Rayfield then warn("[BOMBRIL] Rayfield falhou")return end local P=game:GetService("Players") local UIS=game:GetService("UserInputService") local RS=game:GetService("RunService") local WS=game:GetService("Workspace") local Debris=game:GetService("Debris") local LP=P.LocalPlayer local cam=WS.CurrentCamera local MOBILE=UIS.TouchEnabled and not UIS.KeyboardEnabled local C={Aim=false,Mode="Center",Part="Head",Dist=300,FOV=1500,Smooth=0,Team=true,Wall=false,ShowFOV=true,ShowTgt=true, ESP=false,ETeam=true,EBox=true,ECorner=false,EFill=false,EName=true,EHp=true,EHpTxt=false,EDist=true,ETr=false,EHead=false,EMax=1000, ECol=Color3.fromRGB(0,255,136),EColE=Color3.fromRGB(255,60,60),ETrCol=Color3.fromRGB(255,255,255), -- FLING FlingOn=true,FlingScript=true,FlingStr=850,FlingHits=0,FlingTarget=nil} local W=Rayfield:CreateWindow({Name="BOMBRIL HUB",LoadingTitle="BOMBRIL",LoadingSubtitle="HUB",ConfigurationSaving={Enabled=true,FolderName="BombrilHub",FileName="cfg"},KeySystem=false,Theme="DarkBlue"}) local function D(c,p)local ok,o=pcall(function()return Drawing.new(c)end)if not ok or not o then return nil end if p then for k,v in pairs(p)do pcall(function()o[k]=v end)end end return o end local fov=D("Circle",{Thickness=1,Filled=false,Visible=false,Color=Color3.fromRGB(0,255,136)}) if fov then pcall(function()fov.NumSides=64 end)end local dot=D("Circle",{Radius=4,Filled=true,Visible=false,Color=Color3.fromRGB(255,60,60)}) local function ally(p)if not C.Team then return false end if not p.Team or not LP.Team then return false end return p.Team==LP.Team end local function los(pt)if not C.Wall then return true end local o=cam.CFrame.Position local rp=RaycastParams.new()rp.FilterType=Enum.RaycastFilterType.Exclude rp.FilterDescendantsInstances={LP.Character,pt.Parent}return WS:Raycast(o,pt.Position-o,rp)==nil end local function aimp(ch)if C.Part=="Head"then return ch:FindFirstChild("Head")elseif C.Part=="HumanoidRootPart"then return ch:FindFirstChild("HumanoidRootPart")else return ch:FindFirstChild("Torso")or ch:FindFirstChild("UpperTorso")end end local function ref()if C.Mode=="Cursor"and not MOBILE then return UIS:GetMouseLocation()end return Vector2.new(cam.ViewportSize.X/2,cam.ViewportSize.Y/2)end local tPos,tPart local function upd() if not C.Aim then tPos,tPart=nil,nil return end local r=ref()local best,bd=nil,math.huge local cp=cam.CFrame.Position for _,p in ipairs(P:GetPlayers())do if p~=LP and not ally(p)then local ch=p.Character if ch then local h=ch:FindFirstChildOfClass("Humanoid") if h and h.Health>0 then local pt=aimp(ch) if pt and (pt.Position-cp).Magnitude<=C.Dist and los(pt)then local s,on=cam:WorldToViewportPoint(pt.Position) if on then local d=(Vector2.new(s.X,s.Y)-r).Magnitude if d<=C.FOV and d0 and a[2]:Lerp(nd,1-C.Smooth)or nd return old(s,unpack(a)) end end return old(s,...) end)) end) -- ============ FLING CORE ============ WS.ChildAdded:Connect(function(model) if not C.FlingScript then return end if model.Name~="GrabParts" then return end local partInfo=model:FindFirstChild("GrabPart") if not partInfo then return end local weld=partInfo:FindFirstChild("WeldConstraint") if not weld or not weld.Part1 then return end local part=weld.Part1 local vel=Instance.new("BodyVelocity") vel.Parent=part C.FlingTarget=part model:GetPropertyChangedSignal("Parent"):Connect(function() if not model.Parent then if C.FlingOn then vel.MaxForce=Vector3.new(1e9,1e9,1e9) vel.Velocity=cam.CFrame.LookVector*C.FlingStr C.FlingHits=C.FlingHits+1 else vel.MaxForce=Vector3.zero end Debris:AddItem(vel,1) end end) end) local E={} local function mk(p) local d={} d.bx=D("Square",{Thickness=1,Filled=false,Visible=false}) d.fl=D("Square",{Thickness=1,Filled=true,Visible=false,Transparency=.75}) d.l1=D("Line",{Thickness=2,Visible=false})d.l2=D("Line",{Thickness=2,Visible=false}) d.l3=D("Line",{Thickness=2,Visible=false})d.l4=D("Line",{Thickness=2,Visible=false}) d.nm=D("Text",{Size=14,Center=true,Outline=true,Visible=false,Color=Color3.new(1,1,1)}) d.ds=D("Text",{Size=13,Center=true,Outline=true,Visible=false,Color=Color3.fromRGB(200,200,200)}) d.ht=D("Text",{Size=12,Center=true,Outline=true,Visible=false,Color=Color3.fromRGB(0,255,0)}) d.hb=D("Line",{Thickness=2,Visible=false,Color=Color3.new(0,0,0)}) d.hl=D("Line",{Thickness=2,Visible=false}) d.tr=D("Line",{Thickness=1,Visible=false,Color=C.ETrCol}) d.hd=D("Circle",{Radius=3,Filled=true,Visible=false,Color=Color3.new(1,1,1)}) E[p]=d return d end local function rm(p)local d=E[p]if not d then return end for _,v in pairs(d)do if v and v.Remove then pcall(function()v:Remove()end)end end E[p]=nil end RS.RenderStepped:Connect(function() if fov then fov.Visible=C.Aim and C.ShowFOV if fov.Visible then fov.Position=Vector2.new(cam.ViewportSize.X/2,cam.ViewportSize.Y/2)fov.Radius=C.FOV/2 end end if dot then local ok=false if C.Aim and C.ShowTgt and tPos then local s,on=cam:WorldToViewportPoint(tPos)if on then dot.Position=Vector2.new(s.X,s.Y)ok=true end end dot.Visible=ok end local mc=LP.Character local mp=mc and mc:FindFirstChild("HumanoidRootPart")and mc.HumanoidRootPart.Position for _,p in ipairs(P:GetPlayers())do if p~=LP then local ch=p.Character local h=ch and ch:FindFirstChildOfClass("Humanoid") local hrp=ch and ch:FindFirstChild("HumanoidRootPart")local hd=ch and ch:FindFirstChild("Head") local d=E[p]or mk(p) local show=C.ESP and ch and h and h.Health>0 and hrp and hd and(not C.ETeam or not ally(p)) if show and mp and(hrp.Position-mp).Magnitude>C.EMax then show=false end if not show then for _,v in pairs(d)do if v and v.Visible~=nil then v.Visible=false end end else local ts,to=cam:WorldToViewportPoint(hd.Position+Vector3.new(0,.5,0)) local bs,bo=cam:WorldToViewportPoint(hrp.Position-Vector3.new(0,3,0)) if not(to and bo)then for _,v in pairs(d)do if v and v.Visible~=nil then v.Visible=false end end else local tv=Vector2.new(ts.X,ts.Y)local bv=Vector2.new(bs.X,bs.Y) local hh=math.abs(bv.Y-tv.Y)local ww=hh*.55 local tl=Vector2.new(tv.X-ww/2,tv.Y)local br=Vector2.new(tv.X+ww/2,bv.Y) local sz=br-tl local col=ally(p)and C.ECol or C.EColE if d.bx then d.bx.Visible=C.EBox and not C.ECorner if d.bx.Visible then d.bx.Color=col d.bx.Size=sz d.bx.Position=tl end end if d.fl then d.fl.Visible=C.EFill and not C.ECorner if d.fl.Visible then d.fl.Color=col d.fl.Size=sz d.fl.Position=tl end end if C.EBox and C.ECorner then local ch2=hh*.2 local cw=ww*.2 if d.l1 then d.l1.Visible=true d.l1.Color=col d.l1.From=Vector2.new(tl.X,tl.Y)d.l1.To=Vector2.new(tl.X+cw,tl.Y)end if d.l2 then d.l2.Visible=true d.l2.Color=col d.l2.From=Vector2.new(br.X,br.Y)d.l2.To=Vector2.new(br.X-cw,br.Y)end if d.l3 then d.l3.Visible=true d.l3.Color=col d.l3.From=Vector2.new(tl.X,tl.Y)d.l3.To=Vector2.new(tl.X,tl.Y+ch2)end if d.l4 then d.l4.Visible=true d.l4.Color=col d.l4.From=Vector2.new(br.X,br.Y)d.l4.To=Vector2.new(br.X,br.Y-ch2)end else for _,ln in ipairs{d.l1,d.l2,d.l3,d.l4}do if ln then ln.Visible=false end end end if d.nm then d.nm.Visible=C.EName if d.nm.Visible then d.nm.Color=col d.nm.Position=Vector2.new(tv.X,tl.Y-16)d.nm.Text=p.Name end end if d.ds then d.ds.Visible=C.EDist if d.ds.Visible then local dd=mp and(hrp.Position-mp).Magnitude or 0 d.ds.Color=col d.ds.Position=Vector2.new(tv.X,br.Y+4)d.ds.Text=string.format("[%d]",math.floor(dd))end end if d.hl and d.hb then d.hl.Visible=C.EHp d.hb.Visible=C.EHp if d.hl.Visible then local hp=math.clamp(h.Health/h.MaxHealth,0,1) local bx=tl.X-6 d.hb.From=Vector2.new(bx,tl.Y)d.hb.To=Vector2.new(bx,br.Y) d.hl.From=Vector2.new(bx,br.Y-(br.Y-tl.Y)*hp)d.hl.To=Vector2.new(bx,br.Y) d.hl.Color=Color3.fromRGB(math.floor(255*(1-hp)),math.floor(255*hp),0) end end if d.ht then d.ht.Visible=C.EHpTxt if d.ht.Visible then d.ht.Color=col d.ht.Position=Vector2.new(tv.X,tl.Y-30)d.ht.Text=string.format("%d HP",math.floor(h.Health))end end if d.tr then d.tr.Visible=C.ETr if d.tr.Visible then d.tr.Color=C.ETrCol d.tr.From=Vector2.new(cam.ViewportSize.X/2,cam.ViewportSize.Y)d.tr.To=Vector2.new(tv.X,br.Y)end end if d.hd then d.hd.Visible=C.EHead if d.hd.Visible then d.hd.Color=col d.hd.Position=tv end end end end end end end) P.PlayerRemoving:Connect(rm) local A=W:CreateTab("Aim")local T=W:CreateTab("ESP")local F=W:CreateTab("Fling")local S=W:CreateTab("Cfg") -- ============ AIM TAB ============ A:CreateToggle({Name="Silent Aim",CurrentValue=false,Flag="a1",Callback=function(v)C.Aim=v if not v then tPos,tPart=nil,nil end end}) A:CreateDropdown({Name="Modo",Options={"Center","Cursor"},CurrentOption={"Center"},Flag="a2",Callback=function(o)C.Mode=type(o)=="table"and o[1]or o end}) A:CreateDropdown({Name="Parte",Options={"Head","HumanoidRootPart","Torso"},CurrentOption={"Head"},Flag="a3",Callback=function(o)C.Part=type(o)=="table"and o[1]or o end}) A:CreateSlider({Name="Dist",Range={10,2000},Increment=10,Suffix="s",CurrentValue=300,Flag="a4",Callback=function(v)C.Dist=v end}) A:CreateSlider({Name="FOV",Range={50,3000},Increment=10,Suffix="px",CurrentValue=1500,Flag="a5",Callback=function(v)C.FOV=v end}) A:CreateSlider({Name="Smooth",Range={0,1},Increment=.05,Suffix="",CurrentValue=0,Flag="a6",Callback=function(v)C.Smooth=v end}) A:CreateToggle({Name="Team",CurrentValue=true,Flag="a7",Callback=function(v)C.Team=v end}) A:CreateToggle({Name="Wall",CurrentValue=false,Flag="a8",Callback=function(v)C.Wall=v end}) A:CreateToggle({Name="Show FOV",CurrentValue=true,Flag="a9",Callback=function(v)C.ShowFOV=v end}) A:CreateToggle({Name="Show Tgt",CurrentValue=true,Flag="a10",Callback=function(v)C.ShowTgt=v end}) -- ============ ESP TAB ============ T:CreateToggle({Name="ESP",CurrentValue=false,Flag="e1",Callback=function(v)C.ESP=v end}) T:CreateToggle({Name="Team",CurrentValue=true,Flag="e2",Callback=function(v)C.ETeam=v end}) T:CreateToggle({Name="Box",CurrentValue=true,Flag="e3",Callback=function(v)C.EBox=v end}) T:CreateToggle({Name="Corner",CurrentValue=false,Flag="e4",Callback=function(v)C.ECorner=v end}) T:CreateToggle({Name="Fill",CurrentValue=false,Flag="e5",Callback=function(v)C.EFill=v end}) T:CreateToggle({Name="Nome",CurrentValue=true,Flag="e6",Callback=function(v)C.EName=v end}) T:CreateToggle({Name="HP Bar",CurrentValue=true,Flag="e7",Callback=function(v)C.EHp=v end}) T:CreateToggle({Name="HP Txt",CurrentValue=false,Flag="e8",Callback=function(v)C.EHpTxt=v end}) T:CreateToggle({Name="Dist",CurrentValue=true,Flag="e9",Callback=function(v)C.EDist=v end}) T:CreateToggle({Name="Tracer",CurrentValue=false,Flag="e10",Callback=function(v)C.ETr=v end}) T:CreateToggle({Name="Head",CurrentValue=false,Flag="e11",Callback=function(v)C.EHead=v end}) T:CreateSlider({Name="Max ESP",Range={50,5000},Increment=50,Suffix="s",CurrentValue=1000,Flag="e12",Callback=function(v)C.EMax=v end}) T:CreateColorPicker({Name="Aliado",Color=Color3.fromRGB(0,255,136),Flag="e13",Callback=function(c)C.ECol=c end}) T:CreateColorPicker({Name="Inimigo",Color=Color3.fromRGB(255,60,60),Flag="e14",Callback=function(c)C.EColE=c end}) -- ============ FLING TAB ============ F:CreateSection("Controles") F:CreateToggle({Name="Fling (arremessar)",CurrentValue=true,Flag="f1",Callback=function(v)C.FlingOn=v end}) F:CreateToggle({Name="Script ativo",CurrentValue=true,Flag="f2",Callback=function(v)C.FlingScript=v end}) F:CreateSection("Força do Arremesso") F:CreateSlider({Name="Força",Range={100,5000},Increment=50,Suffix=" force",CurrentValue=850,Flag="f3",Callback=function(v)C.FlingStr=v end}) F:CreateSection("Presets") F:CreateButton({Name="🪶 Leve (400)",Callback=function()C.FlingStr=400 Rayfield:Notify({Title="Bombril",Content="Força: 400",Duration=2})end}) F:CreateButton({Name="⚖️ Médio (1200)",Callback=function()C.FlingStr=1200 Rayfield:Notify({Title="Bombril",Content="Força: 1200",Duration=2})end}) F:CreateButton({Name="💪 Forte (2500)",Callback=function()C.FlingStr=2500 Rayfield:Notify({Title="Bombril",Content="Força: 2500",Duration=2})end}) F:CreateButton({Name="💥 Nuke (5000)",Callback=function()C.FlingStr=5000 Rayfield:Notify({Title="Bombril",Content="Força: 5000 — NUKE",Duration=2})end}) F:CreateSection("Status") F:CreateButton({Name="📊 Ver Status",Callback=function() local nome=C.FlingTarget and C.FlingTarget.Name or "nenhum" Rayfield:Notify({Title="Bombril Status",Content="Último alvo: "..nome.." | Arremessos: "..C.FlingHits,Duration=4}) end}) -- ============ CFG TAB ============ S:CreateButton({Name="Destruir",Callback=function() for _,d in pairs(E)do for _,v in pairs(d)do if v and v.Remove then pcall(function()v:Remove()end)end end end if fov then pcall(function()fov:Remove()end)end if dot then pcall(function()dot:Remove()end)end W:Destroy() end}) RS.Heartbeat:Connect(upd) W:SelectTab(1) print("[BOMBRIL] OK — Aim + ESP + Fling")