
Key Required VerifiedUniversal
local lib = loadstring(game:HttpGet("https://raw.githubusercontent.com/iiivyne/robloxlua/refs/heads/main/lib.lua"))()
local int = lib:CreateInterface("99 Nights in the Forest","script made by lohjc","https://discord.gg/ZNTHTWx7KE","bottom left","royal")
local main = int:CreateTab("Main","main functions/script utilities","default",true)
local autofarmss = int:CreateTab("Auto","auto farm utilities (OP)","op")
local itemtp = int:CreateTab("Item TP/ESP","bring items to you","item")
local gametp = int:CreateTab("Game TP","goto in-game locations","info")
local charactertp = int:CreateTab("Mob TP","bring mobs to you","npc")
local plr = int:CreateTab("Player","modify your localplayer","player")
local vis = int:CreateTab("Visuals","modify autoyour visuals","visuals")
local misc = int:CreateTab("Misc","miscellaneous","misc")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
-- === Main Configurations ===
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Safe zone setup: 9 baseplates in a grid
local safezoneBaseplates = {}
local baseplateSize = Vector3.new(2048, 1, 2048)
local baseY = 100
local centerPos = Vector3.new(0, baseY, 0) -- original center
for dx = -1, 1 do
for dz = -1, 1 do
local pos = centerPos + Vector3.new(dx * baseplateSize.X, 0, dz * baseplateSize.Z)
local baseplate = Instance.new("Part")
baseplate.Name = "SafeZoneBaseplate"
baseplate.Size = baseplateSize
baseplate.Position = pos
baseplate.Anchored = true
baseplate.CanCollide = true
baseplate.Transparency = 1
baseplate.Color = Color3.fromRGB(255, 255, 255)
baseplate.Parent = workspace
table.insert(safezoneBaseplates, baseplate)
end
end
-- Checkbox to toggle visibility/collision for all baseplates
main:CreateCheckbox("Show Safe Zone", function(enabled)
for _, baseplate in ipairs(safezoneBaseplates) do
baseplate.Transparency = enabled and 0.8 or 1
baseplate.CanCollide = enabled
end
end)
-- Utility to convert "x, y, z" string to CFrame
local function stringToCFrame(str)
local x, y, z = str:match("([^,]+),%s*([^,]+),%s*([^,]+)")
return CFrame.new(tonumber(x), tonumber(y), tonumber(z))
end
-- Teleport function with optional tween duration
local function teleportToTarget(cf, duration)
local char = game.Players.LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
if duration and duration > 0 then
local ts = game:GetService("TweenService")
local info = TweenInfo.new(duration, Enum.EasingStyle.Linear)
local goal = { CFrame = cf }
local tween = ts:Create(hrp, info, goal)
tween:Play()
else
hrp.CFrame = cf
end
end
local storyCoords = {
{ "[campsite] camp site", "0, 8, -0"},
{ "[safezone] safe zone", "0, 110, -0" }
}
local storyDropdown = gametp:CreateDropDown("Teleports")
-- Create dropdown for story teleports
for _, entry in ipairs(storyCoords) do
local name, coord = entry[1], entry[2]
storyDropdown:AddButton(name, function()
teleportToTarget(stringToCFrame(coord), 0.1)
end)
end
itemtp:CreateCheckbox("Item ESP", function(state)
local itemFolder = workspace:FindFirstChild("Items")
if not itemFolder then
warn("workspace.Items folder not found")
return
end
local itemNames = {
["Revolver"] = true, ["Oil Barrel"] = true, ["Chainsaw"] = true, ["Giant Sack"] = true, ["Bunny Foot"] = true,["MedKit"] = true, ["Alien Chest"] = true, ["Berry"] = true,
["Bolt"] = true, ["Broken Fan"] = true, ["Carrot"] = true, ["Coal"] = true,
["Coin Stack"] = true, ["Hologram Emitter"] = true, ["Item Chest"] = true,
["Laser Fence Blueprint"] = true, ["Log"] = true, ["Old Flashlight"] = true,
["Old Radio"] = true, ["Sheet Metal"] = true, ["Bandage"] = true, ["Rifle"] = true
}
local connections = {}
local function createESP(model)
if not model:IsA("Model") or not itemNames[model.Name] then return end
if not model.PrimaryPart or model:FindFirstChild("ESP") then return end
local billboard = Instance.new("BillboardGui")
billboard.Name = "ESP"
billboard.Size = UDim2.new(0, 100, 0, 30)
billboard.Adornee = model.PrimaryPart
billboard.AlwaysOnTop = true
billboard.StudsOffset = Vector3.new(0, 3, 0)
local customFont = Font.new("rbxassetid://16658246179", Enum.FontWeight.Regular, Enum.FontStyle.Normal)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.TextSize = 17
label.BackgroundTransparency = 1
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeTransparency = 0.5
label.TextScaled = false
label.FontFace = customFont
label.Text = model.Name
label.Parent = billboard
billboard.Parent = model
end
local function removeAllESP()
for _, model in itemFolder:GetChildren() do
local esp = model:FindFirstChild("ESP")
if esp then esp:Destroy() end
end
end
if state then
-- Create ESPs for all current items
for _, model in itemFolder:GetChildren() do
createESP(model)
end
-- Add ESPs for any new items added
local connection = itemFolder.ChildAdded:Connect(function(model)
if model:IsA("Model") and itemNames[model.Name] then
model:GetPropertyChangedSignal("PrimaryPart"):Wait()
createESP(model)
end
end)
table.insert(connections, connection)
else
-- Disable ESPs
removeAllESP()
-- Disconnect any listeners
for _, conn in connections do
if conn.Disconnect then conn:Disconnect() end
end
table.clear(connections)
end
end)
-- tp to item
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local itemFolder = workspace:WaitForChild("Items")
local itemNames = {
"Revolver", "Medkit", "Alien Chest", "Berry", "Bolt", "Broken Fan",
"Carrot", "Coal", "Coin Stack", "Hologram Emitter", "Item Chest",
"Laser Fence Blueprint", "Log", "Old Flashlight", "Old Radio",
"Sheet Metal", "Bandage", "Rifle"
}
local function getModelPart(model)
if model.PrimaryPart then
return model.PrimaryPart
end
for _, part in pairs(model:GetChildren()) do
if part:IsA("BasePart") then
return part
end
end
return nil
end
local dropdown = itemtp:CreateDropDown("Teleport to Item")
for _, itemName in ipairs(itemNames) do
dropdown:AddButton("TP to " .. itemName, function()
-- Find all models with this name inside Items folder
local candidates = {}
for _, model in pairs(itemFolder:GetChildren()) do
if model:IsA("Model") and model.Name == itemName then
local part = getModelPart(model)
if part then
table.insert(candidates, part)
end
end
end
if #candidates == 0 then
warn("No '" .. itemName .. "' found to teleport to.")
return
end
-- Pick a random part and teleport
local targetPart = candidates[math.random(1, #candidates)]
local character = localPlayer.Character
if character then
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = targetPart.CFrame + Vector3.new(0, 5, 0)
end
end
end)
end
-- tp to item
-- tp item to you
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local rootPart = character:WaitForChild("HumanoidRootPart")
local itemsFolder = workspace:WaitForChild("Items")
local remoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents")
local possibleItems = {
"Alien Chest",
"Alpha Wolf Pelt",
"Anvil Front",
"Anvil Back",
"Apple",
"Bandage",
"Bear Corpse",
"Bear Pelt",
"Berry",
"Biofuel",
"Bolt",
"Broken Fan",
"Bunny Foot",
"Carrot",
"Coal",
"Coin Stack",
"Cooked Morsel",
"Cooked Steak",
"Chainsaw",
"Cultist",
"Cultist Gem",
"Flower",
"Fuel Canister",
"Hologram Emitter",
"Item Chest",
"Laser Fence Blueprint",
"Leather Body",
"Iron Body",
"Thorn Body",
"Log",
"MedKit",
"Morsel",
"Old Flashlight",
"Old Radio",
"Good Sack",
"Good Axe",
"Raygun",
"Giant Sack",
"Strong Axe",
"Oil Barrel",
"Old Car Engine",
"Rifle",
"Rifle Ammo",
"Revolver",
"Revolver Ammo",
"Sapling",
"Sheet Metal",
"Steak",
"Wolf Pelt",
"Gem of the Forest Fragment",
"Tyre",
"Washing Machine",
"Broken Microwave"
}
local bringitemtoyou = itemtp:CreateDropDown("Teleport Item (Bulk):")
local sources = {
itemsFolder,
game:GetService("ReplicatedStorage"):WaitForChild("TempStorage")
}
local function teleportItem(itemName)
local stackOffsetY = 2 -- Height between stacked items
local count = 0
for _, source in ipairs(sources) do
for _, item in ipairs(source:GetChildren()) do
if item.Name == itemName then
local targetPart = nil
if itemName == "Berry" then
targetPart = item:FindFirstChild("Handle")
if not targetPart then
for _, child in ipairs(item:GetDescendants()) do
if child:IsA("MeshPart") or child:IsA("Part") or child:IsA("UnionOperation") then
targetPart = child
break
end
end
end
else
for _, child in ipairs(item:GetDescendants()) do
if child:IsA("MeshPart") or child:IsA("Part") then
targetPart = child
break
end
end
end
if targetPart then
remoteEvents.RequestStartDraggingItem:FireServer(item)
-- Stack vertically at player's position
local offset = Vector3.new(0, count * stackOffsetY, 0)
targetPart.CFrame = rootPart.CFrame + offset
remoteEvents.StopDraggingItem:FireServer(item)
print("Moved", itemName, ":", item:GetFullName())
count = count + 1
else
warn(itemName .. " found, but no MeshPart or Part inside:", item:GetFullName())
end
end
end
end
end
for _, itemName in ipairs(possibleItems) do
bringitemtoyou:AddButton(itemName, function()
teleportItem(itemName)
end)
end
-- tp item to you
-- tp char to you
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local rootPart = character:WaitForChild("HumanoidRootPart")
local characterFolder = workspace:WaitForChild("Characters")
local remoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents") -- if needed
-- List of character names to teleport (your tags)
local possibleCharacters = {
"Alpha Wolf",
"Bear",
"Lost Child",
"Lost Child2",
"Lost Child3",
"Lost Child4",
"Wolf",
"Bunny",
"Cultist",
"Alien"
}
local bringCharacterToYou = charactertp:CreateDropDown("Teleport Mob:")
-- Helper to find main part (similar to your getModelPart)
local function getMainPart(model)
if model.PrimaryPart then
return model.PrimaryPart
end
for _, part in ipairs(model:GetDescendants()) do
if part:IsA("BasePart") then
return part
end
end
return nil
end
local function teleportCharacter(characterName)
local stackOffsetY = 3
local count = 0
for _, model in ipairs(characterFolder:GetChildren()) do
if model.Name == characterName then
local mainPart = getMainPart(model)
if mainPart and rootPart then
-- Move the whole model so mainPart aligns above player, stacked
local targetCFrame = rootPart.CFrame + Vector3.new(0, count * stackOffsetY, 0)
-- Use SetPrimaryPartCFrame if PrimaryPart exists, else move mainPart directly
if model.PrimaryPart then
model:SetPrimaryPartCFrame(targetCFrame)
else
mainPart.CFrame = targetCFrame
end
count = count + 1
else
warn("No main part found for character:", model:GetFullName())
end
end
end
end
for _, characterName in ipairs(possibleCharacters) do
bringCharacterToYou:AddButton(characterName, function()
teleportCharacter(characterName)
end)
end
-- tp char to you
-- === Player Sliders ===
-- JumpPower Slider
plr:CreateSlider("jumppower", 700, 50, function(value)
local char = LocalPlayer.Character
if char and char:FindFirstChild("Humanoid") then
char.Humanoid.JumpPower = value
end
end)
-- WalkSpeed Slider with Persistent Behavior
plr:CreateSlider("walkspeed", 700, 16, function(value)
_G.HackedWalkSpeed = value
local function applyWalkSpeed(humanoid)
if humanoid then
humanoid.WalkSpeed = _G.HackedWalkSpeed
humanoid.Changed:Connect(function(property)
if property == "WalkSpeed" and humanoid.WalkSpeed ~= _G.HackedWalkSpeed then
humanoid.WalkSpeed = _G.HackedWalkSpeed
end
end)
end
end
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
applyWalkSpeed(LocalPlayer.Character.Humanoid)
end
LocalPlayer.CharacterAdded:Connect(function(char)
char:WaitForChild("Humanoid")
applyWalkSpeed(char:FindFirstChild("Humanoid"))
end)
end)
plr:CreateCheckbox("walkspeed toggle (50)",function(toggle)
if toggle == true then
_G.HackedWalkSpeed = 50
else
_G.HackedWalkSpeed = 16
end
local function applyWalkSpeed(humanoid)
if humanoid then
humanoid.WalkSpeed = _G.HackedWalkSpeed
humanoid.Changed:Connect(function(property)
if property == "WalkSpeed" and humanoid.WalkSpeed ~= _G.HackedWalkSpeed then
humanoid.WalkSpeed = _G.HackedWalkSpeed
end
end)
end
end
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
applyWalkSpeed(LocalPlayer.Character.Humanoid)
end
LocalPlayer.CharacterAdded:Connect(function(char)
char:WaitForChild("Humanoid")
applyWalkSpeed(char:FindFirstChild("Humanoid"))
end)
end)
--// SERVICES
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
--// CONFIG
local espTransparency = 0.4
local teamCheck = true
--// CUSTOM FONT
local customFont = Font.new("rbxassetid://16658246179", Enum.FontWeight.Regular, Enum.FontStyle.Normal)
--// STATE
local BillboardESPs = {}
local ChamsESPs = {}
local ESPConnections = {}
local ESPEnabled = false
local ChamsEnabled = false
--// HELPERS
local function round(num, decimals)
return tonumber(string.format("%." .. (decimals or 0) .. "f", num))
end
local function getRoot(char)
return char and char:FindFirstChild("HumanoidRootPart")
end
--// BILLBOARD ESP
local function createBillboardESP(plr)
if BillboardESPs[plr] or plr == LocalPlayer then return end
if not plr.Character or not plr.Character:FindFirstChild("Head") then return end
local gui = Instance.new("BillboardGui")
gui.Name = "Billboard_ESP"
gui.Adornee = plr.Character.Head
gui.Parent = plr.Character.Head
gui.Size = UDim2.new(0, 100, 0, 40)
gui.AlwaysOnTop = true
gui.StudsOffset = Vector3.new(0, 2, 0)
local label = Instance.new("TextLabel", gui)
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeTransparency = 0.5
label.TextScaled = true
label.FontFace = customFont
local conn
conn = RunService.RenderStepped:Connect(function()
if not plr.Character or not plr.Character:FindFirstChild("Humanoid") then
gui:Destroy()
if conn then conn:Disconnect() end
BillboardESPs[plr] = nil
ESPConnections[plr] = nil
return
end
local hp = math.floor(plr.Character.Humanoid.Health / plr.Character.Humanoid.MaxHealth * 100)
label.Text = plr.Name .. " | " .. hp .. "%"
end)
BillboardESPs[plr] = gui
ESPConnections[plr] = conn
end
--// CHAMS ESP (BoxHandleAdornment)
local function createChamsESP(plr)
if ChamsESPs[plr] or plr == LocalPlayer then return end
if not plr.Character or not getRoot(plr.Character) then return end
local folder = Instance.new("Folder")
folder.Name = "Chams_ESP"
folder.Parent = CoreGui
ChamsESPs[plr] = folder
for _, part in pairs(plr.Character:GetChildren()) do
if part:IsA("BasePart") then
local box = Instance.new("BoxHandleAdornment")
box.Name = "Cham_" .. plr.Name
box.Adornee = part
box.AlwaysOnTop = true
box.ZIndex = 10
box.Size = part.Size
box.Transparency = espTransparency
box.Color = BrickColor.new(
teamCheck and (plr.TeamColor == LocalPlayer.TeamColor and "Bright green" or "Bright red") or tostring(plr.TeamColor)
)
box.Parent = folder
end
end
end
--// CLEANUP FUNCTIONS
local function cleanupBillboardESP()
for _, gui in pairs(BillboardESPs) do
if gui then gui:Destroy() end
end
for _, conn in pairs(ESPConnections) do
if conn then conn:Disconnect() end
end
BillboardESPs = {}
ESPConnections = {}
end
local function cleanupChamsESP()
for _, folder in pairs(ChamsESPs) do
if folder then folder:Destroy() end
end
ChamsESPs = {}
end
--// INITIALIZATION HANDLER
local function handlePlayerESP(plr)
if ESPEnabled then createBillboardESP(plr) end
if ChamsEnabled then createChamsESP(plr) end
plr.CharacterAdded:Connect(function()
task.wait(1)
if ESPEnabled then createBillboardESP(plr) end
if ChamsEnabled then createChamsESP(plr) end
end)
end
--// GUI TOGGLES (INTEGRATE INTO YOUR UI)
vis:CreateCheckbox("ESP", function(state)
ESPEnabled = state
if not state then
cleanupBillboardESP()
else
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
createBillboardESP(plr)
end
end
end
end)
vis:CreateCheckbox("Chams", function(state)
ChamsEnabled = state
if not state then
cleanupChamsESP()
else
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
createChamsESP(plr)
end
end
end
end)
--// INIT ON CURRENT PLAYERS
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
handlePlayerESP(plr)
end
end
Players.PlayerAdded:Connect(function(plr)
handlePlayerESP(plr)
end)
--// FOV CIRCLE
local FOVCircle = Drawing.new("Circle")
FOVCircle.Visible = false
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Transparency = 1
FOVCircle.Thickness = 1
FOVCircle.Filled = false
FOVCircle.ZIndex = 2
local FOVRadius = 100
RunService.RenderStepped:Connect(function()
if FOVCircle.Visible then
FOVCircle.Radius = FOVRadius
FOVCircle.Position = UserInputService:GetMouseLocation()
end
end)
vis:CreateCheckbox("FOV Circle", function(state)
FOVCircle.Visible = state
end)
-- extra scripts
local civDropdown2 = misc:CreateDropDown("Extra Scripts", function() end)
civDropdown2:AddButton("infinite yield",function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
end)
civDropdown2:AddButton("emote gui",function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/dimension-sources/random-scripts-i-found/refs/heads/main/r6%20animations"))()
end)
civDropdown2:AddButton("anti afk",function()
wait(0.5)local ba=Instance.new("ScreenGui")
local ca=Instance.new("TextLabel")local da=Instance.new("Frame")
local _b=Instance.new("TextLabel")local ab=Instance.new("TextLabel")ba.Parent=game.CoreGui
ba.ZIndexBehavior=Enum.ZIndexBehavior.Sibling;ca.Parent=ba;ca.Active=true
ca.BackgroundColor3=Color3.new(0.176471,0.176471,0.176471)ca.Draggable=true
ca.Position=UDim2.new(0.698610067,0,0.098096624,0)ca.Size=UDim2.new(0,370,0,52)
ca.Font=Enum.Font.SourceSansSemibold;ca.Text="anti afk"ca.TextColor3=Color3.new(0,1,1)
ca.TextSize=22;da.Parent=ca
da.BackgroundColor3=Color3.new(0.196078,0.196078,0.196078)da.Position=UDim2.new(0,0,1.0192306,0)
da.Size=UDim2.new(0,370,0,107)_b.Parent=da
_b.BackgroundColor3=Color3.new(0.176471,0.176471,0.176471)_b.Position=UDim2.new(0,0,0.800455689,0)
_b.Size=UDim2.new(0,370,0,21)_b.Font=Enum.Font.Arial;_b.Text="anti afk"
_b.TextColor3=Color3.new(0,1,1)_b.TextSize=20;ab.Parent=da
ab.BackgroundColor3=Color3.new(0.176471,0.176471,0.176471)ab.Position=UDim2.new(0,0,0.158377,0)
ab.Size=UDim2.new(0,370,0,44)ab.Font=Enum.Font.ArialBold;ab.Text="status: active"
ab.TextColor3=Color3.new(0,1,1)ab.TextSize=20;local bb=game:service'VirtualUser'
game:service'Players'.LocalPlayer.Idled:connect(function()
bb:CaptureController()bb:ClickButton2(Vector2.new())
ab.Text="roblox tried to kick you but failed to do so!"wait(2)ab.Text="status : active"end)
end)
civDropdown2:AddButton("turtle spy",function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/Turtle-Brand/Turtle-Spy/main/source.lua", true))()
end)
-- extra scripts
-- loop distance
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local RemoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents")
local player = Players.LocalPlayer
-- Original Kill Aura Variables
local killAuraToggle = false
local radius = 200
-- Infinite Range Kill Aura Variables
local infRangeKillAuraToggle = false
-- Script generated by TurtleSpy, made by Intrer#0421
-- Supported tools and their damage IDs
local toolsDamageIDs = {
["Old Axe"] = "1_8982038982",
["Good Axe"] = "112_8982038982",
["Strong Axe"] = "116_8982038982",
["Chainsaw"] = "647_8992824875",
["Spear"] = "196_8999010016"
}
-- Try to find any supported tool in inventory with damageID
local function getAnyToolWithDamageID()
for toolName, damageID in pairs(toolsDamageIDs) do
local tool = player.Inventory:FindFirstChild(toolName)
if tool then
return tool, damageID
end
end
return nil, nil
end
-- Equip a given tool
local function equipTool(tool)
if tool then
RemoteEvents.EquipItemHandle:FireServer("FireAllClients", tool)
end
end
-- Unequip a given tool
local function unequipTool(tool)
if tool then
RemoteEvents.UnequipItemHandle:FireServer("FireAllClients", tool)
end
end
-- Original Kill Aura main loop (with radius)
local function killAuraLoop()
while killAuraToggle do
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then
local tool, damageID = getAnyToolWithDamageID()
if tool and damageID then
equipTool(tool)
for _, mob in ipairs(Workspace.Characters:GetChildren()) do
if mob:IsA("Model") then
local part = mob:FindFirstChildWhichIsA("BasePart")
if part and (part.Position - hrp.Position).Magnitude <= radius then
pcall(function()
RemoteEvents.ToolDamageObject:InvokeServer(
mob,
tool,
damageID,
CFrame.new(part.Position)
)
end)
end
end
end
task.wait(0.1)
else
warn("No supported tool found in inventory")
task.wait(1)
end
else
task.wait(0.5)
end
end
end
-- Helper: Get all models recursively in a folder
local function getAllModelsInFolder(folder)
local models = {}
for _, obj in ipairs(folder:GetDescendants()) do
if obj:IsA("Model") then
table.insert(models, obj)
end
end
return models
end
-- Helper: Find any BasePart descendant of a model
local function findAnyBasePart(model)
for _, descendant in ipairs(model:GetDescendants()) do
if descendant:IsA("BasePart") then
return descendant
end
end
return nil
end
-- UI checkbox toggles
main:CreateCheckbox("Kill Aura", function(state)
killAuraToggle = state
if state then
task.spawn(killAuraLoop)
else
local tool, _ = getAnyToolWithDamageID()
unequipTool(tool)
end
end)
main:CreateSlider("Kill Aura Radius", 500, 20, function(value)
radius = math.clamp(value, 20, 500)
end)
-- loop distance
-- extra item automation
itemtp:CreateComment("remaining specific item teleports:")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local rootPart = character:WaitForChild("HumanoidRootPart")
local itemsFolder = workspace:WaitForChild("Items")
local remoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents")
local bracket = {
weapons = {
-- Removed Good Axe and Strong Axe
"Laser Sword", "Raygun", "Kunai", "Katana", "Spear" -- moved to misc tools, but you wanted it here too?
},
minifoods = {
"Apple", "Berry", "Carrot"
},
meat = {
"Steak", "Cooked Steak", "Cooked Morsel" , "Morsel"
},
armor = {
"Leather Body", "Iron Body", "Thorn Body"
},
["guns/ammo"] = {
"Rifle", "Revolver", "Raygun", "Tactical Shotgun", "Revolver Ammo", "Rifle Ammo"
},
materials = {
"Log", "Coal", "Fuel Canister", "UFO Junk", "UFO Component", "Bandage", "MedKit",
"Old Car Engine", "Broken Fan", "Old Microwave", "Old Radio", "Sheet Metal"
},
pelts = {
"Alpha Wolf Pelt", "Bear Pelt", "Wolf Pelt", "Bunny Foot"
},
misc_tools = { -- changed to misc_tools for consistency with no spaces
"Good Sack", "Old Flashlight", "Old Radio", "Giant Sack", "Strong Flashlight", "Chainsaw"
}
}
-- Finds the first suitable BasePart to teleport
local function findTeleportablePart(item)
for _, descendant in ipairs(item:GetDescendants()) do
if descendant:IsA("BasePart") then
return descendant
end
if descendant:IsA("Model") then
for _, sub in ipairs(descendant:GetDescendants()) do
if sub:IsA("BasePart") then
return sub
end
end
end
end
return nil
end
local function teleportItem(itemName)
local stackOffsetY = 2 -- offset per stacked item
local count = 0
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name == itemName then
local targetPart = findTeleportablePart(item)
if targetPart then
remoteEvents.RequestStartDraggingItem:FireServer(item)
local offset = Vector3.new(0, count * stackOffsetY, 0)
targetPart.CFrame = rootPart.CFrame + offset
remoteEvents.StopDraggingItem:FireServer(item)
print("Moved", itemName, ":", item:GetFullName())
count = count + 1
else
warn("Couldn't find part for:", item:GetFullName())
end
end
end
end
-- Create one dropdown per bracket
for groupName, itemList in pairs(bracket) do
-- Make dropdown label nicer: replace underscores and slashes, capitalize words
local label = groupName:gsub("_", " "):gsub("/", "/")
label = label:gsub("(%a)([%w_']*)", function(first, rest)
return first:upper() .. rest:lower()
end)
local dropdown = itemtp:CreateDropDown(label)
for _, itemName in ipairs(itemList) do
dropdown:AddButton(itemName, function()
teleportItem(itemName)
end)
end
end
-- separation for the automation
-- auto
-- === SERVICES ===
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
-- === PLAYER REFERENCES ===
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local rootPart = character:WaitForChild("HumanoidRootPart")
local itemsFolder = Workspace:WaitForChild("Items")
local remoteEvents = ReplicatedStorage:WaitForChild("RemoteEvents")
local remoteConsume = remoteEvents:WaitForChild("RequestConsumeItem")
-- === POSITIONS ===
local campfireDropPos = Vector3.new(0, 19, 0)
local machineDropPos = Vector3.new(21, 16, -5)
-- === ITEM LISTS ===
local campfireFuelItems = {"Log", "Coal", "Fuel Canister", "Oil Barrel", "Biofuel"}
local autocookItems = {"Morsel", "Steak"}
local autoGrindItems = {"UFO Junk", "UFO Component", "Old Car Engine", "Broken Fan", "Old Microwave", "Bolt", "Log", "Cultist Gem", "Sheet Metal", "Old Radio","Tyre","Washing Machine", "Cultist Experiment", "Cultist Component", "Gem of the Forest Fragment", "Broken Microwave"}
local autoEatFoods = {"Cooked Steak", "Cooked Morsel", "Berry", "Carrot", "Apple"}
local biofuelItems = {"Carrot", "Cooked Morsel", "Morsel", "Steak", "Cooked Steak", "Log"}
-- === TOGGLES ===
local autoFuelEnabledItems = {}
local autoCookEnabledItems = {}
local autoGrindEnabledItems = {}
local autoEatEnabled = false
local autoBreakEnabled = false
local autoBiofuelEnabledItems = {}
local alwaysFeedEnabledItems = {}
-- === MOVE ITEM FUNCTION (STABLE) ===
local function moveItemToPos(item, position)
if not item or not item:IsDescendantOf(workspace) then return end
local part = item.PrimaryPart or item:FindFirstChildWhichIsA("BasePart") or item:FindFirstChild("Handle")
if not part then return end
if not item.PrimaryPart then
pcall(function() item.PrimaryPart = part end)
end
pcall(function()
remoteEvents.RequestStartDraggingItem:FireServer(item)
task.wait(0.05)
item:SetPrimaryPartCFrame(CFrame.new(position))
task.wait(0.05)
remoteEvents.StopDraggingItem:FireServer(item)
end)
end
-- === UI INITIALIZATION ===
local autofarmss = autofarmss or main -- fallback if not already defined
local function createDropdownWithCheckboxes(title, itemList, enabledTable)
local dropdown = autofarmss:CreateDropDown(title)
for _, itemName in ipairs(itemList) do
dropdown:AddCheckbox(itemName, function(checked)
enabledTable[itemName] = checked
end)
end
dropdown:AddCheckbox("Bulk (All)", function(checked)
for _, itemName in ipairs(itemList) do
enabledTable[itemName] = checked
end
end)
return dropdown
end
createDropdownWithCheckboxes("Auto Feed Campfire (ignores HP)", campfireFuelItems, alwaysFeedEnabledItems)
createDropdownWithCheckboxes("Auto Feed Campfire (HP Based)", campfireFuelItems, autoFuelEnabledItems)
createDropdownWithCheckboxes("Auto Cook Food", autocookItems, autoCookEnabledItems)
createDropdownWithCheckboxes("Auto Machine Grind", autoGrindItems, autoGrindEnabledItems)
createDropdownWithCheckboxes("Auto Biofuel Processor", biofuelItems, autoBiofuelEnabledItems)
-- Auto Eat
local eatDropdown = autofarmss:CreateDropDown("Auto Eat (3 sec interval)")
eatDropdown:AddCheckbox("Enable Auto Eat", function(checked)
autoEatEnabled = checked
end)
-- Auto Eat HP Based
local eatHPDropdown = autofarmss:CreateDropDown("Auto Eat (HP Bar Based)")
eatHPDropdown:AddCheckbox("Enable Auto Eat (HP Bar Based)", function(checked)
autoEatHPEnabled = checked
end)
-- === BACKGROUND COROUTINES ===
coroutine.wrap(function() -- Always Feed Campfire
while true do
for itemName, enabled in pairs(alwaysFeedEnabledItems) do
if enabled then
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name == itemName then
moveItemToPos(item, campfireDropPos)
end
end
end
end
task.wait(2)
end
end)()
coroutine.wrap(function() -- HP-Based Feed
local campfire = Workspace:WaitForChild("Map"):WaitForChild("Campground"):WaitForChild("MainFire")
local fillFrame = campfire.Center.BillboardGui.Frame.Background.Fill
while true do
local healthPercent = fillFrame.Size.X.Scale
if healthPercent < 0.7 then
repeat
for itemName, enabled in pairs(autoFuelEnabledItems) do
if enabled then
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name == itemName then
moveItemToPos(item, campfireDropPos)
end
end
end
end
task.wait(0.5)
healthPercent = fillFrame.Size.X.Scale
until healthPercent >= 1
end
task.wait(2)
end
end)()
coroutine.wrap(function() -- Auto Cook
while true do
for itemName, enabled in pairs(autoCookEnabledItems) do
if enabled then
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name == itemName then
moveItemToPos(item, campfireDropPos)
end
end
end
end
task.wait(2.5)
end
end)()
coroutine.wrap(function() -- Auto Grind
while true do
for itemName, enabled in pairs(autoGrindEnabledItems) do
if enabled then
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name == itemName then
moveItemToPos(item, machineDropPos)
end
end
end
end
task.wait(2.5)
end
end)()
coroutine.wrap(function() -- Auto Eat
while true do
if autoEatEnabled then
local available = {}
for _, item in ipairs(itemsFolder:GetChildren()) do
if table.find(autoEatFoods, item.Name) then
table.insert(available, item)
end
end
if #available > 0 then
local food = available[math.random(1, #available)]
pcall(function() remoteConsume:InvokeServer(food) end)
end
end
task.wait(3)
end
end)()
local player = game:GetService("Players").LocalPlayer
local hungerBar = player:WaitForChild("PlayerGui"):WaitForChild("Interface"):WaitForChild("StatBars"):WaitForChild("HungerBar"):WaitForChild("Bar")
coroutine.wrap(function() -- Auto Eat (HP Bar Based)
while true do
if autoEatHPEnabled then
if hungerBar.Size.X.Scale <= 0.5 then
repeat
local currentHunger = hungerBar.Size.X.Scale
local available = {}
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name and table.find(autoEatFoods, item.Name) then
table.insert(available, item)
print("Found available food item: ", item.Name)
end
end
if #available > 0 then
local food = available[math.random(1, #available)]
if food then
pcall(function()
remoteConsume:InvokeServer(food)
end)
end
else
warn("No available food found in inventory.")
break -- Stop trying if no food
end
task.wait(1) -- Wait for GUI to reflect update
until hungerBar.Size.X.Scale >= 0.99 or not autoEatHPEnabled
end
end
task.wait(3)
end
end)()
coroutine.wrap(function() -- Auto Biofuel
local biofuelProcessorPos
while true do
if not biofuelProcessorPos then
local processor = Workspace:FindFirstChild("Structures") and Workspace.Structures:FindFirstChild("Biofuel Processor")
local part = processor and processor:FindFirstChild("Part")
if part then
biofuelProcessorPos = part.Position + Vector3.new(0, 5, 0)
end
end
if biofuelProcessorPos then
for itemName, enabled in pairs(autoBiofuelEnabledItems) do
if enabled then
for _, item in ipairs(itemsFolder:GetChildren()) do
if item.Name == itemName then
moveItemToPos(item, biofuelProcessorPos)
end
end
end
end
end
task.wait(2)
end
end)()
-- === TREE TELEPORT SYSTEM ===
local originalTreeCFrames = {}
local treesBrought = false
local function getAllSmallTrees()
local trees = {}
local function scan(folder)
for _, obj in ipairs(folder:GetChildren()) do
if obj:IsA("Model") and obj.Name == "Small Tree" then
table.insert(trees, obj)
end
end
end
local map = Workspace:FindFirstChild("Map")
if map then
if map:FindFirstChild("Foliage") then scan(map.Foliage) end
if map:FindFirstChild("Landmarks") then scan(map.Landmarks) end
end
return trees
end
local function findTrunk(tree)
for _, part in ipairs(tree:GetDescendants()) do
if part:IsA("BasePart") and part.Name == "Trunk" then return part end
end
end
local function bringAllTrees()
local target = CFrame.new(rootPart.Position + rootPart.CFrame.LookVector * 10)
for _, tree in ipairs(getAllSmallTrees()) do
local trunk = findTrunk(tree)
if trunk then
if not originalTreeCFrames[tree] then originalTreeCFrames[tree] = trunk.CFrame end
tree.PrimaryPart = trunk
trunk.Anchored = false
trunk.CanCollide = false
task.wait()
tree:SetPrimaryPartCFrame(target + Vector3.new(math.random(-5,5), 0, math.random(-5,5)))
trunk.Anchored = true
end
end
treesBrought = true
end
local function restoreTrees()
for tree, cframe in pairs(originalTreeCFrames) do
local trunk = findTrunk(tree)
if trunk then
tree.PrimaryPart = trunk
tree:SetPrimaryPartCFrame(cframe)
trunk.Anchored = true
trunk.CanCollide = true
end
end
originalTreeCFrames = {}
treesBrought = false
end
-- Tree toggle
local miscdropdown = autofarmss:CreateDropDown("Auto Misc Features")
miscdropdown:AddCheckbox("Auto Bring All Small Trees", function(checked)
autoBreakEnabled = checked
if checked and not treesBrought then
bringAllTrees()
elseif not checked and treesBrought then
restoreTrees()
end
end)
-- === AUTO STRONGHOLD ===
local strongholdRunning = true -- Always running
local function getStrongholdTimerLabel()
return workspace:FindFirstChild("Map")
and workspace.Map:FindFirstChild("Landmarks")
and workspace.Map.Landmarks:FindFirstChild("Stronghold")
and workspace.Map.Landmarks.Stronghold:FindFirstChild("Functional")
and workspace.Map.Landmarks.Stronghold.Functional:FindFirstChild("Sign")
and workspace.Map.Landmarks.Stronghold.Functional.Sign:FindFirstChild("SurfaceGui")
and workspace.Map.Landmarks.Stronghold.Functional.Sign.SurfaceGui:FindFirstChild("Frame")
and workspace.Map.Landmarks.Stronghold.Functional.Sign.SurfaceGui.Frame:FindFirstChild("Body")
end
local initialLabel = getStrongholdTimerLabel()
local initialText = "Stronghold Timer: " .. tostring(initialLabel and initialLabel.ContentText or "N/A")
local strongholdDropdown = main:CreateDropDown("Stronghold Clients")
local strongholdTimeChecker = main:CreateComment(initialText)
-- Coroutine to update timer text every second
coroutine.wrap(function()
local lastTimerText = nil
while strongholdRunning do
local label = getStrongholdTimerLabel()
local timerText = "Stronghold Timer: " .. tostring(label and label.ContentText or "N/A")
if timerText ~= lastTimerText then
if strongholdTimeChecker.SetText then
strongholdTimeChecker:SetText(timerText)
else
local commentContent = strongholdTimeChecker:FindFirstChild("commentcontent")
if commentContent then
commentContent.Text = timerText
end
end
lastTimerText = timerText
end
task.wait(0.5) -- check every second
end
end)()
strongholdDropdown:AddButton("Teleport to Stronghold", function()
local targetPart = workspace:FindFirstChild("Map")
and workspace.Map:FindFirstChild("Landmarks")
and workspace.Map.Landmarks:FindFirstChild("Stronghold")
and workspace.Map.Landmarks.Stronghold:FindFirstChild("Functional")
and workspace.Map.Landmarks.Stronghold.Functional:FindFirstChild("EntryDoors")
and workspace.Map.Landmarks.Stronghold.Functional.EntryDoors:FindFirstChild("DoorRight")
and workspace.Map.Landmarks.Stronghold.Functional.EntryDoors.DoorRight:FindFirstChild("Model")
if targetPart then
local children = targetPart:GetChildren()
local destination = children[5]
if destination and destination:IsA("BasePart") then
local hrp = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp then
-- Offset slightly above the target to avoid clipping
hrp.CFrame = destination.CFrame + Vector3.new(0, 5, 0)
print("Teleported to Stronghold DoorRight Model child #5.")
else
warn("HumanoidRootPart not found!")
end
else
warn("Child #5 is missing or not a BasePart!")
end
else
warn("DoorRight.Model path not found!")
end
end)
-- Teleport to Stronghold Diamond Chest button
strongholdDropdown:AddButton("Teleport to Diamond Chest", function()
local items = workspace:FindFirstChild("Items")
if not items then
warn("Items folder not found!")
return
end
local chest = items:FindFirstChild("Stronghold Diamond Chest")
if not chest then
warn("Stronghold Diamond Chest not found!")
return
end
local chestLid = chest:FindFirstChild("ChestLid")
if not chestLid then
warn("ChestLid not found!")
return
end
local diamondchest = chestLid:FindFirstChild("Meshes/diamondchest_Cube.002")
if not diamondchest then
warn("Diamond chest mesh not found!")
return
end
local hrp = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = diamondchest.CFrame + Vector3.new(0, 5, 0)
else
warn("HumanoidRootPart not found!")
end
end)
-- auto
-- extra item automation


Compa me puedes crear un script de kill aura para swordbut 2
it looks so chatgpt please stop
@Dexemox gpt isn't that dumb to make local for players 9 times
by this remote i mean that mob, tool, damageID and CFrame are on separate lines
@z1eder do you know where or how to find the current damage ids?. i tried seach all attribites in tool and local player
How do you get it up in the game
why does it say 99 nights in the forest is not a supported game?
how do you get the damage id? ive tried using the turtlespy and can only copy the remotefunction path