local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidPart")
local RunService = game:GetService("RunService")
local RS = ReplicatedStorage:WaitForChild("RS")
local MiscRemote = RS:WaitForChild("Remote"):WaitForChild("Misc")
-- Clear workspace
pcall(function() workspace:FindFirstChild("Effects"):Destroy() end)
pcall(function() workspace:FindFirstChild("Enemy"):Destroy() end)
pcall(function() workspace:FindFirstChild("Map"):FindFirstChild("Weather"):Destroy() end)
-- Boat setup
local boat = workspace.Boats:FindFirstChild(player.Name.."Boat")
local deck = boat:FindFirstChild("Deck")
local keel = boat:FindFirstChild("Picture2")
local partCounter = 0
local function createPart(offset)
partCounter += 1
local part = Instance.new("Part")
part.Name = tostring(partCounter)
part.Size = Vector3.new(1,1,1)
part.Anchored = false
part.CanCollide = false
part.CFrame = CFrame.new(deck.Position) * CFrame.Angles(
math.rad(keel.Orientation.X),
math.rad(keel.Orientation.Y),
math.rad(keel.Orientation.Z)
) * CFrame.new(offset)
part.Parent = boat
local weld = Instance.new("WeldConstraint")
weld.Part0 = part
weld.Part1 = deck
weld.Parent = part
end
local function createParts()
local rightZ = {-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30}
local middleZ = {-40,-25,-20,-15,-10,-5,0,5,10,15,30,35,40,45}
local leftZ = {-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30}
for _,z in ipairs(rightZ) do createPart(Vector3.new(10,2.5,z)) end
for _,z in ipairs(middleZ) do createPart(Vector3.new(0,2.5,z)) end
for _,z in ipairs(leftZ) do createPart(Vector3.new(-10,2.5,z)) end
end
createParts()
-- Flight and noclip
workspace.Gravity = 0
if floatGyro then floatGyro:Destroy() end
if floatVelocity then floatVelocity:Destroy() end
floatGyro = Instance.new("BodyGyro")
floatGyro.MaxTorque = Vector3.new(1e6,1e6,1e6)
floatGyro.P = 1e4
floatGyro.CFrame = hrp.CFrame
floatGyro.Parent = hrp
floatVelocity = Instance.new("BodyVelocity")
floatVelocity.MaxForce = Vector3.new(1e6,1e6,1e6)
floatVelocity.Velocity = Vector3.new(0,0,0)
floatVelocity.Parent = hrp
RunService.Stepped:Connect(function()
for _,v in ipairs(character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
if floatGyro and hrp then
floatGyro.CFrame = hrp.CFrame
end
end)
-- Boat movement control
local boatMover = true
local sailVelocity = Vector3.new(-200,0,0)
local function updateSailVelocity()
local sail = boat.Center:FindFirstChild("SailV")
if sail then
sail.Velocity = boatMover and sailVelocity or Vector3.new(0,0,0)
end
end
local function moveBoat()
boatMover = true
updateSailVelocity()
end
local function stopBoat()
boatMover = false
updateSailVelocity()
end
-- Teleport loop
local teleportEnabled = true
local teleportLoopRunning = false
local function teleportLoop()
teleportLoopRunning = true
while teleportEnabled do
local center = boat:FindFirstChild("Center")
if center then
hrp.CFrame = CFrame.new(center.Position + Vector3.new(0,30,0))
end
task.wait(3)
end
teleportLoopRunning = false
end
-- Chest handling
local function getNearestChest()
local closest, closestDist = nil, math.huge
for _,chest in ipairs(workspace:FindFirstChild("Map"):FindFirstChild("Temporary"):GetChildren()) do
if chest.Name == "Dark Sealed Chest" and not (chest:FindFirstChild("Weld") or chest:FindFirstChild("BoatWeld")) then
local dist = (hrp.Position - chest.Position).Magnitude
if dist < 3000 and dist < closestDist then
closest = chest
closestDist = dist
end
end
end
return closest, closestDist
end
local chestCount = 1
local function handleChest()
while true do
local chest, dist = getNearestChest()
if chest then
teleportEnabled = false
stopBoat()
task.wait(dist/300)
hrp.CFrame = CFrame.new(chest.Position + Vector3.new(0,5,0)) * CFrame.Angles(0,math.rad(180),0)
task.wait(0.5)
MiscRemote:WaitForChild("Carry"):Fire("Carry", chest)
task.wait(1)
local carrying = workspace:FindFirstChild(player.Name):FindFirstChild("Carrying2")
if carrying then
local dropPart = boat:FindFirstChild(tostring(chestCount))
if dropPart then
hrp.CFrame = CFrame.new(dropPart.Position) * CFrame.Angles(
math.rad(keel.Orientation.X),
math.rad(keel.Orientation.Y),
math.rad(keel.Orientation.Z)
)
end
boat.Center.Anchored = true
task.wait(0.5)
MiscRemote:WaitForChild("Carry"):Fire("Place")
chestCount += 1
task.wait(1)
boat.Center.Anchored = false
end
else
if not teleportEnabled then
teleportEnabled = true
moveBoat()
if not teleportLoopRunning then
task.spawn(teleportLoop)
end
end
end
task.wait(2)
end
end
-- Initialize
task.spawn(teleportLoop)
moveBoat()
task.spawn(handleChest)
-- Continuous sail velocity update
RunService.Heartbeat:Connect(updateSailVelocity)
```_
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidPart")
local RunService = game:GetService("RunService")
local RS = ReplicatedStorage:WaitForChild("RS")
local MiscRemote = RS:WaitForChild("Remote"):WaitForChild("Misc")
-- Clear workspace
pcall(function() workspace:FindFirstChild("Effects"):Destroy() end)
pcall(function() workspace:FindFirstChild("Enemy"):Destroy() end)
pcall(function() workspace:FindFirstChild("Map"):FindFirstChild("Weather"):Destroy() end)
-- Boat setup
local boat = workspace.Boats:FindFirstChild(player.Name.."Boat")
local deck = boat:FindFirstChild("Deck")
local keel = boat:FindFirstChild("Picture2")
local partCounter = 0
local function createPart(offset)
partCounter += 1
local part = Instance.new("Part")
part.Name = tostring(partCounter)
part.Size = Vector3.new(1,1,1)
part.Anchored = false
part.CanCollide = false
part.CFrame = CFrame.new(deck.Position) * CFrame.Angles(
math.rad(keel.Orientation.X),
math.rad(keel.Orientation.Y),
math.rad(keel.Orientation.Z)
) * CFrame.new(offset)
part.Parent = boat
local weld = Instance.new("WeldConstraint")
weld.Part0 = part
weld.Part1 = deck
weld.Parent = part
end
local function createParts()
local rightZ = {-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30}
local middleZ = {-40,-25,-20,-15,-10,-5,0,5,10,15,30,35,40,45}
local leftZ = {-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30}
for _,z in ipairs(rightZ) do createPart(Vector3.new(10,2.5,z)) end
for _,z in ipairs(middleZ) do createPart(Vector3.new(0,2.5,z)) end
for _,z in ipairs(leftZ) do createPart(Vector3.new(-10,2.5,z)) end
end
createParts()
-- Flight and noclip
workspace.Gravity = 0
if floatGyro then floatGyro:Destroy() end
if floatVelocity then floatVelocity:Destroy() end
floatGyro = Instance.new("BodyGyro")
floatGyro.MaxTorque = Vector3.new(1e6,1e6,1e6)
floatGyro.P = 1e4
floatGyro.CFrame = hrp.CFrame
floatGyro.Parent = hrp
floatVelocity = Instance.new("BodyVelocity")
floatVelocity.MaxForce = Vector3.new(1e6,1e6,1e6)
floatVelocity.Velocity = Vector3.new(0,0,0)
floatVelocity.Parent = hrp
RunService.Stepped:Connect(function()
for _,v in ipairs(character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
if floatGyro and hrp then
floatGyro.CFrame = hrp.CFrame
end
end)
-- Boat movement control
local boatMover = true
local sailVelocity = Vector3.new(-200,0,0)
local function updateSailVelocity()
local sail = boat.Center:FindFirstChild("SailV")
if sail then
sail.Velocity = boatMover and sailVelocity or Vector3.new(0,0,0)
end
end
local function moveBoat()
boatMover = true
updateSailVelocity()
end
local function stopBoat()
boatMover = false
updateSailVelocity()
end
-- Teleport loop
local teleportEnabled = true
local teleportLoopRunning = false
local function teleportLoop()
teleportLoopRunning = true
while teleportEnabled do
local center = boat:FindFirstChild("Center")
if center then
hrp.CFrame = CFrame.new(center.Position + Vector3.new(0,30,0))
end
task.wait(3)
end
teleportLoopRunning = false
end
-- Chest handling
local function getNearestChest()
local closest, closestDist = nil, math.huge
for _,chest in ipairs(workspace:FindFirstChild("Map"):FindFirstChild("Temporary"):GetChildren()) do
if chest.Name == "Dark Sealed Chest" and not (chest:FindFirstChild("Weld") or chest:FindFirstChild("BoatWeld")) then
local dist = (hrp.Position - chest.Position).Magnitude
if dist < 3000 and dist < closestDist then
closest = chest
closestDist = dist
end
end
end
return closest, closestDist
end
local chestCount = 1
local function handleChest()
while true do
local chest, dist = getNearestChest()
if chest then
teleportEnabled = false
stopBoat()
task.wait(dist/300)
hrp.CFrame = CFrame.new(chest.Position + Vector3.new(0,5,0)) * CFrame.Angles(0,math.rad(180),0)
task.wait(0.5)
MiscRemote:WaitForChild("Carry"):Fire("Carry", chest)
task.wait(1)
local carrying = workspace:FindFirstChild(player.Name):FindFirstChild("Carrying2")
if carrying then
local dropPart = boat:FindFirstChild(tostring(chestCount))
if dropPart then
hrp.CFrame = CFrame.new(dropPart.Position) * CFrame.Angles(
math.rad(keel.Orientation.X),
math.rad(keel.Orientation.Y),
math.rad(keel.Orientation.Z)
)
end
boat.Center.Anchored = true
task.wait(0.5)
MiscRemote:WaitForChild("Carry"):Fire("Place")
chestCount += 1
task.wait(1)
boat.Center.Anchored = false
end
else
if not teleportEnabled then
teleportEnabled = true
moveBoat()
if not teleportLoopRunning then
task.spawn(teleportLoop)
end
end
end
task.wait(2)
end
end
-- Initialize
task.spawn(teleportLoop)
moveBoat()
task.spawn(handleChest)
-- Continuous sail velocity update
RunService.Heartbeat:Connect(updateSailVelocity)
```_