Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 💰 STEAL A BRAINROT - AUTO COLLECT v11.0
- -- Using smooth tween movement instead of teleport!
- -- Services
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local TweenService = game:GetService("TweenService")
- -- Player
- local player = Players.LocalPlayer
- -- Tween variables
- local isTweening = false
- -- Get Net system and ClaimCoins RemoteEvent
- local Net = require(ReplicatedStorage.Packages.Net)
- local ClaimCoinsRemote = Net:RemoteEvent("PlotService/ClaimCoins")
- -- Use the game's PlotController
- local Controllers = ReplicatedStorage:WaitForChild("Controllers")
- local PlotController = require(Controllers.PlotController)
- -- 📊 Visual Flow Diagram:
- --┌─ auto_collect_money() ─┐
- --│ │
- --├─ Get Plot via Game API │
- --├─ Tween to Collection ───┼─ Smooth Movement → Fire RemoteEvent
- --├─ Fire ClaimCoins │
- --│ │
- --└─ Continue Loop │
- local isFlyModeActive = false
- local flyModeThread = nil
- local function toggleFlyMode()
- isFlyModeActive = not isFlyModeActive
- if isFlyModeActive then
- flyModeThread = spawn(function()
- while isFlyModeActive do
- pcall(function()
- local player = game:GetService("Players").LocalPlayer
- local character = player.Character
- if not character then return end
- local humanoid = character:FindFirstChild("Humanoid")
- local rootPart = character:FindFirstChild("HumanoidRootPart")
- if not humanoid or not rootPart then return end
- local camera = workspace.CurrentCamera
- local UIS = game:GetService("UserInputService")
- local flySpeed = humanoid.WalkSpeed * 0.9
- -- Check if Gyro exists in rootPart, create if not
- local Gyro = rootPart:FindFirstChild("Gyro")
- if not Gyro then
- Gyro = Instance.new("BodyGyro")
- Gyro.Name = "Gyro"
- Gyro.P = 9e4
- Gyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
- Gyro.Parent = rootPart
- end
- -- Check if BodyVelocity exists in rootPart, create if not
- local Velocity = rootPart:FindFirstChild("BodyVelocity")
- if not Velocity then
- Velocity = Instance.new("BodyVelocity")
- Velocity.Name = "BodyVelocity"
- Velocity.MaxForce = Vector3.new(9e9, 9e9, 9e9)
- Velocity.Velocity = Vector3.zero
- Velocity.Parent = rootPart
- end
- -- Set platform stand
- humanoid.PlatformStand = true
- -- Update Gyro CFrame
- Gyro.CFrame = CFrame.new(rootPart.Position, rootPart.Position + camera.CFrame.LookVector)
- -- Calculate movement direction based on key presses
- local moveDir = Vector3.new(0,0,0)
- if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + camera.CFrame.LookVector end
- if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - camera.CFrame.LookVector end
- if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - camera.CFrame.RightVector end
- if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + camera.CFrame.RightVector end
- -- Apply speed
- if moveDir.Magnitude > 0 then moveDir = moveDir.Unit * flySpeed end
- Velocity.Velocity = moveDir
- end)
- task.wait(0.1)
- end
- end)
- else
- -- Clean up when toggled off
- pcall(function()
- local player = game:GetService("Players").LocalPlayer
- local character = player.Character
- if character then
- local humanoid = character:FindFirstChild("Humanoid")
- local rootPart = character:FindFirstChild("HumanoidRootPart")
- if humanoid then humanoid.PlatformStand = false end
- if rootPart then
- local Gyro = rootPart:FindFirstChild("Gyro")
- local Velocity = rootPart:FindFirstChild("BodyVelocity")
- if Gyro then Gyro:Destroy() end
- if Velocity then Velocity:Destroy() end
- end
- end
- end)
- end
- return isFlyModeActive
- end
- local isNoClipActive = false
- local noClipThread = nil
- local function toggleNoClip()
- isNoClipActive = not isNoClipActive
- if isNoClipActive then
- noClipThread = spawn(function()
- while isNoClipActive do
- pcall(function()
- local character = game.Players.LocalPlayer.Character
- if character then
- for _, v in pairs(character:GetDescendants()) do
- if v:IsA("BasePart") and v.CanCollide == true then
- v.CanCollide = false
- end
- end
- end
- end)
- game:GetService("Players").LocalPlayer.CameraMaxZoomDistance = 20
- -- Set minimum zoom distance
- game:GetService("Players").LocalPlayer.CameraMinZoomDistance = 10
- -- Set current zoom distance
- camera.CFrame = camera.CFrame * CFrame.new(0, 0, 20)
- game:GetService("RunService").Stepped:Wait()
- end
- end)
- else
- -- Clean up when toggled off
- pcall(function()
- local character = game.Players.LocalPlayer.Character
- if character then
- for _, v in pairs(character:GetDescendants()) do
- if v:IsA("BasePart") then
- v.CanCollide = true
- end
- end
- end
- end)
- end
- return isNoClipActive
- end
- function TweenCharacterToTarget(targetPart)
- -- If already tweening, don't start a new tween
- if isTweening then
- return false
- end
- -- Parameter validation
- if not targetPart then
- warn("Target part not provided!")
- return false
- end
- -- Mark as tweening
- isTweening = true
- -- Fixed speed setting
- local speed = 16
- -- Get Player and Character
- local player = Players.LocalPlayer
- local character = player.Character or player.CharacterAdded:Wait()
- local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
- -- Calculate direct target position
- local startPosition = humanoidRootPart.Position
- local targetPosition = targetPart.Position + Vector3.new(0, 0, 0) -- 0 3 0 for Slightly above target
- local targetCFrame = CFrame.new(targetPosition, targetPosition + humanoidRootPart.CFrame.LookVector)
- -- Calculate distance and time based on speed
- local distance = (targetPosition - startPosition).Magnitude
- local tweenTime = distance / speed
- -- Create single direct tween with calculated time
- local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
- local directTween = TweenService:Create(humanoidRootPart, tweenInfo, { CFrame = targetCFrame })
- -- Reset tweening flag when tween completes
- directTween.Completed:Connect(function()
- isTweening = false
- end)
- -- Start the tween
- directTween:Play()
- -- Return tween
- return directTween
- end
- local function auto_collect_money()
- -- Get our plot using game's method
- local myPlot = PlotController:GetMyPlot()
- if not myPlot then return 0 end
- -- Get player character
- local character = player.Character
- if not character then return 0 end
- local rootPart = character:FindFirstChild("HumanoidRootPart")
- if not rootPart then return 0 end
- local collected = 0
- -- Get AnimalPodiums
- local animalPodiums = myPlot.PlotModel:FindFirstChild("AnimalPodiums")
- if not animalPodiums then return 0 end
- -- Check each slot for money to collect
- for slotNumber = 1, 10 do
- local podium = animalPodiums:FindFirstChild(tostring(slotNumber))
- if podium then
- local claim = podium:FindFirstChild("Claim")
- if claim then
- local main = claim:FindFirstChild("Main")
- if main then
- local collectButton = main:FindFirstChild("Collect")
- if collectButton and collectButton.Enabled then
- -- Tween to collection area using your function
- local hitbox = claim:FindFirstChild("Hitbox")
- if hitbox then
- print("💫 Tweening to collect from slot", slotNumber)
- local horizontalTween, verticalTween, downwardTween = TweenCharacterToTarget(hitbox)
- -- Wait for tween to complete
- if verticalTween then
- verticalTween.Completed:Wait()
- end
- -- Small delay then fire RemoteEvent
- task.wait(0.3)
- ClaimCoinsRemote:FireServer(slotNumber)
- collected = collected + 1
- print("💰 Collected from slot", slotNumber)
- task.wait(0.5) -- Prevent spam
- end
- end
- end
- end
- end
- end
- return collected
- end
- print("🚀 Auto-Collect Money Started! (SMOOTH TWEEN VERSION)")
- -- Wait for game to load
- task.wait(3)
- -- Main loop
- while true do
- if not isFlyModeActive then
- toggleFlyMode()
- end
- if not isNoClipActive then
- toggleNoClip()
- end
- if not isTweening then -- Only collect when not already tweening
- local collected = auto_collect_money()
- if collected > 0 then
- print("✅ Successfully collected from", collected, "animals using smooth tweens!")
- end
- end
- task.wait(2) -- Check every 2 seconds
- end
Add Comment
Please, Sign In to add comment