50 Days on a Raft Script

The 50 Days on a Raft Script helps players survive longer, gather resources faster, and automate important actions in the Roblox game. With features like Auto Gather, Auto Build, Infinite Stamina, and ESP, this script makes survival easier and more enjoyable.

What is 50 Days on a Raft Script?

The 50 Days on a Raft Script is a Lua script designed for the Roblox game 50 Days on a Raft. It gives players access to automated survival tools that help collect materials, build structures, defend against threats, and maintain resources without constant manual effort.

This script is perfect for players who want smoother progression and easier survival while spending more time exploring and less time grinding.

50 Days on a Raft Script

Features Of 50 Days on a Raft Script

1

Auto Gather Resources

Automatically collects wood, barrels, leaves, and floating materials around your raft.

2

Auto Build Structures

Automatically places and upgrades essential structures like floors, walls, nets, and crafting stations.

3

Infinite Stamina

Prevents your stamina from running out so you can move, swim, and work without slowing down.

Download & Copy All 50 Days on a Raft Script 2025

1. 50 Days on a Raft Script

--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local player = game:GetService("Players").LocalPlayer
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local ScreenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
ScreenGui.Name = "AutoFarmGUI"
ScreenGui.ResetOnSpawn = false

local Button = Instance.new("TextButton", ScreenGui)
Button.Size = UDim2.new(0, 140, 0, 45)
Button.Position = UDim2.new(0.05, 0, 0.3, 0)
Button.Text = "Auto Farm: OFF"
Button.BackgroundColor3 = Color3.fromRGB(255, 70, 70)
Button.TextScaled = true
Button.Active = true

local autoFarm = false

local dragging = false
local dragStart
local startPosButton

local function update(input)
local delta = input.Position - dragStart
Button.Position = UDim2.new(
startPosButton.X.Scale,
startPosButton.X.Offset + delta.X,
startPosButton.Y.Scale,
startPosButton.Y.Offset + delta.Y
)
end

local function dragBegin(input)
dragging = true
dragStart = input.Position
startPosButton = Button.Position
end

local function dragEnd(input)
dragging = false
end

Button.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragBegin(input)
end
end)
Button.InputEnded:Connect(dragEnd)

UIS.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end)

local function getNearestRoot()
local nearest
local minDistance = math.huge

local char = player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end

local hrp = char.HumanoidRootPart

for _, sea in ipairs(workspace.WorldSea:GetChildren()) do
for _, fish in ipairs(sea:GetChildren()) do
if fish:FindFirstChild("Model") and fish.Model:FindFirstChild("Root") then
local root = fish.Model.Root
local dist = (root.Position - hrp.Position).Magnitude

if dist < minDistance then
minDistance = dist
nearest = root
end
end
end
end

return nearest
end

local function tweenToRoot(root)
local char = player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end

local hrp = char.HumanoidRootPart
local distance = (root.Position - hrp.Position).Magnitude

local tweenInfo = TweenInfo.new(
distance / 60,
Enum.EasingStyle.Linear
)

local tween = TweenService:Create(hrp, tweenInfo, {
CFrame = CFrame.new(root.Position)
})

tween:Play()
return tween
end

local function findTool()
local char = player.Character
if not char then return nil end

for _, item in ipairs(char:GetChildren()) do
if item:IsA("Tool") then
return item
end
end

return nil
end

local function autoCast(root)
if not root then return end

local tool = findTool()
if not tool then return end

local args = {
[1] = "Fire",
[2] = {
cameraOrigin = workspace.CurrentCamera.CFrame.Position,
player = player,
toolInstance = tool,
destination = root.Position,
isCharge = false
}
}

game:GetService("ReplicatedStorage").Remotes.FireRE:FireServer(unpack(args))
end

task.spawn(function()
while true do
if autoFarm then
local root = getNearestRoot()
if root then
tweenToRoot(root)
task.wait(0.2)
autoCast(root)
end
end
task.wait(0.03)
end
end)

Button.MouseButton1Click:Connect(function()
autoFarm = not autoFarm
if autoFarm then
Button.Text = "Auto Farm: ON"
Button.BackgroundColor3 = Color3.fromRGB(70, 255, 70)
else
Button.Text = "Auto Farm: OFF"
Button.BackgroundColor3 = Color3.fromRGB(255, 70, 70)
end
end)

Also Read: Hatch 1 Million Chickens Script

How to use 50 Days on a Raft Script

  • Install a working executor (Arceus X Neo, Delta, Fluxus, Evon, etc.).
  • Copy the latest 50 Days on a Raft Script.
  • Join the 50 Days on a Raft game on Roblox.
  • Paste the script into your executor.
  • Click Execute to load the GUI.
  • Turn on features like Auto Gather, Auto Build, or ESP.
  • Adjust settings based on your preferred survival style.

Frequently Asked Questions (FAQs)

Can this script help me survive longer?

Does it work on mobile?

Will ESP help me find resources?

Is Auto Craft included?

Do I need frequent updates?

Conclusion

The 50 Days on a Raft Script is an excellent tool for players who want easier survival, faster resource gathering, and smoother gameplay. With automated features like Auto Gather, Auto Craft, Infinite Stamina, and ESP, you can focus on exploring and expanding your raft without constant manual work.

If you want a more enjoyable and efficient survival experience, this script is a great addition to your setup.

Leave a Comment