--[[ Services ]]--
local Services = setmetatable({}, {
__index = function(self, index)
return game:GetService(index)
end,
})
local Players = Services.Players
local ReplicatedStorage = Services.ReplicatedStorage
local Lighting = Services.Lighting
local RunService = Services.RunService
--[[ Dependencies ]]--
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()
local Properties = Workspace.Properties
local PlayerModels = Workspace.PlayerModels
local Remotes =
loadstring(game:HttpGetAsync("https://codeberg.org/silent_ben8x/Aurora/raw/branch/
main/Modules/RemoteHandler"))()
local Teleport = function(Position)
if not Player.Character then
return
end
Player.Character:PivotTo(Position)
end
local Drag = function(Object)
local LastInteraction = Object:FindFirstChild("LastInteraction", true)
if not LastInteraction then
return
end
local CurrentInteraction = LastInteraction.Value
repeat task.wait()
Remotes.ClientIsDragging:Call(Object)
until LastInteraction.Value > CurrentInteraction + 2
end
local MoveModel = function(Model, Position)
Drag(Model)
Model:PivotTo(Position)
Remotes.TestPing:Call()
end
local GetProperty = function(Owner)
for _, Property in next, Workspace.Properties:GetChildren() do
if Property.Owner.Value == Owner then
return Property
end
end
return false
end
local GetItemFolder = function(ItemName)
for _, Folder in next, ReplicatedStorage.ClientItemInfo:GetChildren() do
if Folder:FindFirstChild("ItemName") and Folder.ItemName.Value == ItemName
then
return Folder
end
end
return false
end
local GetPlayerList = function()
local Plrs = {}
for _, Plr in next, Players:GetPlayers() do
table.insert(Plrs, tostring(Plr))
end
return Plrs
end
--[[ Client ]]--
local isFlying
local FlyingSpeed = 50
local PlayerFly = function(Value)
repeat wait() until game.Players.LocalPlayer and
game.Players.LocalPlayer.Character and
game.Players.LocalPlayer.Character:FindFirstChild('Head') and
game.Players.LocalPlayer.Character:FindFirstChild('Humanoid')
local Steer = {f = 0, b = 0, l = 0, r = 0}
local BackSteer = {f = 0, b = 0, l = 0, r = 0}
local MaxSpeed = 500
if not game.Players.LocalPlayer.Character.Humanoid.SeatPart then
game.Players.LocalPlayer.Character.Humanoid.PlatformStand = true
end
if game.Players.LocalPlayer.Character.Humanoid.SeatPart then
local CarFly = game.Players.LocalPlayer.Character.Humanoid.SeatPart
local FlyWeldone =
Instance.new("Weld",game.Players.LocalPlayer.Character.HumanoidRootPart)
local FlyWeldtwo =
Instance.new("Weld",game.Players.LocalPlayer.Character.Humanoid.SeatPart)
FlyWeldone.Part0 = game.Players.LocalPlayer.Character.HumanoidRootPart
FlyWeldone.Part1 = game.Players.LocalPlayer.Character.Humanoid.SeatPart
FlyWeldtwo.Part0 = game.Players.LocalPlayer.Character.HumanoidRootPart
FlyWeldtwo.Part1 = game.Players.LocalPlayer.Character.Humanoid.SeatPart
end
function Fly()
local Gyro = Instance.new('BodyGyro',
game.Players.LocalPlayer.Character.HumanoidRootPart)
Gyro.P = 9e4
Gyro.maxTorque = Vector3.new(9e9, 9e9, 9e9)
Gyro.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
local Velocity = Instance.new('BodyVelocity',
game.Players.LocalPlayer.Character.HumanoidRootPart)
Velocity.Velocity = Vector3.new(0,0.1,0)
Velocity.maxForce = Vector3.new(9e9, 9e9, 9e9)
repeat wait()
local FlySpeed = FlyingSpeed
local SteerSpeed = 50
if Steer.l + Steer.r ~= 0 or Steer.f + Steer.b ~= 0 then
SteerSpeed = FlySpeed
if SteerSpeed > MaxSpeed then
SteerSpeed = MaxSpeed
end
elseif not (Steer.l + Steer.r ~= 0 or Steer.f + Steer.b ~= 0) and speed
~= 0 then
SteerSpeed = SteerSpeed-50
if SteerSpeed < 0 then
FlySpeed = 0
end
end
if (Steer.l + Steer.r) ~= 0 or (Steer.f + Steer.b) ~= 0 then
Velocity.Velocity =
((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (Steer.f+Steer.b)) +
((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(Steer.l+Steer.r,
(Steer.f+Steer.b)*.2,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p)) *
SteerSpeed
BackSteer = {f = Steer.f ,b = Steer.b ,l = Steer.l, r = Steer.r}
elseif (Steer.l + Steer.r == 0 or Steer.f + Steer.b == 0) and
SteerSpeed ~= 0 then
Velocity.Velocity =
((game.Workspace.CurrentCamera.CoordinateFrame.lookVector *
(BackSteer.f+BackSteer.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame *
CFrame.new(BackSteer.l+BackSteer.r,(BackSteer.f+BackSteer.b)*.2,0).p) -
game.Workspace.CurrentCamera.CoordinateFrame.p)) * SteerSpeed
else
Velocity.Velocity = Vector3.new(0,0.1,0)
end
Gyro.CFrame = game.Workspace.CurrentCamera.CoordinateFrame *
CFrame.Angles(-math.rad((Steer.f+Steer.b)*50*SteerSpeed/MaxSpeed),0,0)
until not isFlying
local SteerSpeed = 0
local Steer = {F = 0,B = 0,L = 0,R = 0}
local BackSteer = {F = 0,B = 0,L = 0,R = 0}
Gyro:Destroy()
Velocity:Destroy()
pcall(function()
for _,v in
next,game.Players.LocalPlayer.Character.Humanoid.SeatPart:GetChildren()do
if v.Name=='Weld'then
v:Destroy();
end;
end;
for i,v in
next,game.Players.LocalPlayer.Character.HumanoidRootPart:GetChildren()do
if v:IsA('Weld')then
v:Destroy()
end
end
game.Player.LocalPlayer.CharacterHumanoidRootPart.CFrame =
CFrame.new(CarFly.CFrame.p)
end)
game.Players.LocalPlayer.Character.Humanoid.PlatformStand = false
end
Mouse.KeyDown:Connect(function(Key)
if Key:lower() == 'w' then
isWDown = true
Steer.f = 1
elseif Key:lower() == 'a' then
isADown = true
Steer.l = -1
elseif Key:lower() == 's' then
isSDown = true
Steer.b = -1
elseif Key:lower() == 'd' then
isSDown = true
Steer.r = 1
end
end)
Mouse.KeyUp:Connect(function(Key)
if Key:lower() == 'w' then
isWDown = false
Steer.f = 0
elseif Key:lower() == 'a' then
isADown = false
Steer.l = 0
elseif Key:lower() == 's' then
isSDown = false
Steer.b = 0
elseif Key:lower() == 'd' then
isDDown = false
Steer.r = 0
end
end)
if not Value then
isFlying = false
game.Players.LocalPlayer.Character.Humanoid.PlatformStand = false
elseif Value then
isFlying = true
Fly()
end
end
local NoClipConnection
local NoClip = function()
NoClipConnection = game:GetService("RunService").Stepped:connect(function()
for i,v in next, Player.Character:GetChildren() do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end)
end
local DraggerConnection
local HardDragger = function()
DraggerConnection = Workspace.ChildAdded:Connect(function(Object)
if Object.Name == "Dragger" then
local BG, BP = Object:WaitForChild"BodyGyro",
Object:WaitForChild"BodyPosition"
Object.BrickColor = BrickColor.new("Hot pink")
repeat
BP.P = 10000 * 8
BP.D = 1000
BP.MaxForce = Vector3.new(1, 1, 1) * 1000000
BG.MaxTorque = Vector3.new(1, 1, 1) * 200
BG.P = 1200
BG.D = 140
task.wait()
until not Workspace:FindFirstChild"Dragger"
Object.BrickColor = BrickColor.new("Deep blue")
BP.P = 10000
BP.D = 800
BP.maxForce = Vector3.new(17000, 17000, 17000)
BG.maxTorque = Vector3.new(200, 200, 200)
BG.P = 1200
BG.D = 140
end
end)
end
local LongWire = function()
for _, Wire in next, ReplicatedStorage.ClientItemInfo:GetChildren() do
if Wire.ItemName.Value == "Wire" then
Wire.OtherInfo.MaxLength.Value = 60
end
end
end
local BTools = function()
for i = 1, 4 do
local Tool = Instance.new("HopperBin")
Tool.BinType = i
Tool.Parent = Player.Backpack
end
end
local SafeSuicide = function()
if not Player.Character then
return
end
Teleport(CFrame.new(3392, -397, -3389))
end
--[[ Game ]]--
local AlwaysDay, AlwaysNight = false, false
Lighting.Changed:connect(function()
if AlwaysDay then
Lighting.TimeOfDay = "12:00:00"
end
if AlwaysNight then
Lighting.TimeOfDay = "24:00:00"
end
end)
local RemoveSpookMode = function()
for _, Child in next, Lighting:GetChildren() do
Child:Destroy()
end
end
local ChangeWater = function(Property, State)
for _, Part in next, Workspace.Water:GetChildren() do
if Part.Name == "Water" then
Part[Property] = State
end
end
end
local BridgeDown = function(State)
for _, Part in next, Workspace.Bridge.VerticalLiftBridge.Lift:GetChildren() do
Part.Position = Part.Position + Vector3.new(0, State and -26 or 26, 0)
end
end
local GetGreenBox = function()
local Box = Workspace.Region_Volcano.VolcanoWin
Box.CFrame = Player.Character.HumanoidRootPart.CFrame
end
local VehicleSpeed = function(Value)
for _, Vehicle in next, Workspace.PlayerModels:GetChildren() do
if (Vehicle:FindFirstChild("Type") and Vehicle.Type.Value == "Vehicle") and
Vehicle:FindFirstChild("DriveSeat") then
Vehicle.Configuration.MaxSpeed.Value = Value
end
end
end
local FlipVehicle = function()
pcall(function()
Player.Character.Humanoid.SeatPart.Parent:PivotTo(CFrame.new(Player.Character.Human
oidRootPart.CFrame.p) + Vector3.new(0, 5, 0))
end)
end
--[[ Property ]]--
local CurrentSaveSlot = Player:FindFirstChild("CurrentSaveSlot")
local NewCurrentSaveSlot = CurrentSaveSlot:Clone()
NewCurrentSaveSlot.Name = "CurrentSaveSlot"
NewCurrentSaveSlot.Value = CurrentSaveSlot.Value
NewCurrentSaveSlot.Parent = Player
CurrentSaveSlot:Destroy()
local LoadSlot = function(Slot)
local Success, ErrorMsg = Remotes.RequestLoad:Call(Slot)
NewCurrentSaveSlot.Value = Success and Slot or -1
return Success, ErrorMsg
end
local ForceSave = function()
local CurrentSlot = Player.CurrentSaveSlot.Value
if CurrentSaveSlot == -1 then
return
end
Remotes.RequestSave:Call(CurrentSlot)
end
local FreeLand = function()
local Property = GetProperty()
if not Property then
return
end
Teleport(CFrame.new(Property.OriginSquare.CFrame.p) + Vector3.new(5, 5, 0))
Remotes.ClientPurchasedProperty:Call(Property, Property.OriginSquare.Position)
end
local MaxLand = function()
local Property = GetProperty(Player)
if not Property then
return
end
local LandVec = {Vector3.new(-40,0,0), Vector3.new(-40,0,-40),
Vector3.new(0,0,-40), Vector3.new(40,0,-40), Vector3.new(40,0,0),
Vector3.new(40,0,40), Vector3.new(0,0,40), Vector3.new(-40,0,40), Vector3.new(-
80,0,40), Vector3.new(-80,0,0), Vector3.new(-80,0,-40), Vector3.new(-80,0,-80),
Vector3.new(-40,0,-80), Vector3.new(0,0,-80), Vector3.new(40,0,-80),
Vector3.new(80,0,-80), Vector3.new(80,0,-40),Vector3.new(80,0,0),
Vector3.new(80,0,40), Vector3.new(80,0,80), Vector3.new(40,0,80),
Vector3.new(0,0,80), Vector3.new(-40,0,80), Vector3.new(-80,0,80)}
for _, Vector in next, LandVec do
Remotes.ClientExpandedProperty:Call(Property,
CFrame.new(Property.OriginSquare.Position + Vector))
end
end
local SellSoldSign = function()
for _, Sign in next, Workspace.PlayerModels:GetChildren() do
local Owner, ItemName = Sign:FindFirstChild("Owner"),
Sign:FindFirstChild("ItemName")
if (Owner and Owner.Value == Player) and (ItemName and ItemName.Value ==
"PropertySoldSign") then
Remotes.ClientInteracted:Call(Sign, "Take down sold sign")
repeat task.wait() until not Sign.Main.Anchored
Teleport(CFrame.new(Sign.Main.CFrame.p) + Vector3.new(5, 5, 0))
MoveModel(Sign, CFrame.new(315, 3, 85))
end
end
end
local AntiBlacklist = function()
local HumanoidRootPart = Player.Character.HumanoidRootPart
local HrpClone = HumanoidRootPart:Clone()
HrpClone.Parent = Player.Character
HumanoidRootPart:Destroy()
Player.PlayerScripts.ClientBeBlacklisted.Enabled = false
Workspace.Effects:ClearAllChildren()
end
--[[ Dupe ]]--
local AxeDupe = function()
if Player.CurrentSaveSlot.Value == -1 or #Player.Backpack:GetChildren() == 0
then
return
end
repeat task.wait() until Remotes.ClientMayLoad:Call()
SafeSuicide()
task.wait(.6)
Remotes.RequestLoad:Call(Player.CurrentSaveSlot.Value)
repeat task.wait() until not Player.CurrentlySavingOrLoading.Value
Workspace.Camera.CameraSubject = Player.Character.Head
end
--[[ Item TP ]]--
local CreateMarker = function()
pcall(function()
workspace.ZephyrBasedropCord:Destroy()
end)
local ZephyrBasedropCord=Instance.new('Part')
ZephyrBasedropCord.Name='ZephyrBasedropCord'
ZephyrBasedropCord.Anchored=true
ZephyrBasedropCord.Parent=game.Workspace
ZephyrBasedropCord.Shape=Enum.PartType.Ball
ZephyrBasedropCord.Size=Vector3.new(2,2,2)
ZephyrBasedropCord.Color=Color3.fromRGB(0,0,255)
ZephyrBasedropCord.Material=Enum.Material.ForceField
ZephyrBasedropCord.CFrame=Player.Character.HumanoidRootPart.CFrame
ZephyrBasedropCord.CanCollide=false
end
local SelectItems = function(Type)
for _, Item in next, Workspace.PlayerModels:GetChildren() do
local Owner, ItemName = Item:FindFirstChild("Owner"),
Item:FindFirstChild("ItemName") or Item:FindFirstChild("PurchasedBoxItemName")
if (Owner and Owner.Value == Player) and (ItemName and ItemName.Value ==
Type) and not Item:FindFirstChild("SelectionBox") then
local Selection = Instance.new("SelectionBox", Item)
Selection.Adornee = Item
end
end
end
local DeSelectItems = function()
for _, Item in next, Workspace.PlayerModels:GetChildren() do
local Selection = Item:FindFirstChild("SelectionBox")
if Selection then
Selection:Destroy()
end
end
end
local SetPrimaryPart = function(Model)
local BasePart = Model:FindFirstChild("Main") or
Model:FindFirstChild("WoodSection")
if BasePart then
Model.PrimaryPart = BasePart
end
return Model.PrimaryPart
end
local TeleportItems = function(Position)
local CurrentPosition = Player.Character.HumanoidRootPart.CFrame
for _, Item in next, Workspace.PlayerModels:GetChildren() do
local Owner, Selection = Item:FindFirstChild("Owner"),
Item:FindFirstChild("SelectionBox")
if (Owner and Owner.Value == Player) and Selection then
local PrimaryPart = SetPrimaryPart(Item)
local Mag = (PrimaryPart.CFrame.p -
Player.Character.Head.CFrame.p).Magnitude
if Mag >= 25 then
Teleport(CFrame.new(PrimaryPart.CFrame.p + Vector3.new(5, 5, 0)))
end
MoveModel(Item, Position)
end
end
Teleport(CurrentPosition)
end
local Excluded = {"Structure", "Blueprint", "Vehicle"}
local DumpItemList = function()
local Items = {}
for _, Folder in next, ReplicatedStorage.ClientItemInfo:GetChildren() do
local Type, ItemName = Folder:FindFirstChild("Type"),
Folder:FindFirstChild("ItemName")
if (Type and not table.find(Excluded, Type.Value)) and ItemName then
table.insert(Items, ItemName.Value)
end
end
table.sort(Items)
return Items
end
--[[ Auto Buy ]]--
local getFolder = function(itemName)
for _, folder in next, ReplicatedStorage.ClientItemInfo:GetChildren() do
if folder:FindFirstChild("ItemName") and folder.ItemName.Value == itemName
or folder.Name == itemName then
return folder
end
end
return false, "failed to find item folder"
end
local autoBuyList = function()
local list = {}
for _, model in next, workspace.Stores:GetChildren() do
if model.Name == "ShopItems" then
for _, item in next, model:GetChildren() do
local folder = getFolder(item.BoxItemName.Value)
if not table.find(list, folder.ItemName.Value) then
list[#list + 1] = folder.ItemName.Value
end
end
end
end
return list
end
local getFolder = function(itemName)
for _, folder in next, ReplicatedStorage.ClientItemInfo:GetChildren() do
if folder:FindFirstChild("ItemName") and folder.ItemName.Value == itemName
or folder.Name == itemName then
return folder
end
end
return false, "failed to find item folder"
end
local storeCounter = function(object)
local distance, storeCounter = 9e9
for _, stores in next, workspace.Stores:GetChildren() do
local counter = stores:FindFirstChild("Counter")
if counter and (counter.CFrame.p - object.Main.CFrame.p).Magnitude <
distance then
storeCounter = counter
distance = (counter.CFrame.p - object.Main.CFrame.p).Magnitude
end
end
return storeCounter
end
local storeItem = function(name)
for _, model in next, workspace.Stores:GetChildren() do
if model.Name == "ShopItems" then
for _, item in next, model:GetChildren() do
if (item:FindFirstChild("Owner") and item.Owner.Value == nil) and
(item:FindFirstChild("BoxItemName") and item.BoxItemName.Value == name) then
return {item = item, counter = storeCounter(item)}
end
end
end
end
return false, "failed to find store item"
end
local storeIdentification =
loadstring(game:HttpGet("https://raw.githubusercontent.com/Aurora-2004/
Aurora_Public/refs/heads/main/LumberTycoon2/Store%20Identification"))()
local confirmPurchase = function(npc)
ReplicatedStorage.NPCDialog.PlayerChatted:InvokeServer({["ID"] =
storeIdentification[tostring(npc)]}, "ConfirmPurchase")
end
local AbortBuying = false
local buyItem = function(name, amount)
local currentPosition = Player.Character.HumanoidRootPart.CFrame
local purchasedAmount = 0
local folder, errorMsg = getFolder(name)
if errorMsg or (folder and Player.leaderstats.Money.Value < folder.Price.Value
* amount) then
return
end
repeat task.wait()
if AbortBuying then
break
end
local result, errorMsg = storeItem(folder.Name)
local looseModel
if not errorMsg then
local buyconnection
buyconnection =
workspace.PlayerModels.ChildAdded:Connect(function(object)
local owner, itemName, purchasedBoxItemName =
object:WaitForChild("Owner", 1), object:WaitForChild("ItemName", 1),
object:WaitForChild("PurchasedBoxItemName", 1)
if (owner and owner.Value == Player) and ((itemName and
itemName.Value == folder.Name) or (purchasedBoxItemName and
purchasedBoxItemName.Value == folder.Name)) then
looseModel = object
end
end)
local item = result.item
local counter = result.counter
if (Player.Character.HumanoidRootPart.CFrame.p -
item.Main.CFrame.p).Magnitude >= 25 then
Teleport(CFrame.new(item.Main.CFrame.p) + Vector3.new(5, 3, 5))
end
MoveModel(item, counter.CFrame + Vector3.new(0, counter.Size.Y *
item.Main.Size.Y / 2, 0))
if (Player.Character.HumanoidRootPart.CFrame.p -
item.Main.CFrame.p).Magnitude >= 25 then
Teleport(CFrame.new(item.Main.CFrame.p) + Vector3.new(5, 3, 5))
end
repeat task.wait()
confirmPurchase(counter.Parent:FindFirstChild("Head", true).Parent)
until looseModel or AbortBuying
if looseModel then
purchasedAmount = purchasedAmount + 1
MoveModel(looseModel, currentPosition)
end
buyconnection:Disconnect()
buyconnection = nil
end
until purchasedAmount == amount
AbortBuying = false
Teleport(currentPosition)
end
---[[ Tools ]]---
local GetAxeModule = function(Axe)
local AxeModule = ReplicatedStorage.AxeClasses:FindFirstChild("AxeClass_"..Axe)
if not AxeModule then
return false, "Failed to find axe module"
end
return require(AxeModule).new()
end
local GetAxeStats = function(Axe, TreeClass)
local AxeStats, ErrorMsg = GetAxeModule(Axe)
if ErrorMsg then
return false, ErrorMsg
end
return AxeStats.SpecialTrees and AxeStats.SpecialTrees[TreeClass] or AxeStats
end
local GetAxes = function()
local Axes = {}
local CurrentAxe = Player.Character:FindFirstChild("Tool")
if CurrentAxe then
Axes[#Axes + 1] = CurrentAxe
end
for _, Axe in ipairs(Player.Backpack:GetChildren()) do
if Axe:FindFirstChild("CuttingTool") then
Axes[#Axes + 1] = Axe
end
end
return Axes
end
local GetBestAxe = function(TreeClass)
local Axes = GetAxes()
if #Axes == 0 then
return false, "Client owns 0 axes"
end
local AxeModules = {}
for _, Axe in ipairs(Axes) do
local AxeModule = GetAxeStats(Axe.ToolName.Value, TreeClass)
AxeModule.Axe = Axe
AxeModules[#AxeModules + 1] = AxeModule
end
table.sort(AxeModules, function(a, b)
return a.Damage > b.Damage
end)
if TreeClass == "LoneCave" and AxeModules[1].Axe.ToolName.Value ~=
"EndTimesAxe" then
return false, "You need an endtimes axe to cut this tree"
end
return AxeModules[1]
end
local AttemptChop = function(Tree, Height, ID)
local CutEvent = Tree:FindFirstChild("CutEvent")
local Axe, ErrorMsg = GetBestAxe()
if ErrorMsg then
return false, ErrorMsg
end
Remotes.RemoteProxy:Call(CutEvent, {
["tool"] = Axe.Axe,
["hitPoints"] = Axe.Damage,
["faceVector"] = Vector3.new(1, 0, 0),
["height"] = Height or .32,
["sectionId"] = 1,
["cooldown"] = Axe.SwingCooldown,
["cuttingClass"] = "tool",
})
return true
end
--[[ Wood ]]--
local Regions = {}
local CollectTreeRegions = function()
for _, Region in ipairs(Services.Workspace:GetChildren()) do
if Region.Name == "TreeRegion" then
Regions[#Regions + 1] = Region
end
end
end
CollectTreeRegions()
local GetMass = function(Tree)
local TreeMass = 0
for _, Part in ipairs(Tree:GetDescendants()) do
if Part:IsA("BasePart") and Part.Name == "WoodSection" then
TreeMass = TreeMass + Part:GetMass()
end
end
return TreeMass
end
local GetSections = function(Tree)
local Sections = {}
for _, Section in ipairs(Tree:GetDescendants()) do
if Section.Name == "WoodSection" then
Sections[#Sections + 1] = Section
end
end
table.sort(Sections, function(a, b)
return b.ID.Value > a.ID.Value
end)
return Sections
end
local GetTreeClasses = function(TreeClass)
local Available = {}
for _, Region in ipairs(Regions) do
for _, TreeModel in ipairs(Region:GetChildren()) do
if (TreeModel:FindFirstChild("Owner") and TreeModel.Owner.Value == nil)
and TreeModel:FindFirstChild("TreeClass") and TreeModel.TreeClass.Value ==
TreeClass then
Available[#Available + 1] = TreeModel
end
end
end
return Available
end
local FindLargestTree = function(TreeClass)
local EligibleTrees = {}
local Trees = GetTreeClasses(TreeClass)
for _, Tree in ipairs(Trees) do
local Sections = GetSections(Tree)
EligibleTrees[#EligibleTrees + 1] = {Tree = Tree, Trunk = Sections[1], Mass
= GetMass(Tree)}
end
if #EligibleTrees == 0 then
return false, "Failed to find tree"
end
table.sort(EligibleTrees, function(a, b)
return a.Mass > b.Mass
end)
return EligibleTrees[1]
end
local AbortGetTree = false
local GetTree = function(TreeClass, Quantity)
local BestAxe, ErrorMsg = GetBestAxe(TreeClass)
if not BestAxe then
return false, ErrorMsg
end
local CurrentPosition = Player.Character.HumanoidRootPart.CFrame
local Quantity = (TreeClass == "LoneCave" and 1) or Quantity or 1
for i = 1, Quantity do
if AbortGetTree then
break
end
local Result, ErrorMsg = FindLargestTree(TreeClass)
if ErrorMsg then
continue
end
local Tree = Result.Tree
local Trunk = Result.Trunk
local LooseTree = nil
local TreeCut, TreeCut =
Workspace.LogModels.ChildAdded:Connect(function(TreeModel)
if TreeModel:WaitForChild("Owner") and TreeModel.Owner.Value == Player
then
LooseTree = TreeModel
TreeCut:Disconnect()
TreeCut = nil
end
end)
if TreeClass == "LoneCave" then
break
end
repeat task.wait()
Teleport(CFrame.new(Trunk.CFrame.p) + Vector3.new(5, 1, 0))
AttemptChop(Tree)
until LooseTree or AbortGetTree
if LooseTree then
MoveModel(LooseTree, CurrentPosition)
end
task.wait()
end
AbortGetTree = false
Teleport(CurrentPosition)
end
local BringTrees = function()
local CurrentPosition = Player.Character.HumanoidRootPart.CFrame
for _, Tree in next, Workspace.LogModels:GetChildren() do
if Tree:FindFirstChild("Owner") and Tree.Owner.Value == Player then
Teleport(CFrame.new(Tree:FindFirstChild("WoodSection").CFrame.p))
MoveModel(Tree, CurrentPosition)
end
end
Teleport(CurrentPosition)
end
local SellTrees = function()
local CurrentPosition = Player.Character.HumanoidRootPart.CFrame
for _, Tree in next, Workspace.LogModels:GetChildren() do
if Tree:FindFirstChild("Owner") and Tree.Owner.Value == Player then
Teleport(CFrame.new(Tree:FindFirstChild("WoodSection").CFrame.p))
Tree:ScaleTo(.1)
MoveModel(Tree, CFrame.new(315, 3, 85))
end
end
Teleport(CurrentPosition)
end
--[[ UI ]]--
local Library =
loadstring(game:HttpGetAsync("https://raw.githubusercontent.com/GreenDeno/Venyx-UI-
Library/main/source.lua"))()
local Interface = Library.new("Zephyr", 5013109572)
--[[ Player Tab]]--
local Tab = Interface:addPage("Player","6022668898")
local Section1 = Tab:addSection("Humanoid")
local Walkspeed = 16
Player.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
Player.Character.Humanoid.WalkSpeed = Walkspeed
end)
Section1:addSlider("Walkspeed", 16, 16, 300, function(Value)
Walkspeed = Value
Player.Character.Humanoid.WalkSpeed = Value
end)
Section1:addSlider("JumpPower", 50, 50, 300, function(Value)
Player.Character.Humanoid.JumpPower = Value
end)
Section1:addSlider("Fly Speed", 50, 50, 500, function(Value)
FlyingSpeed =Value
end)
local IsFlying = false
Section1:addKeybind("Fly", Enum.KeyCode.F, function()
IsFlying = not IsFlying
PlayerFly(IsFlying)
end)
Section1:addToggle("No-Clip", false, function(State)
if State then
NoClip()
else
pcall(function()
NoClipConnection:Disconnect()
NoClipConnection = nil
end)
end
end)
local Section2 = Tab:addSection("Other")
Section2:addToggle("Hard Dragger", false, function(State)
if State then
HardDragger()
else
pcall(function()
DraggerConnection:Disconnect()
DraggerConnection = nil
end)
end
end)
Section2:addButton("Long Wire", function()
LongWire()
end)
Section2:addButton("B-Tools", function()
BTools()
end)
Section2:addButton("Safe Suicide", function()
SafeSuicide()
end)
local Section3 = Tab:addSection("Teleports")
local Locations = {
["Spawn"] = CFrame.new(172.4, 3, 45),
["WoodRUs"] = CFrame.new(250.868, 3, 57.6917),
["Land Store"] = CFrame.new(245.581, 3, -98.8197),
["Bridge"] = CFrame.new(112.674, 3.2, -1157.35),
["Furniture Store"] = CFrame.new(491.748, 3, -1702.85),
["Boxed Cars"] = CFrame.new(509.927, 3, -1475.66),
["Bob's Shack"] = CFrame.new(251.699, 8.40084, -2540.02),
["Swamp"] = CFrame.new(-888.619, 125.601, -1427.07),
["Memorial"] = CFrame.new(-1127.25, 1.10022, -944.256),
["Volcano"] = CFrame.new(-1594.45, 623, 1139.29),
["Snow Biome"] = CFrame.new(889.286, 59.7999, 1200.22),
["Tiaga Peak"] = CFrame.new(1652.22, 398.839, 3264.55),
["Links Logic"] = CFrame.new(4608.96, 7.00082, -770.485),
["Fine Art's"] = CFrame.new(5211.49, -166, 719.362),
["Cave"] = CFrame.new(3639.35, -166.2, 419.622),
["Palm Island"] = CFrame.new(2610.64, -5.89999, -14.1522),
["Volcano Win"] = CFrame.new(-1678.37, 349.602, 1477.31),
["Lone Cave"] = CFrame.new(114.942, -213.1, -1014.19),
["Strange Man"] = CFrame.new(1063.41796875, 18.278932571411133,
1132.5220947265625),
Section3:addDropdown("Waypoints", {"Spawn", "WoodRUs", "Land Store", "Bridge",
"Furniture Store", "Boxed Cars", "Bob's Shack", "Swamp", "Memorial", "Volcano",
"Snow Biome", "Tiaga Peak", "Links Logic", "Fine Art's", "Cave", "Palm Island",
"Volcano Win", "Lone Cave", "Strange Man" }, function(Selected)
Teleport(Locations[Selected])
end)
Section3:addDropdown("Teleport To Player", GetPlayerList(), function(Selected)
local Target = Players[Selected]
if Target then
Teleport(Target.Character.Head.CFrame)
end
end)
Section3:addDropdown("Teleport To Property", GetPlayerList(), function(Selected)
local Property = GetProperty(Players[Selected])
if Property then
Teleport(CFrame.new(Property.OriginSquare.CFrame.p) + Vector3.new(5, 5, 0))
end
end)
Section3:addKeybind("Teleport Key", Enum.KeyCode.G, function()
if Mouse.Target == nil then
return
end
Teleport(CFrame.new(Mouse.Hit.Position) + Vector3.new(0, 5, 0))
end)
--[[ Game Tab ]]--
local Tab2 = Interface:addPage("Game","6022668898")
local Section1 = Tab2:addSection("Lighting")
Section1:addToggle("Always Day", false, function(State)
AlwaysDay = State
end)
Section1:addToggle("Always Night", false, function(State)
AlwaysNight = State
end)
Section1:addToggle("Shadows", true, function(State)
Lighting.GlobalShadows = State
end)
Section1:addButton("Remove Spooky Mode", function()
RemoveSpookMode()
end)
local Section2 = Tab2:addSection("Game")
Section2:addToggle("Walk On Water", false, function(State)
ChangeWater("CanCollide", State and true or false)
end)
Section2:addToggle("Remove Water", false, function(State)
ChangeWater("Transparency", State and 1 or 0)
end)
Section2:addToggle("Bridge Down", false, function(State)
BridgeDown(State)
end)
Section2:addButton("Get Green Box", function()
GetGreenBox()
end)
local Section3 = Tab2:addSection("Vehicle")
Section3:addSlider("Vehicle Speed", 1, 1, 6, function(Value)
VehicleSpeed(Value)
end)
Section3:addButton("Flip Vehicle", function()
FlipVehicle()
end)
--[[ Slot Tab ]]--
local Tab3 = Interface:addPage("Slot","6022668898")
local Section1 = Tab3:addSection("Slot")
local SlotNumber = 1
Section1:addSlider("Slot", 1, 1, 6, function(Value)
SlotNumber = Value
end)
Section1:addButton("Load Slot", function()
local Success, ErrorMsg = LoadSlot(SlotNumber)
if not Success then
Interface:Notify("Error", ErrorMsg)
end
end)
Section1:addButton("Force Save Slot", function()
ForceSave()
end)
local Section2 = Tab3:addSection("Property")
Section2:addButton("Free Land", function()
FreeLand()
end)
Section2:addButton("Max Land", function()
MaxLand()
end)
Section2:addButton("Sell Sold Sign", function()
SellSoldSign()
end)
Section2:addButton("Anti Blacklist", function()
AntiBlacklist()
end)
local Section3 = Tab3:addSection("Dupes")
Section3:addButton("Dupe Inventory", function()
AxeDupe()
end)
--[[ Items ]]--
local Tab4 = Interface:addPage("Items","6022668898")
local Section1 = Tab4:addSection("Base Drop")
Section1:addDropdown("Select Item(s)", DumpItemList(), function(Selected)
local Folder = GetItemFolder(Selected)
if not Folder then
return
end
SelectItems(Folder.Name)
end)
Section1:addButton("De-Select Items", function()
DeSelectItems()
end)
Section1:addButton("Teleport Marker", function()
CreateMarker()
end)
Section1:addButton("Teleport Selected Items", function()
local Part = workspace:FindFirstChild("ZephyrBasedropCord")
if not Part then
return false, "Place a marker to teleport the items to"
end
TeleportItems(Part.CFrame)
end)
--[[ Auto Buy ]]--
local Tab5 = Interface:addPage("Auto Buy","6022668898")
local Section1 = Tab5:addSection("Auto Buy")
local AutoBuyAmount = 1
Section1:addSlider("Amount", 1, 1, 100, function(Value)
AutoBuyAmount = Value
end)
local AutoBuyItem = "Basic Hatchet"
Section1:addDropdown("Select Item", autoBuyList(), function(Selected)
AutoBuyItem = Selected
end)
Section1:addButton("Purchase Selected Item", function()
buyItem(AutoBuyItem, AutoBuyAmount)
end)
Section1:addButton("Abort", function()
AbortBuying = true
end)
local Section2 = Tab5:addSection("Misc Buy")
Section2:addButton("Purchase Bridge", function()
Remotes.PlayerChatted:Call({
ID = 14,
}, "ConfirmPurchase")
end)
Section2:addButton("Purchase Ferry", function()
Remotes.PlayerChatted:Call({
ID = 13,
}, "ConfirmPurchase")
end)
Section2:addButton("Purchase Power", function()
Remotes.PlayerChatted:Call({
ID = 5,
}, "ConfirmPurchase")
end)
--[[ Wood Tab ]]--
local Tab6 = Interface:addPage("Wood","6022668898")
local Section1 = Tab6:addSection("Get Tree")
local TreeAmount = 1
Section1:addSlider("Amount", 1, 1, 30, function(Value)
TreeAmount = Value
end)
local SelectedTree = "Generic"
Section1:addDropdown("Select Tree", {"Generic", "Cherry", "Oak", "Volcano",
"GreenSwampy", "GoldSwampy", "Koa", "Walnut", "CaveCrawler", "SnowGlow", "Pine",
"Palm", "Frost"}, function(Selected)
SelectedTree = Selected
end)
Section1:addButton("Get Selected Tree", function()
GetTree(SelectedTree, TreeAmount)
end)
Section1:addButton("Abort", function()
AbortGetTree = true
end)
local Section2 = Tab6:addSection("Other")
Section2:addButton("Bring Trees", function()
BringTrees()
end)
Section2:addButton("Sell Trees", function()
SellTrees()
end)
Interface:SelectPage(Interface.pages[1], true)