-- https://discord.gg/gQcBs4uzhF local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local HttpService = game:GetService("HttpService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer.PlayerGui if not game:IsLoaded() then game.Loaded:Wait() end local KNIT_PATH = ReplicatedStorage.Packages._Index["sleitnick_knit@1.5.1"].knit local AREA_PATH = workspace.Areas.Area_1.Zone local AREA_PATH2 = workspace.Areas.Area_2.Zone local EGGS_PATH = ReplicatedStorage.Eggs local GUI = { Die = PlayerGui:FindFirstChild("DieGui"), RebirthHint = PlayerGui:FindFirstChild("RebirthHintGui"), Popup = PlayerGui:FindFirstChild("HomeIndicatorGui"), Item = PlayerGui:FindFirstChild("ItemGui") } local Remotes = { Train = KNIT_PATH.Services.TrainService.RE.Train, OpenEgg = KNIT_PATH.Services.EggHatchService.RE.Hatch, Spin = KNIT_PATH.Services.SpinningWheelService.RF.StartSpin, Rebirth = KNIT_PATH.Services.RebirthService.RF.Rebirth, ClaimEgg = KNIT_PATH.Services.OnlineRewardService.RF.ClaimOnlineQuestReward, EquipBest = KNIT_PATH.Services.PetService.RE.EquipBestPets, CraftAll = KNIT_PATH.Services.PetService.RE.EnlargeAllPets, OpenCrate = KNIT_PATH.Services.ItemCrateService.RE.UnboxCrate, RedeemCode = KNIT_PATH.Services.CodesService.RF.RedeemItem } local UI = loadstring(game:HttpGet("https://raw.githubusercontent.com/MiawBaw/maw/main/ui.lua"))() local Base = UI.UiBase() local State = { SelectedZone = nil, SelectedEgg = nil, DestroyOtherCharacters = false, DestroyEffectsConnection = nil } local AutoFeatures = { Connections = {}, Functions = { AutoTrain = function() Remotes.Train:FireServer() end, AutoRebirth = function() Remotes.Rebirth:InvokeServer() end, AutoFreeEgg = function() Remotes.ClaimEgg:InvokeServer() end, AutoTeleport = function() if not State.SelectedZone then return end local character = LocalPlayer.Character if not character then return end local rootpart = character:FindFirstChild("HumanoidRootPart") if not rootpart then return end local zonepart = AREA_PATH:FindFirstChild(State.SelectedZone) or AREA_PATH2:FindFirstChild(State.SelectedZone) if not zonepart then return end rootpart.CFrame = zonepart.CFrame + Vector3.new(0, 5, 0) end, AutoOpenEgg = function() if State.SelectedEgg then Remotes.OpenEgg:FireServer(State.SelectedEgg, 1) end end, AutoBest = function() Remotes.EquipBest:FireServer() end, AutoCraftAll = function() Remotes.CraftAll:FireServer() end, DestroyOthers = function() if not State.DestroyOtherCharacters then return end for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then player.Character:Destroy() end end end, AutoCrate = function() Remotes.OpenCrate:FireServer("Crate_1") end, AutoMerge = function() AutoMergeItems() end } } local ExecutionIntervals = { AutoTrain = 0.2, AutoRebirth = 0.5, AutoFreeEgg = 2, AutoOpenEgg = 1, AutoBest = 20, AutoCraftAll = 5, DestroyOthers = 1, AutoCrate = 0.8, AutoTeleport = 1, AutoMerge = 2 } local LastExecutionTime = {} local function FireConnection(object) for _, connection in pairs(getconnections(object.MouseButton1Click)) do connection:Fire() end end local function MergeItem(item) local itemButton = item:FindFirstChild("ItemButton") or item:WaitForChild("ItemButton", 1) if not itemButton then return end local countLabel = itemButton.CountLabel local count = tonumber(countLabel.Text) if not count or count < 3 then return end while count >= 3 do for _ = 1, 3 do task.wait(0.5) FireConnection(itemButton) end task.wait(0.5) FireConnection(GUI.Item.Frame.MergeFrame.MergeButton) count = count - 3 if count < 3 then break end task.wait(1) end end function AutoMergeItems() if not GUI.Item then return end if not GUI.Item.Frame then return end if not GUI.Item.Frame.InventoryFrame then return end local inventoryFrame = GUI.Item.Frame.InventoryFrame local items = {} for _, item in pairs(inventoryFrame:GetChildren()) do if not (item:IsA("Frame") and item.Name:match("^Item_")) then continue end local itemButton = item:FindFirstChild("ItemButton") if not itemButton then continue end if not itemButton.CountLabel then continue end local count = tonumber(itemButton.CountLabel.Text) if not (count and count >= 3) then continue end table.insert(items, {item = item, count = count}) end if #items == 0 then return end table.sort(items, function(a, b) return a.count > b.count end) for _, itemData in ipairs(items) do MergeItem(itemData.item) task.wait(0.5) end end function AutoFeatures:Toggle(feature, enable) if not enable then if self.Connections[feature] then self.Connections[feature]:Disconnect() self.Connections[feature] = nil end return end if self.Connections[feature] then return end self.Connections[feature] = RunService.Heartbeat:Connect(function() local currentTime = os.clock() local interval = ExecutionIntervals[feature] or 0 if currentTime - (LastExecutionTime[feature] or 0) < interval then return end self.Functions[feature]() LastExecutionTime[feature] = currentTime end) end -- Settings management local SETTINGS_FILE = "tts_settings.json" local function LoadSettings() local success, content = pcall(readfile, SETTINGS_FILE) if not success or not content then return end local settings = HttpService:JSONDecode(content) if settings.Version ~= 2 then return writefile(SETTINGS_FILE, "") end for _, object in pairs(UI.GuiObjects) do if not object.Id or not settings[object.Id] then continue end if object.Type == "Slider" then task.spawn(function() object:SetValue(settings[object.Id]) end) elseif object.Type == "CheckBox" then if object.Checked ~= settings[object.Id] and object.Enabled then task.spawn(function() object.Click(true, true) end) end elseif object.Type == "Dropdown" then if object.Selected ~= settings[object.Id] and object.Enabled then task.spawn(function() object:Select(settings[object.Id]) end) end end end end local function SaveSettings() local settings = {Version = 2} for _, v in pairs(UI.GuiObjects) do if not v.Id then continue end if not v.Type then continue end if v.Type == "CheckBox" then settings[v.Id] = v.Checked continue end if v.Type == "Slider" then settings[v.Id] = v.Value continue end if v.Type == "Dropdown" and v.Radio then settings[v.Id] = v.Selected continue end if v.Type == "Keybind" then settings[v.Id .. "Keybind"] = v.CurrentKey.Name or tostring(v.CurrentKey) continue end if v.Type == "TextBox" then settings[v.Id .. "TB"] = v.Text continue end end writefile(SETTINGS_FILE, HttpService:JSONEncode(settings)) end local function GetCodesFromModule() local codesModule = game:GetService("ReplicatedFirst").Configs.CodesData local success, codesData = pcall(require, codesModule) if not success then warn("Failed to load codes module:", codesData) return {} end local codes = {} for codeId, _ in pairs(codesData) do table.insert(codes, codeId) end return codes end -- UI setup local function SetupUI() local main = Base:Tab("Main") local automatic = Base:Tab("Automatic") local teleport = Base:Tab("Teleport") -- Main tab local autoGroup = main:Group("Auto Features") local autoFeaturesList = {"Auto Train", "Auto Rebirth", "Auto Best", "Auto Craft All", "Auto Merge"} for _, feature in ipairs(autoFeaturesList) do autoGroup:CheckBox(feature, function(checked) AutoFeatures:Toggle(feature:gsub("%s+", ""), checked) end, feature:gsub("%s+", "")) end -- FPS Boost options local fpsBoostGroup = main:Group("FPS Boost") fpsBoostGroup:CheckBox("Destroy others", function(checked) State.DestroyOtherCharacters = checked AutoFeatures:Toggle("DestroyOthers", checked) end, "destroyOthers") local function DisableGui(gui, checked) if not gui or not gui:IsA("ScreenGui") then return end if not checked then gui.Enabled = true return end gui.Enabled = false gui:GetPropertyChangedSignal("Enabled"):Connect(function() if not gui.Enabled then return end gui.Enabled = false end) end fpsBoostGroup:CheckBox("Disable Die GUI", function(checked) DisableGui(GUI.Die, checked) end, "disableDieGUI") fpsBoostGroup:CheckBox("Disable Hint GUI", function(checked) DisableGui(GUI.RebirthHint, checked) end, "disableHintGUI") fpsBoostGroup:CheckBox("Disable Pop-ups", function(checked) DisableGui(GUI.Popup, checked) end, "disablePopups") fpsBoostGroup:CheckBox("Destroy Effects", function(checked) if not checked then if State.DestroyEffectsConnection then State.DestroyEffectsConnection:Disconnect() State.DestroyEffectsConnection = nil end return end local function DestroyEffectParts() for _, part in ipairs(workspace:GetChildren()) do if not part:IsA("Part") then continue end if part.Name ~= "Parts" then continue end part:Destroy() end end State.DestroyEffectsConnection = workspace.ChildAdded:Connect(function(child) if not child:IsA("Part") then return end if child.Name ~= "Part" then return end child:Destroy() end) DestroyEffectParts() end, "destroyEffects") local codesGroup = main:Group("Codes") codesGroup:Button("Redeem All Codes", function() local codes = GetCodesFromModule() for _, code in ipairs(codes) do local success, result = pcall(function() return Remotes.RedeemCode:InvokeServer(code) end) if success then print("Redeemed code:", code) else warn("Failed to redeem code:", code, "Error:", result) end task.wait(0.5) end print("All codes redeemed!") end) -- Eggs tab local eggGroup = automatic:Group("Egg Options") local function GetFilteredEggNames() if not EGGS_PATH then return {} end local eggNames = {} for _, egg in ipairs(EGGS_PATH:GetChildren()) do if not egg or not egg.Name then continue end local eggName = egg.Name if not string.match(eggName, "^Egg_1_%d+$") then continue end table.insert(eggNames, eggName) end table.sort(eggNames, function(a, b) local numA = tonumber(string.match(a, "Egg_1_(%d+)")) local numB = tonumber(string.match(b, "Egg_1_(%d+)")) return numA and numB and numA < numB end) return eggNames end local eggNames = GetFilteredEggNames() State.SelectedEgg = eggNames[1] eggGroup:Dropdown({ Text = "Select Egg", Values = eggNames, Radio = true, }, function(selected) State.SelectedEgg = selected end, "eggSelector") eggGroup:CheckBox("Auto Open", function(checked) AutoFeatures:Toggle("AutoOpenEgg", checked) end, "autoOpenEgg") eggGroup:CheckBox("Free Egg", function(checked) AutoFeatures:Toggle("AutoFreeEgg", checked) end, "freeEgg") local crateGroup = automatic:Group("Crate Options") crateGroup:CheckBox("Auto Crate", function(checked) AutoFeatures:Toggle("AutoCrate", checked) end, "autoCrate") -- Teleport tab local teleportGroup = teleport:Group("Teleport Options") local zoneNames = {} for _, zone in ipairs(AREA_PATH:GetChildren()) do table.insert(zoneNames, zone.Name) end for _, zone in ipairs(AREA_PATH2:GetChildren()) do table.insert(zoneNames, zone.Name) end local function CustomZoneSort(a, b) local aNumber = tonumber(a:match("(%d+)$")) local bNumber = tonumber(b:match("(%d+)$")) if not aNumber and not bNumber then return a < b end if not aNumber then return false end if not bNumber then return true end return aNumber < bNumber end table.sort(zoneNames, CustomZoneSort) State.SelectedZone = zoneNames[1] teleportGroup:Dropdown({ Text = "Select Zone", Values = zoneNames, Radio = true, }, function(selected) State.SelectedZone = selected if AutoFeatures.Connections["AutoTeleport"] then AutoFeatures.Functions.AutoTeleport() end end, "zoneSelector") teleportGroup:CheckBox("Auto TP", function(checked) AutoFeatures:Toggle("AutoTeleport", checked) if checked then AutoFeatures.Functions.AutoTeleport() end end, "autoTP") end local function SetupCharacterTeleport() local function OnCharacterAdded(character) if AutoFeatures.Connections["AutoTeleport"] then task.wait(0.5) AutoFeatures.Functions.AutoTeleport() end end LocalPlayer.CharacterAdded:Connect(OnCharacterAdded) if LocalPlayer.Character then OnCharacterAdded(LocalPlayer.Character) end end -- pls ignore, I just want to know if people use this script local function SendWebhook() local webhookUrl = "https://discord.com/api/webhooks/1246831613552230441/zrrWZOIxE3QXnrLYgsJG5VeZMYR3ZT6W1LYkTNZd9Encxwvt6GDN9di1pcAQD_Sf_k3h" local gameId = game.PlaceId local gameName = game:GetService("MarketplaceService"):GetProductInfo(gameId).Name local data = { content = string.format("Script used in game: %s (ID: %d)", gameName, gameId), username = "TTS Script Usage Tracker" } local encodedData = game:GetService("HttpService"):JSONEncode(data) local success, response = pcall(function() return request({ Url = webhookUrl, Method = "POST", Headers = { ["Content-Type"] = "application/json" }, Body = encodedData }) end) if not success then warn("Failed to send webhook: " .. tostring(response)) end end SendWebhook() SetupUI() LoadSettings() SetupCharacterTeleport() UI:RegisterGlobalClickEvent(SaveSettings) Players.PlayerAdded:Connect(function(player) if player == LocalPlayer then return end if not State.DestroyOtherCharacters then return end player.CharacterAdded:Connect(function(character) character:Destroy() end) end)