do local players=game:GetService("Players");local runservice=game:GetService("RunService");local tweenservice=game:GetService("TweenService");local uis=game:GetService("UserInputService");local replicatedStorage=game:GetService("ReplicatedStorage");local virtualInputManager=game:GetService("VirtualInputManager");local plr=players.LocalPlayer;local pgui=plr:WaitForChild("PlayerGui");if pgui:FindFirstChild("ProjectFishKeyGui") then pgui.ProjectFishKeyGui:Destroy();end if pgui:FindFirstChild("ProjectFishGui") then pgui.ProjectFishGui:Destroy();end local keyGui=Instance.new("ScreenGui");keyGui.Name="ProjectFishKeyGui";keyGui.ResetOnSpawn=false;keyGui.Parent=pgui;local keyMain=Instance.new("Frame");keyMain.Name="KeyMain";keyMain.Size=UDim2.new(0,420,0,260);keyMain.Position=UDim2.new(0.5, -210,0.5, -130);keyMain.BackgroundColor3=Color3.fromRGB(15,15,15);keyMain.BorderSizePixel=0;keyMain.ClipsDescendants=true;keyMain.Parent=keyGui;local kmCorner=Instance.new("UICorner");kmCorner.CornerRadius=UDim.new(0,14);kmCorner.Parent=keyMain;local kmStroke=Instance.new("UIStroke");kmStroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Border;kmStroke.Thickness=2.5;kmStroke.Color=Color3.fromRGB(255,30,30);kmStroke.Parent=keyMain;local kmGrad=Instance.new("UIGradient");kmGrad.Color=ColorSequence.new({ColorSequenceKeypoint.new(0,Color3.fromRGB(255,30,30)),ColorSequenceKeypoint.new(1,Color3.fromRGB(10,10,10))});kmGrad.Parent=kmStroke;local keyCloseBtn=Instance.new("TextButton");keyCloseBtn.Name="KeyCloseBtn";keyCloseBtn.Size=UDim2.new(0,32,0,32);keyCloseBtn.Position=UDim2.new(1, -40,0,10);keyCloseBtn.BackgroundColor3=Color3.fromRGB(180,40,40);keyCloseBtn.Text="X";keyCloseBtn.Font=Enum.Font.FredokaOne;keyCloseBtn.TextSize=14;keyCloseBtn.TextColor3=Color3.new(1,1,1);keyCloseBtn.Parent=keyMain;local kcc=Instance.new("UICorner");kcc.CornerRadius=UDim.new(0,8);kcc.Parent=keyCloseBtn;keyCloseBtn.MouseButton1Click:Connect(function() keyGui:Destroy();end);local keyDragging=false;local keyDragStart,keyStartPos;keyMain.InputBegan:Connect(function(input) if ((input.UserInputType==Enum.UserInputType.MouseButton1) or (input.UserInputType==Enum.UserInputType.Touch)) then keyDragging=true;keyDragStart=input.Position;keyStartPos=keyMain.Position;input.Changed:Connect(function() if (input.UserInputState==Enum.UserInputState.End) then keyDragging=false;end end);end end);uis.InputChanged:Connect(function(input) if (keyDragging and ((input.UserInputType==Enum.UserInputType.MouseMovement) or (input.UserInputType==Enum.UserInputType.Touch))) then local delta=input.Position-keyDragStart ;local targetpos=UDim2.new(keyStartPos.X.Scale,keyStartPos.X.Offset + delta.X ,keyStartPos.Y.Scale,keyStartPos.Y.Offset + delta.Y );tweenservice:Create(keyMain,TweenInfo.new(0.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out),{Position=targetpos}):Play();end end);local keyTitle=Instance.new("TextLabel");keyTitle.Size=UDim2.new(1, -50,0,50);keyTitle.Position=UDim2.new(0,0,0,15);keyTitle.BackgroundTransparency=1;keyTitle.Text="PROJECT FISH KEY SYSTEM";keyTitle.Font=Enum.Font.FredokaOne;keyTitle.TextSize=18;keyTitle.TextColor3=Color3.fromRGB(255,30,30);keyTitle.Parent=keyMain;local keyBox=Instance.new("TextBox");keyBox.Size=UDim2.new(0,360,0,42);keyBox.Position=UDim2.new(0.5, -180,0,75);keyBox.BackgroundColor3=Color3.fromRGB(25,25,25);keyBox.BorderSizePixel=0;keyBox.PlaceholderText="Enter Key...";keyBox.Text="";keyBox.Font=Enum.Font.FredokaOne;keyBox.TextSize=14;keyBox.TextColor3=Color3.new(1,1,1);keyBox.PlaceholderColor3=Color3.fromRGB(120,120,120);keyBox.Parent=keyMain;local kbc=Instance.new("UICorner");kbc.CornerRadius=UDim.new(0,8);kbc.Parent=keyBox;local submitKeyBtn=Instance.new("TextButton");submitKeyBtn.Size=UDim2.new(0,172,0,38);submitKeyBtn.Position=UDim2.new(0.5, -180,0,132);submitKeyBtn.BackgroundColor3=Color3.fromRGB(255,30,30);submitKeyBtn.BorderSizePixel=0;submitKeyBtn.Text="Submit Key";submitKeyBtn.Font=Enum.Font.FredokaOne;submitKeyBtn.TextSize=13;submitKeyBtn.TextColor3=Color3.new(1,1,1);submitKeyBtn.Parent=keyMain;local skc=Instance.new("UICorner");skc.CornerRadius=UDim.new(0,8);skc.Parent=submitKeyBtn;local discordBtn=Instance.new("TextButton");discordBtn.Size=UDim2.new(0,172,0,38);discordBtn.Position=UDim2.new(0.5,8,0,132);discordBtn.BackgroundColor3=Color3.fromRGB(88,101,242);discordBtn.BorderSizePixel=0;discordBtn.Text="Get Key (Discord)";discordBtn.Font=Enum.Font.FredokaOne;discordBtn.TextSize=13;discordBtn.TextColor3=Color3.new(1,1,1);discordBtn.Parent=keyMain;local dbc=Instance.new("UICorner");dbc.CornerRadius=UDim.new(0,8);dbc.Parent=discordBtn;local keyMsg=Instance.new("TextLabel");keyMsg.Size=UDim2.new(1,0,0,30);keyMsg.Position=UDim2.new(0,0,0,185);keyMsg.BackgroundTransparency=1;keyMsg.Text="";keyMsg.Font=Enum.Font.FredokaOne;keyMsg.TextSize=13;keyMsg.TextColor3=Color3.fromRGB(255,60,60);keyMsg.Parent=keyMain;discordBtn.MouseButton1Click:Connect(function() pcall(function() setclipboard("https://discord.gg/hStrAQPYB");end);keyMsg.TextColor3=Color3.fromRGB(80,200,255);keyMsg.Text="Discord Invite copied to clipboard!";end);local function loadMainHub() local colorFadeEnabled=true;local borderRotationEnabled=true;local darkModeEnabled=false;local selectedColorSequence={Color3.fromRGB(255,30,30),Color3.fromRGB(10,10,10)};local ColorThemes={cyber={Color3.fromRGB(0,255,120),Color3.fromRGB(10,10,10)},white={Color3.fromRGB(255,255,255),Color3.fromRGB(200,200,200)},crimson={Color3.fromRGB(255,30,30),Color3.fromRGB(10,10,10)},halloween={Color3.fromRGB(255,120,0),Color3.fromRGB(10,10,10)},darkmode={Color3.fromRGB(0,60,180),Color3.fromRGB(5,5,12)}};local function getcolor() if ( #selectedColorSequence==0) then return Color3.fromRGB(255,30,30);elseif (( #selectedColorSequence==1) or not colorFadeEnabled) then return selectedColorSequence[1];else local t=(os.clock()%6)/6 ;local index=math.floor(t * #selectedColorSequence ) + 1 ;local nextIndex=(index% #selectedColorSequence) + 1 ;local subT=(t * #selectedColorSequence)%1 ;return selectedColorSequence[index]:Lerp(selectedColorSequence[nextIndex],subT);end end local gui=Instance.new("ScreenGui");gui.Name="ProjectFishGui";gui.ResetOnSpawn=false;gui.Parent=pgui;local uiScale=Instance.new("UIScale");uiScale.Name="PlatformScaleEnforcer";uiScale.Parent=gui;local function adjustPlatformScale() local camera=workspace.CurrentCamera;if camera then local viewportSize=camera.ViewportSize;local isTouchDevice=uis.TouchEnabled and not uis.MouseEnabled ;uiScale.Scale=((isTouchDevice and math.clamp(viewportSize.Y/720 ,0.45,0.85)) or math.clamp(viewportSize.Y/1080 ,0.65,1.1))/1.1 ;end end adjustPlatformScale();if workspace.CurrentCamera then workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(adjustPlatformScale);end local grads={};local sectionContainers={};local tbtn=Instance.new("TextButton");tbtn.Name="TBtn";tbtn.Size=UDim2.new(0,60,0,60);tbtn.Position=UDim2.new(0,2100,0,978);tbtn.BackgroundColor3=Color3.fromRGB(20,20,20);tbtn.BorderSizePixel=0;tbtn.Text="F";tbtn.Font=Enum.Font.FredokaOne;tbtn.TextSize=30;tbtn.TextColor3=Color3.fromRGB(255,30,30);tbtn.Visible=false;tbtn.Parent=gui;local tcorner=Instance.new("UICorner");tcorner.CornerRadius=UDim.new(0,8);tcorner.Parent=tbtn;local tstroke=Instance.new("UIStroke");tstroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Border;tstroke.Thickness=2;tstroke.Color=Color3.new(1,1,1);tstroke.Parent=tbtn;local tgrad=Instance.new("UIGradient");tgrad.Parent=tstroke;table.insert(grads,tgrad);local tdrag=false;local tstart,tpos;tbtn.InputBegan:Connect(function(input) if ((input.UserInputType==Enum.UserInputType.MouseButton1) or (input.UserInputType==Enum.UserInputType.Touch)) then tdrag=true;tstart=input.Position;tpos=tbtn.Position;input.Changed:Connect(function() if (input.UserInputState==Enum.UserInputState.End) then tdrag=false;end end);end end);uis.InputChanged:Connect(function(input) if (tdrag and ((input.UserInputType==Enum.UserInputType.MouseMovement) or (input.UserInputType==Enum.UserInputType.Touch))) then local delta=input.Position-tstart ;local targetpos=UDim2.new(tpos.X.Scale,tpos.X.Offset + delta.X ,tpos.Y.Scale,tpos.Y.Offset + delta.Y );tweenservice:Create(tbtn,TweenInfo.new(0.2,Enum.EasingStyle.Sine,Enum.EasingDirection.Out),{Position=targetpos}):Play();end end);local main=Instance.new("Frame");main.Name="Main";main.Size=UDim2.new(0,820,0,560);main.Position=UDim2.new(0.5, -410,0.5, -280);main.BackgroundColor3=Color3.fromRGB(15,15,15);main.BorderSizePixel=0;main.ClipsDescendants=true;main.Parent=gui;local mcorner=Instance.new("UICorner");mcorner.CornerRadius=UDim.new(0,14);mcorner.Parent=main;local mstroke=Instance.new("UIStroke");mstroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Border;mstroke.Thickness=2.5;mstroke.Color=Color3.new(1,1,1);mstroke.Parent=main;local mgrad=Instance.new("UIGradient");mgrad.Parent=mstroke;table.insert(grads,mgrad);local dragbar=Instance.new("Frame");dragbar.Name="DragBar";dragbar.Size=UDim2.new(1,0,0,48);dragbar.BackgroundColor3=Color3.fromRGB(22,22,22);dragbar.BorderSizePixel=0;dragbar.Parent=main;local dcorner=Instance.new("UICorner");dcorner.CornerRadius=UDim.new(0,14);dcorner.Parent=dragbar;local dstroke=Instance.new("UIStroke");dstroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Border;dstroke.Thickness=1.5;dstroke.Color=Color3.new(1,1,1);dstroke.Parent=dragbar;local dgrad=Instance.new("UIGradient");dgrad.Parent=dstroke;table.insert(grads,dgrad);local title=Instance.new("TextLabel");title.Name="Title";title.Size=UDim2.new(1, -150,1,0);title.Position=UDim2.new(0,18,0,0);title.BackgroundTransparency=1;title.TextXAlignment=Enum.TextXAlignment.Left;title.Text="PROJECT FISH HUB | BUILD A DUNGEON SCRIPT";title.Font=Enum.Font.FredokaOne;title.TextSize=18;title.TextColor3=Color3.new(1,1,1);title.Parent=dragbar;local titlegrad=Instance.new("UIGradient");titlegrad.Parent=title;local minbtn=Instance.new("TextButton");minbtn.Name="MinBtn";minbtn.Size=UDim2.new(0,32,0,32);minbtn.Position=UDim2.new(1, -78,0.5, -16);minbtn.BackgroundColor3=Color3.fromRGB(35,35,35);minbtn.Text="-";minbtn.Font=Enum.Font.FredokaOne;minbtn.TextSize=18;minbtn.TextColor3=Color3.new(1,1,1);minbtn.Parent=dragbar;local mincorner=Instance.new("UICorner");mincorner.CornerRadius=UDim.new(0,8);mincorner.Parent=minbtn;local closebtn=Instance.new("TextButton");closebtn.Name="CloseBtn";closebtn.Size=UDim2.new(0,32,0,32);closebtn.Position=UDim2.new(1, -40,0.5, -16);closebtn.BackgroundColor3=Color3.fromRGB(180,40,40);closebtn.Text="X";closebtn.Font=Enum.Font.FredokaOne;closebtn.TextSize=14;closebtn.TextColor3=Color3.new(1,1,1);closebtn.Parent=dragbar;local closecorner=Instance.new("UICorner");closecorner.CornerRadius=UDim.new(0,8);closecorner.Parent=closebtn;local tabframe=Instance.new("ScrollingFrame");tabframe.Name="TabFrame";tabframe.Size=UDim2.new(0,180,1, -60);tabframe.Position=UDim2.new(0,10,0,54);tabframe.BackgroundTransparency=1;tabframe.BorderSizePixel=0;tabframe.ScrollBarThickness=2;tabframe.CanvasSize=UDim2.new(0,0,0,0);tabframe.AutomaticCanvasSize=Enum.AutomaticSize.Y;tabframe.Parent=main;local tablist=Instance.new("UIListLayout");tablist.FillDirection=Enum.FillDirection.Vertical;tablist.SortOrder=Enum.SortOrder.LayoutOrder;tablist.Padding=UDim.new(0,6);tablist.Parent=tabframe;local pageholder=Instance.new("Frame");pageholder.Name="PageHolder";pageholder.Size=UDim2.new(1, -205,1, -60);pageholder.Position=UDim2.new(0,200,0,54);pageholder.BackgroundTransparency=1;pageholder.Parent=main;local tabbuttons={};local pagelist={};local tabOrderCounter=1;local function maketab(tabname) local page=Instance.new("ScrollingFrame");page.Name=tabname .. "Page" ;page.Size=UDim2.new(1,0,1,0);page.BackgroundTransparency=1;page.BorderSizePixel=0;page.ScrollBarThickness=4;page.CanvasSize=UDim2.new(0,0,0,0);page.AutomaticCanvasSize=Enum.AutomaticSize.Y;page.Visible=false;page.Parent=pageholder;local playout=Instance.new("UIListLayout");playout.SortOrder=Enum.SortOrder.LayoutOrder;playout.Padding=UDim.new(0,10);playout.HorizontalAlignment=Enum.HorizontalAlignment.Center;playout.Parent=page;pagelist[tabname]=page;local button=Instance.new("TextButton");button.Name=tabname .. "Tab" ;button.LayoutOrder=tabOrderCounter;tabOrderCounter=tabOrderCounter + 1 ;button.Size=UDim2.new(1,0,0,38);button.BackgroundColor3=Color3.fromRGB(28,28,28);button.Text=tabname;button.Font=Enum.Font.FredokaOne;button.TextSize=13;button.TextColor3=Color3.fromRGB(180,180,180);button.Parent=tabframe;local bcorner=Instance.new("UICorner");bcorner.CornerRadius=UDim.new(0,8);bcorner.Parent=button;button.MouseButton1Click:Connect(function() for name,p in pairs(pagelist) do p.Visible=name==tabname ;end for _,b in ipairs(tabbuttons) do b.TextColor3=Color3.fromRGB(180,180,180);b.BackgroundColor3=(darkModeEnabled and Color3.fromRGB(3,3,8)) or Color3.fromRGB(28,28,28) ;end button.TextColor3=Color3.new(1,1,1);button.BackgroundColor3=(darkModeEnabled and Color3.fromRGB(0,40,120)) or Color3.fromRGB(48,48,48) ;end);table.insert(tabbuttons,button);return page;end local activeones={};local function updateAllGradientGradients() local keypoints={};if ( #selectedColorSequence==0) then keypoints={ColorSequenceKeypoint.new(0,Color3.fromRGB(255,30,30)),ColorSequenceKeypoint.new(1,Color3.fromRGB(10,10,10))};elseif ( #selectedColorSequence==1) then keypoints={ColorSequenceKeypoint.new(0,selectedColorSequence[1]),ColorSequenceKeypoint.new(1,selectedColorSequence[1])};else for i,col in ipairs(selectedColorSequence) do local timeVal=(i-1)/( #selectedColorSequence-1) ;table.insert(keypoints,ColorSequenceKeypoint.new(timeVal,col));end end for _,g in ipairs(grads) do g.Color=ColorSequence.new(keypoints);end tbtn.TextColor3=selectedColorSequence[1] or Color3.fromRGB(255,30,30) ;end local function applyDarkMode(enabled) darkModeEnabled=enabled;if enabled then selectedColorSequence=ColorThemes.darkmode;updateAllGradientGradients();main.BackgroundColor3=Color3.fromRGB(2,2,6);dragbar.BackgroundColor3=Color3.fromRGB(5,5,15);tbtn.BackgroundColor3=Color3.fromRGB(2,2,6);for _,sc in ipairs(sectionContainers) do sc.BackgroundColor3=Color3.fromRGB(6,8,18);end for _,b in ipairs(tabbuttons) do b.BackgroundColor3=Color3.fromRGB(3,3,8);end else selectedColorSequence=ColorThemes.crimson;updateAllGradientGradients();main.BackgroundColor3=Color3.fromRGB(15,15,15);dragbar.BackgroundColor3=Color3.fromRGB(22,22,22);tbtn.BackgroundColor3=Color3.fromRGB(20,20,20);for _,sc in ipairs(sectionContainers) do sc.BackgroundColor3=Color3.fromRGB(22,22,22);end for _,b in ipairs(tabbuttons) do b.BackgroundColor3=Color3.fromRGB(28,28,28);end end end local function makesection(parent,text,orderIndex) local sectionContainer=Instance.new("Frame");sectionContainer.Name=text .. "Section" ;if orderIndex then sectionContainer.LayoutOrder=orderIndex;end sectionContainer.Size=UDim2.new(1, -10,0,0);sectionContainer.AutomaticSize=Enum.AutomaticSize.Y;sectionContainer.BackgroundColor3=(darkModeEnabled and Color3.fromRGB(6,8,18)) or Color3.fromRGB(22,22,22) ;sectionContainer.BorderSizePixel=0;sectionContainer.Parent=parent;table.insert(sectionContainers,sectionContainer);local scorner=Instance.new("UICorner");scorner.CornerRadius=UDim.new(0,10);scorner.Parent=sectionContainer;local sstroke=Instance.new("UIStroke");sstroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Border;sstroke.Thickness=1;sstroke.Color=Color3.fromRGB(45,45,45);sstroke.Parent=sectionContainer;local slayout=Instance.new("UIListLayout");slayout.Padding=UDim.new(0,8);slayout.HorizontalAlignment=Enum.HorizontalAlignment.Center;slayout.SortOrder=Enum.SortOrder.LayoutOrder;slayout.Parent=sectionContainer;local spadding=Instance.new("UIPadding");spadding.PaddingTop=UDim.new(0,8);spadding.PaddingBottom=UDim.new(0,8);spadding.PaddingLeft=UDim.new(0,8);spadding.PaddingRight=UDim.new(0,8);spadding.Parent=sectionContainer;local lbl=Instance.new("TextLabel");lbl.Name="HeaderLabel";lbl.Parent=sectionContainer;lbl.BackgroundTransparency=1;lbl.Size=UDim2.new(1,0,0,22);lbl.Font=Enum.Font.FredokaOne;lbl.Text=text;lbl.TextColor3=Color3.fromRGB(200,200,200);lbl.TextSize=14;lbl.TextXAlignment=Enum.TextXAlignment.Left;return sectionContainer;end local function maketoggle(parentSection,buttontext,callback) local btn=Instance.new("TextButton");btn.Name=buttontext .. "Btn" ;btn.Size=UDim2.new(1,0,0,38);btn.BackgroundColor3=Color3.fromRGB(26,26,26);btn.BorderSizePixel=0;btn.Text=" " .. buttontext ;btn.Font=Enum.Font.FredokaOne;btn.TextSize=12;btn.TextColor3=Color3.fromRGB(180,180,180);btn.TextXAlignment=Enum.TextXAlignment.Left;btn.Parent=parentSection;local bcorner=Instance.new("UICorner");bcorner.CornerRadius=UDim.new(0,8);bcorner.Parent=btn;local switchBg=Instance.new("Frame");switchBg.Name="SwitchBg";switchBg.Size=UDim2.new(0,38,0,20);switchBg.Position=UDim2.new(1, -46,0.5, -10);switchBg.BackgroundColor3=Color3.fromRGB(50,50,50);switchBg.BorderSizePixel=0;switchBg.Parent=btn;local switchBgCorner=Instance.new("UICorner");switchBgCorner.CornerRadius=UDim.new(1,0);switchBgCorner.Parent=switchBg;local switchCircle=Instance.new("Frame");switchCircle.Name="SwitchCircle";switchCircle.Size=UDim2.new(0,14,0,14);switchCircle.Position=UDim2.new(0,3,0.5, -7);switchCircle.BackgroundColor3=Color3.fromRGB(180,180,180);switchCircle.BorderSizePixel=0;switchCircle.Parent=switchBg;local switchCircleCorner=Instance.new("UICorner");switchCircleCorner.CornerRadius=UDim.new(1,0);switchCircleCorner.Parent=switchCircle;local ison=false;local function updateToggleVisual(state) ison=state;activeones[btn]=ison or nil ;if ison then tweenservice:Create(switchBg,TweenInfo.new(0.2),{BackgroundColor3=Color3.fromRGB(70,160,90)}):Play();tweenservice:Create(switchCircle,TweenInfo.new(0.2),{Position=UDim2.new(1, -17,0.5, -7),BackgroundColor3=Color3.fromRGB(255,255,255)}):Play();btn.TextColor3=Color3.new(1,1,1);else tweenservice:Create(switchBg,TweenInfo.new(0.2),{BackgroundColor3=Color3.fromRGB(50,50,50)}):Play();tweenservice:Create(switchCircle,TweenInfo.new(0.2),{Position=UDim2.new(0,3,0.5, -7),BackgroundColor3=Color3.fromRGB(180,180,180)}):Play();btn.TextColor3=Color3.fromRGB(180,180,180);end end btn.MouseButton1Click:Connect(function() local newState= not ison;updateToggleVisual(newState);if callback then callback(newState,updateToggleVisual);end end);return btn;end local automationTab=maketab("Automations");local autoBuyTab=maketab("Auto Buy");local hacksTab=maketab("Player Hacks");local settingsTab=maketab("Settings");pagelist['Automations'].Visible=true;tabbuttons[1].TextColor3=Color3.new(1,1,1);tabbuttons[1].BackgroundColor3=Color3.fromRGB(48,48,48);local autoSection=makesection(automationTab,"Quest Actions");local actionsList={"play","rolls","waves","coins","bosses",{type="pquest",arg="daily:d_kills"},{type="pquest",arg="daily:d_waves"},{type="pquest",arg="daily:d_souls"},{type="pquest",arg="dailyBonus"},{type="pquest",arg="weekly:w_play"},{type="pquest",arg="weekly:w_kills"},{type="pquest",arg="weekly:w_waves"},{type="pquest",arg="weekly:w_bosses"},"play_t2","rolls_t2","waves_t2","coins_t2","bosses_t2","play_t3","rolls_t3","waves_t3","coins_t3","bosses_t3"};local autoClaimActive=false;maketoggle(autoSection,"Auto Claim Quests",function(enabled) autoClaimActive=enabled;if enabled then task.spawn(function() local index=1;while autoClaimActive do pcall(function() local shopEvent=replicatedStorage:WaitForChild("BAD"):WaitForChild("Remotes"):WaitForChild("Shop");local currentAction=actionsList[index];if ((type(currentAction)=="table") and (currentAction.type=="pquest")) then shopEvent:InvokeServer("pquest",currentAction.arg);else shopEvent:InvokeServer("claim",currentAction);end end);index=index + 1 ;if (index> #actionsList) then index=1;end local waitTime=0;while (waitTime<0.5) and autoClaimActive do task.wait(0.05);waitTime=waitTime + 0.05 ;end end end);end end);local autoSwingActive=false;maketoggle(autoSection,"Auto Swing",function(enabled) autoSwingActive=enabled;if enabled then task.spawn(function() while autoSwingActive do pcall(function() local actionEvent=replicatedStorage:WaitForChild("BAD"):WaitForChild("Remotes"):WaitForChild("Action");actionEvent:FireServer("attack",nil);end);task.wait(0.1);end end);end end);local autoWaveActive=false;maketoggle(autoSection,"Auto Wave",function(enabled) autoWaveActive=enabled;if enabled then task.spawn(function() while autoWaveActive do pcall(function() local actionEvent=replicatedStorage:WaitForChild("BAD"):WaitForChild("Remotes"):WaitForChild("Action");actionEvent:FireServer("startWave");end);task.wait(1);end end);end end);local function setupPotionToggle(potionName,toggleLabel) local isActive=false;maketoggle(autoSection,toggleLabel,function(enabled) isActive=enabled;if enabled then task.spawn(function() while isActive do pcall(function() local shopEvent=replicatedStorage:WaitForChild("BAD"):WaitForChild("Remotes"):WaitForChild("Shop");shopEvent:InvokeServer("usePotion",potionName);end);task.wait(5);end end);end end);end setupPotionToggle("coins","Auto Use Coins Boost");setupPotionToggle("luck","Auto Use Luck Boost");setupPotionToggle("soul","Auto Use Soul Boost");setupPotionToggle("morale","Auto Use Morale Boost");local rollLocations={CFrame.new( -125,5,172),CFrame.new(1,4,172),CFrame.new( -3,3,175),CFrame.new(124,7, -171),CFrame.new( -4,6, -175),CFrame.new( -127,6, -176)};local autoBuyBuildingsActive=false;maketoggle(autoSection,"Auto Buy Buildings",function(enabled) autoBuyBuildingsActive=enabled;if enabled then task.spawn(function() local locIndex=1;while autoBuyBuildingsActive do pcall(function() local char=plr.Character;if (char and char:FindFirstChild("HumanoidRootPart")) then char.HumanoidRootPart.CFrame=rollLocations[locIndex];end for i=1,8 do virtualInputManager:SendKeyEvent(true,Enum.KeyCode.F,false,game);virtualInputManager:SendKeyEvent(false,Enum.KeyCode.F,false,game);task.wait(0.06);end task.wait(0.12);virtualInputManager:SendKeyEvent(true,Enum.KeyCode.R,false,game);virtualInputManager:SendKeyEvent(false,Enum.KeyCode.R,false,game);end);locIndex=locIndex + 1 ;if (locIndex> #rollLocations) then locIndex=1;end task.wait(0.1);end end);end end);local unitLocations={CFrame.new( -99.16,4.6,154.21),CFrame.new(25.42,4.6,154.36),CFrame.new(150.46,4.6,154.32),CFrame.new(98.39,4.6, -154.02),CFrame.new( -25.68,4.6, -154.68),CFrame.new( -149.75,4.6, -154.1)};local autoBuyUnitsActive=false;maketoggle(autoSection,"Auto Buy Units",function(enabled) autoBuyUnitsActive=enabled;if enabled then task.spawn(function() local locIndex=1;while autoBuyUnitsActive do pcall(function() local char=plr.Character;if (char and char:FindFirstChild("HumanoidRootPart")) then char.HumanoidRootPart.CFrame=unitLocations[locIndex];end for i=1,8 do virtualInputManager:SendKeyEvent(true,Enum.KeyCode.F,false,game);virtualInputManager:SendKeyEvent(false,Enum.KeyCode.F,false,game);task.wait(0.06);end task.wait(0.12);virtualInputManager:SendKeyEvent(true,Enum.KeyCode.R,false,game);virtualInputManager:SendKeyEvent(false,Enum.KeyCode.R,false,game);end);locIndex=locIndex + 1 ;if (locIndex> #unitLocations) then locIndex=1;end task.wait(0.1);end end);end end);local autoBuySection=makesection(autoBuyTab,"Weapon Auto Buy Toggles");local allWeapons={"RustyDagger","OakStaff","HuntingBow","IronSword","Pitchfork","BoneClaws","SpikedClub","ShortBow","SteelBroadsword","GuardSpear","Hellfork","Hatchet","EmberStaff","CrystalAxe","ViperFang","VenomDagger","Longsword","HolyScepter","GlacierSpear","FrostStaff","Halberd","BattleAxe","ReinforcedBattleaxe","BoneStaff","ElvenLongbow","BloodRapier","KnightKatana","CrystalGreatsword","MagmaWarhammer","PandoraGreatsword","DarkKatana","CelestialBow","KingsBlade","AbyssalScythe","RoyalDagger","VoidGlaive","Broadsword","Blade","BloodScorcher","EnchantedPoleaxe","Emberblade","Voidweaver","ValkyrieSpear","Glaive","DarkBlade","VoidEdge","Soulreaper","DragonSlayer","AstralScimitar","GenesisReaper"};local weaponTierRanges={{Name="Auto Buy Common Weapons",Start=1,End=8},{Name="Auto Buy Uncommon Weapons",Start=9,End=15},{Name="Auto Buy Rare Weapons",Start=16,End=22},{Name="Auto Buy Epic Weapons",Start=23,End=29},{Name="Auto Buy Legendary Weapons",Start=30,End=36},{Name="Auto Buy Mythic Weapons",Start=37,End=43},{Name="Auto Buy Secret Weapons",Start=44,End=50}};for _,tierInfo in ipairs(weaponTierRanges) do local startIndex=tierInfo.Start;local endIndex=tierInfo.End;local toggleName=tierInfo.Name;local isActive=false;maketoggle(autoBuySection,toggleName,function(enabled,setVisual) isActive=enabled;if enabled then task.spawn(function() while isActive do pcall(function() virtualInputManager:SendKeyEvent(true,Enum.KeyCode.E,false,game);virtualInputManager:SendKeyEvent(false,Enum.KeyCode.E,false,game);end);task.wait(0.4);end end);task.spawn(function() local locIndex=1;while isActive do pcall(function() local char=plr.Character;if (char and char:FindFirstChild("HumanoidRootPart")) then char.HumanoidRootPart.CFrame=rollLocations[locIndex];end end);locIndex=locIndex + 1 ;if (locIndex> #rollLocations) then locIndex=1;end task.wait(0.5);end end);task.spawn(function() for i=startIndex,endIndex do if not isActive then break;end local weaponId=allWeapons[i];if weaponId then pcall(function() local buildEvent=replicatedStorage:WaitForChild("BAD"):WaitForChild("Remotes"):WaitForChild("Build");buildEvent:InvokeServer({action="buyWeapon",id=weaponId});end);end task.wait(0.05);end isActive=false;setVisual(false);end);end end);end local hacksSection=makesection(hacksTab,"Movement & Stat Hacks");local function maketoggleWithTypebar(parentSection,toggleText,defaultVal,callback) local btn=Instance.new("TextButton");btn.Name=toggleText .. "Btn" ;btn.Size=UDim2.new(1,0,0,38);btn.BackgroundColor3=Color3.fromRGB(26,26,26);btn.BorderSizePixel=0;btn.Text=" " .. toggleText ;btn.Font=Enum.Font.FredokaOne;btn.TextSize=12;btn.TextColor3=Color3.fromRGB(180,180,180);btn.TextXAlignment=Enum.TextXAlignment.Left;btn.Parent=parentSection;local bcorner=Instance.new("UICorner");bcorner.CornerRadius=UDim.new(0,8);bcorner.Parent=btn;local textBox=Instance.new("TextBox");textBox.Size=UDim2.new(0,48,0,24);textBox.Position=UDim2.new(1, -98,0.5, -12);textBox.BackgroundColor3=Color3.fromRGB(40,40,40);textBox.BorderSizePixel=0;textBox.Text=tostring(defaultVal);textBox.Font=Enum.Font.FredokaOne;textBox.TextSize=11;textBox.TextColor3=Color3.new(1,1,1);textBox.Parent=btn;local tbcorner=Instance.new("UICorner");tbcorner.CornerRadius=UDim.new(0,6);tbcorner.Parent=textBox;local switchBg=Instance.new("Frame");switchBg.Size=UDim2.new(0,38,0,20);switchBg.Position=UDim2.new(1, -46,0.5, -10);switchBg.BackgroundColor3=Color3.fromRGB(50,50,50);switchBg.BorderSizePixel=0;switchBg.Parent=btn;local switchBgCorner=Instance.new("UICorner");switchBgCorner.CornerRadius=UDim.new(1,0);switchBgCorner.Parent=switchBg;local switchCircle=Instance.new("Frame");switchCircle.Size=UDim2.new(0,14,0,14);switchCircle.Position=UDim2.new(0,3,0.5, -7);switchCircle.BackgroundColor3=Color3.fromRGB(180,180,180);switchCircle.BorderSizePixel=0;switchCircle.Parent=switchBg;local switchCircleCorner=Instance.new("UICorner");switchCircleCorner.CornerRadius=UDim.new(1,0);switchCircleCorner.Parent=switchCircle;local ison=false;local function updateToggleVisual(state) ison=state;activeones[btn]=ison or nil ;if ison then tweenservice:Create(switchBg,TweenInfo.new(0.2),{BackgroundColor3=Color3.fromRGB(70,160,90)}):Play();tweenservice:Create(switchCircle,TweenInfo.new(0.2),{Position=UDim2.new(1, -17,0.5, -7),BackgroundColor3=Color3.fromRGB(255,255,255)}):Play();btn.TextColor3=Color3.new(1,1,1);else tweenservice:Create(switchBg,TweenInfo.new(0.2),{BackgroundColor3=Color3.fromRGB(50,50,50)}):Play();tweenservice:Create(switchCircle,TweenInfo.new(0.2),{Position=UDim2.new(0,3,0.5, -7),BackgroundColor3=Color3.fromRGB(180,180,180)}):Play();btn.TextColor3=Color3.fromRGB(180,180,180);end end btn.MouseButton1Click:Connect(function() if textBox:IsFocused() then return;end local newState= not ison;updateToggleVisual(newState);if callback then callback(newState,textBox);end end);return btn;end local flyActive=false;local flyConnection;local bg,bv;maketoggleWithTypebar(hacksSection,"Fly Hack","5",function(enabled,textBox) flyActive=enabled;pcall(function() local char=plr.Character;local hrp=char and char:FindFirstChild("HumanoidRootPart") ;local hum=char and char:FindFirstChildOfClass("Humanoid") ;if (flyActive and hrp and hum) then hum.PlatformStand=true;bg=Instance.new("BodyGyro");bg.P=90000;bg.maxTorque=Vector3.new(90000,90000,90000);bg.cframe=hrp.CFrame;bg.Parent=hrp;bv=Instance.new("BodyVelocity");bv.velocity=Vector3.new(0,0,0);bv.maxForce=Vector3.new(8999999488,8999999488,8999999488);bv.Parent=hrp;flyConnection=runservice.RenderStepped:Connect(function() local cam=workspace.CurrentCamera;local baseSpeed=tonumber(textBox.Text) or 5 ;local speed=baseSpeed * 50 ;if (hrp and cam and bv and bg) then bg.cframe=cam.CFrame;local moveDir=Vector3.new();if uis:IsKeyDown(Enum.KeyCode.W) then moveDir=moveDir + cam.CFrame.LookVector ;end if uis:IsKeyDown(Enum.KeyCode.S) then moveDir=moveDir-cam.CFrame.LookVector ;end if uis:IsKeyDown(Enum.KeyCode.A) then moveDir=moveDir-cam.CFrame.RightVector ;end if uis:IsKeyDown(Enum.KeyCode.D) then moveDir=moveDir + cam.CFrame.RightVector ;end bv.velocity=moveDir * speed ;end end);else if flyConnection then flyConnection:Disconnect();flyConnection=nil;end if bg then bg:Destroy();bg=nil;end if bv then bv:Destroy();bv=nil;end if hum then hum.PlatformStand=false;end end end);end);local jumpActive=false;local jumpConnection;maketoggleWithTypebar(hacksSection,"Jump Power","100",function(enabled,textBox) jumpActive=enabled;if jumpActive then jumpConnection=runservice.Heartbeat:Connect(function() pcall(function() local char=plr.Character;local humanoid=char and char:FindFirstChildOfClass("Humanoid") ;local val=tonumber(textBox.Text) or 100 ;if humanoid then humanoid.UseJumpPower=true;humanoid.JumpPower=val;end end);end);else if jumpConnection then jumpConnection:Disconnect();jumpConnection=nil;end pcall(function() local humanoid=plr.Character and plr.Character:FindFirstChildOfClass("Humanoid") ;if humanoid then humanoid.JumpPower=50;end end);end end);local speedActive=false;local speedConnection;maketoggleWithTypebar(hacksSection,"Speed Power","75",function(enabled,textBox) speedActive=enabled;if speedActive then speedConnection=runservice.Heartbeat:Connect(function() pcall(function() local char=plr.Character;local humanoid=char and char:FindFirstChildOfClass("Humanoid") ;local val=tonumber(textBox.Text) or 75 ;if humanoid then humanoid.WalkSpeed=val;end end);end);else if speedConnection then speedConnection:Disconnect();speedConnection=nil;end pcall(function() local humanoid=plr.Character and plr.Character:FindFirstChildOfClass("Humanoid") ;if humanoid then humanoid.WalkSpeed=16;end end);end end);local settingsColorsSec=makesection(settingsTab,"Theme & Display Options");local darkModeBtn=Instance.new("TextButton");darkModeBtn.Name="DarkModeBtn";darkModeBtn.Size=UDim2.new(1,0,0,38);darkModeBtn.BackgroundColor3=Color3.fromRGB(26,26,26);darkModeBtn.BorderSizePixel=0;darkModeBtn.Text="Dark Mode";darkModeBtn.Font=Enum.Font.FredokaOne;darkModeBtn.TextSize=12;darkModeBtn.TextColor3=Color3.fromRGB(180,180,180);darkModeBtn.Parent=settingsColorsSec;local dmCorner=Instance.new("UICorner");dmCorner.CornerRadius=UDim.new(0,8);dmCorner.Parent=darkModeBtn;darkModeBtn.MouseButton1Click:Connect(function() darkModeEnabled= not darkModeEnabled;applyDarkMode(darkModeEnabled);darkModeBtn.TextColor3=(darkModeEnabled and Color3.fromRGB(0,180,255)) or Color3.fromRGB(180,180,180) ;end);local themesList={{Name="Cyber",Colors=ColorThemes.cyber},{Name="White",Colors=ColorThemes.white},{Name="Crimson",Colors=ColorThemes.crimson},{Name="Halloween",Colors=ColorThemes.halloween}};for _,themeData in ipairs(themesList) do local themeName=themeData.Name;local themeColors=themeData.Colors;local btn=Instance.new("TextButton");btn.Name=themeName .. "ThemeBtn" ;btn.Size=UDim2.new(1,0,0,36);btn.BackgroundColor3=Color3.fromRGB(28,28,28);btn.Text=themeName;btn.Font=Enum.Font.FredokaOne;btn.TextSize=12;btn.TextColor3=Color3.new(1,1,1);btn.Parent=settingsColorsSec;local cCorner=Instance.new("UICorner");cCorner.CornerRadius=UDim.new(0,8);cCorner.Parent=btn;btn.MouseButton1Click:Connect(function() darkModeEnabled=false;darkModeBtn.TextColor3=Color3.fromRGB(180,180,180);selectedColorSequence=themeColors;updateAllGradientGradients();end);end updateAllGradientGradients();runservice.RenderStepped:Connect(function() local col=getcolor();local secCol=selectedColorSequence[2] or col ;titlegrad.Color=ColorSequence.new({ColorSequenceKeypoint.new(0,col),ColorSequenceKeypoint.new(1,col:Lerp(secCol,0.5))});end);task.spawn(function() while task.wait(0.03) do if borderRotationEnabled then for _,g in ipairs(grads) do g.Rotation=(g.Rotation + 2)%360 ;end end end end);local ismin=false;local tinfo=TweenInfo.new(0.3,Enum.EasingStyle.Quart,Enum.EasingDirection.Out);minbtn.MouseButton1Click:Connect(function() ismin= not ismin;tweenservice:Create(main,tinfo,{Size=(ismin and UDim2.new(0,820,0,48)) or UDim2.new(0,820,0,560) }):Play();end);closebtn.MouseButton1Click:Connect(function() local tw=tweenservice:Create(main,tinfo,{Size=UDim2.new(0,0,0,0)});tw:Play();tw.Completed:Wait();main.Visible=false;tbtn.Visible=true;end);tbtn.MouseButton1Click:Connect(function() tbtn.Visible=false;main.Visible=true;main.Size=UDim2.new(0,0,0,0);local target=(ismin and UDim2.new(0,820,0,48)) or UDim2.new(0,820,0,560) ;tweenservice:Create(main,tinfo,{Size=target}):Play();end);local dragging=false;local dragstart,startpos;dragbar.InputBegan:Connect(function(input) if ((input.UserInputType==Enum.UserInputType.MouseButton1) or (input.UserInputType==Enum.UserInputType.Touch)) then dragging=true;dragstart=input.Position;startpos=main.Position;input.Changed:Connect(function() if (input.UserInputState==Enum.UserInputState.End) then dragging=false;end end);end end);uis.InputChanged:Connect(function(input) if (dragging and ((input.UserInputType==Enum.UserInputType.MouseMovement) or (input.UserInputType==Enum.UserInputType.Touch))) then local delta=input.Position-dragstart ;local targetpos=UDim2.new(startpos.X.Scale,startpos.X.Offset + delta.X ,startpos.Y.Scale,startpos.Y.Offset + delta.Y );tweenservice:Create(main,TweenInfo.new(0.2,Enum.EasingStyle.Sine,Enum.EasingDirection.Out),{Position=targetpos}):Play();end end);end submitKeyBtn.MouseButton1Click:Connect(function() if (keyBox.Text=="Project.fish_build.dungeon123") then keyGui:Destroy();loadMainHub();else keyMsg.TextColor3=Color3.fromRGB(255,60,60);keyMsg.Text="Incorrect Key! Get it from Discord.";end end); end