-->AncestorV2 -->Block Shitty Executors local Executor=identifyexecutor(); local SupportedExecutors={'Synapse X','ScriptWare','Krnl','Temple'}; local Supported=table.find(SupportedExecutors,Executor)~=nil; assert(Supported,'Executor Not Supported'); local Key={...}; local Password=Key[1]; local DeveloperMode=Key[1]==nil; setmetatable(Key,{__index=function()if DeveloperMode then return '';end;end;});--> None loadstring Executions Activate DeveloperMode. -->Init local Start,Is_Client_Loaded=os.time(),false,nil; local Ancestor,Connections,GUISettings,CurrentVersion,Ancestor_Loaded={MoneyDuping=false,DupeAxeBeforeModerationAction=false,ModerationAction='Kick',PlayerToModerate=game.Players.LocalPlayer,BaseToDupe=1,SelectedTreeType='Generic',BringTreeAmount=1},{},{NewDonateBase=false,Spook=false,WalkSpeed=16,JumpPower=50,HipHeight=0,SprintSpeed=20,FOV=70,SelectedPlot=1,InfiniteJump=false,SelectedDropType='Both',Light=false,SprintKey='LeftShift',NoclipKey='LeftControl',KeyTP='G',FastCheckout=false,FixCashierRange=false,HardDragger=false,AxeRangeActive=false,AxeSwingActive=false,FlyKey='F',WaterWalk=false,WaterFloat=true,FlySprintSpeed=10,AlwaysDay=false,AlwaysNight=false,NoFog=false,DisableSaving=true,AxeSwing=0,AxeRange=0,FastDeloader=true,IsClientFlying=false,Fling=false,FlySpeed=50,ActivateCarModifications=false,CarSpeed=1,CarPitch=1,AlertShutdown=false,AntiAFK=false},loadstring(game:HttpGetAsync'https://ancestordevelopment.wtf/lua/Version.lua')(),true; -->GUI Main Function Variables local DupeMoneyQuantity,AutobuyAmount,AutobuySelectedItem=1,1,'BasicHatchet'; -->Optimisation Shit local RepStore,RunService,UIS,Players,Lighting,ScriptContext,PerformanceStats,TeleportService,HttpService,MarketplaceService,VirtualUser=game:GetService'ReplicatedStorage',game:GetService'RunService',game:GetService'UserInputService',game:GetService'Players',game:GetService'Lighting',game:GetService'ScriptContext',game:GetService'Stats'.PerformanceStats,game:GetService'TeleportService',game:GetService'HttpService',game:GetService'MarketplaceService',game:GetService'VirtualUser'; local LP,StarterGui=Players.LocalPlayer,game.StarterGui; local C_R,C_C,R_Module,hook_func,fwait,tdelay,lstring,Mouse,Stepped,cframe,vector3,wrkspc,gs,tstring,xp_call,p_call,instance,Heartbeat,Character,MFloor,gc,setthreadidentity=coroutine.resume,coroutine.create,require,hookfunction,task.wait,task.delay,loadstring,LP:GetMouse(),RunService.Stepped,CFrame,Vector3,workspace,getsenv,tostring,xpcall,pcall,Instance,RunService.Heartbeat,LP.Character,math.floor,getconnections,set_thread_identity or setidentity or setthreadcontext or syn.set_thread_identity; local AxeNameLabel,AxeRangeLabel,AxeCooldownLabel; repeat Stepped:wait()until game:IsLoaded()and LP.PlayerGui:FindFirstChild'OnboardingGUI' and LP.PlayerGui.OnboardingGUI.DoOnboarding.Loaded.Value -->Game script environments local PropertyPurchasingClient,CharacterFloat,ClientBeBlacklisted,DonateClient,ObjectInteractionClient,UserInput,NPCChattingClient,LoadSaveClient,NoticeClient=gs(LP.PlayerGui.PropertyPurchasingGUI.PropertyPurchasingClient),gs(LP.PlayerGui.Scripts.CharacterFloat),gs(LP.PlayerGui.BlackListGUI.ClientBeBlacklisted),gs(LP.PlayerGui.DonateGUI.DonateClient),gs(LP.PlayerGui.InteractionGUI.ObectInteractionClient),R_Module(LP.PlayerGui.Scripts.UserInput),gs(LP.PlayerGui.ChatGUI.NPCChattingClient),gs(LP.PlayerGui.LoadSaveGUI.LoadSaveClient),gs(LP.PlayerGui.NoticeGUI.NoticeClient); -->Old game functions local CharacterFloatOld,oldWalls,oldClientBeKicked=CharacterFloat.isInWater,ClientBeBlacklisted.makeWalls,ClientBeBlacklisted.checkIfPlayerNeedsToBeKicked; local ChatUI=LP.PlayerGui.ChatGUI.Chat; local LoadPass=getupvalue(LoadSaveClient.saveSlot,12); local whitelistedPlots={'68, 0, -189, 1, 0, 0, 0, 1, 0, 0, 0, 1','275, 0, -512, 1, 0, 0, 0, 1, 0, 0, 0, 1','383, 0, -250, 1, 0, 0, 0, 1, 0, 0, 0, 1'}; -->Remotes local Client_May_Load,Donate,Request_Load,Request_Save,GetMetaData,ClientPurchasedProperty,ClientExpandedProperty,ClientRequestOwnership,ClientIsDragging,TestPing,PlayerChatted,SendUserNotice,ClientSetListPlayer,DestroyStructure,ClientInteracted,ClientPlacedBlueprint,ClientPlacedStructure,RemoteProxy,WipeMetaData,SayMessageRequest,ClientIsWhitelisted=RepStore.LoadSaveRequests.ClientMayLoad,RepStore.Transactions.ClientToServer.Donate,RepStore.LoadSaveRequests.RequestLoad,RepStore.LoadSaveRequests.RequestSave,RepStore.LoadSaveRequests.GetMetaData,RepStore.PropertyPurchasing.ClientPurchasedProperty,RepStore.PropertyPurchasing.ClientExpandedProperty,RepStore.Interaction.ClientRequestOwnership,RepStore.Interaction.ClientIsDragging,RepStore.TestPing,RepStore.NPCDialog.PlayerChatted,RepStore.Notices.SendUserNotice,RepStore.Interaction.ClientSetListPlayer,RepStore.Interaction.DestroyStructure,RepStore.Interaction.ClientInteracted,RepStore.PlaceStructure.ClientPlacedBlueprint,RepStore.PlaceStructure.ClientPlacedStructure,RepStore.Interaction.RemoteProxy,RepStore.LoadSaveRequests.WipeMetaData,RepStore.DefaultChatSystemChatEvents.SayMessageRequest,RepStore.Interaction.ClientIsWhitelisted; local Plots,StoreChildren=wrkspc.Properties:GetChildren(),wrkspc.Stores:GetChildren(); local AxeFolder=RepStore.Purchasables.Tools.AllTools -->Load freeze bug fix local BumpModule=R_Module(LP.PlayerGui.BumpButton); BumpModule.Bump=function()return true;end; --> Fixes Reloading With Disable Saving Enabled setupvalue(LoadSaveClient.loadSlot,12,true); --Fixed Random 'false' Notices Connections[#Connections+1]={Name='FalseFix',Function=Stepped:Connect(function() if LP.PlayerGui.NoticeGUI.Notice.Main.TextLabel.Text=='false'then LP.PlayerGui.NoticeGUI.Notice.Visible=false; end; end)}; -->Re-Execution Dependancies getgenv().BaseDuping=false; if not getgenv().OldSelectLoad then local gc=getgc(true); for i=1,#gc do local Function=gc[i]; if typeof(Function)=='function'and tstring(getfenv(Function).script)=='PropertyPurchasingClient'then if tstring(getinfo(Function).name)=='OnClientInvoke'then getgenv().OldSelectLoad=Function; end; end; end; end; --Lumber Tycoon 2 Updater Detection local LastUpdated,LastDumpedUpdate=MarketplaceService:GetProductInfo(game.PlaceId).Updated,lstring(game:HttpGetAsync'https://ancestordevelopment.wtf/lua/LastLT2Update.lua')(); if LastUpdated~=LastDumpedUpdate then SendUserNotice:Fire'Lumber Tycoon 2 Updated. Use At Your Own Risk Or Wait For Ancestor To Verify Update!'; end; if not isfile'AncestorV2Configuration.cfg'then writefile('AncestorV2Configuration.cfg',HttpService:JSONEncode(GUISettings)); end; GUISettings=HttpService:JSONDecode(readfile('AncestorV2Configuration.cfg')); PlayerDropType=GUISettings.SelectedDropType; local CashiersAutobuy={}; local CashierIDConnection=RepStore.NPCDialog.PromptChat.OnClientEvent:Connect(function(_,Cashier) if CashiersAutobuy[Cashier.Name]==nil then CashiersAutobuy[Cashier.Name]=Cashier.ID; end; end); C_R(C_C(function() RepStore.NPCDialog.SetChattingValue:InvokeServer(1); repeat Stepped:wait()until CashiersAutobuy["Hoover"]~=nil; CashierIDConnection:Disconnect()CashierIDConnection=nil; RepStore.NPCDialog.SetChattingValue:InvokeServer(0); end)); function Ancestor:Set(SlotNumber) LP.CurrentSaveSlot.Set:Invoke(SlotNumber,LoadPass); end; function Ancestor:GetModelByName(Name) local PlayerModels=wrkspc.PlayerModels:GetChildren(); for i=1,#PlayerModels do local Model=PlayerModels[i]; if Model:FindFirstChild'Owner'and Model.Owner.Value==LP then local ItemType=Model:FindFirstChild'ItemName'; if ItemType and tstring(ItemType.Value)==Name then return Model; end; end; end; return false; end; function Ancestor:SellSign() local Sign=Ancestor:GetModelByName('PropertySoldSign'); local Main=Sign:FindFirstChild'Main'; if Main.Anchored then ClientInteracted:FireServer(Sign,'Take down sold sign'); end; if(Main.CFrame.p-LP.Character.Head.CFrame.p).Magnitude>10 then Ancestor:Teleport(cframe.new(Main.CFrame.p+vector3.new(0,2,2))); fwait(.3) end; repeat Stepped:wait() ClientIsDragging:FireServer(Sign); Sign:SetPrimaryPartCFrame(cframe.new(315,3,85)); until tstring(Sign.Parent)~='PlayerModels'; end; function Ancestor:MuteSound() repeat Stepped:wait()until LP.Character and LP.Character:FindFirstChild'Head'; Character=LP.Character; LP.Character.Head.ChildAdded:Connect(function(Child) if tstring(Child)=='DestroyStructure'then Child.Volume=0; end; end); end;Ancestor:MuteSound(); LP.CharacterAdded:Connect(Ancestor.MuteSound); Connections[#Connections+1]={Name='FlyBegan',Function=UIS.InputBegan:Connect(function(Key,Processed) if not Processed and Key.KeyCode==Enum.KeyCode[GUISettings.FlyKey]then GUISettings.IsClientFlying=not GUISettings.IsClientFlying; if GUISettings.IsClientFlying then Ancestor:Fly(); end; elseif not Processed and Key.KeyCode==Enum.KeyCode[GUISettings.NoclipKey]then GUISettings.Noclip=not GUISettings.Noclip; end; end)}; function Ancestor:GetFlySpeed() local Frame=game:GetService("CoreGui").Ancestor.MainFrame.Sections.LocalPlayer.Sections.Frame:GetChildren() for i=1,#Frame do local FlySpeed=Frame[i]; if FlySpeed:FindFirstChild'Title'and FlySpeed.Title.Text=='Fly Speed'then return tonumber(FlySpeed.Input.Text); end; end; end; -->Antikick lstring([[ local Args={...}; local LP,GUISettings,Ancestor_Loaded=Args[1],Args[2],Args[3]; local Antikick; Antikick=hookmetamethod(game,'__namecall',function(...) if Ancestor_Loaded then local Method=getnamecallmethod() if Method=='Kick'and ...==LP then return; end; if Method=='InvokeServer'and tostring(...)=='RequestSave'and not GUISettings.DisableSaving then return false; end;setnamecallmethod(Method) end; return Antikick(...); end)]])(LP,GUISettings,Ancestor_Loaded); lstring([[ local Args={...}; local Connections,Lighting,p_call=Args[3],Args[5],Args[6]; local LP,GUISettings,UIS,Stepped,Ancestor=Args[8],Args[1],Args[4],Args[2],Args[7]; Connections[#Connections+1]={Name='InfiniteJump',Function=UIS.JumpRequest:Connect(function() if GUISettings.InfiniteJump then LP.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping); end; end)}; Connections[#Connections+1]={Name='Main',Function=Stepped:Connect(function() WalkSpeed=GUISettings.WalkSpeed; if UIS:IsKeyDown(Enum.KeyCode[GUISettings.SprintKey])then WalkSpeed=GUISettings.WalkSpeed+GUISettings.SprintSpeed; if GUISettings.IsClientFlying then GUISettings.FlySpeed=Ancestor:GetFlySpeed()+GUISettings.SprintSpeed; end; elseif not UIS:IsKeyDown(Enum.KeyCode[GUISettings.SprintKey])and GUISettings.IsClientFlying then GUISettings.FlySpeed=Ancestor:GetFlySpeed() end; if LP.Character and LP.Character:FindFirstChild'Humanoid'and GUISettings.ActivateCarModifications then if LP.Character.Humanoid.SeatPart and LP.Character.Humanoid.SeatPart.Parent:FindFirstChild'Configuration'then LP.Character.Humanoid.SeatPart.Parent.Configuration.MaxSpeed.Value=GUISettings.CarSpeed; LP.Character.Humanoid.SeatPart.Parent.RunSounds:FireServer('Set Pitch',GUISettings.CarPitch); end; end; if GUISettings.Noclip then for i,v in next,LP.Character:GetChildren()do if v:IsA'BasePart'then v.CanCollide=false; end; end; end; if GUISettings.AlwaysDay then Lighting.TimeOfDay='12:00:00'; elseif GUISettings.AlwaysNight then Lighting.TimeOfDay='2:00:00'; end; if GUISettings.NoFog then Lighting.FogEnd=1000000; end; p_call(function() LP.Character.Humanoid.WalkSpeed=WalkSpeed; LP.Character.Humanoid.JumpPower=GUISettings.JumpPower; LP.Character.Humanoid.HipHeight=GUISettings.HipHeight; end); end)}]])(GUISettings,Stepped,Connections,UIS,Lighting,p_call,Ancestor,LP); --> Future Feature -- lstring([[ -- local InteractionRange; -- local LP=LP; -- local Mouse=LP:GetMouse(); -- local Character=LP.Character; -- local Head=Character.Head; -- InteractionRange=hookmetamethod(game,'__index',function(self,key) -- if self==Head and key=='Position'and not workspace:FindFirstChild'Dragger'then -- return Mouse.hit.p; -- end; -- return InteractionRange(self,key); -- end);]])(); function Ancestor:Notify(title, text, duration) if Ancestor_Loaded then StarterGui:SetCore('SendNotification',{Title=title,Text=text,Duration=duration}); end; end; if not isfile('AncestorSlotNames.cfg')then local DefaultSlotNames={}; DefaultSlotNames[LP.Name]={Slot1='Slot 1',Slot2='Slot 2',Slot3='Slot 3',Slot4='Slot 4',Slot5='Slot 5',Slot6='Slot 6'}; writefile('AncestorSlotNames.cfg',HttpService:JSONEncode(DefaultSlotNames)); end; local AncestorSlotNames=HttpService:JSONDecode(readfile('AncestorSlotNames.cfg')); local DoesPlayerExist=AncestorSlotNames[tstring(LP.Name)]~=nil; if not DoesPlayerExist then local DefaultSlotNames={}; DefaultSlotNames={Slot1='Slot 1',Slot2='Slot 2',Slot3='Slot 3',Slot4='Slot 4',Slot5='Slot 5',Slot6='Slot 6'}; local SlotNamesOld=HttpService:JSONDecode(readfile('AncestorSlotNames.cfg')); SlotNamesOld[tstring(LP.Name)]=DefaultSlotNames writefile('AncestorSlotNames.cfg',HttpService:JSONEncode(SlotNamesOld)); end; local Slots=HttpService:JSONDecode(readfile('AncestorSlotNames.cfg')) local SlotNames=Slots[tstring(LP.Name)]; function Ancestor:SaveSlotNames() local SlotNamesOld=HttpService:JSONDecode(readfile('AncestorSlotNames.cfg')); SlotNamesOld[tstring(LP.Name)]=nil; SlotNamesOld[tstring(LP.Name)]=SlotNames writefile('AncestorSlotNames.cfg',HttpService:JSONEncode(SlotNamesOld)); SendUserNotice:Fire'Saved Slot Names'; end; function Ancestor:SaveConfigurationFile()writefile('AncestorV2Configuration.cfg',HttpService:JSONEncode(GUISettings));SendUserNotice:Fire'Saved Configuration File!';end; function Ancestor:DeleteConfigurationFile()delfile('AncestorV2Configuration.cfg');SendUserNotice:Fire'Deleted Configuration File!';end; -->CS Antiban gs(LP.PlayerGui.LoadSaveGUI.LoadSaveClient.LocalScript).ban=function()return Ancestor:Notify('Ancestor','Ban Blocked')end;p_call(function()RepStore.Interaction.Ban:Destroy()warn'Antiban Loaded'end); --Function Library function Ancestor:DoesSaveExist(Slot) local Data=GetMetaData:InvokeServer(LP); for i=1,#Data do if i==Slot and Data[i].SaveMeta[#Data[i].SaveMeta] then local Datasize=Data[i].SaveMeta[#Data[i].SaveMeta].NumKeys; if Datasize>3 or MFloor(PerformanceStats.Ping:GetValue())>250 then SendUserNotice:Fire('Loading may take some time at this moment. be patient...'); end; return Datasize; end; end;Ancestor:Notify('Ancestor','No Data Found For Slot '..tstring(Slot)); end; function Ancestor:GetPlayersSlotInfo(Client) local Data=GetMetaData:InvokeServer(Players[tstring(Client)]); local Info={}; for i=1,#Data do if Data[i].SaveMeta[#Data[i].SaveMeta]then local Datasize=Data[i].SaveMeta[#Data[i].SaveMeta].NumKeys; Info[#Info+1]=Datasize; end; end; return Info; end; function Ancestor:GetCashiers() local CashierList={}; local Stores=workspace.Stores:GetChildren() for i=1,#Stores do local Store=Stores[i]; local Cashiers=Store:GetChildren(); for i=1,#Cashiers do local Cashier=Cashiers[i] if Cashier:FindFirstChild'Head'then CashierList[#CashierList+1]=Cashier end; end; end; return CashierList; end; function Ancestor:GetCashierInfo(item) local Cashiers=Ancestor:GetCashiers() local Max,NearestCashier=9e9,nil; for i=1,#Cashiers do local Cashier=Cashiers[i]; if(item.Main.CFrame.p-Cashier.Head.CFrame.p).MagnitudeFunction library function Ancestor:GetClientMoney()return LP.leaderstats.Money.Value;end; function Ancestor:GetLoadedSlot()return LP.CurrentSaveSlot.Value;end; function Ancestor:UpdateAxeInfo() if not AxeNameLabel or not AxeRangeLabel or not AxeCooldownLabel then return end if Character:FindFirstChild'Tool'then local Tool=Character:FindFirstChild'Tool'; repeat Stepped:wait()until gc(Tool.Activated)[1]~=nil; local AttemptChop=gc(Tool.Activated)[1].Function; local Stats=getupvalues(AttemptChop)[1]; AxeNameLabel:UpdateText('Name: '..Character.Tool.ToolName.Value); AxeRangeLabel:UpdateText('Range: '..tstring(Stats.Range)); AxeCooldownLabel:UpdateText('Cooldown: '..tstring(Stats.SwingCooldown)); else AxeNameLabel:UpdateText('Current Axe Not Found'); AxeRangeLabel:UpdateText('Range: Not Currently Available'); AxeCooldownLabel:UpdateText('Cooldown: Not Currently Available'); end; end; Connections[#Connections+1]={Name='UpdateAxeEquip',Function=Stepped:Connect(function(Tool) p_call(function() Ancestor:UpdateAxeInfo(); end); end)} function Ancestor:FixCashierRange(bool) if bool=='Disable'then return Ancestor:GetConnection('FixCashierRange',true) end; local Cashiers=Ancestor:GetCashiers() Connections[#Connections+1]={Name='FixCashierRange',Function=Stepped:Connect(function() if Character and Character:FindFirstChild'Head'then local Min,NearestCashier=9e9,nil; for i=1,#Cashiers do local Cashier=Cashiers[i]; if(LP.Character.Head.CFrame.p-Cashier.Head.CFrame.p).Magnitude20 then C_R(C_C(function() for i=1,2 do Ancestor:SaveSlot(); fwait(2); end; Ancestor:GetConnection('DupeMoney',true); end)); SendUserNotice:Fire('Duped Money '..tstring(i)..' Times!'); end; end)}; Ancestor:LoadSlot(Ancestor:GetLoadedSlot()); repeat Stepped:wait()until typeof(Ancestor:GetConnection'DupeMoney')~='RBXScriptConnection'; end; Ancestor.MoneyDuping=false; end; function Ancestor:SetAxeRange(Active,Value) local Tool=Character:FindFirstChildOfClass'Tool'; if not Tool or not AxeRangeLabel then return end; local AttemptChop=gc(Tool.Activated)[1].Function; local OldStats=getupvalues(AttemptChop); local NewStats=OldStats[1]; if Active then NewStats.Range=Value; else NewStats.Range=R_Module(RepStore.Purchasables.Tools.AllTools:FindFirstChild(tstring(Tool.ToolName.Value)).AxeClass).new().Range; end; AxeRangeLabel:UpdateText('Range: '..tstring(NewStats.Range)); setupvalue(AttemptChop,1,NewStats); end; function Ancestor:SetSwingCooldown(Active) local Tool=Character:FindFirstChildOfClass'Tool'; if not Tool or not AxeCooldownLabel then return end; local AttemptChop=gc(Tool.Activated)[1].Function; local OldStats=getupvalues(AttemptChop); local NewStats=OldStats[1]; NewStats.SwingCooldown=(Active and 0.02)or R_Module(RepStore.Purchasables.Tools.AllTools:FindFirstChild(tstring(Tool.ToolName.Value)).AxeClass).new().SwingCooldown; AxeCooldownLabel:UpdateText('Cooldown: '..tstring(NewStats.SwingCooldown)); setupvalue(AttemptChop,1,NewStats); end; Connections[#Connections+1]={Name='AxeModificationHandler',Function=Character.ChildAdded:Connect(function(Tool) if Tool:IsA'Tool'then repeat Stepped:wait()until gc(Tool.Activated)[1] if GUISettings.AxeRangeActive then Ancestor:SetAxeRange(true,GUISettings.AxeRange); end; if GUISettings.AxeSwingActive then Ancestor:SetSwingCooldown(true,GUISettings.AxeSwing); end; end; end)}; Connections[#Connections+1]={Name='EffectRemover',Function=Stepped:Connect(function(Effect) local Effects=wrkspc.Effects:GetChildren(); for i=1,#Effects do local Effect=Effects[i]; if tstring(Effect)=='StructureModel'then return end; Effect:Destroy(); end; end)}; function Ancestor:GetTree() local workspaceChildren=workspace:GetChildren(); for i=1,#workspaceChildren do if tstring(workspaceChildren[i])=='TreeRegion'then local Trees=workspaceChildren[i]:GetChildren(); for i=1,#Trees do local Tree=Trees[i] if Tree:FindFirstChild'WoodSection'and Tree:FindFirstChild'TreeClass'and Tree.TreeClass.Value==Ancestor.SelectedTreeType and Tree.WoodSection.Size.Y>.5 and #Tree:GetChildren()>=15 and Tree.WoodSection.ID.Value==1 then SelectedTree=Tree.WoodSection return SelectedTree; end; end; end; end; end; function Ancestor:AttemptChop(Tree) local Axe=Ancestor:GetBestAxe(); if not Axe then return end local Hitpoint=Ancestor:GetHitPoint(Axe) local CutEvent=Tree.Parent:FindFirstChild'CutEvent'; RemoteProxy:FireServer(CutEvent,{['tool']=Axe,['faceVector']=vector3.new(1,0,0),['height']=.32,['sectionId']=1,['hitPoints']=Hitpoint,['cooldown']=-14,['cuttingClass']='Axe'}) end; function Ancestor:BringTree() local Tool=Ancestor:GetBestAxe() if not Tool then return Ancestor:Notify('Ancestor','You need an axe to use this feature!') end; local OldPos=Character.HumanoidRootPart.CFrame for i=1,Ancestor.BringTreeAmount do local Tree=Ancestor:GetTree(); Character:SetPrimaryPartCFrame(cframe.new(Tree.CFrame.p+vector3.new(4,0,4))); Connections[#Connections+1]={Name='BringTree',Function=workspace.LogModels.ChildAdded:Connect(function(Tree) local Owner=Tree:WaitForChild'Owner'; if Owner.Value==LP then Tree.PrimaryPart=Tree:FindFirstChild'WoodSection'; for i=1,10 do ClientRequestOwnership:FireServer(Tree); ClientIsDragging:FireServer(Tree); Tree:SetPrimaryPartCFrame(OldPos); Stepped:wait(); end; Ancestor:GetConnection('BringTree',true); SelectedTree=nil; end; end)}; repeat Stepped:wait()Ancestor:AttemptChop(Tree)until typeof(Ancestor:GetConnection'BringTree')~='RBXScriptConnection'; end; Character:SetPrimaryPartCFrame(OldPos); end; function Ancestor:ApplyLight() if not GUISettings.Light then if Character.Head:FindFirstChild'Ancestor'then return Character.Head.Ancestor:Destroy(); end; return; end;local Light=instance.new('PointLight',Character.Head);Light.Name,Light.Range,Light.Brightness='Ancestor',150,1.7; end; function Ancestor:GetPlayersBase(Player) if not Player then Player=LP;end; for i=1,#Plots do local Plot=Plots[i]; if Plot.Owner.Value==Player then return Plot; end; end; return false; end; function Ancestor:GetStructureColour(Structure) if Structure:FindFirstChild'BlueprintWoodClass'then return tstring(Structure.BlueprintWoodClass.Value); end; return'nil'; end; function Ancestor:SaveBaseToFile(plr,Name) local Plot=Ancestor:GetPlayersBase() if not Plot then return SendUserNotice:Fire'Player has no plot loaded'; end; local OriginCFrame,Blueprints=Plot.OriginSquare.CFrame.p,''; local PlayerModels=workspace.PlayerModels:GetChildren() for i=1,#PlayerModels do local Blueprint=PlayerModels[i]; if Blueprint:FindFirstChild'ItemName'and Blueprint:FindFirstChildOfClass'Part'and RepStore.Purchasables.Structures.BlueprintStructures:FindFirstChild(tstring(Blueprint.ItemName.Value))then local MainCFrame=(Blueprint:FindFirstChild'MainCFrame'and Blueprint:FindFirstChild'MainCFrame'.Value)or Blueprint:FindFirstChild'BuildDependentWood'.CFrame BlueprintType,BlueprintWoodClass=Blueprint.ItemName.Value,Ancestor:GetStructureColour(Blueprint); Blueprints=Blueprints..''..BlueprintType..'&'..tstring(MainCFrame-OriginCFrame)..'&'..BlueprintWoodClass..'[Ancestor]'; end; end; writefile(Name..'.AncestorV2',Blueprints) SendUserNotice:Fire('Saved Base!') end; function Ancestor:LoadBaseFromFile(File) if not isfile(File..'.AncestorV2')then return SendUserNotice:Fire('File does not exist'); end; if not Ancestor:GetPlayersBase() then return SendUserNotice:Fire('Player has no plot loaded!'); end; local PlotToBuildOn=Ancestor:GetPlayersBase().OriginSquare.CFrame.p; File=readfile(File..'.AncestorV2'):split('[Ancestor]'); local WoodClasses={}; for i=1,#File do local StructurePlaced; local StructureFilled; local Structure=File[i]:split'&'; local BlueprintType,WoodClass,BlueprintCFrame=Structure[1],Structure[3],Structure[2]; if WoodClass and not WoodClasses[WoodClass]then WoodClasses[WoodClass]={Amount=0,Type=WoodClass}; end; for _,WoodClass in next,WoodClasses do if tstring(WoodClass.Type)==tstring(WoodClass)then WoodClass.Amount=WoodClass.Amount+1; end; end; if BlueprintCFrame then local Plank; for _,PlankIdk in next,workspace.PlayerModels:GetChildren()do if PlankIdk:FindFirstChild'TreeClass'and PlankIdk.TreeClass.Value==WoodClass and PlankIdk.Owner.Value==LP then Plank=PlankIdk; end; end; Blueprints=BlueprintCFrame:split(','); BlueprintCFrame=cframe.new(tonumber(Blueprints[1]),tonumber(Blueprints[2]),tonumber(Blueprints[3]),tonumber(Blueprints[4]),tonumber(Blueprints[5]),tonumber(Blueprints[6]),tonumber(Blueprints[7]),tonumber(Blueprints[8]),tonumber(Blueprints[9]),tonumber(Blueprints[10]),tonumber(Blueprints[11]),tonumber(Blueprints[12])); StructurePlaced=workspace.PlayerModels.ChildAdded:Connect(function(Structure) local Owner,Type,MainCF=Structure:WaitForChild('Owner',5),Structure:WaitForChild('Type',5),Structure:WaitForChild('MainCFrame',5); if StructurePlaced and Owner.Value==LP and Type.Value=='Structure' and tstring(MainCF.Value)==tstring(BlueprintCFrame+PlotToBuildOn)then StructurePlaced:Disconnect();StructurePlaced=nil; end; end); StructureFilled=workspace.PlayerModels.ChildAdded:Connect(function(Structure) local Owner,Type=Structure:WaitForChild('Owner',5),Structure:WaitForChild('Type',5); if StructureFilled and Owner.Value==LP and Type.Value=='Structure'then StructureFilled:Disconnect();StructureFilled=nil; ClientPlacedStructure:FireServer(tstring(Structure.ItemName.Value),BlueprintCFrame+PlotToBuildOn,LP,Structure.BlueprintWoodClass.Value,Structure,true); end; end); ClientPlacedBlueprint:FireServer(BlueprintType,Plank.WoodSection.CFrame,LP); repeat Stepped:wait()until not StructurePlaced; end; end; end; local Player=game.Players.LocalPlayer local OldCFrame=Player.Character.HumanoidRootPart.CFrame function Ancestor:GetAxes() local Axes={}; local Tools=Player.Backpack:GetChildren(); local CharacterTools=Player.Character:GetChildren(); for i=1,#Tools do local Axe=Tools[i] if Axe:FindFirstChild'CuttingTool'then Axes[#Axes+1]=Axe; end; end; for i=1,#CharacterTools do local Axe=CharacterTools[i] if Axe:FindFirstChild'CuttingTool'then Axes[#Axes+1]=Axe; end; end; return Axes end; function Ancestor:DoesAxeExist() return Ancestor:GetAxes()[1]~=nil; end; function Ancestor:DropTools(Position) local Tools=Ancestor:GetAxes(); for i=1,#Tools do local Axe=Tools[i] if Axe:FindFirstChild'CuttingTool'then game.ReplicatedStorage.Interaction.ClientInteracted:FireServer(Axe,'Drop tool',Position or Character.HumanoidRootPart.CFrame); end; end; end; function Ancestor:DupeInventory() if not Ancestor:DoesAxeExist()then SendUserNotice:Fire'You Need An Axe To Use This!'; return false; end; local OldCFrame=LP.Character.HumanoidRootPart.CFrame C_R(C_C(function() while GUISettings.DupeInventory do Stepped:wait() Ancestor:DropTools(OldCFrame); Connections[#Connections+1]={Name='DupeInventory',Function=LP.CharacterAdded:Connect(function(Character) repeat task.wait()until Character:FindFirstChild'HumanoidRootPart'; Ancestor:GetConnection('DupeInventory',true) end)}; LP.Character.Head:Destroy(); repeat Stepped:wait()until typeof(Ancestor:GetConnection'DupeInventory')~='RBXScriptConnection'; end; repeat Stepped:wait()until Character and Character:FindFirstChild'HumanoidRootPart'; Character.HumanoidRootPart.CFrame=OldCFrame; end)); return true; end; function Ancestor:MaxLand(Plot,IgnoreLimit) if not Ancestor:GetPlayersBase(LP)then Ancestor:FreeLand(); repeat Stepped:wait()until Ancestor:GetPlayersBase(LP) end; if not Plot then Plot=Ancestor:GetPlayersBase(LP); end; local OriginSquare=Plot.OriginSquare; local children=#Plot:GetChildren() if children>=26 and GUISettings.DisableSaving and not IgnoreLimit then Ancestor:Notify('Error','Already Max-Landed',4); return; end; ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+40,OriginSquare.Position.Y,OriginSquare.Position.Z));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-40,OriginSquare.Position.Y,OriginSquare.Position.Z));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X,OriginSquare.Position.Y,OriginSquare.Position.Z+40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X,OriginSquare.Position.Y,OriginSquare.Position.Z-40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+40,OriginSquare.Position.Y,OriginSquare.Position.Z+40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+40,OriginSquare.Position.Y,OriginSquare.Position.Z-40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-40,OriginSquare.Position.Y,OriginSquare.Position.Z+40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-40,OriginSquare.Position.Y,OriginSquare.Position.Z-40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+80,OriginSquare.Position.Y,OriginSquare.Position.Z));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-80,OriginSquare.Position.Y,OriginSquare.Position.Z));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X,OriginSquare.Position.Y,OriginSquare.Position.Z+80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X,OriginSquare.Position.Y,OriginSquare.Position.Z-80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+80,OriginSquare.Position.Y,OriginSquare.Position.Z+80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+80,OriginSquare.Position.Y,OriginSquare.Position.Z-80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-80,OriginSquare.Position.Y,OriginSquare.Position.Z+80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-80,OriginSquare.Position.Y,OriginSquare.Position.Z-80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+40,OriginSquare.Position.Y,OriginSquare.Position.Z+80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-40,OriginSquare.Position.Y,OriginSquare.Position.Z+80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+80,OriginSquare.Position.Y,OriginSquare.Position.Z+40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+80,OriginSquare.Position.Y,OriginSquare.Position.Z-40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-80,OriginSquare.Position.Y,OriginSquare.Position.Z+40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-80,OriginSquare.Position.Y,OriginSquare.Position.Z-40));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X+40,OriginSquare.Position.Y,OriginSquare.Position.Z-80));ClientExpandedProperty:FireServer(Plot,cframe.new(OriginSquare.Position.X-40,OriginSquare.Position.Y,OriginSquare.Position.Z-80)); if not IgnoreLimit then Ancestor:Teleport(cframe.new(Plot.OriginSquare.CFrame.p)+vector3.new(0,5,0));end; end; function Ancestor:GetFreeLand(Donate) local UnOwnedPlots={}; for i=1,#Plots do local Plot=Plots[i]; if Plot.Owner.Value==nil then if Donate then if not table.find(whitelistedPlots,tstring(Plot.OriginSquare.OriginCFrame.Value))then return Plot; end; end; UnOwnedPlots[#UnOwnedPlots+1]=Plot; end; end local Max,NearestPlot=9e9; for i=1,#UnOwnedPlots do local Plot=UnOwnedPlots[i]; if(Plot.OriginSquare.CFrame.p-LP.Character.Head.CFrame.p).MagnitudeMaxSpeed then SteerSpeed=MaxSpeed; end; elseif not(Steer.Left+Steer.Right~=0 or Steer.Forward+Steer.Back~=0)and speed~=0 then SteerSpeed=SteerSpeed-50; if SteerSpeed<0 then FlySpeed=0; end; end; if(Steer.Left + Steer.Right)~=0 or(Steer.Forward+Steer.Back)~=0 then Velocity.Velocity=((wrkspc.CurrentCamera.CoordinateFrame.lookVector*(Steer.Forward+Steer.Back))+((wrkspc.CurrentCamera.CoordinateFrame*cframe.new(Steer.Left+Steer.Right,(Steer.Forward+Steer.Back)*.2,0).p)-wrkspc.CurrentCamera.CoordinateFrame.p))*SteerSpeed; BackSteer={Forward=Steer.Forward,Back=Steer.Back,Left=Steer.Left,Right=Steer.Right} elseif(Steer.Left+Steer.Right==0 or Steer.Forward+Steer.Back==0)and SteerSpeed~=0 then Velocity.Velocity=((wrkspc.CurrentCamera.CoordinateFrame.lookVector*(BackSteer.Forward+BackSteer.Back))+((wrkspc.CurrentCamera.CoordinateFrame*cframe.new(BackSteer.Left+BackSteer.Right,(BackSteer.Forwardorward+BackSteer.Back)*.2,0).p)-wrkspc.CurrentCamera.CoordinateFrame.p))*SteerSpeed; else Velocity.Velocity=vector3.new(0,0.1,0); end; Gyro.CFrame = wrkspc.CurrentCamera.CoordinateFrame*CFrame.Angles(-math.rad((Steer.Forward+Steer.Back)*50*SteerSpeed/MaxSpeed),0,0); until not GUISettings.IsClientFlying; Gyro:Destroy() Velocity:Destroy() if WeldOne and WeldTwo then WeldOne:Destroy(); WeldTwo:Destroy(); Ancestor:Teleport(cframe.new(Car.CFrame.p)) end; GUISettings.Noclip=false; LP.Character.Humanoid.PlatformStand=false; end Mouse.KeyDown:Connect(function(Key) if Key:lower()=='w'then isWDown=true; Steer.Forward=1; elseif Key:lower()=='a'then isADown=true; Steer.Left=-1; elseif Key:lower()=='s'then isSDown=true; Steer.Back=-1; elseif Key:lower()=='d'then isSDown=true; Steer.Right=1; end; end); Mouse.KeyUp:Connect(function(Key) if Key:lower()=='w'then isWDown=false; Steer.Forward=0; elseif Key:lower()=='a'then isADown=false; Steer.Left=0; elseif Key:lower()=='s'then isSDown=false; Steer.Back=0; elseif Key:lower()=='d'then isDDown=false; Steer.Right=0; end; end); Fly() end; function Ancestor:GetStoreItem(Item) for i=1,#StoreChildren do local Store=StoreChildren[i]; if tstring(Store)=='ShopItems'then local StoreItems=Store:GetChildren(); for i=1,#StoreItems do local StoreItem=StoreItems[i]; if tstring(StoreItem)==Item then return StoreItem,Ancestor:GetClosestCounter(StoreItem); end end; end; end; end; function Ancestor:Whitelist(Player,Value) if not Player then Player=LP;end; ClientSetListPlayer:InvokeServer(LP.WhitelistFolder,Player,Value); end; function Ancestor:FreeLand() if Ancestor:GetPlayersBase(LP)and GUISettings.DisableSaving then Ancestor:Notify('Error','You already have a plot!',4); return; end; local Plot=Ancestor:GetFreeLand(true)--(BaseDuping and Ancestor:GetFreeLand(true))or Ancestor:GetFreeLand(); ClientPurchasedProperty:FireServer(Plot,Plot.OriginSquare.CFrame.p); if not BaseDuping then Ancestor:Teleport(cframe.new(Plot.OriginSquare.CFrame.p)+vector3.new(0,5,0)); end; end; function Ancestor:ClaimAllFreePlots(MaxLand) local NewPlots={}; local OldPlayerPosition=Character.HumanoidRootPart.CFrame.p; if Ancestor:GetPlayersBase(LP)then Ancestor:Notify('Error','Unload Your Base Before Using This!',4); return; end; for i=1,#Plots do local Plot=Plots[i]; if Plot.Owner.Value==nil then Ancestor:Teleport(cframe.new(Plot.OriginSquare.CFrame.p+vector3.new(0,5,0))); repeat Stepped:wait()ClientIsDragging:FireServer(Plot)until Plot.Owner.Value==LP; if MaxLand then NewPlots[#NewPlots+1]=Plot; end; end; end; if MaxLand then SendUserNotice:Fire'Lagging Server. This Will Eventually Kill It. Did I Mention There\'s No Going Back? No? Oh...' for i=1,#NewPlots do local Plot=NewPlots[i] task.spawn(function() while Stepped:wait()do Ancestor:MaxLand(Plot,true); for i,v in next,Plot:GetChildren()do if tstring(v)=='Square'then v:Destroy(); end; end; end; end); end; end; if not MaxLand then Ancestor:Teleport(OldPlayerPosition) SendUserNotice:Fire'Claimed All Plots!'; end; end; function Ancestor:DonateBase(NewMethod) if GUISettings.DisableSaving then return Ancestor:Notify('Ancestor','Disable slot saving to use this feature!')end; local Plot=Ancestor:GetPlayersBase(); if Plot then SendUserNotice:Fire('Force unloading. next time don\'t use this while loaded.Please wait...')Ancestor:CanClientLoad();Request_Load:InvokeServer(-1,LP);end; local Properties=workspace.Properties:GetChildren() for i=1,#Properties do local Property=Properties[i]; if Property.Owner.Value==nil then if table.find(whitelistedPlots,tstring(Property.OriginSquare.OriginCFrame.Value))then FoundPlot=true; end; end; end; if not FoundPlot then return SendUserNotice:Fire'No Supported Plot Located!'; end; BaseDuping=true; setthreadidentity(2); C_R(C_C(function() Request_Load:InvokeServer(Ancestor.BaseToDupe) end));setthreadidentity(8); if NewMethod then repeat Stepped:wait()until not LP.OwnsProperty.Value; Ancestor:FreeLand(true); repeat Stepped:wait()until Ancestor:GetModelByName('PropertySoldSign'); Ancestor:GetModelByName('PropertySoldSign'):Destroy(); end; repeat Stepped:wait()until LP.OwnsProperty.Value; Ancestor:Set(Ancestor.BaseToDupe); repeat Stepped:wait()until Ancestor:GetLoadedSlot()==Ancestor.BaseToDupe; local OldPos=LP.Character.HumanoidRootPart.CFrame.p; Ancestor:Whitelist(false,true); if not NewMethod then for i=1,3 do local Plot=Ancestor:GetFreeLand() Ancestor:Teleport(cframe.new(Plot.OriginSquare.CFrame.p+vector3.new(0,5,0))); repeat Stepped:wait()ClientIsDragging:FireServer(Plot)until Plot.Owner.Value==LP; end; end; Ancestor:Teleport(cframe.new(OldPos)); SendUserNotice:Fire('Please wait. Ancestor Will Inform You When The Donation Has Completed.\n DO NOT LEAVE THE SERVER UNTIL THIS IS COMPLETE!'); Ancestor:Teleport(cframe.new(Ancestor:GetPlayersBase().OriginSquare.CFrame.p+vector3.new(0,5,0))) Ancestor:CanClientLoad(); Request_Load:InvokeServer(-1,LP); Ancestor:Set(-1) Ancestor:Whitelist(false,false); SendUserNotice:Fire('Successfully donated base!'); BaseDuping=false; end; function Ancestor:FastDeload() if BaseDuping or not GUISettings.FastDeloader then return end; local PlayerModels=wrkspc.PlayerModels:GetChildren(); for i=1,#PlayerModels do local Model=PlayerModels[i]; if Model:FindFirstChild'Owner'and Model.Owner.Value==LP then DestroyStructure:FireServer(Model); end; end; end; function Ancestor:ResetCarSpeed() if not Character.Humanoid.SeatPart then return end; local CurrentVehicle=Character.Humanoid.SeatPart.Parent.ItemName.Value; local VehicleFolder=RepStore.Purchasables.Vehicles:GetDescendants(); for i=1,#VehicleFolder do local Vehicle=VehicleFolder[i]; if tstring(Vehicle)==tstring(CurrentVehicle)then Character.Humanoid.SeatPart.Parent.Configuration.MaxSpeed.Value=Vehicle.Model.Configuration.MaxSpeed.Value; end; end; end; RepStore.PropertyPurchasing.SelectLoadPlot.OnClientInvoke=function(...) setthreadidentity(2); if not BaseDuping then return OldSelectLoad(...); end; local Properties=workspace.Properties:GetChildren() for i=1,#Properties do local Property=Properties[i]; if Property.Owner.Value==nil then if table.find(whitelistedPlots,tstring(Property.OriginSquare.OriginCFrame.Value))then return Property,0; end; end; end; setthreadidentity(8); end; function Ancestor:GetPlotButtonByID(ID) local Amount=-1; local Buttons=LP.PlayerGui.LoadSaveGUI.SlotList.Main:GetChildren(); for i=1,#Buttons do local Button=Buttons[i]; if Button.ClassName=='TextButton'then Amount=Amount+1 if Amount==ID then return Button.SlotName; end; end; end; end; local CorrectThread=false; C_R(C_C(function() setthreadidentity(2) LoadSaveClient.openList(); LoadSaveClient.exitAll(); setthreadidentity(8) CorrectThread=true; for i=1,6 do local Base=Ancestor:GetPlotButtonByID(i); Base.TextScaled=true; end; end)); Connections[#Connections+1]={Name='SlotNames',Function=Stepped:Connect(function() p_call(function() for i=1,6 do local Base=Ancestor:GetPlotButtonByID(i); Base.TextScaled=true; Base.Text=SlotNames['Slot'..tstring(i)] end; end); end)} function Ancestor:DeleteSlot(SlotNumber) if Ancestor:GetLoadedSlot()~=-1 then SendUserNotice:Fire('Unloading Current Slot... Please wait');end; Request_Load:InvokeServer(-1,LP); Ancestor:Set(-1); Request_Save:InvokeServer(SlotNumber,LP); -- Deletes the slot SendUserNotice:Fire('Deleted Slot '..SlotNumber..'!') end; function Ancestor:DeleteTreeCS() local workspaceChildren=wrkspc:GetChildren(); for i=1,#workspaceChildren do local TreeRegion=workspaceChildren[i]; if tstring(TreeRegion)=='TreeRegion'then local Trees=TreeRegion:GetChildren(); for i=1,#Trees do local Tree=Trees[i]; Tree:Destroy(); end; Stepped:wait(); end; end; end; function Ancestor:DarkMode(mode) local color1,color2 function createCorner(parent) if not parent:FindFirstChild('UICorner')then local uic=Instance.new('UICorner',parent); uic.CornerRadius=UDim.new(0,5) end; end; if mode=='Light'then color1=Color3.fromRGB(255,255,255); color2=Color3.fromRGB(0,0,0); color3=Color3.fromRGB(220, 220, 220) elseif mode=='Dark'then color1=Color3.fromRGB(15,15,15) color2=Color3.fromRGB(255,255,255); color3=Color3.fromRGB(15,15,15) end; --Open Menu Button local openMenu=LP.PlayerGui.MenuGUI.Open createCorner(openMenu) openMenu.BackgroundColor3=color1 openMenu.TextLabel.TextColor3=color2 createCorner(openMenu.DropShadow) --Main Menu local mainMenu=LP.PlayerGui.MenuGUI.Menu.Main local mainMenuQuit=mainMenu.Parent.Quit mainMenu.BackgroundColor3=color1 for i,v in next,mainMenu:GetDescendants()do if v:IsA('TextLabel')then if v.Name~='DropShadow'then v.TextColor3=color2; v.BackgroundColor3=color1; createCorner(v) v.TextColor3=color2; elseif v.Name=='DropShadow'then createCorner(v) v.TextColor3=color1; end; end; if v:IsA('TextButton')then createCorner(v) v.BackgroundColor3=color1; end; end; createCorner(mainMenuQuit); mainMenuQuit.BackgroundColor3=color1; mainMenuQuit.TextLabel.TextColor3=color2; createCorner(mainMenuQuit.DropShadow);createCorner(mainMenu);createCorner(mainMenu.DropShadow); --Load Menu local loadMenu=LP.PlayerGui.LoadSaveGUI; loadMenu.SlotList.Main.BackgroundColor3=color1; for _,textLabel in next, loadMenu.SlotList.Main:GetDescendants()do if textLabel:IsA('TextLabel')then if textLabel.Name=='IsCurrentSlot'then textLabel.TextStrokeColor3=color1; end; if textLabel.Name=='DropShadow'then textLabel.TextColor3=color1; else createCorner(textLabel) textLabel.TextColor3=color2; end; elseif textLabel:IsA('TextButton')then textLabel.BackgroundColor3=color1; createCorner(textLabel) end; end; LP.PlayerGui.PropertyPurchasingGUI.SelectPurchase.Cost.BackgroundColor3=color1 --Quit createCorner(loadMenu.SlotList.Quit) loadMenu.SlotList.Quit.BackgroundColor3=color1; loadMenu.SlotList.Quit.TextLabel.TextColor3=color2; createCorner(loadMenu.SlotList.Quit.DropShadow); createCorner(loadMenu.SlotList.Main);createCorner(loadMenu.SlotList.Main.DropShadow) --Load Current Slot local slotInfoMain=loadMenu.SlotInfo.Main local progress=loadMenu.Progress for _,v in next,progress:GetDescendants()do if v:IsA'Frame' then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; end; createCorner(progress.Main.Text);progress.Main.Text.BackgroundColor3=color1;progress.Main.Text.TextColor3=color2 createCorner(slotInfoMain);createCorner(slotInfoMain.DropShadow) for _,button in next,slotInfoMain:GetDescendants()do if button:IsA('TextButton')or button:IsA('TextLabel')then button.BackgroundColor3=color1 button.TextColor3=color2 createCorner(button); end; end; slotInfoMain.BackgroundColor3=color1 --Load Quit createCorner(slotInfoMain.Parent.Quit) slotInfoMain.Parent.Quit.BackgroundColor3=color1; slotInfoMain.Parent.Quit.TextLabel.TextColor3=color2; createCorner(slotInfoMain.Parent.Quit.DropShadow); createCorner(slotInfoMain.Parent.Quit);createCorner(slotInfoMain.Parent.Quit.DropShadow) --Select Plot local selectPlot=LP.PlayerGui.PropertyPurchasingGUI for _, v in next,selectPlot:GetDescendants()do if v.ClassName=='Frame'then createCorner(v); if v.Name=='DropShadow'then v.BackgroundColor3=Color3.fromRGB(0,0,0) else v.BackgroundColor3=color1 end; end; if v:IsA('TextLabel')or v:IsA'TextButton'then v.TextColor3=color2 v.BackgroundColor3=color1 createCorner(v); end; end; --Notice local noticeUI=LP.PlayerGui.NoticeGUI.Notice.Main createCorner(noticeUI) noticeUI.BackgroundColor3=color1 for _,v in next,noticeUI:GetDescendants()do if v:IsA('TextButton')or v:IsA('TextLabel')then v.TextColor3=color2 v.BackgroundColor3=color1 createCorner(v); end; if v:IsA('Frame')then createCorner(v) end; end; --Money Gui local buyMoney=LP.PlayerGui.BuyMoneyGUI.BuyMoney for _,v in next,buyMoney:GetDescendants()do if v:IsA('Frame')then createCorner(v) if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA('TextLabel')and not string.find(v.Text,'R')then if v.Name~='DropShadow'then v.TextColor3=color2; else v.TextColor3=color1; end; v.BackgroundColor3=color1; end; if v:IsA'TextButton'then v.BackgroundColor3=color1; end; createCorner(v); end; --Whitelist local whiteListGui=LP.PlayerGui.WhiteListGUI for _,v in next,whiteListGui:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'or v:IsA'TextButton'then if v.Name=='InfoT'then v.TextStrokeColor3=color1; end; if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; v.TextStrokeColor3=color2; end; v.BackgroundColor3=color1; createCorner(v); end; if v:IsA'ScrollingFrame'then v.BackgroundColor3=color1; end; end; --Blacklist local blackListGui=LP.PlayerGui.BlackListGUI for _,v in next,blackListGui:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; if v:IsA'ScrollingFrame'then v.BackgroundColor3=color1; end; end; --Send Money local sendMoney=LP.PlayerGui.DonateGUI for _,v in next,sendMoney:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; if v:IsA'ScrollingFrame'then v.BackgroundColor3=color1; end; end; LP.PlayerGui.DonateGUI.Donate.Main.AmountLabel.BackgroundColor3=Color3.fromRGB(0,155,0); createCorner(LP.PlayerGui.DonateGUI.Donate.Main.AmountLabel) LP.PlayerGui.DonateGUI.Donate.Main.AmountLabel.TextColor3=color2 --Changelog local changeLog=LP.PlayerGui.ChangelogGUI for _,v in next,changeLog:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; --Credits local creditsUI=LP.PlayerGui.CreditsGUI for _,v in next,creditsUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; local scr=getsenv(LP.PlayerGui.CreditsGUI.CreditsClient) local old=scr.openWindow local old2=scr.displayPage scr.openWindow=function() old() local creditsUI=LP.PlayerGui.CreditsGUI for _,v in next,creditsUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; end; scr.displayPage=function() old2() local creditsUI=LP.PlayerGui.CreditsGUI for _,v in next,creditsUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; end; --OnBoarding local onBoardingGUI=LP.PlayerGui.OnboardingGUI for _,v in next,onBoardingGUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; --Chat GUI local chat=LP.PlayerGui.ChatGUI for _,v in next,chat:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; --ItemDraggerGUI local itemDraggingGUI=LP.PlayerGui.ItemDraggingGUI for _,v in next,itemDraggingGUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then v.TextColor3=color2 v.BackgroundColor3=color1; createCorner(v); end; end; --ItemInfo local itemInfoGUI=LP.PlayerGui.ItemInfoGUI for _,v in next,itemInfoGUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA('ImageLabel')then v.BackgroundColor3=color1; createCorner(v); end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 v.TextStrokeColor3=color1 else v.TextColor3=color1; v.TextStrokeColor3=color1 end; v.BackgroundColor3=color1; createCorner(v); end; end; --InteractionGUI local interactionGUI=LP.PlayerGui.InteractionGUI for _,v in next,interactionGUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color2; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; LP.PlayerGui.InteractionGUI.OwnerShow.BackgroundColor3=color1; --StructureGui local structureDraggingGUI=LP.PlayerGui.StructureDraggingGUI for _,v in next,structureDraggingGUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; --WireDraggingGUI local wireDraggingGUI=LP.PlayerGui.WireDraggingGUI for _,v in next,wireDraggingGUI:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; --OverWriteConfirm local overWriteConfirm=loadMenu.OverwriteConfirm for _,v in next,overWriteConfirm:GetDescendants()do if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name~='DropShadow'then v.TextColor3=color2 else v.TextColor3=color1; end; v.BackgroundColor3=color1; createCorner(v); end; end; LP.PlayerGui.ItemDraggingGUI.CanDrag.PlatformButton.KeyLabel.TextSize=14; LP.PlayerGui.ItemDraggingGUI.CanRotate.PlatformButton.KeyLabel.TextSize=14 LP.PlayerGui.ItemDraggingGUI.CanRotate.PlatformButton.KeyLabel.TextScaled=false; for _,v in next,LP.PlayerGui:GetDescendants()do if v.Name=='KeyLabel'then v.TextColor3=Color3.fromRGB(0,0,0); end; end; --Blueprints local scr=getsenv(LP.PlayerGui.Blueprints.LocalBlueprints) local old=scr.populateCategoryList scr.populateCategoryList=function() old() local blueprints=LP.PlayerGui.Blueprints for _,v in next,blueprints:GetDescendants()do if v:IsA('ImageLabel')then v.BackgroundColor3=color1; end; if v:IsA'Frame'then createCorner(v); if v.Name~='DropShadow'then v.BackgroundColor3=color1; elseif mode=='Dark'then v.BackgroundColor3=Color3.fromRGB(0,0,0); elseif mode=='Light'then v.BackgroundColor3=Color3.fromRGB(25,25,25); end; end; if v:IsA'TextLabel'and v.Name~='InfoT'or v:IsA'TextButton'then if v.Name=='DropShadow'then v:remove(); end if v.Text=='Blueprints'and v.Name~='DropShadow'then v.TextColor3=color2; else v.TextColor3=color2; end; v.BackgroundColor3=color1; createCorner(v); end; if v:IsA'ScrollingFrame'then v.BackgroundColor3=color1; end; end; end; end;Ancestor:DarkMode'Dark'; function Ancestor:HardDragger(state) if not state then Ancestor:GetConnection('HardDragger',true); return; end Connections[#Connections+1]={Name='HardDragger',Function=wrkspc.ChildAdded:connect(function(Dragger) if tstring(Dragger)=='Dragger'then local BodyGyro=Dragger:WaitForChild'BodyGyro'; local BodyPosition=Dragger:WaitForChild'BodyPosition'; repeat Stepped:wait()until wrkspc:FindFirstChild'Dragger'; repeat Stepped:wait() BodyPosition.P=120000; BodyPosition.D=1000; BodyPosition.maxForce=vector3.new(1,1,1)*1000000; BodyGyro.maxTorque=vector3.new(1,1,1)*200; BodyGyro.P=1200; BodyGyro.D=140; until not wrkspc:FindFirstChild'Dragger'; -->Revert BodyPosition.P=10000; BodyPosition.D=800; BodyPosition.maxForce=vector3.new(17000,17000,17000); BodyGyro.maxTorque=vector3.new(200,200,200); BodyGyro.P=1200; BodyGyro.D=140; end; end)}; end; function Ancestor:IsPlayerWhitelisted(Player) return ClientIsWhitelisted:InvokeServer(Player)==true; end; function Ancestor:CanPlaceItem(Item)-->Improved From Game Source local PlayerLand={}; local Properties=workspace.Properties:GetChildren(); for i=1,#Properties do local Property=Properties[i]; if Property.Owner.Value and(Ancestor:IsPlayerWhitelisted(Players[tstring(Property.Owner.Value)]))or Property.Owner.Value==LP then local Plots=Property:GetChildren(); for i=1,#Plots do local Plot=Plots[i]; if Plot:IsA'BasePart'then PlayerLand[#PlayerLand+1]={MinBounds=Vector3.new(math.min(Plot.Position.X+Plot.Size.X/2,Plot.Position.X-Plot.Size.X/2),Plot.Position.Y,math.min(Plot.Position.Z+Plot.Size.Z/2,Plot.Position.Z-Plot.Size.Z/2)),MaxBounds=Vector3.new(math.max(Plot.Position.X+Plot.Size.X/2,Plot.Position.X-Plot.Size.X/2),Plot.Position.Y+100,math.max(Plot.Position.Z+Plot.Size.Z/2,Plot.Position.Z-Plot.Size.Z/2)),Owner=Property.Owner.Value}; end; end; end; end; local CanPlace=true; local PlotOwner=LP; local PlaceItem=Item:GetChildren(); for i=1,#PlaceItem do local Part=PlaceItem[i]; if Part:IsA'BasePart'then local Position=Part.Position; local PartInBounds=false; for i=1,#PlayerLand do local Plot=PlayerLand[i]; local inThisPlot=(Position.X>=Plot.MinBounds.X and Position.X<=Plot.MaxBounds.X and Position.Z>=Plot.MinBounds.Z and Position.Z<=Plot.MaxBounds.Z); PartInBounds=PartInBounds or inThisPlot; if inThisPlot then PlotOwner=Plot.Owner; end; end; CanPlace=CanPlace and PartInBounds; elseif Part:IsA'Model'then local recurseRet,RecursePlotOwner=Ancestor:CanPlaceItem(Part); CanPlace=CanPlace and recurseRet; PlotOwner=RecursePlotOwner or PlotOwner; end; if not CanPlace then break; end; end; return CanPlace,PlotOwner; end; function Ancestor:GetBestAxe() local Axes,bestAxe,dmg,damage,longestrange={},nil,0,nil,0; LP.Character.Humanoid:UnequipTools(); for _,Axe in next,LP.Backpack:GetChildren()do if Axe:FindFirstChild'CuttingTool'then Axes[#Axes+1]=Axe; end; end; for Index,Axe in next,Axes do if Axe:FindFirstChild'ToolName'and AxeFolder:FindFirstChild(tstring(Axe.ToolName.Value))then stats=require(AxeFolder:FindFirstChild(tstring(Axe.ToolName.Value)).AxeClass).new(); if stats.SpecialTrees then if stats.SpecialTrees[Ancestor.SelectedTreeType]then return Axe; end; end; damage=stats.Damage; range=stats.Range; if damage>dmg and longestrange=Ancestor:GetClientMoney()then SendUserNotice:Fire('Not Enough Money! You Need $'..tstring(Price)..'!'); return; end; local OldPlayerPosition=LP.Character.HumanoidRootPart.CFrame.p; if not Ancestor:CanPlaceItem(Character)then Instant=false; else Instant=true; end; for i=1,AutobuyAmount do if not ItemToBuy then repeat Stepped:wait()until Store:FindFirstChild(tstring(AutobuySelectedItem)); ItemToBuy=Store:FindFirstChild(tstring(AutobuySelectedItem)); end; if i==1 then Ancestor:Teleport(cframe.new(ItemToBuy.PrimaryPart.CFrame.p+vector3.new(5,0,5)));for i=1,2 do TestPing:InvokeServer();end;end; repeat Stepped:wait()ClientRequestOwnership:FireServer(ItemToBuy)ClientIsDragging:FireServer(ItemToBuy)ItemToBuy:SetPrimaryPartCFrame(cframe.new(Counter.CFrame.p))until (Counter.CFrame.p-ItemToBuy.PrimaryPart.CFrame.p).Magnitude<8; Connections[#Connections+1]={Name='AutobuyConnection',Function=wrkspc.PlayerModels.ChildAdded:Connect(function(Child) local Owner=Child:WaitForChild('Owner',5); if Owner.Value==LP then Ancestor:GetConnection('AutobuyConnection',true); if not Instant then repeat Stepped:wait()ClientIsDragging:FireServer(ItemToBuy)ItemToBuy:SetPrimaryPartCFrame(cframe.new(OldPlayerPosition+vector3.new(0,5,0)))until(ItemToBuy.PrimaryPart.CFrame.p-OldPlayerPosition).Magnitude<10; else ClientPlacedStructure:FireServer(nil,cframe.new(OldPlayerPosition+vector3.new(4,0,4)),LP,nil,ItemToBuy,true); end; end; end)}; repeat Stepped:wait()Ancestor:BuyItem(ItemToBuy)until typeof(Ancestor:GetConnection'AutobuyConnection')~='RBXScriptConnection'; end; Ancestor:Teleport(cframe.new(OldPlayerPosition)); end; function Ancestor:FastCheckout(Value) setconstant(NPCChattingClient.advanceChat,18,Value) end; function Ancestor:Fling() local Fling=instance.new'BodyAngularVelocity'; Fling.Parent=Character.HumanoidRootPart; Fling.AngularVelocity=vector3.new(0,300000,0); Fling.MaxTorque=vector3.new(0,300000,0); Fling.P=9e9; GUISettings.Noclip=true; while GUISettings.Fling do Stepped:wait() if Character.Humanoid.FloorMaterial==Enum.Material.Air then Fling.AngularVelocity=vector3.new(0,0,0); else Fling.AngularVelocity=vector3.new(0,600000,0); end; end; Fling:Destroy(); GUISettings.Noclip=false; end; repeat Stepped:Wait()until CorrectThread; local AncestorUI=lstring(game:HttpGetAsync'https://ancestordevelopment.wtf/lua/AncestorV2.lua')():Initiate(); local LocalPlayerTab=AncestorUI:CreateTab(5181994100,'LocalPlayer'); local HumanoidSectionTab=LocalPlayerTab:CreateSection() local HumanoidSection=HumanoidSectionTab:CreateSubSection('Humanoid Options'); -- HumanoidSection:CreateDropDown() HumanoidSection:CreateSlider('Walk Speed',function(Speed)GUISettings.WalkSpeed=Speed;end,16,400,GUISettings.WalkSpeed,true,'Changes Your Character\'s WalkSpeed.'); HumanoidSection:CreateSlider('Sprint Speed',function(Speed)GUISettings.SprintSpeed=Speed;end,20,200,GUISettings.SprintSpeed,true,'Changes Your Character\'s Sprint Speed.'); HumanoidSection:CreateSlider('Jump Power',function(Power)GUISettings.JumpPower=Power;end,50,400,GUISettings.JumpPower,true,'Changes Your Character\'s Jump Power.'); HumanoidSection:CreateSlider('Hip Height',function(Height)GUISettings.HipHeight=Height;end,0,200,GUISettings.HipHeight,true,'Changes Your Character\'s Hip Height.'); HumanoidSection:CreateSlider('Fly Speed',function(Speed)GUISettings.FlySpeed=Speed;end,50,400,GUISettings.FlySpeed,true,'Changes Your Character\'s Fly Speed.'); HumanoidSection:CreateKeybind('Fly',function(Key)GUISettings.FlyKey=tstring(Key.Name)end,Enum.KeyCode[GUISettings.FlyKey],true,'Binds A Key For Flying.'); HumanoidSection:CreateKeybind('Sprint(Hold)',function(Key)GUISettings.SprintKey=tstring(Key.Name)end,Enum.KeyCode[GUISettings.SprintKey],true,'Binds A Key For Sprinting.'); HumanoidSection:CreateKeybind('Noclip',function(Key)GUISettings.NoclipKey=tstring(Key.Name)end,Enum.KeyCode.LeftControl,true,'Binds A Key For Noclipping.'); HumanoidSection:CreateKeybind('Key-TP',function(v) if(LP.Character.Head.CFrame.p-Mouse.Hit.p).Magnitude<5000 then Ancestor:Teleport(cframe.new(Mouse.Hit.p)+vector3.new(0,3,0)); end; end,Enum.KeyCode.G,true,'Binds A Key For Teleportion'); HumanoidSection:CreateToggle('Infinite Jump',false,function(toggle)GUISettings.InfiniteJump=toggle;end,GUISettings.InfiniteJump,true,'Allows You To Jump Indefinitely.'); HumanoidSection:CreateToggle('Light',false,function(toggle)GUISettings.Light=toggle;Ancestor:ApplyLight();end,GUISettings.Light,true,'Applies A Light To Your Character\'s Head.'); HumanoidSection:CreateToggle('Fling',false,function(toggle)GUISettings.Fling=toggle;if toggle then Ancestor:Fling()end;end,GUISettings.Fling,true,'Rotates You Violently To Fling Items/Players.'); -- HumanoidSection:CreateToggle('Dance Stroke',false,function(toggle)GUISettings.Fling=toggle;if toggle then Ancestor:Fling()end;end,GUISettings.Fling,true,'Rotates You Violently To Fling Items/Players.'); HumanoidSection:CreateButton('Safe Suicide',function()Ancestor:SafeSuicide();end,true,true,'Kills Your Character But Keeps Your Axes.'); local CameraSection=HumanoidSectionTab:CreateSubSection('Camera Options'); local FOVSlider=CameraSection:CreateSlider('FOV',function(FOV)GUISettings.FOV=FOV;wrkspc.CurrentCamera.FieldOfView=FOV;end,1,120,GUISettings.FOV,true,'Changes Your Camera\'s FOV.'); CameraSection:CreateButton('Reset FOV',function()GUISettings.FOV=70;FOVSlider:Set(70)wrkspc.CurrentCamera.FieldOfView=70;end,true,true,'Resets Your Camera\'s FOV.'); local MiscSection=HumanoidSectionTab:CreateSubSection('Misc Options'); MiscSection:CreateToggle('Anti-AFK',false,function(state)GUISettings.AntiAFK=state;Ancestor:AntiAFK(state)end,GUISettings.AntiAFK,true,'Toggles Anti-AFK'); MiscSection:CreateButton('BTools',function()Ancestor:GiveBTools();end,true,true,'Gives You BTools To Modify The Game World To Your Liking.'); MiscSection:CreateButton('Rejoin Game',function()TeleportService:TeleportToPlaceInstance(game.PlaceId,game.JobId,LP);end,true,true,'Rejoins The Current Server You\'re Playing In.'); local TeleportSection=HumanoidSectionTab:CreateSubSection(); TeleportSection:CreateTitle('Teleport To Location') TeleportSection:CreateDropDown(function(Location)if Location=='Wood R Us'then Ancestor:Teleport(cframe.new(270,4,60));elseif Location=='Spawn'then Ancestor:Teleport(cframe.new(174,10.5,66));elseif Location=='Land Store'then Ancestor:Teleport(cframe.new(270,3,-98));elseif Location=='Bridge'then Ancestor:Teleport(cframe.new(112,37,-892));elseif Location=='Dock'then Ancestor:Teleport(cframe.new(1136,0,-206));elseif Location=='Palm'then Ancestor:Teleport(cframe.new(2614,-4,-34));elseif Location=='Cave'then Ancestor:Teleport(cframe.new(3590,-177,415));elseif Location=='Volcano'then Ancestor:Teleport(cframe.new(-1588,623,1069));elseif Location=='Swamp'then Ancestor:Teleport(cframe.new(-1216,131,-822));elseif Location=='Fancy Furnishings'then Ancestor:Teleport(cframe.new(486,3,-1722));elseif Location=='Boxed Cars'then Ancestor:Teleport(cframe.new(509,3,-1458));elseif Location=='Ice Mountain'then Ancestor:Teleport(cframe.new(1487,415,3259));elseif Location=='Links Logic'then Ancestor:Teleport(cframe.new(4615,7,-794));elseif Location=='Bob\'s Shack'then Ancestor:Teleport(cframe.new(292,8,-2544));elseif Location=='Fine Arts Store'then Ancestor:Teleport(cframe.new(5217,-166,721));elseif Location=='Shrine Of Sight'then Ancestor:Teleport(cframe.new(-1608,195,928));elseif Location=='Strange Man'then Ancestor:Teleport(cframe.new(1071,16,1141));elseif Location=='Volcano Win'then Ancestor:Teleport(cframe.new(-1667,349,1474));elseif Location=='Ski Lodge'then Ancestor:Teleport(cframe.new(1244,59,2290));elseif Location=='Fur Wood'then Ancestor:Teleport(cframe.new(-1080,-5,-942));elseif Location=='The Den'then Ancestor:Teleport(cframe.new(330,45,1943));end;end,{'Spawn','Wood R Us','Land Store','Bridge','Dock','Palm','Cave','The Den','Volcano','Swamp','Fancy Furnishings','Boxed Cars','Links Logic','Bobs Shack','Fine Arts Store','Ice Mountain','Shrine Of Sight','Strange Man','Volcano Win','Ski Lodge','Fur Wood'},'Spawn',false); TeleportSection:CreateTitle('Teleport To Player') TeleportSection:CreateDropDown(function(Player) if not Players:FindFirstChild(Player)then return Ancestor:Notify('Error','Player Not Found!'); end;Ancestor:Teleport(cframe.new(Players[Player].Character.HumanoidRootPart.CFrame.p+vector3.new(0,5,0))); end,{},false,true); TeleportSection:CreateTitle'Teleport To Player\'s Base'; TeleportSection:CreateDropDown(function(Player) if not Players:FindFirstChild(Player)then return Ancestor:Notify('Error','Player Not Found!'); end; xp_call(function() Ancestor:Teleport(cframe.new(Ancestor:GetPlayersBase(Players[Player]).OriginSquare.CFrame.p+vector3.new(0,5,0))); end,function()Ancestor:Notify('Error','Player Has No Plot!');end); end,{},false,true); local GamePlayerTab=AncestorUI:CreateTab(6894662531,'Game Options'); local GameSectionTab=GamePlayerTab:CreateSection() local GraphicalSection=GameSectionTab:CreateSubSection('Graphical Options'); local AlwaysDay,AlwaysNight; AlwaysDay=GraphicalSection:CreateToggle('Always Day',function()if AlwaysNight:GetState() then AlwaysNight:Toggle()end;end,function(state)GUISettings.AlwaysDay=state;end,GUISettings.AlwaysDay,true,'Changes The InGame Time To DayTime.'); AlwaysNight=GraphicalSection:CreateToggle('Always Night',function()if AlwaysDay:GetState()then AlwaysDay:Toggle()end;end,function(state)GUISettings.AlwaysNight=state;end,GUISettings.AlwaysNight,true,'Changes The InGame Time To NightTime.'); GraphicalSection:CreateToggle('No Fog',false,function(state)GUISettings.NoFog=state;end,GUISettings.NoFog,true,'Removes InGame Fog'); GraphicalSection:CreateToggle('Spook',false,function(state)GUISettings.Spook=state;Lighting.Spook.Value=state;end,GUISettings.Spook,true,'Toggles Spook Mode Usually Found In The Halloween Event'); local StoreSection=GameSectionTab:CreateSubSection('Store Options'); StoreSection:CreateToggle('Fast Checkout',false,function(state)GUISettings.FastCheckout=state;Ancestor:FastCheckout(state and 0 or 1.5)end,GUISettings.FastCheckout,true,'Allows You To Interact With Cashier\'s Much Faster Than Usual.'); StoreSection:CreateToggle('Fix Cashier\'s Range',false,function(state)GUISettings.FixCashierRange=state;Ancestor:FixCashierRange(state and'Enable'or'Disable')end,GUISettings.FixCashierRange,true,'Makes The "Chat With.." UI Appear Faster Than Usual.'); local ServerSettings=GameSectionTab:CreateSubSection('Server Options'); ServerSettings:CreateButton('Claim All Plots',function()Ancestor:ClaimAllFreePlots()end,true,true,'Claims All Free Plots In The Server.'); local ClientOptions=GameSectionTab:CreateSubSection('Client Options'); ClientOptions:CreateButton('Delete All Trees',function()Ancestor:DeleteTreeCS()end,true,true,'This Will Client Destroy Every Tree In The Server.'); local WaterSection=GameSectionTab:CreateSubSection('Water Options'); WaterSection:CreateToggle('Water Walk',false,function(state) GUISettings.WaterWalk=state; local Water=wrkspc.Water:GetChildren(); local WaterBridge=wrkspc.Bridge.VerticalLiftBridge.WaterModel:GetChildren(); for i=1,#WaterBridge do WaterBridge[i].CanCollide=state;end; for i=1,#Water do Water[i].CanCollide=state;end; end,GUISettings.WaterWalk,true,'Allows You To Walk On Water.'); WaterSection:CreateToggle('Water Float',false,function(state) GUISettings.WaterFloat=state; CharacterFloat.isInWater=function(...) LP.PlayerGui.UnderwaterOverlay.Enabled=state; if not GUISettings.WaterFloat and Ancestor_Loaded then return 1; else return CharacterFloatOld(...); end; end; end,GUISettings.WaterFloat,true,'Toggles Whether Or Not You Float While In Water.'); local OtherPlayerTab=AncestorUI:CreateTab(8769279408,'Troll Options'); local OtherPlayerSection=OtherPlayerTab:CreateSection() local ModeratePlayer=OtherPlayerSection:CreateSubSection('Troll Options'); ModeratePlayer:CreateDropDown(function(Option) Ancestor.ModerationAction=Option; end,{'Kick','Kill','Hard Kill','Bring','Fling'},'Kick'); ModeratePlayer:CreateDropDown(function(Player) Ancestor.PlayerToModerate=Players[tstring(Player)] end,{},false,true); ModeratePlayer:CreateToggle('Dupe Axe',false,function(state)Ancestor.DupeAxeBeforeModerationAction=state;end,false,true,'Duplicates Your Inventory Before Performing Action.'); ModeratePlayer:CreateButton('Perform Action',function()Ancestor:ModeratePlayer(Ancestor.ModerationAction);end,true,true,'Performs The Selected Action Against The Selected Player.'); local ServerOptions=OtherPlayerSection:CreateSubSection('Server Options'); ServerOptions:CreateToggle('Alert Server Killer(Toxic)',false,function(state)GUISettings.AlertShutdown=state;end,GUISettings.AlertShutdown,true,'Alerts Every Player In The Server That You\'re Going To Kill It.'); ServerOptions:CreateButton('Kill Server',function()if AncestorUI:CreateOption()then if GUISettings.AlertShutdown then SayMessageRequest:FireServer('NUKING SERVER IN 3 ','All')for i=2,1,-1 do task.wait(1)SayMessageRequest:FireServer(tstring(i),'All');end;SayMessageRequest:FireServer('NICE KNOWING YOU BOZOS!!!!','All')end;Ancestor:ClaimAllFreePlots(true)else SendUserNotice:Fire'Kill Server Aborted'end;end,true,true,'This Will Literally Kill The Server. No Joke.'); local PlotTab=AncestorUI:CreateTab(8772257496,'Plot Options'); local PlotSection=PlotTab:CreateSection() local LoadSection=PlotSection:CreateSubSection('Load Options'); local Load; Load=LoadSection:CreateSlider('Slot To Load',function(slot)if SlotNames.Slot1~='Slot 1'then Load:UpdateHeader('Slot Name: '..SlotNames['Slot'..slot])end;GUISettings.SelectedPlot=slot;end,1,6,1,false,nil,(SlotNames.Slot1~='Slot 1')); if SlotNames.Slot1~='Slot 1'then Load:UpdateHeader('Slot Name: '..SlotNames.Slot1); end; LoadSection:CreateButton('Load Selected Slot',function()Ancestor:LoadSlot(GUISettings.SelectedPlot);end,true,true,'Loads The Selected Slot.'); LoadSection:CreateButton('Unload Selected Slot',function()Request_Save:InvokeServer(Ancestor:GetLoadedSlot())Ancestor:CanClientLoad();Ancestor:FastDeload()Request_Load:InvokeServer(-1,LP)Ancestor:Set(-1);end,true,true,'Unloads The Current Slot.'); LoadSection:CreateButton('Delete Selected Slot',function()if AncestorUI:CreateOption()then Ancestor:DeleteSlot(GUISettings.SelectedPlot)else SendUserNotice:Fire'Delete Slot Aborted'end;end,true,true,'Deletes The Selected Slot.'); LoadSection:CreateButton('Save Selected Slot',function()Ancestor:SaveSlot();end,true,true,'Saves The Current Loaded Slot.'); local PlotInfoSection=PlotSection:CreateSubSection('Plot Information'); local SlotName,Slot1,Slot2,Slot3,Slot4,Slot5,Slot6; PlotInfoSection:CreateDropDown(function(Player) if not Players:FindFirstChild(Player)then return Ancestor:Notify('Error','Player Not Found!'); end; SlotName:UpdateText('Loading Info for '..tstring(Player)..'...') C_R(C_C(function() local Data=Ancestor:GetPlayersSlotInfo(Player) SlotName:UpdateText('Showing Info for '..tstring(Player)); Slot1:UpdateText('Slot 1 Datasize: '..tstring(Data[1]~=nil and Data[1] or '0')); Slot2:UpdateText('Slot 2 Datasize: '..tstring(Data[2]~=nil and Data[2] or '0')); Slot3:UpdateText('Slot 3 Datasize: '..tstring(Data[3]~=nil and Data[3] or '0')); Slot4:UpdateText('Slot 4 Datasize: '..tstring(Data[4]~=nil and Data[4] or '0')); Slot5:UpdateText('Slot 5 Datasize: '..tstring(Data[5]~=nil and Data[5] or '0')); Slot6:UpdateText('Slot 6 Datasize: '..tstring(Data[6]~=nil and Data[6] or '0')); end)); end,{},false,true); C_R(C_C(function() SlotName=PlotInfoSection:CreateTitle('Showing Info for '..tstring(LP)) local Data=Ancestor:GetPlayersSlotInfo(LP) Slot1=PlotInfoSection:CreateLabel('Slot 1 Datasize: '..tstring(Data[1]~=nil and Data[1] or '0')); Slot2=PlotInfoSection:CreateLabel('Slot 2 Datasize: '..tstring(Data[2]~=nil and Data[2] or '0')); Slot3=PlotInfoSection:CreateLabel('Slot 3 Datasize: '..tstring(Data[3]~=nil and Data[3] or '0')); Slot4=PlotInfoSection:CreateLabel('Slot 4 Datasize: '..tstring(Data[4]~=nil and Data[4] or '0')); Slot5=PlotInfoSection:CreateLabel('Slot 5 Datasize: '..tstring(Data[5]~=nil and Data[5] or '0')); Slot6=PlotInfoSection:CreateLabel('Slot 6 Datasize: '..tstring(Data[6]~=nil and Data[6] or '0')); end)) local MiscPlotSection=PlotSection:CreateSubSection('Misc Plot Options'); MiscPlotSection:CreateToggle('Slot Saving',false,function(state)GUISettings.DisableSaving=state;end,GUISettings.DisableSaving,true,'Toggles Slot Saving.'); MiscPlotSection:CreateToggle('Fast Deload',false,function(state)GUISettings.FastDeloader=state;end,GUISettings.FastDeloader,true,'Toggles Fast Deloading When Loading.'); local SlotSection=PlotSection:CreateSubSection('Physical Plot Options'); SlotSection:CreateButton('Free Land',function()Ancestor:FreeLand();end,true,true,'Gives You Land For Free.'); SlotSection:CreateButton('Max Land',function()Ancestor:MaxLand();end,true,true,'Max-Lands Your Plot For Free.'); SlotSection:CreateButton('Sell Land Sign',function()Ancestor:SellSign();end,true,true,'Sells Your Plot Sign If You Have One.'); SlotSection:CreateButton('Expand Land',function()PropertyPurchasingClient.setPlatformControls=function()end;PropertyPurchasingClient.enterPurchaseMode(0,true);end,true,true,'Allows You To Expand Your Land To Your Liking.'); local DupeSection=PlotSection:CreateSubSection('Plot Duplication Options'); DupeSection:CreateSlider('Plot To Donate',function(slot)Ancestor.BaseToDupe=slot;end,1,6); DupeSection:CreateToggle('New Method',false,function(state)GUISettings.NewDonateBase=state;end,GUISettings.NewDonateBase,true,'Toggles The New Donate Base Method.'); DupeSection:CreateButton('Donate Plot',function()if GUISettings.NewDonateBase then Ancestor:DonateBase(true)return end;Ancestor:DonateBase();end,true,true,'Donates Your Plot To The Server. Make Sure To Whitelist Them.'); -- local BuildSection=PlotSection:CreateSubSection('Save/Build Options'); -- BuildSection:CreateTextbox('Save Base To File',function(Name)if not Ancestor:GetPlayersBase()then return SendUserNotice:Fire'Player has no plot Loaded'end; if Name==''then SendUserNotice:Fire'Invalid File Name!'return;end; Ancestor:SaveBaseToFile(nil,Name);SendUserNotice:Fire('Saved '..tstring(Name)..'!');end,'Enter FileName Here',false,true,'Saves The Player\'s Base To A File.'); -- BuildSection:CreateTextbox('Load Base from File',function(Name)Ancestor:LoadBaseFromFile(Name)end,'Enter FileName Here',false,true,'Build The Bases From A File.'); local TreeTab=AncestorUI:CreateTab(8772271242,'Tree Options'); local TreeSection=TreeTab:CreateSection() local BringTreeSection=TreeSection:CreateSubSection('Bring Tree'); local BringTreeButton; BringTreeSection:CreateDropDown(function(Option) Ancestor.SelectedTreeType=Option; if Ancestor.BringTreeAmount<=1 then Title='Tree'; else Title='Trees'; end; BringTreeButton:UpdateHeader('Bring '..Ancestor.BringTreeAmount..' '..Ancestor.SelectedTreeType..' '..Title) end,{'Generic','GoldSwampy','CaveCrawler','Cherry','Frost','Volcano','Oak','Walnut','Birch','SnowGlow','Pine','GreenSwampy','Koa','Palm','Spooky','SpookyNeon',--[['LoneCave']]},'Generic',false); BringTreeSection:CreateSlider('Quantity',function(Quantity)Ancestor.BringTreeAmount=Quantity;if Quantity<=1 then Title='Tree';else Title='Trees';end;BringTreeButton:UpdateHeader('Bring '..Ancestor.BringTreeAmount..' '..Ancestor.SelectedTreeType..' '..Title);end,1,10,1,false,nil); BringTreeButton=BringTreeSection:CreateButton('Bring 1 Generic Tree',function()Ancestor:BringTree();end,true,true,'Brings The Selected Amount Of The Selected Tree To You.'); -- local BuildSection=PlotSection:CreateSubSection('Save/Build Options'); BringTreeButton:UpdateHeader('Bring '..Ancestor.BringTreeAmount..' '..Ancestor.SelectedTreeType..' Tree') local DraggingOptions=TreeSection:CreateSubSection('Dragging Options'); DraggingOptions:CreateToggle('Hard Dragger',false,function(state)GUISettings.HardDragger=state;Ancestor:HardDragger(state)end,GUISettings.HardDragger,true,'Makes Picking Up Heavy Trees/Items Much Easier.'); local MoneyTab=AncestorUI:CreateTab(5182389716,'Money Options'); local MoneySection=MoneyTab:CreateSection() local Autobuy=MoneySection:CreateSubSection('Autobuy'); Autobuy:CreateDropDown(function(item)Ancestor:GetItemInfo(item,'Name')end,{unpack(Ancestor:GetStoreItems())},'Basic Hatchet - $12',false); Autobuy:CreateSlider('Amount',function(Quantity)AutobuyAmount=Quantity;end,1,100); Autobuy:CreateButton('Purchase Item/s',function()Ancestor:AutobuyItems();end,true,true,'Auto-Buys The Selected Items.'); local DupeMoney=MoneySection:CreateSubSection('Money Duplication'); game:GetService("CoreGui").Ancestor.MainFrame.Sections["Money Options"].Sections.Frame.ScrollingFrame.Frame.Position=UDim2.new(0.5,0,.49,0) DupeMoney:CreateSlider('Amount',function(Quantity)DupeMoneyQuantity=Quantity;end,1,10); DupeMoney:CreateButton('Dupe Money On Selected Slot',function()Ancestor:DupeMoney();end,true,true,'Duplicates Your Current Money Amount.'); DupeMoney:CreateButton('Abort Dupe Money',function()if Ancestor.MoneyDuping then Ancestor.MoneyDuping=false;SendUserNotice:Fire'Attempting To Abort Money Dupe!';else SendUserNotice:Fire'Money Dupe Is Not Active!';end;end,true,true,'Terminates Money Duplication. May Take A While.'); local AxeTab=AncestorUI:CreateTab(8772286873,'Axe Options'); local AxeSection=AxeTab:CreateSection() local AxeModifications=AxeSection:CreateSubSection('Axe Stats'); AxeModifications:CreateSlider('Axe Range',function(Quantity)GUISettings.AxeRange=Quantity;if GUISettings.AxeRangeActive then Ancestor:SetAxeRange(true,Quantity)end;end,0,120,GUISettings.AxeRange,true,'Modifies Your Axe Range So You Can Cut Trees From A Longer Distance.'); AxeModifications:CreateToggle('Activate Axe Range',false,function(toggle)GUISettings.AxeRangeActive=toggle;Ancestor:SetAxeRange(true,GUISettings.AxeRange)if not toggle then Ancestor:SetAxeRange(false)end;end,GUISettings.AxeRangeActive,true,'Activates Axe Range Modifications.'); AxeModifications:CreateToggle(' No Axe Cooldown',false,function(toggle)GUISettings.AxeSwingActive=toggle;Ancestor:SetSwingCooldown(true)if not toggle then Ancestor:SetSwingCooldown(false)end;end,GUISettings.AxeSwingActive,true,'Removes The ClientSided Cooldown For Swinging Axes.'); local AxeInformation=AxeSection:CreateSubSection('Current Axe Information'); AxeNameLabel=AxeInformation:CreateLabel('Current Axe Not Found'); AxeRangeLabel=AxeInformation:CreateLabel('Range: NULL') AxeCooldownLabel=AxeInformation:CreateLabel('Cooldown: NULL') -- AxeInformation:CreateLabel('Name: BasicHatchet') local AxeModifications=AxeSection:CreateSubSection('Duplication Options'); local DupeInventory; DupeInventory=AxeModifications:CreateToggle('Dupe Inventory',false,function(toggle)GUISettings.DupeInventory=toggle;if toggle then if not Ancestor:DupeInventory()then task.wait(.3)DupeInventory:Toggle()end;end;end,false,true,'Duplicates Your Inventory.'); local AxeOptions=AxeSection:CreateSubSection('Axe Options'); AxeOptions:CreateButton('Drop All Tools',function()Ancestor:DropTools();end,true,true,'Drops All Your Tools.'); local BuildTab=AncestorUI:CreateTab(8772073607,'Build Options'); local BuildSection=BuildTab:CreateSection() local BuildMode=BuildSection:CreateSubSection('Build Mode - Currently Under Development'); local CarTab=AncestorUI:CreateTab(8821528672,'Car Options'); local CarSection=CarTab:CreateSection() local CarMods=CarSection:CreateSubSection('Vehicle Options'); CarMods:CreateSlider('Car Speed',function(Speed)GUISettings.CarSpeed=Speed;end,1,4,GUISettings.CarSpeed,true,'Modifies Your Car Speed So You Can Drive Faster.'); CarMods:CreateSlider('Car Pitch',function(Speed)GUISettings.CarPitch=Speed;end,1,20,GUISettings.CarPitch,true,'Modifies Your Car Pitch So You Can Annoy Other Players.'); CarMods:CreateToggle('Activate Car Modifications',false,function(toggle)GUISettings.ActivateCarModifications=toggle;if not toggle then Ancestor:ResetCarSpeed()end;end,GUISettings.ActivateCarModifications,true,'Activates Car Modifications.'); -- local BaseDropTab=AncestorUI:CreateTab(8785403056,'Theme Options'); -- local BaseDropSection=BaseDropTab:CreateSection() -- local BaseDrop=BaseDropSection:CreateSubSection('Theme Options - Currently Under Development'); local SettingsMain=AncestorUI:CreateTab(5182003557,'Settings'); local SettingsSection=SettingsMain:CreateSection(); local Credits=SettingsSection:CreateSubSection('Credits'); Credits:CreateLabel'Made By Ancestor'; local GUIInfo=SettingsSection:CreateSubSection('GUI Information'); GUIInfo:CreateLabel('Version: '..tstring(CurrentVersion)); GUIInfo:CreateLabel('Executor: '..tstring(Executor)); local Ping,CPU,CurrentSlot; Ping=GUIInfo:CreateLabel('Ping: '..math.floor(game:GetService("Stats").PerformanceStats.Ping:GetValue())..'ms'); CPU=GUIInfo:CreateLabel('CPU: '..math.floor(game:GetService("Stats").PerformanceStats.CPU:GetValue())..'ms'); CurrentSlot=GUIInfo:CreateLabel(''); Connections[#Connections+1]={Name='Ping',Function=Stepped:Connect(function() Ping:UpdateText('Ping: '..math.floor(game:GetService("Stats").PerformanceStats.Ping:GetValue())..'ms'); CPU:UpdateText('CPU: '..math.floor(game:GetService("Stats").PerformanceStats.CPU:GetValue())..'ms'); CurrentSlot:UpdateText('Current Loaded Slot: '..(Ancestor:GetLoadedSlot()>0 and Ancestor:GetLoadedSlot()or 'None')); end)} local ConfigurationSettings=SettingsSection:CreateSubSection('Configuration Settings'); ConfigurationSettings:CreateButton('Save Configuration',function()Ancestor:SaveConfigurationFile()end,true,true,'Saves Your Confiuration File'); ConfigurationSettings:CreateButton('Delete Configuration',function()Ancestor:DeleteConfigurationFile()end,true,true,'Deletes Your Confiuration File'); local PlotNameSettings=SettingsSection:CreateSubSection('Plot Name Settings'); PlotNameSettings:CreateTextbox('Slot 1 Name',function(Name)SlotNames.Slot1=Name;Ancestor:GetPlotButtonByID(1).Text=Name;end,SlotNames.Slot1,false,true,'Renames Slot 1 To Your Preferred Name.',true); PlotNameSettings:CreateTextbox('Slot 2 Name',function(Name)SlotNames.Slot2=Name;Ancestor:GetPlotButtonByID(2).Text=Name;end,SlotNames.Slot2,false,true,'Renames Slot 2 To Your Preferred Name.',true); PlotNameSettings:CreateTextbox('Slot 3 Name',function(Name)SlotNames.Slot3=Name;Ancestor:GetPlotButtonByID(3).Text=Name;end,SlotNames.Slot3,false,true,'Renames Slot 3 To Your Preferred Name.',true); PlotNameSettings:CreateTextbox('Slot 4 Name',function(Name)SlotNames.Slot4=Name;Ancestor:GetPlotButtonByID(4).Text=Name;end,SlotNames.Slot4,false,true,'Renames Slot 4 To Your Preferred Name.',true); PlotNameSettings:CreateTextbox('Slot 5 Name',function(Name)SlotNames.Slot5=Name;Ancestor:GetPlotButtonByID(5).Text=Name;end,SlotNames.Slot5,false,true,'Renames Slot 5 To Your Preferred Name.',true); PlotNameSettings:CreateTextbox('Slot 6 Name',function(Name)SlotNames.Slot6=Name;Ancestor:GetPlotButtonByID(6).Text=Name;end,SlotNames.Slot6,false,true,'Renames Slot 6 To Your Preferred Name.',true); PlotNameSettings:CreateButton('Save Slot Names',function()Ancestor:SaveSlotNames();end,true,true,'Saves Your Slot Names ONLY For The Current ROBLOX Account.'); local Settings=SettingsSection:CreateSubSection('GUI Settings'); Settings:CreateKeybind('Toggle UI',function(v) game.CoreGui.Ancestor.Enabled=not game.CoreGui.Ancestor.Enabled; end,Enum.KeyCode.RightControl,true,'Toggles UI Visibility.'); Settings:CreateToggle('GUI Tips',false,function(toggle)for i,v in next,AncestorUI:GetHelpSections()do v.Visible=toggle;end;end,true,true,'Toggles GUI Tips'); Settings:CreateTitle('Dropdown Name Settings') Settings:CreateDropDown(function(Type) PlayerDropType=Type; GUISettings.SelectedDropType=Type; PlayerDropType=GUISettings.SelectedDropType end,{'Both','DisplayName','UserName'},GUISettings.SelectedDropType); Connections[#Connections+1]={Name='DestroyedGUI',Function=game.CoreGui.ChildRemoved:Connect(function(Child) if tstring(Child)=='Ancestor'then Ancestor_Loaded=false; GUISettings.IsClientFlying=false;GUISettings.Fling=false; for i=1,#Connections do Connections[i].Function:Disconnect(); end; end; end)};warn('Loaded AncestorV2 In '..tstring(os.time()-Start)..' Second/s =^w^=');