M
Description
Enjoy i guess lol idk wat to say other then enjoy farming scrap
GAMEGrow a Chicken Fighter
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. 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 BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/client.lua?s=6aa0f331bbc326101ec3d5fe"))()
end)
end)
--[[rscripts:analytics:end]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local plots = workspace.World:WaitForChild("Plots")
local scraps = workspace:WaitForChild("PitScrap")
local recyclers = workspace:WaitForChild("Recyclers")
local character
local humanoid
local root
local picked = 0
local pathFolder
local purple = Color3.fromRGB(155, 70, 255)
local lightPurple = Color3.fromRGB(210, 150, 255)
local function refresh()
character = player.Character or player.CharacterAdded:Wait()
humanoid = character:WaitForChild("Humanoid")
root = character:WaitForChild("HumanoidRootPart")
end
refresh()
pathFolder = Instance.new("Folder")
pathFolder.Name = "PSH_ArrowPath"
pathFolder.Parent = workspace
local forceField = Instance.new("Highlight")
forceField.Name = "PSH_PurpleForceField"
forceField.FillColor = purple
forceField.OutlineColor = lightPurple
forceField.FillTransparency = 0.65
forceField.OutlineTransparency = 0.05
forceField.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
forceField.Parent = character
local sky = workspace:FindFirstChildOfClass("Sky")
if sky then
sky.SkyboxBk = "rbxassetid://159454299"
sky.SkyboxDn = "rbxassetid://159454299"
sky.SkyboxFt = "rbxassetid://159454299"
sky.SkyboxLf = "rbxassetid://159454299"
sky.SkyboxRt = "rbxassetid://159454299"
sky.SkyboxUp = "rbxassetid://159454299"
end
local lighting = game:GetService("Lighting")
lighting.Ambient = purple
lighting.OutdoorAmbient = Color3.fromRGB(90, 40, 130)
lighting.ColorShift_Top = Color3.fromRGB(80, 30, 120)
lighting.ColorShift_Bottom = Color3.fromRGB(35, 15, 55)
RunService.Stepped:Connect(function()
character = player.Character
if not character then return end
for _, v in ipairs(character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
if not character:FindFirstChild("PSH_PurpleForceField") then
forceField = Instance.new("Highlight")
forceField.Name = "PSH_PurpleForceField"
forceField.FillColor = purple
forceField.OutlineColor = lightPurple
forceField.FillTransparency = 0.65
forceField.OutlineTransparency = 0.05
forceField.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
forceField.Parent = character
end
end)
task.spawn(function()
while task.wait(0.08) do
if forceField and forceField.Parent then
local t = (math.sin(os.clock() * 2) + 1) / 2
forceField.OutlineColor = purple:Lerp(lightPurple, t)
forceField.FillTransparency = 0.58 + t * 0.12
end
end
end)
local function getPosition(obj)
if obj:IsA("BasePart") then
return obj.Position
end
if obj:IsA("Model") then
local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart", true)
if part then
return part.Position
end
end
end
local function clearPath()
for _, v in ipairs(pathFolder:GetChildren()) do
v:Destroy()
end
end
local function makeArrow(position, direction, index, total)
local flat = Vector3.new(direction.X, 0, direction.Z)
if flat.Magnitude <= 0 then
return
end
flat = flat.Unit
local arrow = Instance.new("Model")
arrow.Name = "Arrow_" .. index
arrow.Parent = pathFolder
local baseCF = CFrame.lookAt(
position + Vector3.new(0, 0.22, 0),
position + Vector3.new(flat.X, 0.22, flat.Z)
)
local function part(size, offset, color)
local p = Instance.new("Part")
p.Size = size
p.CFrame = baseCF * offset
p.Anchored = true
p.CanCollide = false
p.CanTouch = false
p.CanQuery = false
p.CastShadow = false
p.Material = Enum.Material.Neon
p.Color = color
p.Transparency = 0.3
p.Parent = arrow
return p
end
local shaft = part(
Vector3.new(0.55, 0.16, 1.45),
CFrame.new(0, 0, 0.55),
purple
)
local left = part(
Vector3.new(0.5, 0.16, 0.85),
CFrame.new(-0.43, 0, -0.15) * CFrame.Angles(0, 0, math.rad(-42)),
purple
)
local right = part(
Vector3.new(0.5, 0.16, 0.85),
CFrame.new(0.43, 0, -0.15) * CFrame.Angles(0, 0, math.rad(42)),
purple
)
local tip = part(
Vector3.new(0.75, 0.16, 0.75),
CFrame.new(0, 0, -0.65),
lightPurple
)
local outlineFolder = Instance.new("Folder")
outlineFolder.Name = "Edge"
outlineFolder.Parent = arrow
local edges = {
{Vector3.new(0.08, 0.2, 1.5), CFrame.new(-0.32, 0.05, 0.55)},
{Vector3.new(0.08, 0.2, 1.5), CFrame.new(0.32, 0.05, 0.55)},
{Vector3.new(0.08, 0.2, 0.9), CFrame.new(-0.62, 0.05, -0.15) * CFrame.Angles(0, 0, math.rad(-42))},
{Vector3.new(0.08, 0.2, 0.9), CFrame.new(0.62, 0.05, -0.15) * CFrame.Angles(0, 0, math.rad(42))}
}
for _, data in ipairs(edges) do
local edge = Instance.new("Part")
edge.Size = data[1]
edge.CFrame = baseCF * data[2]
edge.Anchored = true
edge.CanCollide = false
edge.CanTouch = false
edge.CanQuery = false
edge.CastShadow = false
edge.Material = Enum.Material.Neon
edge.Color = lightPurple
edge.Transparency = 0.45
edge.Parent = outlineFolder
end
local parts = {shaft, left, right, tip}
task.spawn(function()
local phase = index * 0.35
while arrow.Parent do
local t = os.clock() * 2.5 + phase
local pulse = (math.sin(t) + 1) / 2
local y = math.sin(t) * 0.08
for _, p in ipairs(parts) do
if p.Parent then
p.Transparency = 0.24 + pulse * 0.12
end
end
for _, p in ipairs(outlineFolder:GetChildren()) do
if p:IsA("BasePart") then
p.Transparency = 0.4 + pulse * 0.12
end
end
local offset = CFrame.new(0, y, 0)
shaft.CFrame = baseCF * offset * CFrame.new(0, 0, 0.55)
left.CFrame = baseCF * offset * CFrame.new(-0.43, 0, -0.15) * CFrame.Angles(0, 0, math.rad(-42))
right.CFrame = baseCF * offset * CFrame.new(0.43, 0, -0.15) * CFrame.Angles(0, 0, math.rad(42))
tip.CFrame = baseCF * offset * CFrame.new(0, 0, -0.65)
for _, p in ipairs(outlineFolder:GetChildren()) do
if p:IsA("BasePart") then
p.Color = purple:Lerp(lightPurple, pulse)
end
end
task.wait()
end
end)
end
local function createPath(destination)
clearPath()
refresh()
local start = root.Position
local finish = destination
local a = Vector3.new(start.X, 0, start.Z)
local b = Vector3.new(finish.X, 0, finish.Z)
local direction = b - a
local distance = direction.Magnitude
if distance < 5 then
return
end
local spacing = 6
local amount = math.clamp(math.floor(distance / spacing), 2, 50)
for i = 1, amount do
local alpha = i / (amount + 1)
local pos = a:Lerp(b, alpha)
makeArrow(
Vector3.new(pos.X, finish.Y, pos.Z),
direction,
i,
amount
)
end
end
local function getPlot()
local username = player.Name:lower()
for _, plot in ipairs(plots:GetChildren()) do
local owner = plot:FindFirstChild("Owner")
local playerName = owner and owner:FindFirstChild("PlayerName")
if playerName and playerName:IsA("TextLabel") then
local name = playerName.Text:gsub("%s+", ""):lower()
if name ~= "" and username:sub(1, #name) == name then
return plot
end
end
end
end
local function getRecycler()
local plot = getPlot()
if not plot then
print("[PSH DEBUG] Could not find local player's plot")
return nil
end
local number = plot.Name:match("%d+")
if not number then
print("[PSH DEBUG] Could not get plot number")
return nil
end
local recycler = recyclers:FindFirstChild("Recycler" .. number)
if recycler then
print("[PSH DEBUG] " .. plot.Name .. " -> " .. recycler.Name)
else
print("[PSH DEBUG] Recycler" .. number .. " not found")
end
return recycler
end
local function getClosestScrap()
refresh()
local closest
local closestDistance = math.huge
for _, scrap in ipairs(scraps:GetChildren()) do
local position = getPosition(scrap)
if position then
local distance = (root.Position - position).Magnitude
if distance < closestDistance then
closest = scrap
closestDistance = distance
end
end
end
return closest
end
local function walkTo(position)
refresh()
createPath(position)
humanoid:MoveTo(position)
local started = tick()
local lastPath = tick()
while tick() - started < 30 do
if not character.Parent then
refresh()
break
end
if (root.Position - position).Magnitude <= 5 then
break
end
if tick() - lastPath >= 0.7 then
createPath(position)
lastPath = tick()
end
humanoid:MoveTo(position)
task.wait(0.12)
end
clearPath()
end
local function goRecycler()
local recycler = getRecycler()
if not recycler then
return false
end
local position = getPosition(recycler)
if not position then
print("[PSH DEBUG] Recycler has no position")
return false
end
print("[PSH] Going to recycler")
walkTo(position)
print("[PSH] At recycler, waiting 5 seconds")
task.wait(5)
return true
end
print("[PSH] Scrap farm started")
while task.wait(0.2) do
refresh()
if picked >= 20 then
print("[PSH] Picked up 20/20 scrap")
if goRecycler() then
picked = 0
print("[PSH] Starting next 20 scrap")
else
task.wait(2)
end
continue
end
local scrap = getClosestScrap()
if not scrap then
print("[PSH] No scrap found, returning to recycler")
if goRecycler() then
print("[PSH] Checking for new scrap")
else
task.wait(2)
end
continue
end
local position = getPosition(scrap)
if not position then
task.wait(0.5)
continue
end
print("[PSH] Going to scrap: " .. scrap.Name)
walkTo(position)
local oldParent = scrap.Parent
local started = tick()
while scrap.Parent == oldParent and tick() - started < 3 do
task.wait(0.1)
end
if scrap.Parent ~= oldParent then
picked += 1
print("[PSH] Scrap: " .. picked .. "/20")
else
print("[PSH DEBUG] Pickup failed: " .. scrap.Name)
end
endReview the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place