-- Firefly Farm [LCTRL] – Fantastic Frontier
-- clean & safe version
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local plr = Players.LocalPlayer
local ffarm = false
local root
-- wait for character
local function getRoot()
local char = plr.Character or plr.CharacterAdded:Wait()
return char:WaitForChild("HumanoidRootPart")
end
root = getRoot()
plr.CharacterAdded:Connect(function()
task.wait(1)
root = getRoot()
end)
-- find any RemoteEvent inside firefly
local function getCollectEvent(firefly)
if not firefly then return nil end
for _,v in ipairs(firefly:GetDescendants()) do
if v:IsA("RemoteEvent") then
return v
end
end
return nil
end
-- ensure HOLE exists
local function ensureHole()
if workspace:FindFirstChild("HOLE") and workspace.HOLE:FindFirstChild("HoleTPEntrance") then
return workspace.HOLE.HoleTPEntrance
end
repeat
local prev = root.CFrame
root.CFrame = CFrame.new(1304,96,-525)
task.wait()
root.CFrame = prev
task.wait(1)
until workspace.HOLE and workspace.HOLE:FindFirstChild("HoleTPEntrance")
return workspace.HOLE.HoleTPEntrance
end
-- teleport & collect
local function gotoFirefly(fly)
if not fly or not fly.Parent then return end
local part = fly:IsA("BasePart") and fly or fly:FindFirstChildWhichIsA("BasePart")
if not part then return end
local hole = ensureHole()
if (root.Position - part.Position).Magnitude > 200 then
hole.Size = Vector3.new(1,1,1)
hole.Transparency = 1
hole.CFrame = root.CFrame
repeat
hole.Position = root.Position
task.wait()
until (hole.Position - root.Position).Magnitude < 10
hole.Position = Vector3.new(1318,85,-527)
hole.Size = Vector3.new(14,5,17)
repeat task.wait() until (root.Position - Vector3.new(430,441,102)).Magnitude < 10
end
for i = 1, 6 do
root.Anchored = true
root.CFrame = part.CFrame + Vector3.new(0,3,0)
task.wait(0.08)
end
root.Anchored = false
local ev = getCollectEvent(fly)
if ev then
ev:FireServer()
end
end
-- main loop toggle
UIS.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.LeftControl then
ffarm = not ffarm
print(ffarm and "[Firefly Farm] ON" or "[Firefly Farm] OFF")
while ffarm do
local flies = workspace:FindFirstChild("Fireflies")
if flies then
local fly = flies:FindFirstChild("FireflyServer")
if fly then
gotoFirefly(fly)
end
end
task.wait(0.15)
end
end
end)
Comments
enjoy firefly farm