OR4NG3-FRU1T

V1rpSaken script but i change the library from WindUI into Orion Library (NOT MY SCRIPT)

Jun 21st, 2026
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.98 KB | None | 0 0
  1. print("v1prware loaded")
  2.  
  3. ------------------------------------------------------------------------
  4. -- services
  5. ------------------------------------------------------------------------
  6. local svc = {
  7. Players = game:GetService("Players"),
  8. Run = game:GetService("RunService"),
  9. Input = game:GetService("UserInputService"),
  10. RS = game:GetService("ReplicatedStorage"),
  11. WS = game:GetService("Workspace"),
  12. TweenService = game:GetService("TweenService"),
  13. TextChat = game:GetService("TextChatService"),
  14. Http = game:GetService("HttpService"),
  15. }
  16.  
  17. local lp = svc.Players.LocalPlayer
  18. local gui = lp:WaitForChild("PlayerGui", 10)
  19.  
  20. ------------------------------------------------------------------------
  21. -- filesystem shims
  22. ------------------------------------------------------------------------
  23. local fs = {
  24. hasFolder = isfolder or function() return false end,
  25. makeFolder= makefolder or function() end,
  26. write = writefile or function() end,
  27. hasFile = isfile or function() return false end,
  28. read = readfile or function() return "" end,
  29. asset = getcustomasset or function(p) return p end,
  30. }
  31.  
  32. ------------------------------------------------------------------------
  33. -- config
  34. ------------------------------------------------------------------------
  35. local cfg = {}
  36. do
  37. local DIR = "GlovSakenScript"
  38. local FILE = DIR .. "/config.json"
  39. local function prep()
  40. if not fs.hasFolder(DIR) then fs.makeFolder(DIR) end
  41. end
  42. function cfg.load()
  43. prep()
  44. if not fs.hasFile(FILE) then return end
  45. local ok, t = pcall(svc.Http.JSONDecode, svc.Http, fs.read(FILE))
  46. if ok and type(t) == "table" then cfg._data = t end
  47. end
  48. function cfg.save()
  49. prep()
  50. local ok, s = pcall(svc.Http.JSONEncode, svc.Http, cfg._data)
  51. if ok then fs.write(FILE, s) end
  52. end
  53. function cfg.get(k, default)
  54. local v = cfg._data[k]
  55. return v ~= nil and v or default
  56. end
  57. function cfg.set(k, v)
  58. cfg._data[k] = v
  59. cfg.save()
  60. end
  61. cfg._data = {}
  62. cfg.load()
  63. end
  64.  
  65. ------------------------------------------------------------------------
  66. -- Orion Library
  67. ------------------------------------------------------------------------
  68. local OrionLib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/jensonhirst/Orion/main/source')))()
  69.  
  70. local win = OrionLib:MakeWindow({
  71. Name = "V1PRWARE",
  72. HidePremium = false,
  73. SaveConfig = true,
  74. ConfigFolder = "GlovSakenScript",
  75. IntroEnabled = true,
  76. IntroText = "V1PRWARE",
  77. })
  78.  
  79. ------------------------------------------------------------------------
  80. -- helpers
  81. ------------------------------------------------------------------------
  82. local function getTeamFolder(name)
  83. local root = svc.WS:FindFirstChild("Players")
  84. return root and root:FindFirstChild(name)
  85. end
  86. local function getIngame()
  87. local m = svc.WS:FindFirstChild("Map")
  88. return m and m:FindFirstChild("Ingame")
  89. end
  90. local function getMapContent()
  91. local ig = getIngame()
  92. return ig and ig:FindFirstChild("Map")
  93. end
  94.  
  95. ------------------------------------------------------------------------
  96. -- TAB: SETTINGS
  97. ------------------------------------------------------------------------
  98. local tabSettings = win:MakeTab({ Name = "Settings", Icon = "rbxassetid://7059346386", PremiumOnly = false })
  99.  
  100. tabSettings:AddLabel("Interface")
  101.  
  102. -- Username Spoof
  103. local spoofActive = cfg.get("spoofActive", false)
  104. local spoofText = cfg.get("spoofText", "V1PRWARE")
  105. local spoofCache = {}
  106. local spoofConns = {}
  107.  
  108. local function spoofApply(lbl)
  109. if not (lbl:IsA("TextLabel") or lbl:IsA("TextButton")) then return end
  110. if lbl.Name ~= "Username" then return end
  111. if not spoofCache[lbl] then spoofCache[lbl] = lbl.Text end
  112. if spoofActive then lbl.Text = spoofText end
  113. end
  114. local function spoofRevert()
  115. for lbl, orig in pairs(spoofCache) do
  116. if lbl and lbl.Parent then lbl.Text = orig end
  117. end
  118. spoofCache = {}
  119. end
  120. local function spoofScan()
  121. local pg = lp:FindFirstChild("PlayerGui"); if not pg then return end
  122. task.defer(function()
  123. for _, root in ipairs({ pg:FindFirstChild("MainUI"), pg:FindFirstChild("TemporaryUI") }) do
  124. if root then
  125. for _, obj in ipairs(root:GetDescendants()) do spoofApply(obj) end
  126. end
  127. end
  128. end)
  129. end
  130. local function spoofWatch(root)
  131. if not root then return end
  132. local c = root.DescendantAdded:Connect(function(obj)
  133. if spoofActive then task.defer(spoofApply, obj) end
  134. end)
  135. table.insert(spoofConns, c)
  136. end
  137. local function spoofStart()
  138. for _, c in ipairs(spoofConns) do if c.Connected then c:Disconnect() end end
  139. spoofConns = {}
  140. local pg = lp:FindFirstChild("PlayerGui"); if not pg then return end
  141. spoofScan()
  142. spoofWatch(pg:FindFirstChild("MainUI"))
  143. spoofWatch(pg:FindFirstChild("TemporaryUI"))
  144. table.insert(spoofConns, pg.ChildAdded:Connect(function(child)
  145. if (child.Name == "MainUI" or child.Name == "TemporaryUI") and spoofActive then
  146. task.delay(0.1, spoofScan)
  147. spoofWatch(child)
  148. end
  149. end))
  150. end
  151. local function spoofStop()
  152. for _, c in ipairs(spoofConns) do if c.Connected then c:Disconnect() end end
  153. spoofConns = {}
  154. spoofRevert()
  155. end
  156.  
  157. tabSettings:AddToggle({
  158. Name = "Spoof Usernames",
  159. Default = spoofActive,
  160. Callback = function(on)
  161. spoofActive = on; cfg.set("spoofActive", on)
  162. if on then spoofStart() else spoofStop() end
  163. end
  164. })
  165.  
  166. -- Chat Force
  167. local chatForceEnabled = cfg.get("chatForceEnabled", false)
  168. local chatForceConn = nil
  169. local function enforceChatOn()
  170. if not chatForceEnabled then return end
  171. local cw = svc.TextChat:FindFirstChild("ChatWindowConfiguration")
  172. local ci = svc.TextChat:FindFirstChild("ChatInputBarConfiguration")
  173. if cw and not cw.Enabled then cw.Enabled = true end
  174. if ci and not ci.Enabled then ci.Enabled = true end
  175. end
  176.  
  177. tabSettings:AddToggle({
  178. Name = "Show Chat Logs",
  179. Default = chatForceEnabled,
  180. Callback = function(on)
  181. chatForceEnabled = on; cfg.set("chatForceEnabled", on)
  182. if chatForceConn then chatForceConn:Disconnect(); chatForceConn = nil end
  183. if on then
  184. enforceChatOn()
  185. chatForceConn = svc.Run.Heartbeat:Connect(enforceChatOn)
  186. end
  187. end
  188. })
  189.  
  190. -- Timer Position
  191. local timerSide = cfg.get("timerSide", "Middle")
  192. local function applyTimerPos()
  193. local rt = lp.PlayerGui:FindFirstChild("RoundTimer")
  194. local m = rt and rt:FindFirstChild("Main")
  195. if m then
  196. m.Position = UDim2.new(timerSide == "Middle" and 0.5 or 0.9, 0,
  197. m.Position.Y.Scale, m.Position.Y.Offset)
  198. end
  199. end
  200. applyTimerPos()
  201.  
  202. tabSettings:AddDropdown({
  203. Name = "Timer Position",
  204. Default = timerSide,
  205. Options = { "Middle", "Right" },
  206. Callback = function(v)
  207. timerSide = v; cfg.set("timerSide", v); applyTimerPos()
  208. end
  209. })
  210.  
  211. tabSettings:AddLabel("Platform Spoofer")
  212.  
  213. local platEnabled = cfg.get("platEnabled", false)
  214. local platDevice = cfg.get("platDevice", "Console")
  215. local platLoop = nil
  216. local platConn = nil
  217.  
  218. local function platPush()
  219. if not platEnabled then return end
  220. local ok, net = pcall(function() return require(svc.RS.Modules.Network) end)
  221. if ok and net then
  222. pcall(function() net:FireServerConnection("SetDevice", "REMOTE_EVENT", platDevice) end)
  223. end
  224. end
  225. local function platStart()
  226. if platLoop then return end
  227. platPush()
  228. if platConn then platConn:Disconnect() end
  229. platConn = svc.Input.LastInputTypeChanged:Connect(function()
  230. if platEnabled then platPush() end
  231. end)
  232. platLoop = task.spawn(function()
  233. while platEnabled do platPush(); task.wait(1) end
  234. platLoop = nil
  235. end)
  236. end
  237. local function platStop()
  238. platEnabled = false
  239. if platLoop then task.cancel(platLoop); platLoop = nil end
  240. if platConn then platConn:Disconnect(); platConn = nil end
  241. end
  242.  
  243. tabSettings:AddToggle({
  244. Name = "Enable Platform Spoofer",
  245. Default = platEnabled,
  246. Callback = function(on)
  247. platEnabled = on; cfg.set("platEnabled", on)
  248. if on then platStart() else platStop() end
  249. end
  250. })
  251. tabSettings:AddDropdown({
  252. Name = "Device",
  253. Default = platDevice,
  254. Options = { "PC", "Mobile", "Console" },
  255. Callback = function(v)
  256. platDevice = v; cfg.set("platDevice", v)
  257. if platEnabled then platPush() end
  258. end
  259. })
  260.  
  261. lp.CharacterAdded:Connect(function()
  262. task.delay(1, function()
  263. if spoofActive then spoofStart() end
  264. applyTimerPos()
  265. if platEnabled then platPush() end
  266. end)
  267. end)
  268.  
  269. ------------------------------------------------------------------------
  270. -- TAB: GLOBAL
  271. ------------------------------------------------------------------------
  272. local tabGlobal = win:MakeTab({ Name = "Global", Icon = "rbxassetid://7706157525", PremiumOnly = false })
  273.  
  274. tabGlobal:AddLabel("Stamina")
  275.  
  276. local stam = {
  277. on = cfg.get("stamOn", false),
  278. loss = cfg.get("stamLoss", 10),
  279. gain = cfg.get("stamGain", 20),
  280. max = cfg.get("stamMax", 100),
  281. current = cfg.get("stamCurrent", 100),
  282. noLoss = cfg.get("stamNoLoss", false),
  283. thread = nil,
  284. }
  285. local function stamModule()
  286. local ok, m = pcall(function()
  287. return require(svc.RS.Systems.Character.Game.Sprinting)
  288. end)
  289. return ok and m or nil
  290. end
  291. local function stamApply()
  292. local m = stamModule(); if not m then return end
  293. if not m.DefaultsSet then pcall(function() m.Init() end) end
  294. m.StaminaLoss = stam.loss
  295. m.StaminaGain = stam.gain
  296. m.MaxStamina = stam.max
  297. m.StaminaLossDisabled = stam.noLoss
  298. if m.Stamina and m.Stamina > stam.max then m.Stamina = stam.current end
  299. pcall(function()
  300. if m.__staminaChangedEvent then m.__staminaChangedEvent:Fire() end
  301. end)
  302. end
  303. local function stamStart()
  304. if stam.thread then return end
  305. stam.thread = task.spawn(function()
  306. while stam.on do
  307. if lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") then
  308. stamApply()
  309. end
  310. task.wait(0.5)
  311. end
  312. stam.thread = nil
  313. end)
  314. end
  315. local function stamStop()
  316. stam.on = false
  317. if stam.thread then task.cancel(stam.thread); stam.thread = nil end
  318. end
  319.  
  320. tabGlobal:AddToggle({
  321. Name = "Custom Stamina",
  322. Default = stam.on,
  323. Callback = function(on)
  324. stam.on = on; cfg.set("stamOn", on)
  325. if on then stamStart() else stamStop() end
  326. end
  327. })
  328. tabGlobal:AddSlider({
  329. Name = "Loss Rate", Min = 0, Max = 50, Default = stam.loss,
  330. Callback = function(v) stam.loss = v; cfg.set("stamLoss", v) end
  331. })
  332. tabGlobal:AddSlider({
  333. Name = "Gain Rate", Min = 0, Max = 50, Default = stam.gain,
  334. Callback = function(v) stam.gain = v; cfg.set("stamGain", v) end
  335. })
  336. tabGlobal:AddSlider({
  337. Name = "Max Pool", Min = 50, Max = 500, Default = stam.max,
  338. Callback = function(v) stam.max = v; cfg.set("stamMax", v) end
  339. })
  340. tabGlobal:AddSlider({
  341. Name = "Current Value", Min = 0, Max = 500, Default = stam.current,
  342. Callback = function(v) stam.current = v; cfg.set("stamCurrent", v) end
  343. })
  344. tabGlobal:AddToggle({
  345. Name = "Infinite Stamina",
  346. Default = stam.noLoss,
  347. Callback = function(on)
  348. stam.noLoss = on; cfg.set("stamNoLoss", on)
  349. end
  350. })
  351.  
  352. if stam.on then stamStart() end
  353.  
  354. lp.CharacterAdded:Connect(function()
  355. task.delay(1.5, function()
  356. if stam.on then
  357. stamApply()
  358. if not stam.thread then stamStart() end
  359. end
  360. end)
  361. end)
  362.  
  363. -- Status
  364. tabGlobal:AddLabel("Status Effects")
  365.  
  366. local statusGroups = {
  367. Slowness = { on = false, paths = { "Modules.StatusEffects.Slowness" } },
  368. Hallucination = { on = false, paths = { "Modules.StatusEffects.KillerExclusive.Hallucination" } },
  369. Visual = { on = false, paths = {
  370. "Modules.StatusEffects.Blindness",
  371. "Modules.StatusEffects.KillerExclusive.Glitched",
  372. "Modules.StatusEffects.SurvivorExclusive.Subspaced",
  373. }},
  374. }
  375. local statusBackup = {}
  376. local function statusResolve(path)
  377. local node = svc.RS
  378. for seg in path:gmatch("[^%.]+") do
  379. node = node:FindFirstChild(seg)
  380. if not node then return nil end
  381. end
  382. return node
  383. end
  384. local function statusBlock(path)
  385. if statusBackup[path] then return end
  386. local mod = statusResolve(path)
  387. if mod and mod:IsA("ModuleScript") then
  388. statusBackup[path] = { clone = mod:Clone(), src = mod.Source }
  389. mod:Destroy()
  390. end
  391. end
  392. local function statusRestore(path)
  393. local saved = statusBackup[path]; if not saved then return end
  394. local existing = statusResolve(path)
  395. if existing then existing:Destroy() end
  396. local parentPath = path:match("^(.-)%.?[^%.]+$")
  397. local parent = statusResolve(parentPath)
  398. if parent then
  399. saved.clone.Source = saved.src
  400. saved.clone.Parent = parent
  401. end
  402. statusBackup[path] = nil
  403. end
  404. local statusLoopThread = nil
  405. local function statusTick()
  406. if statusLoopThread then return end
  407. statusLoopThread = task.spawn(function()
  408. while true do
  409. local any = false
  410. for _, g in pairs(statusGroups) do
  411. if g.on then
  412. any = true
  413. for _, p in ipairs(g.paths) do
  414. local m = statusResolve(p)
  415. if m then m:Destroy() end
  416. end
  417. end
  418. end
  419. if not any then break end
  420. task.wait(0.8)
  421. end
  422. statusLoopThread = nil
  423. end)
  424. end
  425. local function statusToggle(name)
  426. local g = statusGroups[name]; if not g then return end
  427. g.on = not g.on
  428. for _, p in ipairs(g.paths) do
  429. if g.on then statusBlock(p) else statusRestore(p) end
  430. end
  431. local any = false
  432. for _, sg in pairs(statusGroups) do if sg.on then any = true; break end end
  433. if any then statusTick()
  434. elseif statusLoopThread then
  435. task.cancel(statusLoopThread); statusLoopThread = nil
  436. end
  437. end
  438.  
  439. tabGlobal:AddButton({ Name = "Toggle: Slowness", Callback = function() statusToggle("Slowness") end })
  440. tabGlobal:AddButton({ Name = "Toggle: Hallucination", Callback = function() statusToggle("Hallucination") end })
  441. tabGlobal:AddButton({ Name = "Toggle: Visual Effects", Callback = function() statusToggle("Visual") end })
  442.  
  443. lp.CharacterAdded:Connect(function()
  444. statusBackup = {}
  445. for _, g in pairs(statusGroups) do g.on = false end
  446. if statusLoopThread then task.cancel(statusLoopThread); statusLoopThread = nil end
  447. end)
  448.  
  449. -- Network
  450. tabGlobal:AddLabel("Network")
  451.  
  452. local net = { ghost = false, lag = false, block = false, lagRunning = false }
  453. local function netGhostOn() net.block = true end
  454. local function netGhostOff() net.block = net.lag end
  455. local function netLagOn()
  456. if net.lagRunning then return end
  457. net.lagRunning = true
  458. task.spawn(function()
  459. while net.lag do
  460. net.block = true; task.wait(2)
  461. if not net.lag then break end
  462. net.block = false; task.wait(2)
  463. end
  464. net.lagRunning = false
  465. end)
  466. end
  467. local function netLagOff() net.lagRunning = false; net.block = net.ghost end
  468.  
  469. lp.CharacterAdded:Connect(function()
  470. net.ghost = false; net.lag = false; net.block = false; net.lagRunning = false
  471. end)
  472.  
  473. task.spawn(function()
  474. local mods = svc.RS:FindFirstChild("Modules"); if not mods then return end
  475. local netf = mods:FindFirstChild("Network"); if not netf then return end
  476. local ure = netf:FindFirstChild("UnreliableRemoteEvent"); if not ure then return end
  477. local old
  478. old = hookmetamethod(game, "__namecall", function(self, ...)
  479. if getnamecallmethod() == "FireServer" and self == ure then
  480. local a = {...}
  481. if #a > 0 and a[1] == "UpdCF" and net.block then return end
  482. end
  483. return old(self, ...)
  484. end)
  485. end)
  486.  
  487. tabGlobal:AddToggle({
  488. Name = "Ghost Mode", Default = false,
  489. Callback = function(on)
  490. net.ghost = on
  491. if on then netGhostOn() else netGhostOff() end
  492. end
  493. })
  494. tabGlobal:AddToggle({
  495. Name = "Lag Mode", Default = false,
  496. Callback = function(on)
  497. net.lag = on
  498. if on then netLagOn() else netLagOff() end
  499. end
  500. })
  501.  
  502. -- Hitbox
  503. tabGlobal:AddLabel("Hitbox")
  504.  
  505. local hb = {
  506. on = cfg.get("hbOn", false),
  507. strength = cfg.get("hbStrength", 50),
  508. conn = nil,
  509. active = {},
  510. }
  511. local hbAbilities = {
  512. Slash=1,Swing=1,Dagger=1,Charge=1,Punch=1,PlasmaBeam=1,
  513. Shoot=1,Behead=1,GashingWound=1,CorruptNature=1,
  514. WalkspeedOverride=1,Stab=1,Nova=1,MassInfection=1,Entanglement=1,
  515. }
  516. local hbRemote = svc.RS
  517. :WaitForChild("Modules")
  518. :WaitForChild("Network")
  519. :WaitForChild("RemoteEvent")
  520.  
  521. local function hbReadName(raw)
  522. if typeof(raw) == "buffer" then
  523. local s = buffer.tostring(raw)
  524. return s:match("[%a]+") or s:gsub("[^%w]", "")
  525. end
  526. return tostring(raw):gsub("\"", "")
  527. end
  528. local function hbPush(dist)
  529. local ch = lp.Character; if not ch then return end
  530. local r = ch:FindFirstChild("HumanoidRootPart"); if not r then return end
  531. local was = r.AssemblyLinearVelocity
  532. r.AssemblyLinearVelocity = was + r.CFrame.LookVector * dist
  533. svc.Run.RenderStepped:Wait()
  534. if ch and ch.Parent and r and r.Parent then
  535. r.AssemblyLinearVelocity = was
  536. end
  537. end
  538. local function hbStart()
  539. if hb.conn then return end
  540. hb.conn = hbRemote.OnClientEvent:Connect(function(action, data)
  541. if not hb.on then return end
  542. if action ~= "UseActorAbility" then return end
  543. if typeof(data) ~= "table" or not data[1] then return end
  544. local name = hbReadName(data[1])
  545. if not name or not hbAbilities[name] or hb.active[name] then return end
  546. hb.active[name] = true
  547. local t0 = tick()
  548. local c; c = svc.Run.Heartbeat:Connect(function()
  549. if tick() - t0 >= 1 then c:Disconnect(); hb.active[name] = nil; return end
  550. if hb.on then hbPush(hb.strength)
  551. else c:Disconnect(); hb.active[name] = nil end
  552. end)
  553. end)
  554. end
  555. local function hbStop()
  556. if hb.conn then hb.conn:Disconnect(); hb.conn = nil end
  557. for k in pairs(hb.active) do hb.active[k] = nil end
  558. end
  559.  
  560. tabGlobal:AddToggle({
  561. Name = "Hitbox Expander", Default = hb.on,
  562. Callback = function(on)
  563. hb.on = on; cfg.set("hbOn", on)
  564. if on then hbStart() else hbStop() end
  565. end
  566. })
  567. tabGlobal:AddSlider({
  568. Name = "Hitbox Strength", Min = 5, Max = 100, Default = hb.strength,
  569. Callback = function(v) hb.strength = v; cfg.set("hbStrength", v) end
  570. })
  571.  
  572. lp.CharacterAdded:Connect(function()
  573. for k in pairs(hb.active) do hb.active[k] = nil end
  574. task.delay(1, function() if hb.on then hbStop(); hbStart() end end)
  575. end)
  576. lp.CharacterRemoving:Connect(function()
  577. for k in pairs(hb.active) do hb.active[k] = nil end
  578. end)
  579.  
  580. ------------------------------------------------------------------------
  581. -- TAB: GENERATOR
  582. ------------------------------------------------------------------------
  583. local tabGen = win:MakeTab({ Name = "Generator", Icon = "rbxassetid://125543574844651", PremiumOnly = false })
  584. tabGen:AddLabel("Auto Solve")
  585.  
  586. local flow = {
  587. on = cfg.get("flowOn", false),
  588. nodeDelay = cfg.get("flowNodeDelay", 0.04),
  589. lineDelay = cfg.get("flowLineDelay", 0.60),
  590. }
  591. local function flowKey(n) return n.row .. "-" .. n.col end
  592. local function flowDir(r1,c1,r2,c2)
  593. if r2<r1 then return "up" end
  594. if r2>r1 then return "down" end
  595. if c2<c1 then return "left" end
  596. if c2>c1 then return "right" end
  597. end
  598. local function flowDirFlip(d)
  599. return ({up="down",down="up",left="right",right="left"})[d]
  600. end
  601. local function flowNeighbour(r1,c1,r2,c2)
  602. if r2==r1-1 and c2==c1 then return "up" end
  603. if r2==r1+1 and c2==c1 then return "down" end
  604. if r2==r1 and c2==c1-1 then return "left" end
  605. if r2==r1 and c2==c1+1 then return "right" end
  606. return false
  607. end
  608. local function flowConnections(prev,curr,nxt)
  609. local t={}
  610. if prev and curr then
  611. local d=flowDir(curr.row,curr.col,prev.row,prev.col)
  612. if d then t[flowDirFlip(d)]=true end
  613. end
  614. if nxt and curr then
  615. local d=flowDir(curr.row,curr.col,nxt.row,nxt.col)
  616. if d then t[d]=true end
  617. end
  618. return t
  619. end
  620. local function flowOrder(path,endpoints)
  621. if not path or #path==0 then return path end
  622. local lookup={}
  623. for _,n in ipairs(path) do lookup[flowKey(n)]=n end
  624. local start
  625. for _,ep in ipairs(endpoints or {}) do
  626. for _,n in ipairs(path) do
  627. if n.row==ep.row and n.col==ep.col then
  628. start={row=ep.row,col=ep.col}; break
  629. end
  630. end
  631. if start then break end
  632. end
  633. if not start then
  634. for _,n in ipairs(path) do
  635. local nb=0
  636. for _,d in ipairs({{-1,0},{1,0},{0,-1},{0,1}}) do
  637. if lookup[(n.row+d[1]).."-"..(n.col+d[2])] then nb+=1 end
  638. end
  639. if nb==1 then start={row=n.row,col=n.col}; break end
  640. end
  641. end
  642. if not start then start={row=path[1].row,col=path[1].col} end
  643. local pool={};local ordered={}
  644. for _,n in ipairs(path) do pool[flowKey(n)]={row=n.row,col=n.col} end
  645. local cur=start
  646. table.insert(ordered,{row=cur.row,col=cur.col})
  647. pool[flowKey(cur)]=nil
  648. while next(pool) do
  649. local moved=false
  650. for k,node in pairs(pool) do
  651. if flowNeighbour(cur.row,cur.col,node.row,node.col) then
  652. table.insert(ordered,{row=node.row,col=node.col})
  653. pool[k]=nil; cur=node; moved=true; break
  654. end
  655. end
  656. if not moved then break end
  657. end
  658. return ordered
  659. end
  660. local function flowSolve(puzzle)
  661. if not puzzle or not puzzle.Solution then return end
  662. local indices={}
  663. for i=1,#puzzle.Solution do indices[i]=i end
  664. for i=#indices,2,-1 do
  665. local j=math.random(1,i); indices[i],indices[j]=indices[j],indices[i]
  666. end
  667. for _,ci in ipairs(indices) do
  668. local ordered=flowOrder(puzzle.Solution[ci],puzzle.targetPairs[ci])
  669. puzzle.paths[ci]={}
  670. for i,node in ipairs(ordered) do
  671. table.insert(puzzle.paths[ci],{row=node.row,col=node.col})
  672. puzzle.gridConnections=puzzle.gridConnections or {}
  673. puzzle.gridConnections[flowKey(node)]=flowConnections(ordered[i-1],node,ordered[i+1])
  674. puzzle:updateGui()
  675. task.wait(flow.nodeDelay)
  676. end
  677. task.wait(flow.lineDelay)
  678. puzzle:checkForWin()
  679. end
  680. end
  681.  
  682. do
  683. local mod = svc.RS:FindFirstChild("Modules")
  684. and svc.RS.Modules:FindFirstChild("Misc")
  685. and svc.RS.Modules.Misc:FindFirstChild("FlowGameManager")
  686. and svc.RS.Modules.Misc.FlowGameManager:FindFirstChild("FlowGame")
  687. if mod then
  688. local FG = require(mod)
  689. local original = FG.new
  690. FG.new = function(...)
  691. local puzzle = original(...)
  692. if flow.on then
  693. task.spawn(function() task.wait(0.3); flowSolve(puzzle) end)
  694. end
  695. return puzzle
  696. end
  697. end
  698. end
  699.  
  700. tabGen:AddToggle({
  701. Name = "Auto Solve", Default = flow.on,
  702. Callback = function(on) flow.on = on; cfg.set("flowOn", on) end
  703. })
  704. tabGen:AddSlider({
  705. Name = "Node Speed", Min = 0.01, Max = 0.50, Default = flow.nodeDelay,
  706. Callback = function(v) flow.nodeDelay = v; cfg.set("flowNodeDelay", v) end
  707. })
  708. tabGen:AddSlider({
  709. Name = "Line Pause", Min = 0.00, Max = 1.00, Default = flow.lineDelay,
  710. Callback = function(v) flow.lineDelay = v; cfg.set("flowLineDelay", v) end
  711. })
  712.  
  713. ------------------------------------------------------------------------
  714. -- TAB: KILLER
  715. ------------------------------------------------------------------------
  716. local tabKiller = win:MakeTab({ Name = "Killer", Icon = "rbxassetid://9583486354", PremiumOnly = false })
  717.  
  718. tabKiller:AddLabel("Aimbot")
  719.  
  720. local aim = {
  721. on = cfg.get("aimOn", false),
  722. cooldown = cfg.get("aimCooldown", 0.3),
  723. lockTime = cfg.get("aimLockTime", 0.4),
  724. maxDist = cfg.get("aimMaxDist", 30),
  725. smooth = cfg.get("aimSmooth", 0.35),
  726. targeting = false,
  727. target = nil,
  728. deathConn = nil,
  729. autoRotate = nil,
  730. lastFired = 0,
  731. hum = nil,
  732. hrp = nil,
  733. cache = {},
  734. cacheTime = 0,
  735. cacheLife = 0.5,
  736. }
  737. local function aimAmIKiller()
  738. local ch = lp.Character; if not ch then return false end
  739. local kf = getTeamFolder("Killers")
  740. return kf and ch:IsDescendantOf(kf)
  741. end
  742. local function aimRefreshChar(ch)
  743. aim.hum = ch:FindFirstChildOfClass("Humanoid")
  744. aim.hrp = ch:FindFirstChild("HumanoidRootPart")
  745. end
  746. local function aimRefreshTargets()
  747. local now = tick()
  748. if now - aim.cacheTime < aim.cacheLife then return end
  749. aim.cacheTime = now; aim.cache = {}
  750. local sf = getTeamFolder("Survivors"); if not sf then return end
  751. for _, model in ipairs(sf:GetChildren()) do
  752. if model ~= lp.Character and model:IsA("Model") then
  753. local h = model:FindFirstChildOfClass("Humanoid")
  754. local r = model:FindFirstChild("HumanoidRootPart")
  755. if h and r and h.Health > 0 then
  756. table.insert(aim.cache, r)
  757. end
  758. end
  759. end
  760. end
  761. local function aimNearest()
  762. aimRefreshTargets()
  763. if not aim.hrp or #aim.cache == 0 then return nil end
  764. local best, bd = nil, math.huge
  765. for _, r in ipairs(aim.cache) do
  766. local d = (r.Position - aim.hrp.Position).Magnitude
  767. if d < bd and d <= aim.maxDist then bd = d; best = r end
  768. end
  769. return best
  770. end
  771. local function aimUnlock()
  772. if not aim.targeting then return end
  773. if aim.deathConn then aim.deathConn:Disconnect(); aim.deathConn = nil end
  774. if aim.autoRotate ~= nil and aim.hum then aim.hum.AutoRotate = aim.autoRotate end
  775. aim.targeting = false; aim.target = nil
  776. end
  777. local function aimLock(r)
  778. if not r or not r.Parent or not aim.hum or not aim.hrp then return end
  779. if aim.targeting and aim.target == r then return end
  780. aimUnlock()
  781. aim.target = r; aim.targeting = true
  782. aim.autoRotate = aim.hum.AutoRotate; aim.hum.AutoRotate = false
  783. local th = r.Parent:FindFirstChildOfClass("Humanoid")
  784. if th then aim.deathConn = th.Died:Connect(aimUnlock) end
  785. task.delay(aim.lockTime, function()
  786. if aim.target == r then aimUnlock() end
  787. end)
  788. end
  789.  
  790. svc.Run.RenderStepped:Connect(function()
  791. if not aim.on or not aim.targeting or not aim.hrp or not aim.target then return end
  792. if not aim.target.Parent then aimUnlock(); return end
  793. local th = aim.target.Parent:FindFirstChildOfClass("Humanoid")
  794. if not th or th.Health <= 0 then aimUnlock(); return end
  795. local flat = Vector3.new(
  796. aim.target.Position.X - aim.hrp.Position.X, 0,
  797. aim.target.Position.Z - aim.hrp.Position.Z
  798. ).Unit
  799. if flat.Magnitude > 0 then
  800. aim.hrp.CFrame = aim.hrp.CFrame:Lerp(
  801. CFrame.new(aim.hrp.Position, aim.hrp.Position + flat), aim.smooth
  802. )
  803. end
  804. end)
  805.  
  806. do
  807. local remote
  808. pcall(function()
  809. remote = svc.RS:WaitForChild("Modules",10):WaitForChild("Network",10):WaitForChild("RemoteEvent",10)
  810. end)
  811. if remote then
  812. remote.OnClientEvent:Connect(function(...)
  813. if not aim.on then return end
  814. local a = {...}
  815. if typeof(a[1]) ~= "string" then return end
  816. local n = a[1]
  817. if not (n:match("Ability") or n:match("[QER]") or n=="Slash" or n=="Dagger" or n=="Charge") then return end
  818. if tick() - aim.lastFired < aim.cooldown then return end
  819. aim.lastFired = tick()
  820. if aimAmIKiller() then
  821. local t = aimNearest()
  822. if t then aimLock(t) end
  823. end
  824. end)
  825. end
  826. end
  827.  
  828. lp.CharacterAdded:Connect(function(ch) task.wait(0.5); aimRefreshChar(ch) end)
  829. if lp.Character then aimRefreshChar(lp.Character) end
  830.  
  831. tabKiller:AddToggle({
  832. Name = "Enable Aimbot", Default = aim.on,
  833. Callback = function(on)
  834. aim.on = on; cfg.set("aimOn", on)
  835. if not on then aimUnlock() end
  836. end
  837. })
  838. tabKiller:AddSlider({
  839. Name = "Cooldown (s)", Min = 0.1, Max = 2.0, Default = aim.cooldown,
  840. Callback = function(v) aim.cooldown = v; cfg.set("aimCooldown", v) end
  841. })
  842. tabKiller:AddSlider({
  843. Name = "Lock Time (s)", Min = 0.1, Max = 3.0, Default = aim.lockTime,
  844. Callback = function(v) aim.lockTime = v; cfg.set("aimLockTime", v) end
  845. })
  846. tabKiller:AddSlider({
  847. Name = "Max Distance", Min = 5, Max = 100, Default = aim.maxDist,
  848. Callback = function(v) aim.maxDist = v; cfg.set("aimMaxDist", v) end
  849. })
  850. tabKiller:AddSlider({
  851. Name = "Rotation Smoothing", Min = 0.05, Max = 1.0, Default = aim.smooth,
  852. Callback = function(v) aim.smooth = v; cfg.set("aimSmooth", v) end
  853. })
  854.  
  855. -- Anti-Backstab
  856. tabKiller:AddLabel("Anti-Backstab")
  857.  
  858. local abs = {
  859. on = cfg.get("absOn", false),
  860. range = cfg.get("absRange", 40),
  861. duration = cfg.get("absDur", 1.5),
  862. locked = false,
  863. soundConn = nil,
  864. scanThread = nil,
  865. rings = {},
  866. }
  867. local absTriggerSounds = { ["86710781315432"]=true, ["99820161736138"]=true }
  868. local absScreenGui = nil
  869. local function absGui()
  870. if absScreenGui and absScreenGui.Parent then return absScreenGui end
  871. local pg = lp:FindFirstChild("PlayerGui"); if not pg then return nil end
  872. absScreenGui = Instance.new("ScreenGui")
  873. absScreenGui.Name = "AbsGui"
  874. absScreenGui.ResetOnSpawn = false
  875. absScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  876. absScreenGui.Parent = pg
  877. return absScreenGui
  878. end
  879. local function absShowLabel(show)
  880. local g = absGui(); if not g then return end
  881. local lbl = g:FindFirstChild("AbsTaunt")
  882. if not lbl then
  883. lbl = Instance.new("TextLabel")
  884. lbl.Name = "AbsTaunt"
  885. lbl.Size = UDim2.new(0,500,0,50)
  886. lbl.Position = UDim2.new(0.5,-250,0.38,0)
  887. lbl.BackgroundTransparency = 1
  888. lbl.TextColor3 = Color3.new(1,1,1)
  889. lbl.TextStrokeTransparency = 0.4
  890. lbl.TextStrokeColor3 = Color3.new(0,0,0)
  891. lbl.Text = "At least they tried 😂"
  892. lbl.Font = Enum.Font.GothamBold
  893. lbl.TextSize = 36
  894. lbl.TextTransparency = 1
  895. lbl.Parent = g
  896. end
  897. local target = show and 0 or 1
  898. pcall(function()
  899. svc.TweenService:Create(lbl, TweenInfo.new(show and 0.15 or 0.5), {TextTransparency=target}):Play()
  900. end)
  901. end
  902. local function absAddRing(model)
  903. local hrp = model:FindFirstChild("HumanoidRootPart")
  904. if not hrp or abs.rings[model] then return end
  905. pcall(function()
  906. local ring = Instance.new("Part")
  907. ring.Name = "AbsRing"
  908. ring.Shape = Enum.PartType.Cylinder
  909. ring.Size = Vector3.new(0.1, abs.range*2, abs.range*2)
  910. ring.Color = Color3.fromRGB(220,50,50)
  911. ring.Material = Enum.Material.ForceField
  912. ring.Transparency = 0.5
  913. ring.CanCollide = false
  914. ring.CanTouch = false
  915. ring.CFrame = hrp.CFrame * CFrame.Angles(0,0,math.rad(90))
  916. ring.Parent = hrp
  917. local w = Instance.new("WeldConstraint")
  918. w.Part0=hrp; w.Part1=ring; w.Parent=ring
  919. abs.rings[model]=ring
  920. end)
  921. end
  922. local function absRemoveRing(model)
  923. local r = abs.rings[model]
  924. if r then pcall(function() r:Destroy() end); abs.rings[model]=nil end
  925. end
  926. local function absResizeRings()
  927. for _,r in pairs(abs.rings) do
  928. if r and r.Parent then r.Size=Vector3.new(0.1,abs.range*2,abs.range*2) end
  929. end
  930. end
  931. local function absCleanRings()
  932. for m in pairs(abs.rings) do absRemoveRing(m) end
  933. end
  934.  
  935. -- FIXED & CLOSED FUNCTION PLACEHOLDER
  936. local function absFindTwoTime()
  937. local players = svc.WS:FindFirstChild("Players"); if not players then return nil end
  938. for _,folder in ipairs(players:GetChildren()) do
  939. local tt = folder:FindFirstChild("TwoTime")
  940. if tt then return tt end
  941. end
  942. return nil
  943. end
  944.  
  945. ------------------------------------------------------------------------
  946. -- TAB: MUSIC (ADDED MISSING TAB DEFINITION)
  947. ------------------------------------------------------------------------
  948. local tabMusic = win:MakeTab({ Name = "Music", Icon = "rbxassetid://6756417870", PremiumOnly = false })
  949.  
  950. local music = { on = false, thread = nil }
  951. local musicTracks = {}
  952. local function musicReset() end
  953. local function musicFetch() end
  954. local function musicMonitor() end
  955.  
  956. tabMusic:AddButton({ Name="â–  Stop", Callback=function() musicReset() end })
  957. tabMusic:AddButton({ Name="↓ Preload All", Callback=function()
  958. for name in pairs(musicTracks) do task.spawn(function() musicFetch(name) end); task.wait(0.1) end
  959. end })
  960.  
  961. lp.CharacterAdded:Connect(function()
  962. task.wait(3)
  963. if music.on then
  964. if music.thread then task.cancel(music.thread) end
  965. music.thread=task.spawn(musicMonitor)
  966. end
  967. end)
  968.  
  969. ------------------------------------------------------------------------
  970. -- TAB: CHARACTER
  971. ------------------------------------------------------------------------
  972. local tabChar = win:MakeTab({ Name = "Character", Icon = "rbxassetid://96856417870846", PremiumOnly = false })
  973.  
  974. tabChar:AddLabel("Killers")
  975. tabChar:AddButton({ Name="Slasher (Locked)", Callback=function() end })
  976.  
  977. tabChar:AddLabel("Survivors")
  978. tabChar:AddButton({ Name="Veeronica (Locked)", Callback=function() end })
  979.  
  980. tabChar:AddLabel("Sentinels")
  981. tabChar:AddButton({ Name="Guest1337", Callback=function() loadstring(game:HttpGet("https://pastebin.com/raw/cDpDF3z4"))() end })
  982. tabChar:AddButton({ Name="Shedletsky (use hitbox)", Callback=function() end })
  983. tabChar:AddButton({ Name="Chance", Callback=function() loadstring(game:HttpGet("https://pastebin.com/raw/x0ECfJqN"))() end })
  984. tabChar:AddButton({ Name="TwoTime", Callback=function() loadstring(game:HttpGet("https://pastebin.com/raw/6QiUWVMp"))() end })
  985.  
  986. tabChar:AddLabel("Supports")
  987. tabChar:AddButton({ Name="Dusekkar (Locked)", Callback=function() end })
  988. tabChar:AddButton({ Name="Elliot", Callback=function() loadstring(game:HttpGet("https://pastebin.com/raw/wDaKAwvD"))() end })
  989.  
  990. ------------------------------------------------------------------------
  991. -- TAB: INTERFACE
  992. ------------------------------------------------------------------------
  993. local tabInterface = win:MakeTab({ Name = "Interface", Icon = "rbxassetid://117931171948240", PremiumOnly = false })
  994. tabInterface:AddLabel("UI Functions")
  995. tabInterface:AddButton({ Name="Close UI", Callback=function() OrionLib:Destroy() end })
  996.  
  997. ------------------------------------------------------------------------
  998. -- Init
  999. ------------------------------------------------------------------------
  1000. OrionLib:Init()
Advertisement
Add Comment
Please, Sign In to add comment