jason4n

Fast Farm 2

Oct 6th, 2026 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.61 KB | None | 0 0
  1. local services = {
  2. players = game:GetService("Players"),
  3. replicatedstorage = game:GetService("ReplicatedStorage"),
  4. runservice = game:GetService("RunService"),
  5. tws = game:GetService("TweenService"),
  6. userinputservice = game:GetService("UserInputService"),
  7. httpservice = game:GetService("HttpService"),
  8. virtualuser = game:GetService("VirtualUser"),
  9. virtualinputmanager = game:GetService("VirtualInputManager"),
  10. lighting = game:GetService("Lighting"),
  11. startergui = game:GetService("StarterGui"),
  12. stats = game:GetService("Stats")
  13. }
  14.  
  15. local lp = {
  16. player = services.players.LocalPlayer,
  17. userid = services.players.LocalPlayer.UserId,
  18. username = services.players.LocalPlayer.Name,
  19. displayname = services.players.LocalPlayer.DisplayName
  20. }
  21.  
  22. -- Zarządzanie połączeniami (Janitor / Cleaning pattern)
  23. local Connections = {}
  24. local function cleanConnections()
  25. for _, conn in ipairs(Connections) do
  26. if conn and conn.Connected then
  27. conn:Disconnect()
  28. end
  29. end
  30. table.clear(Connections)
  31. end
  32.  
  33. -- Anti-AFK
  34. table.insert(Connections, lp.player.Idled:Connect(function()
  35. services.virtualinputmanager:SendKeyEvent(true, Enum.KeyCode.Y, false, game)
  36. task.wait(0.05)
  37. services.virtualinputmanager:SendKeyEvent(false, Enum.KeyCode.Y, false, game)
  38. end))
  39.  
  40. -- Usuwanie reklam
  41. function deleteAds()
  42. for _, portal in ipairs(workspace:GetDescendants()) do
  43. if portal.Name == "RobloxForwardPortals" then
  44. portal:Destroy()
  45. end
  46. end
  47. if _G.adsConnection then
  48. _G.adsConnection:Disconnect()
  49. end
  50.  
  51. _G.adsConnection = workspace.DescendantAdded:Connect(function(descendant)
  52. if descendant.Name == "RobloxForwardPortals" then
  53. descendant:Destroy()
  54. end
  55. end)
  56. end
  57. deleteAds()
  58.  
  59. function deleteBodyMovementScript()
  60. if lp.player.Character and lp.player.Character:FindFirstChild("bodyMovementScript") then
  61. lp.player.Character.bodyMovementScript:Destroy()
  62. end
  63. end
  64. deleteBodyMovementScript()
  65.  
  66. services.muscleEvent = lp.player:WaitForChild("muscleEvent", 10)
  67. local library = loadstring(game:HttpGet("https://gist.githubusercontent.com/vyuxaqx/e041d7f5912c4dd2f65fe2d4f63f1641/raw/ab75c61265078b5a024f0e9e2e9a8afdcf696fde/eleriumLibraryMod.luau", true))()
  68. local silence, silenceWindow = library:AddWindow("Neutron", {
  69. main_color = Color3.fromRGB(135, 45, 90),
  70. min_size = Vector2.new(500, 400),
  71. can_resize = false
  72. })
  73.  
  74. local tabs = {
  75. rebirths = silence:AddTab("Rebirths"),
  76. strength2 = silence:AddTab("Fast Farm"),
  77. other = silence:AddTab("Other"),
  78. }
  79.  
  80. tabs.other:Show()
  81.  
  82. function formatNumber(num)
  83. if not num then return "0" end
  84. if num >= 1e18 then return string.format("%.2fQi", num/1e18) end
  85. if num >= 1e15 then return string.format("%.2fQa", num/1e15) end
  86. if num >= 1e12 then return string.format("%.2fT", num/1e12) end
  87. if num >= 1e9 then return string.format("%.2fB", num/1e9) end
  88. if num >= 1e6 then return string.format("%.2fM", num/1e6) end
  89. if num >= 1e3 then return string.format("%.2fK", num/1e3) end
  90. return string.format("%.0f", num)
  91. end
  92.  
  93. function formatDuration(seconds)
  94. seconds = math.max(0, math.floor(seconds))
  95. return string.format("%dd %dh %dm %ds",
  96. math.floor(seconds / 86400),
  97. math.floor((seconds % 86400) / 3600),
  98. math.floor((seconds % 3600) / 60),
  99. seconds % 60
  100. )
  101. end
  102.  
  103. -- ==================== REBIRTH TAB ====================
  104. local rb = tabs.rebirths
  105. rb.leaderstats = lp.player:WaitForChild("leaderstats")
  106. rb.rebirths = rb.leaderstats:WaitForChild("Rebirths")
  107. rb.strength = rb.leaderstats:WaitForChild("Strength")
  108.  
  109. rb.target = nil
  110. rb.autoTarget = false
  111. rb.infinite = false
  112. rb.running = false
  113. rb.workerActive = false
  114. rb.samples = {}
  115. rb.lastGainAt = tick()
  116. rb.lastValue = rb.rebirths.Value
  117. rb.startValue = rb.rebirths.Value
  118.  
  119. rb.Status = rb:AddLabel("Status: Inactive")
  120. rb.Count = rb:AddLabel("Rebirths: " .. formatNumber(rb.rebirths.Value))
  121. rb.Objective = rb:AddLabel("Target: --")
  122. rb.Remaining = rb:AddLabel("Remaining: --")
  123. rb.Eta = rb:AddLabel("Time: --")
  124. rb.Cycle = rb:AddLabel("Cycle: --")
  125. rb.Status.TextColor3 = Color3.fromRGB(255, 80, 80)
  126.  
  127. local function parseNumber(text)
  128. local cleaned = (tostring(text or ""):gsub("[%s,%.]", ""))
  129. return tonumber(cleaned)
  130. end
  131.  
  132. local function setStatus(text, color)
  133. rb.Status.Text = "Status: " .. text
  134. rb.Status.TextColor3 = color
  135. end
  136.  
  137. local function getRate()
  138. if #rb.samples < 2 then return nil end
  139. local totalTime, totalGain = 0, 0
  140. for _, s in ipairs(rb.samples) do
  141. totalTime = totalTime + s.time
  142. totalGain = totalGain + s.gain
  143. end
  144. if totalTime <= 0 or totalGain <= 0 then return nil end
  145. return totalGain / totalTime, totalTime / #rb.samples, totalGain / #rb.samples
  146. end
  147.  
  148. local function resetEstimator()
  149. rb.samples = {}
  150. rb.lastGainAt = tick()
  151. rb.lastValue = rb.rebirths.Value
  152. rb.startValue = rb.rebirths.Value
  153. end
  154.  
  155. table.insert(Connections, rb.rebirths:GetPropertyChangedSignal("Value"):Connect(function()
  156. local value = rb.rebirths.Value
  157. if rb.running and value > rb.lastValue then
  158. local now = tick()
  159. table.insert(rb.samples, { time = now - rb.lastGainAt, gain = value - rb.lastValue })
  160. if #rb.samples > 5 then
  161. table.remove(rb.samples, 1)
  162. end
  163. rb.lastGainAt = now
  164. end
  165. rb.lastValue = value
  166. end))
  167.  
  168. rb.updateLabels = function()
  169. local current = rb.rebirths.Value
  170. rb.Count.Text = "Rebirths: " .. formatNumber(current) .. " | Gained: " .. formatNumber(current - rb.startValue)
  171.  
  172. if rb.target and not rb.infinite then
  173. rb.Objective.Text = "Target: " .. formatNumber(rb.target)
  174. else
  175. rb.Objective.Text = "Target: --"
  176. end
  177.  
  178. if rb.autoTarget and rb.target then
  179. local remaining = math.max(0, rb.target - current)
  180. local rate, cycleTime, cycleGain = getRate()
  181. rb.Remaining.Text = "Remaining: " .. formatNumber(remaining)
  182.  
  183. if remaining <= 0 then
  184. rb.Eta.Text = "Time: Target reached"
  185. elseif rate then
  186. rb.Eta.Text = "Time: " .. formatDuration(remaining / rate)
  187. else
  188. rb.Eta.Text = "Time: Calculating..."
  189. end
  190.  
  191. if cycleTime then
  192. rb.Cycle.Text = string.format("Cycle: %.2fs | +%s | Samples: %d", cycleTime, formatNumber(math.floor(cycleGain + 0.5)), #rb.samples)
  193. else
  194. rb.Cycle.Text = "Measuring cycles: " .. #rb.samples .. "/2"
  195. end
  196. else
  197. rb.Remaining.Text = "Remaining: --"
  198. rb.Eta.Text = "Time: --"
  199. rb.Cycle.Text = "Cycle: --"
  200. end
  201. end
  202.  
  203. rb.performRebirth = function()
  204. local strengthTarget = 5000 + rb.rebirths.Value * 2550
  205.  
  206. if rb.running and rb.strength.Value >= strengthTarget then
  207. local before = rb.rebirths.Value
  208. repeat
  209. services.replicatedstorage.rEvents.rebirthRemote:InvokeServer("rebirthRequest")
  210. task.wait(0.05)
  211. until rb.rebirths.Value > before or not rb.running
  212. end
  213. end
  214.  
  215. rb.stopAll = function()
  216. rb.autoTarget = false
  217. rb.infinite = false
  218. rb.running = false
  219. end
  220.  
  221. rb.startWorker = function()
  222. if rb.workerActive then return end
  223. rb.workerActive = true
  224.  
  225. task.spawn(function()
  226. while rb.running do
  227. if rb.autoTarget and rb.target and rb.rebirths.Value >= rb.target then
  228. rb.stopAll()
  229. rb.switching = true
  230. rb.targetSwitch:Set(false)
  231. rb.switching = false
  232. setStatus("Target reached", Color3.fromRGB(80, 200, 255))
  233. break
  234. end
  235.  
  236. rb.performRebirth()
  237. task.wait(0.1)
  238. end
  239. rb.workerActive = false
  240. end)
  241. end
  242.  
  243. rb.begin = function(statusText)
  244. resetEstimator()
  245. rb.running = true
  246. setStatus(statusText, Color3.fromRGB(80, 255, 120))
  247. rb.startWorker()
  248. end
  249.  
  250. rb.finish = function()
  251. rb.running = false
  252. setStatus("Paused", Color3.fromRGB(255, 180, 70))
  253. end
  254.  
  255. rb:AddTextBox("Rebirth target (e.g. 18980)", function(text)
  256. local parsed = parseNumber(text)
  257. rb.target = (parsed and parsed > 0) and parsed or nil
  258. rb.updateLabels()
  259. end)
  260.  
  261. rb.targetSwitch = rb:AddSwitch("Rebirth until target", function(state)
  262. if rb.switching then return end
  263. if state then
  264. if not rb.target then
  265. setStatus("Set a target first!", Color3.fromRGB(255, 80, 80))
  266. rb.switching = true
  267. rb.targetSwitch:Set(false)
  268. rb.switching = false
  269. return
  270. end
  271. rb.infinite = false
  272. rb.autoTarget = true
  273. rb.switching = true
  274. rb.infiniteSwitch:Set(false)
  275. rb.switching = false
  276. rb.begin("Rebirthing to target")
  277. else
  278. rb.autoTarget = false
  279. if not rb.infinite then rb.finish() end
  280. end
  281. end)
  282.  
  283. rb.infiniteSwitch = rb:AddSwitch("Infinite Rebirths", function(state)
  284. if rb.switching then return end
  285. if state then
  286. rb.autoTarget = false
  287. rb.infinite = true
  288. rb.switching = true
  289. rb.targetSwitch:Set(false)
  290. rb.switching = false
  291. rb.begin("Rebirthing (infinite)")
  292. else
  293. rb.infinite = false
  294. if not rb.autoTarget then rb.finish() end
  295. end
  296. end)
  297.  
  298. rb.targetSwitch:Set(false)
  299. rb.infiniteSwitch:Set(false)
  300.  
  301. task.spawn(function()
  302. while silenceWindow do
  303. rb.updateLabels()
  304. task.wait(0.5)
  305. end
  306. end)
  307.  
  308. -- ==================== STRENGTH TAB ====================
  309. local str = tabs.strength2
  310. str.running = false
  311. str.workerActive = false
  312. str.startedAt = 0
  313. str.totalElapsed = 0
  314. str.timerStarted = false
  315. str.repSpeed = 40
  316. str.pingControl = true
  317. str.currentPing = 0
  318. str.Status = str:AddLabel("Status: Inactive")
  319. str.Runtime = str:AddLabel("Runtime: 0d 0h 0m 0s")
  320. str.Status.TextColor3 = Color3.fromRGB(255, 80, 80)
  321. str.leaderstats = lp.player:WaitForChild("leaderstats")
  322. str.strength = str.leaderstats:WaitForChild("Strength")
  323. str.startStrength = str.strength.Value
  324. str.StrengthStats = str:AddLabel("Strength: " .. formatNumber(str.strength.Value) .. " | Gained: 0")
  325.  
  326. str.updateStats = function()
  327. str.StrengthStats.Text = "Strength: " .. formatNumber(str.strength.Value)
  328. .. " | Gained: " .. formatNumber(str.strength.Value - str.startStrength)
  329. end
  330.  
  331. table.insert(Connections, str.strength:GetPropertyChangedSignal("Value"):Connect(function()
  332. str.updateStats()
  333. end))
  334.  
  335. str.updateRuntime = function()
  336. local elapsed = str.totalElapsed
  337. if str.running and str.timerStarted then
  338. elapsed = elapsed + tick() - str.startedAt
  339. end
  340. str.Runtime.Text = string.format("Runtime: %dd %dh %dm %ds",
  341. math.floor(elapsed / 86400),
  342. math.floor((elapsed % 86400) / 3600),
  343. math.floor((elapsed % 3600) / 60),
  344. math.floor(elapsed % 60)
  345. )
  346. end
  347.  
  348. str.networkStats = services.stats.Network.ServerStatsItem["Data Ping"]
  349.  
  350. str.getCurrentPing = function()
  351. return str.networkStats:GetValue()
  352. end
  353.  
  354. str.getAdaptiveSpeed = function(ping)
  355. if ping < 80 then return 500
  356. elseif ping < 150 then return 300
  357. elseif ping < 250 then return 100
  358. end
  359. return 50
  360. end
  361.  
  362. str.workerLoop = function()
  363. str.lastPingUpdate = time()
  364. str.currentPing = str.getCurrentPing()
  365.  
  366. while str.running do
  367. if time() - str.lastPingUpdate > 0.5 then
  368. str.currentPing = str.getCurrentPing()
  369. str.lastPingUpdate = time()
  370. end
  371.  
  372. local repsToFire = str.pingControl and str.getAdaptiveSpeed(str.currentPing) or str.repSpeed
  373. repsToFire = math.min(repsToFire, str.repSpeed)
  374. local delayBetweenBatches = math.clamp(str.currentPing / 2500, 0.001, 0.1)
  375.  
  376. str.Status.Text = "Status: Farming | " .. formatNumber(repsToFire) .. " reps/batch | " .. formatNumber(str.currentPing) .. " ms"
  377. str.Status.TextColor3 = Color3.fromRGB(80, 255, 120)
  378.  
  379. for repCount = 1, repsToFire do
  380. if not str.running then break end
  381. if services.muscleEvent then
  382. services.muscleEvent:FireServer("rep")
  383. end
  384. if repCount % 500 == 0 then
  385. task.wait()
  386. end
  387. end
  388. task.wait(delayBetweenBatches)
  389. end
  390.  
  391. str.workerActive = false
  392. end
  393.  
  394. str.startWorker = function()
  395. if str.workerActive then return end
  396. str.workerActive = true
  397. task.spawn(str.workerLoop)
  398. end
  399.  
  400. str.repSpeedSlider = str:AddSlider("Reps/s", function(value)
  401. str.repSpeed = math.clamp(math.floor(value), 1, 100)
  402. end, {min = 1, max = 100})
  403. str.repSpeedSlider:Set(40)
  404.  
  405. str:AddSwitch("Controlled Speed", function(state)
  406. str.pingControl = state
  407. end):Set(true)
  408.  
  409. str.FastRepToggle = str:AddSwitch("Fast Rep", function(state)
  410. str.running = state
  411. if state then
  412. str.timerStarted = true
  413. str.startedAt = tick()
  414. str.Status.Text = "Status: Starting..."
  415. str.Status.TextColor3 = Color3.fromRGB(80, 255, 120)
  416. str.startWorker()
  417. else
  418. if str.timerStarted and str.startedAt > 0 then
  419. str.totalElapsed = str.totalElapsed + tick() - str.startedAt
  420. str.startedAt = 0
  421. str.timerStarted = false
  422. end
  423. str.Status.Text = str.totalElapsed > 0 and "Status: Paused" or "Status: Inactive"
  424. str.Status.TextColor3 = str.totalElapsed > 0 and Color3.fromRGB(255, 180, 70) or Color3.fromRGB(255, 80, 80)
  425. str.updateRuntime()
  426. end
  427. end)
  428. str.FastRepToggle:Set(false)
  429.  
  430. task.spawn(function()
  431. while true do
  432. str.updateRuntime()
  433. task.wait(1)
  434. end
  435. end)
  436. str:AddLabel("20-50 rep speed is recommended, higher might cause lags.")
  437.  
  438. -- ==================== OTHER TAB ====================
  439. local oth = tabs.other
  440.  
  441. oth.eggsowned = oth:AddLabel("Protein Eggs: 0")
  442. oth.eggsowned.TextSize = 14
  443. oth.autoEgg = false
  444. oth.autoShake = false
  445. oth.autoCrystal = false
  446. oth.autoEvolve = false
  447. oth.eatAllBoostsRunning = false
  448. oth.evolvePetName = "Nova Phoenix"
  449.  
  450. task.spawn(function()
  451. while true do
  452. local count = 0
  453. local backpack = lp.player:FindFirstChild("Backpack")
  454. if backpack then
  455. for _, item in ipairs(backpack:GetChildren()) do
  456. if item.Name == "Protein Egg" then count = count + 1 end
  457. end
  458. end
  459. oth.eggsowned.Text = "Protein Eggs: " .. count
  460. task.wait(1)
  461. end
  462. end)
  463.  
  464. oth.x2str = oth:AddLabel("x2 Strength: 00:00")
  465. oth.x2str.TextSize = 14
  466.  
  467. task.spawn(function()
  468. while true do
  469. local boostTimers = lp.player:FindFirstChild("boostTimersFolder")
  470. local boost = boostTimers and boostTimers:FindFirstChild("Protein Egg")
  471. local seconds = (boost and boost:IsA("IntValue")) and boost.Value or 0
  472. oth.x2str.Text = "x2 Strength: " .. formatDuration(seconds)
  473. task.wait(1)
  474. end
  475. end)
  476.  
  477. local function eatEgg()
  478. local char = lp.player.Character
  479. local backpack = lp.player:FindFirstChild("Backpack")
  480. local tool = (char and char:FindFirstChild("Protein Egg")) or (backpack and backpack:FindFirstChild("Protein Egg"))
  481. if tool and services.muscleEvent then
  482. for _ = 1, 5 do
  483. services.muscleEvent:FireServer("proteinEgg", tool)
  484. end
  485. end
  486. end
  487.  
  488. task.spawn(function()
  489. while true do
  490. if oth.autoEgg then
  491. eatEgg()
  492. task.wait(0.5)
  493. else
  494. task.wait(1)
  495. end
  496. end
  497. end)
  498.  
  499. oth:AddSwitch("Eat Eggs", function(state)
  500. oth.autoEgg = state
  501. end)
  502.  
  503. local function eatShake()
  504. local char = lp.player.Character
  505. local backpack = lp.player:FindFirstChild("Backpack")
  506. local tool = (char and char:FindFirstChild("Tropical Shake")) or (backpack and backpack:FindFirstChild("Tropical Shake"))
  507. if tool and services.muscleEvent then
  508. services.muscleEvent:FireServer("tropicalShake", tool)
  509. end
  510. end
  511.  
  512. task.spawn(function()
  513. while true do
  514. if oth.autoShake then
  515. eatShake()
  516. task.wait(150)
  517. else
  518. task.wait(1)
  519. end
  520. end
  521. end)
  522.  
  523. oth:AddSwitch("Auto Shake", function(state)
  524. oth.autoShake = state
  525. end)
  526.  
  527. -- Auto Spin Wheel
  528. oth:AddSwitch("Spin Fortune Wheel", function(bool)
  529. _G.AutoSpinWheel = bool
  530. if bool then
  531. task.spawn(function()
  532. local rspin = services.replicatedstorage.rEvents:FindFirstChild("openFortuneWheelRemote")
  533. local chances = services.replicatedstorage.shared.catalogs.fortuneWheelChances["Fortune Wheel"]
  534. while _G.AutoSpinWheel and rspin do
  535. rspin:InvokeServer("openFortuneWheel", chances)
  536. task.wait(1)
  537. end
  538. end)
  539. end
  540. end)
  541.  
  542. -- Auto Crystal
  543. task.spawn(function()
  544. while true do
  545. if oth.autoCrystal then
  546. pcall(function()
  547. services.replicatedstorage.rEvents.openCrystalRemote:InvokeServer("openCrystalBulk", "Overcharged Crystal", 10)
  548. end)
  549. task.wait(0.2)
  550. else
  551. task.wait(1)
  552. end
  553. end
  554. end)
  555.  
  556. oth:AddSwitch("Bulk Open Overcharged Crystal", function(state)
  557. oth.autoCrystal = state
  558. end):Set(false)
  559.  
  560. -- Anti-Lag
  561. local antiLagActive = false
  562. oth:AddButton("Anti Lag (Optimization)", function()
  563. if antiLagActive then return end
  564. antiLagActive = true
  565.  
  566. for _, v in ipairs(services.lighting:GetChildren()) do
  567. if v:IsA("Sky") or v:IsA("Atmosphere") then
  568. v:Destroy()
  569. end
  570. end
  571.  
  572. local darkSky = Instance.new("Sky")
  573. darkSky.Name = "DarkSky"
  574. darkSky.SkyboxBk, darkSky.SkyboxDn, darkSky.SkyboxFt = "rbxassetid://0", "rbxassetid://0", "rbxassetid://0"
  575. darkSky.SkyboxLf, darkSky.SkyboxRt, darkSky.SkyboxUp = "rbxassetid://0", "rbxassetid://0", "rbxassetid://0"
  576. darkSky.Parent = services.lighting
  577.  
  578. services.lighting.Brightness = 0
  579. services.lighting.GlobalShadows = false
  580.  
  581. for _, obj in ipairs(workspace:GetDescendants()) do
  582. if obj:IsA("ParticleEmitter") or obj:IsA("PointLight") or obj:IsA("SpotLight") or obj:IsA("SurfaceLight") then
  583. obj:Destroy()
  584. elseif obj:IsA("BasePart") then
  585. obj.Color = Color3.new(0, 0, 0)
  586. obj.Material = Enum.Material.SmoothPlastic
  587. end
  588. end
  589. end)
  590.  
  591. -- Titling & Ping Display
  592. task.spawn(function()
  593. while silence do
  594. local ok, ping = pcall(function()
  595. return str.networkStats:GetValue()
  596. end)
  597. silence:SetTitle("Neutron | ping: " .. (ok and math.floor(ping) or "?") .. " ms")
  598. task.wait(2)
  599. end
  600. end)
Advertisement
Add Comment
Please, Sign In to add comment