OR4NG3-FRU1T

FULL SCRIPTS

Mar 20th, 2026
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
  2.  
  3. local svc = {
  4. RS = game:GetService("ReplicatedStorage"),
  5. RunService = game:GetService("RunService")
  6. }
  7.  
  8. local cfg = {
  9. flowOn = false,
  10. flowNodeDelay = 0.04,
  11. flowLineDelay = 0.60
  12. }
  13.  
  14. local Window = Rayfield:CreateWindow({
  15. Name = "NVCat'S_scripts",
  16. Icon = cat,
  17. LoadingTitle = "NVCat_SCRIPTS",
  18. LoadingSubtitle = "By NVCat",
  19. Theme = "Default",
  20. DisableRayfieldPrompts = false,
  21. ConfigurationSaving = {
  22. Enabled = true,
  23. FolderName = "NVCat_Config",
  24. FileName = "NVCat HUB"
  25. },
  26. KeySystem = true,
  27. KeySettings = {
  28. Title = "NVCat | Key System",
  29. Subtitle = "Forsaken Access",
  30. Note = "Join Discord For Key",
  31. FileName = "NVCat_Key",
  32. SaveKey = true,
  33. GrabKeyFromSite = false,
  34. Key = {"genvc"},
  35. Actions = {
  36. [1] = {
  37. Name = "Copy Discord",
  38. Callback = function()
  39. setclipboard("https://discord.gg/Ud9vJzuCV")
  40. end
  41. }
  42. }
  43. }
  44. })
  45.  
  46. local function flowKey(n) return n.row.."-"..n.col end
  47.  
  48. local function flowDirFlip(d)
  49. return ({up="down",down="up",left="right",right="left"})[d]
  50. end
  51.  
  52. local function flowDir(r1,c1,r2,c2)
  53. if r2<r1 then return"up" elseif r2>r1 then return"down" elseif c2<c1 then return"left" elseif c2>c1 then return"right" end
  54. end
  55.  
  56. local function flowNeighbour(r1,c1,r2,c2)
  57. if r2==r1-1 and c2==c1 then return"up" end
  58. if r2==r1+1 and c2==c1 then return"down" end
  59. if r2==r1 and c2==c1-1 then return"left" end
  60. if r2==r1 and c2==c1+1 then return"right" end
  61. return false
  62. end
  63.  
  64. local function flowConnections(prev,curr,nxt)
  65. local t={}
  66. if prev and curr then
  67. local d=flowDir(curr.row,curr.col,prev.row,prev.col)
  68. if d then t[flowDirFlip(d)]=true end
  69. end
  70. if nxt and curr then
  71. local d=flowDir(curr.row,curr.col,nxt.row,nxt.col)
  72. if d then t[d]=true end
  73. end
  74. return t
  75. end
  76.  
  77. local function flowOrder(path,endpoints)
  78. if not path or #path==0 then return path end
  79. local lookup={}
  80. for _,n in ipairs(path) do lookup[flowKey(n)]=n end
  81. local start
  82. for _,ep in ipairs(endpoints or{}) do
  83. for _,n in ipairs(path) do
  84. if n.row==ep.row and n.col==ep.col then start={row=ep.row,col=ep.col};break end
  85. end
  86. if start then break end
  87. end
  88. if not start then
  89. for _,n in ipairs(path) do
  90. local nb=0
  91. for _,d in ipairs({{-1,0},{1,0},{0,-1},{0,1}}) do
  92. if lookup[(n.row+d[1]).."-"..(n.col+d[2])] then nb+=1 end
  93. end
  94. if nb==1 then start={row=n.row,col=n.col};break end
  95. end
  96. end
  97. if not start then start={row=path[1].row,col=path[1].col} end
  98. local pool={}
  99. local ordered={}
  100. for _,n in ipairs(path) do pool[flowKey(n)]={row=n.row,col=n.col} end
  101. local cur=start
  102. table.insert(ordered,{row=cur.row,col=cur.col})
  103. pool[flowKey(cur)]=nil
  104. while next(pool) do
  105. local moved=false
  106. for k,node in pairs(pool) do
  107. if flowNeighbour(cur.row,cur.col,node.row,node.col) then
  108. table.insert(ordered,{row=node.row,col=node.col})
  109. pool[k]=nil
  110. cur=node
  111. moved=true
  112. break
  113. end
  114. end
  115. if not moved then break end
  116. end
  117. return ordered
  118. end
  119.  
  120. local function flowSolve(puzzle)
  121. if not puzzle or not puzzle.Solution then return end
  122. local indices={}
  123. for i=1,#puzzle.Solution do indices[i]=i end
  124. for i=#indices,2,-1 do
  125. local j=math.random(1,i)
  126. indices[i],indices[j]=indices[j],indices[i]
  127. end
  128. for _,ci in ipairs(indices) do
  129. local ordered=flowOrder(puzzle.Solution[ci],puzzle.targetPairs[ci])
  130. puzzle.paths[ci]={}
  131. for i,node in ipairs(ordered) do
  132. table.insert(puzzle.paths[ci],{row=node.row,col=node.col})
  133. puzzle.gridConnections=puzzle.gridConnections or{}
  134. puzzle.gridConnections[flowKey(node)]=flowConnections(ordered[i-1],node,ordered[i+1])
  135. puzzle:updateGui()
  136. task.wait(cfg.flowNodeDelay)
  137. end
  138. task.wait(cfg.flowLineDelay)
  139. puzzle:checkForWin()
  140. end
  141. end
  142.  
  143. task.spawn(function()
  144. local mod = svc.RS:FindFirstChild("Modules") and svc.RS.Modules:FindFirstChild("Misc") and svc.RS.Modules.Misc:FindFirstChild("FlowGameManager") and svc.RS.Modules.Misc.FlowGameManager:FindFirstChild("FlowGame")
  145. if mod then
  146. local FG=require(mod)
  147. local orig=FG.new
  148. FG.new=function(...)
  149. local p=orig(...)
  150. if cfg.flowOn then
  151. task.spawn(function() task.wait(0.3); flowSolve(p) end)
  152. end
  153. return p
  154. end
  155. end
  156. end)
  157.  
  158. local Tab = Window:CreateTab("Generator", 4483362458)
  159. Tab:CreateSection("Auto Solve")
  160.  
  161. Tab:CreateToggle({
  162. Name = "Auto Solve Enabled",
  163. CurrentValue = cfg.flowOn,
  164. Flag = "FlowToggle",
  165. Callback = function(Value)
  166. cfg.flowOn = Value
  167. end,
  168. })
  169.  
  170. Tab:CreateSlider({
  171. Name = "Node Speed",
  172. Range = {0.01, 0.50},
  173. Increment = 0.01,
  174. Suffix = "s",
  175. CurrentValue = cfg.flowNodeDelay,
  176. Flag = "NodeSlider",
  177. Callback = function(Value)
  178. cfg.flowNodeDelay = Value
  179. end,
  180. })
  181.  
  182. Tab:CreateSlider({
  183. Name = "Line Pause",
  184. Range = {0, 1},
  185. Increment = 0.1,
  186. Suffix = "s",
  187. CurrentValue = cfg.flowLineDelay,
  188. Flag = "LineSlider",
  189. Callback = function(Value)
  190. cfg.flowLineDelay = Value
  191. end,
  192. })
Tags: Script
Advertisement
Add Comment
Please, Sign In to add comment