Thunder_beast

Tds recreate

Apr 14th, 2026
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 20.25 KB | None | 0 0
  1. local Globals = getgenv()
  2.  
  3. local PlayersService = game:GetService("Players")
  4. local TeleportService = game:GetService("TeleportService")
  5. local LocalPlayer = PlayersService.LocalPlayer or PlayersService.PlayerAdded:Wait()
  6.  
  7. local AntiStuck = nil
  8.  
  9. local function StartAntiStuck()
  10.     local function StuckState()
  11.         local isLoading = LocalPlayer:GetAttribute("Loading") == true
  12.         local isTeleporting = LocalPlayer:GetAttribute("Teleporting") == true
  13.  
  14.         if isLoading or isTeleporting then
  15.             if not AntiStuck then
  16.                 AntiStuck = task.spawn(function()
  17.                     task.wait(60)
  18.                     pcall(function()
  19.                         TeleportService:Teleport(3260590327)
  20.                     end)
  21.                 end)
  22.             end
  23.         else
  24.             if AntiStuck then
  25.                 task.cancel(AntiStuck)
  26.                 AntiStuck = nil
  27.             end
  28.         end
  29.     end
  30.  
  31.     LocalPlayer:GetAttributeChangedSignal("Loading"):Connect(StuckState)
  32.     LocalPlayer:GetAttributeChangedSignal("Teleporting"):Connect(StuckState)
  33.  
  34.     StuckState()
  35. end
  36.  
  37. StartAntiStuck()
  38.  
  39. if not game:IsLoaded() then game.Loaded:Wait() end
  40.  
  41. -- // services & main refs
  42. local UserInputService = game:GetService("UserInputService")
  43. local VirtualUser = game:GetService("VirtualUser")
  44. local RunService = game:GetService("RunService")
  45. local MarketplaceService = game:GetService("MarketplaceService")
  46. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  47. local PathfindingService = game:GetService("PathfindingService")
  48. local HttpService = game:GetService("HttpService")
  49. local RemoteFunc = ReplicatedStorage:WaitForChild("RemoteFunction")
  50. local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
  51. local mouse = LocalPlayer:GetMouse()
  52. local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
  53. local FileName = "ADS_Config.json"
  54.  
  55. task.spawn(function()
  56.     local function DisableIdled()
  57.         local success, connections = pcall(getconnections, LocalPlayer.Idled)
  58.         if success then
  59.             for _, v in pairs(connections) do
  60.                 v:Disable()
  61.             end
  62.         end
  63.     end
  64.  
  65.     DisableIdled()
  66. end)
  67.  
  68. task.spawn(function()
  69.     LocalPlayer.Idled:Connect(function()
  70.         VirtualUser:CaptureController()
  71.         VirtualUser:ClickButton2(Vector2.new(0, 0))
  72.     end)
  73. end)
  74.  
  75. task.spawn(function()
  76.     local CoreGui = game:GetService("CoreGui")
  77.     local overlay = CoreGui:WaitForChild("RobloxPromptGui"):WaitForChild("promptOverlay")
  78.  
  79.     overlay.ChildAdded:Connect(function(child)
  80.         if child.Name == 'ErrorPrompt' then
  81.             while true do
  82.                 TeleportService:Teleport(3260590327)
  83.                 task.wait(5)
  84.             end
  85.         end
  86.     end)
  87. end)
  88.  
  89. task.spawn(function()
  90.     pcall(function()
  91.         RemoteFunc:InvokeServer("Settings", "Update", "Show Nametags", false)
  92.     end)
  93. end)
  94.  
  95. local function IdentifyGameState()
  96.     local players = game:GetService("Players")
  97.     local TempPlayer = players.LocalPlayer or players.PlayerAdded:Wait()
  98.     local TempGui = TempPlayer:WaitForChild("PlayerGui")
  99.  
  100.     while true do
  101.         if TempGui:FindFirstChild("ReactLobbyHud") then
  102.             return "LOBBY"
  103.         elseif TempGui:FindFirstChild("ReactUniversalHotbar") then
  104.             return "GAME"
  105.         end
  106.         task.wait(1)
  107.     end
  108. end
  109.  
  110. local GameState = IdentifyGameState()
  111.  
  112. local function StartAntiAfk()
  113.     task.spawn(function()
  114.         local LobbyTimer = 0
  115.         while GameState == "LOBBY" do
  116.             task.wait(1)
  117.             LobbyTimer = LobbyTimer + 1
  118.             if LobbyTimer >= 600 then
  119.                 TeleportService:Teleport(3260590327)
  120.                 break
  121.             end
  122.         end
  123.     end)
  124. end
  125.  
  126. StartAntiAfk()
  127.  
  128. local SendRequest = request or http_request or httprequest
  129.     or GetDevice and GetDevice().request
  130.  
  131. if not SendRequest then
  132.     warn("failure: no http function")
  133.     return
  134. end
  135.  
  136. local BackToLobbyRunning = false
  137. local AutoPickupsRunning = false
  138. local AutoSkipRunning = false
  139. local AutoClaimRewards = false
  140. local AntiLagRunning = false
  141. local AutoChainRunning = false
  142. local AutoDjRunning = false
  143. local AutoNecroRunning = false
  144. local TimeScaleRunning = false
  145. local TimeScaleNoTicketsWarned = false
  146. local AutoMercenaryBaseRunning = false
  147. local AutoMilitaryBaseRunning = false
  148. local SellFarmsRunning = false
  149. local AutoGatlingRunning = false
  150. local GatlingExecuted = false
  151. local AutoPremiumRunning = false
  152.  
  153. local MaxPathDistance = 300 -- default
  154. local MilMarker = nil
  155. local MercMarker = nil
  156.  
  157. local CurrentEquippedTowers = {"None"}
  158.  
  159. local StackEnabled = false
  160. local SelectedTower = nil
  161. local StackSphere = nil
  162.  
  163. local AllModifiers = {
  164.     "HiddenEnemies", "Glass", "ExplodingEnemies", "Limitation",
  165.     "Committed", "HealthyEnemies", "Fog", "FlyingEnemies",
  166.     "Broke", "SpeedyEnemies", "Quarantine", "JailedTowers", "Inflation"
  167. }
  168.  
  169. local DefaultSettings = {
  170.     PathVisuals = false,
  171.     MilitaryPath = false,
  172.     MercenaryPath = false,
  173.     AutoSkip = false,
  174.     AutoChain = false,
  175.     AutoGatling = false,
  176.     AutoPremium = false,
  177.     SupportCaravan = false,
  178.     AutoDJ = false,
  179.     AutoNecro = false,
  180.     AutoRejoin = true,
  181.     TimeScaleEnabled = false,
  182.     TimeScaleValue = 2,
  183.     SellFarms = false,
  184.     AutoMercenary = false,
  185.     AutoMilitary = false,
  186.     Frost = false,
  187.     Fallen = false,
  188.     Easy = false,
  189.     AntiLag = false,
  190.     Disable3DRendering = false,
  191.     AutoPickups = false,
  192.     ClaimRewards = false,
  193.     SendWebhook = false,
  194.     NoRecoil = false,
  195.     SellFarmsWave = 1,
  196.     WebhookURL = "",
  197.     PickupMethod = "Pathfinding",
  198.     StreamerMode = false,
  199.     HideUsername = true,
  200.     StreamerName = "",
  201.     tagName = "None",
  202.     Modifiers = {}
  203. }
  204.  
  205. local TimeScaleValues = {0.5, 1, 1.5, 2}
  206.  
  207. local function NormalizeTimeScaleValue(val)
  208.     val = tonumber(val)
  209.     if not val then
  210.         return nil
  211.     end
  212.     for _, v in ipairs(TimeScaleValues) do
  213.         if v == val then
  214.             return v
  215.         end
  216.     end
  217.     return nil
  218. end
  219.  
  220. local function CoerceTimeScaleValue(val, fallback)
  221.     return NormalizeTimeScaleValue(val) or fallback
  222. end
  223.  
  224. local function GetTimescaleFrame()
  225.     local hotbar = PlayerGui:FindFirstChild("ReactUniversalHotbar")
  226.     local frame = hotbar and hotbar:FindFirstChild("Frame")
  227.     return frame and frame:FindFirstChild("timescale")
  228. end
  229.  
  230. local StartTimeScale
  231. local ApplyTimeScaleOnce
  232.  
  233. local LastState = {}
  234.  
  235. -- // icon item ids ill add more soon arghh
  236. local ItemNames = {
  237.     ["17447507910"] = "Timescale Ticket(s)",
  238.     ["17438486690"] = "Range Flag(s)",
  239.     ["17438486138"] = "Damage Flag(s)",
  240.     ["17438487774"] = "Cooldown Flag(s)",
  241.     ["17429537022"] = "Blizzard(s)",
  242.     ["17448596749"] = "Napalm Strike(s)",
  243.     ["18493073533"] = "Spin Ticket(s)",
  244.     ["17429548305"] = "Supply Drop(s)",
  245.     ["18443277308"] = "Low Grade Consumable Crate(s)",
  246.     ["136180382135048"] = "Santa Radio(s)",
  247.     ["18443277106"] = "Mid Grade Consumable Crate(s)",
  248.     ["18443277591"] = "High Grade Consumable Crate(s)",
  249.     ["132155797622156"] = "Christmas Tree(s)",
  250.     ["124065875200929"] = "Fruit Cake(s)",
  251.     ["17429541513"] = "Barricade(s)",
  252.     ["110415073436604"] = "Holy Hand Grenade(s)",
  253.     ["17429533728"] = "Frag Grenade(s)",
  254.     ["17437703262"] = "Molotov(s)",
  255.     ["139414922355803"] = "Present Clusters(s)"
  256. }
  257.  
  258. -- // tower management core
  259. TDS = {
  260.     PlacedTowers = {},
  261.     ActiveStrat = true,
  262.     MatchmakingMap = {
  263.         ["Hardcore"] = "hardcore",
  264.         ["PizzaParty"] = "halloween",
  265.         ["Badlands"] = "badlands",
  266.         ["PollutedWasteland"] = "polluted",
  267.         ["DuckyEasy"] = "ducky2025",
  268.         ["DuckyHard"] = "ducky2025"
  269.     }
  270. }
  271. TDS["placed_towers"] = TDS.PlacedTowers
  272. TDS["active_strat"] = TDS.ActiveStrat
  273. TDS["matchmaking_map"] = TDS.MatchmakingMap
  274.  
  275. local UpgradeHistory = {}
  276.  
  277. -- // shared for addons
  278. shared.TDSTable = TDS
  279. shared["TDS_Table"] = TDS
  280.  
  281. -- // load & save
  282. local function SaveSettings()
  283.     local DataToSave = {}
  284.     for key, _ in pairs(DefaultSettings) do
  285.         DataToSave[key] = Globals[key]
  286.     end
  287.     writefile(FileName, HttpService:JSONEncode(DataToSave))
  288. end
  289.  
  290. local function LoadSettings()
  291.     if isfile(FileName) then
  292.         local success, data = pcall(function()
  293.             return HttpService:JSONDecode(readfile(FileName))
  294.         end)
  295.  
  296.         if success and type(data) == "table" then
  297.             for key, DefaultVal in pairs(DefaultSettings) do
  298.                 if data[key] ~= nil then
  299.                     Globals[key] = data[key]
  300.                 else
  301.                     Globals[key] = DefaultVal
  302.                 end
  303.             end
  304.             return
  305.         end
  306.     end
  307.  
  308.     for key, value in pairs(DefaultSettings) do
  309.         Globals[key] = value
  310.     end
  311.     SaveSettings()
  312. end
  313.  
  314. local function SetSetting(name, value)
  315.     if DefaultSettings[name] ~= nil then
  316.         if name == "TimeScaleValue" then
  317.             value = CoerceTimeScaleValue(value, Globals.TimeScaleValue or 2)
  318.         end
  319.         Globals[name] = value
  320.         SaveSettings()
  321.     end
  322. end
  323.  
  324. local function Apply3dRendering()
  325.     if Globals.Disable3DRendering then
  326.         game:GetService("RunService"):Set3dRenderingEnabled(false)
  327.     else
  328.         RunService:Set3dRenderingEnabled(true)
  329.     end
  330.     local PlayerGui = LocalPlayer:FindFirstChild("PlayerGui")
  331.     local gui = PlayerGui and PlayerGui:FindFirstChild("ADS_BlackScreen")
  332.     if Globals.Disable3DRendering then
  333.         if PlayerGui and not gui then
  334.             gui = Instance.new("ScreenGui")
  335.             gui.Name = "ADS_BlackScreen"
  336.             gui.IgnoreGuiInset = true
  337.             gui.ResetOnSpawn = false
  338.             gui.DisplayOrder = -1000
  339.             gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  340.             gui.Parent = PlayerGui
  341.             local frame = Instance.new("Frame")
  342.             frame.Name = "Cover"
  343.             frame.BackgroundColor3 = Color3.new(0, 0, 0)
  344.             frame.BorderSizePixel = 0
  345.             frame.Size = UDim2.fromScale(1, 1)
  346.             frame.ZIndex = 0
  347.             frame.Parent = gui
  348.         end
  349.         gui.Enabled = true
  350.     else
  351.         if gui then
  352.             gui.Enabled = false
  353.         end
  354.     end
  355. end
  356.  
  357. LoadSettings()
  358. Globals.TimeScaleValue = CoerceTimeScaleValue(Globals.TimeScaleValue, 2)
  359. Apply3dRendering()
  360.  
  361. Globals.HideUsername = true
  362. SetSetting("HideUsername", true)
  363.  
  364. local isTagChangerRunning = false
  365. local tagChangerConn = nil
  366. local tagChangerTag = nil
  367. local tagChangerOrig = nil
  368.  
  369. local function collectTagOptions()
  370.     local list = {}
  371.     local seen = {}
  372.     local function addFolder(folder)
  373.         if not folder then
  374.             return
  375.         end
  376.         for _, child in ipairs(folder:GetChildren()) do
  377.             local childName = child.Name
  378.             if childName and not seen[childName] then
  379.                 seen[childName] = true
  380.                 list[#list + 1] = childName
  381.             end
  382.         end
  383.     end
  384.     local content = ReplicatedStorage:FindFirstChild("Content")
  385.     if content then
  386.         local nametag = content:FindFirstChild("Nametag")
  387.         if nametag then
  388.             addFolder(nametag:FindFirstChild("Basic"))
  389.             addFolder(nametag:FindFirstChild("Exclusive"))
  390.         end
  391.     end
  392.     table.sort(list)
  393.     table.insert(list, 1, "None")
  394.     return list
  395. end
  396.  
  397. local function stopTagChanger()
  398.     if tagChangerConn then
  399.         tagChangerConn:Disconnect()
  400.         tagChangerConn = nil
  401.     end
  402.     if tagChangerTag and tagChangerTag.Parent and tagChangerOrig ~= nil then
  403.         pcall(function()
  404.             tagChangerTag.Value = tagChangerOrig
  405.         end)
  406.     end
  407.     tagChangerTag = nil
  408.     tagChangerOrig = nil
  409. end
  410.  
  411. local function startTagChanger()
  412.     if isTagChangerRunning then
  413.         return
  414.     end
  415.     isTagChangerRunning = true
  416.     task.spawn(function()
  417.         while Globals.tagName and Globals.tagName ~= "" and Globals.tagName ~= "None" do
  418.             local tag = LocalPlayer:FindFirstChild("Tag")
  419.             if tag then
  420.                 if tagChangerTag ~= tag then
  421.                     if tagChangerConn then
  422.                         tagChangerConn:Disconnect()
  423.                         tagChangerConn = nil
  424.                     end
  425.                     tagChangerTag = tag
  426.                     if tagChangerOrig == nil then
  427.                         tagChangerOrig = tag.Value
  428.                     end
  429.                 end
  430.                 if tag.Value ~= Globals.tagName then
  431.                     tag.Value = Globals.tagName
  432.                 end
  433.                 if not tagChangerConn then
  434.                     tagChangerConn = tag:GetPropertyChangedSignal("Value"):Connect(function()
  435.                         if Globals.tagName and Globals.tagName ~= "" and Globals.tagName ~= "None" then
  436.                             if tag.Value ~= Globals.tagName then
  437.                                 tag.Value = Globals.tagName
  438.                             end
  439.                         end
  440.                     end)
  441.                 end
  442.             end
  443.             task.wait(0.5)
  444.         end
  445.         isTagChangerRunning = false
  446.     end)
  447. end
  448.  
  449. if Globals.tagName and Globals.tagName ~= "" and Globals.tagName ~= "None" then
  450.     startTagChanger()
  451. end
  452.  
  453. local OriginalDisplayName = LocalPlayer.DisplayName
  454. local OriginalUserName = LocalPlayer.Name
  455.  
  456. local SpoofTextCache = setmetatable({}, {__mode = "k"})
  457. local PrivacyRunning = false
  458. local LastSpoofName = nil
  459. local PrivacyConns = {}
  460. local PrivacyTextNodes = setmetatable({}, {__mode = "k"})
  461. local StreamerTag = nil
  462. local StreamerTagOrig = nil
  463. local StreamerTagConn = nil
  464.  
  465. local function AddPrivacyConn(conn)
  466.     if conn then
  467.         PrivacyConns[#PrivacyConns + 1] = conn
  468.     end
  469. end
  470.  
  471. local function ClearPrivacyConns()
  472.     for _, c in ipairs(PrivacyConns) do
  473.         pcall(function()
  474.             c:Disconnect()
  475.         end)
  476.     end
  477.     PrivacyConns = {}
  478.     for inst in pairs(PrivacyTextNodes) do
  479.         PrivacyTextNodes[inst] = nil
  480.     end
  481. end
  482.  
  483. local function MakeSpoofName()
  484.     return "BelowNatural"
  485. end
  486.  
  487. local function EnsureSpoofName()
  488.     local nm = Globals.StreamerName
  489.     if not nm or nm == "" then
  490.         nm = MakeSpoofName()
  491.         SetSetting("StreamerName", nm)
  492.     end
  493.     return nm
  494. end
  495.  
  496. local function IsTagChangerActive()
  497.     return Globals.tagName and Globals.tagName ~= "" and Globals.tagName ~= "None"
  498. end
  499.  
  500. local function SetLocalDisplayName(nm)
  501.     if not nm or nm == "" then
  502.         return
  503.     end
  504.     pcall(function()
  505.         LocalPlayer.DisplayName = nm
  506.     end)
  507. end
  508.  
  509. local function ReplacePlain(str, old, new)
  510.     if not str or str == "" or not old or old == "" or old == new then
  511.         return str, false
  512.     end
  513.     local start = 1
  514.     local out = {}
  515.     local changed = false
  516.     while true do
  517.         local i, j = string.find(str, old, start, true)
  518.         if not i then
  519.             out[#out + 1] = string.sub(str, start)
  520.             break
  521.         end
  522.         changed = true
  523.         out[#out + 1] = string.sub(str, start, i - 1)
  524.         out[#out + 1] = new
  525.         start = j + 1
  526.     end
  527.     if changed then
  528.         return table.concat(out), true
  529.     end
  530.     return str, false
  531. end
  532.  
  533. local function ApplySpoofToInstance(inst, OldA, OldB, NewName)
  534.     if not inst then
  535.         return
  536.     end
  537.     if inst:IsA("TextLabel") or inst:IsA("TextButton") or inst:IsA("TextBox") then
  538.         local txt = inst.Text
  539.         if type(txt) == "string" and txt ~= "" then
  540.             local HasA = OldA and OldA ~= "" and string.find(txt, OldA, 1, true)
  541.             local HasB = OldB and OldB ~= "" and string.find(txt, OldB, 1, true)
  542.             if not HasA and not HasB then
  543.                 return
  544.             end
  545.             local t = txt
  546.             local changed = false
  547.             local ch
  548.             if OldA and OldA ~= "" then
  549.                 t, ch = ReplacePlain(t, OldA, NewName)
  550.                 if ch then changed = true end
  551.             end
  552.             if OldB and OldB ~= "" then
  553.                 t, ch = ReplacePlain(t, OldB, NewName)
  554.                 if ch then changed = true end
  555.             end
  556.             if changed then
  557.                 if SpoofTextCache[inst] == nil then
  558.                     SpoofTextCache[inst] = txt
  559.                 end
  560.                 inst.Text = t
  561.             end
  562.         end
  563.     end
  564. end
  565.  
  566. local function RestoreSpoofText()
  567.     for inst, txt in pairs(SpoofTextCache) do
  568.         if inst and inst.Parent then
  569.             pcall(function()
  570.                 inst.Text = txt
  571.             end)
  572.         end
  573.         SpoofTextCache[inst] = nil
  574.     end
  575. end
  576.  
  577. local function GetPrivacyName()
  578.     if Globals.StreamerMode then
  579.         return EnsureSpoofName()
  580.     end
  581.     if Globals.HideUsername then
  582.         return "████████"
  583.     end
  584.     return nil
  585. end
  586.  
  587. local function AddPrivacyNode(inst)
  588.     if not (inst:IsA("TextLabel") or inst:IsA("TextButton") or inst:IsA("TextBox")) then
  589.         return
  590.     end
  591.     PrivacyTextNodes[inst] = true
  592.     local nm = GetPrivacyName()
  593.     if nm then
  594.         ApplySpoofToInstance(inst, OriginalDisplayName, OriginalUserName, nm)
  595.     end
  596. end
  597.  
  598. local function HookPrivacyRoot(root)
  599.     if not root then
  600.         return
  601.     end
  602.     for _, inst in ipairs(root:GetDescendants()) do
  603.         AddPrivacyNode(inst)
  604.     end
  605.     AddPrivacyConn(root.DescendantAdded:Connect(function(inst)
  606.         if GetPrivacyName() then
  607.             AddPrivacyNode(inst)
  608.         end
  609.     end))
  610. end
  611.  
  612. local function SweepPrivacyText(nm)
  613.     for inst in pairs(PrivacyTextNodes) do
  614.         if inst and inst.Parent then
  615.             ApplySpoofToInstance(inst, OriginalDisplayName, OriginalUserName, nm)
  616.         else
  617.             PrivacyTextNodes[inst] = nil
  618.         end
  619.     end
  620. end
  621.  
  622. local function ApplyStreamerTag()
  623.     if IsTagChangerActive() then
  624.         if StreamerTagConn then
  625.             StreamerTagConn:Disconnect()
  626.             StreamerTagConn = nil
  627.         end
  628.         StreamerTag = nil
  629.         StreamerTagOrig = nil
  630.         return
  631.     end
  632.     local nm = EnsureSpoofName()
  633.     local tag = LocalPlayer:FindFirstChild("Tag")
  634.     if not tag then
  635.         return
  636.     end
  637.     if StreamerTag and StreamerTag ~= tag then
  638.         if StreamerTagConn then
  639.             StreamerTagConn:Disconnect()
  640.             StreamerTagConn = nil
  641.         end
  642.     end
  643.     if StreamerTag ~= tag then
  644.         StreamerTag = tag
  645.         StreamerTagOrig = tag.Value
  646.     end
  647.     if tag.Value ~= nm then
  648.         tag.Value = nm
  649.     end
  650.     if StreamerTagConn then
  651.         StreamerTagConn:Disconnect()
  652.         StreamerTagConn = nil
  653.     end
  654.     StreamerTagConn = tag:GetPropertyChangedSignal("Value"):Connect(function()
  655.         if not Globals.StreamerMode then
  656.             return
  657.         end
  658.         if IsTagChangerActive() then
  659.             return
  660.         end
  661.         local nm2 = EnsureSpoofName()
  662.         if tag.Value ~= nm2 then
  663.             tag.Value = nm2
  664.         end
  665.     end)
  666. end
  667.  
  668. local function RestoreStreamerTag()
  669.     if StreamerTagConn then
  670.         StreamerTagConn:Disconnect()
  671.         StreamerTagConn = nil
  672.     end
  673.     if IsTagChangerActive() then
  674.         StreamerTag = nil
  675.         StreamerTagOrig = nil
  676.         return
  677.     end
  678.     if StreamerTag and StreamerTag.Parent and StreamerTagOrig ~= nil then
  679.         pcall(function()
  680.             StreamerTag.Value = StreamerTagOrig
  681.         end)
  682.     end
  683.     StreamerTag = nil
  684.     StreamerTagOrig = nil
  685. end
  686.  
  687. local function ApplyPrivacyOnce()
  688.     local nm = GetPrivacyName()
  689.     if not nm then
  690.         return
  691.     end
  692.     if LastSpoofName and LastSpoofName ~= nm then
  693.         RestoreSpoofText()
  694.     end
  695.     if Globals.StreamerMode then
  696.         ApplyStreamerTag()
  697.     else
  698.         RestoreStreamerTag()
  699.     end
  700.     SetLocalDisplayName(nm)
  701.     SweepPrivacyText(nm)
  702.     LastSpoofName = nm
  703. end
  704.  
  705. local function StopPrivacyMode()
  706.     ClearPrivacyConns()
  707.     RestoreSpoofText()
  708.     LastSpoofName = nil
  709.     RestoreStreamerTag()
  710.     SetLocalDisplayName(OriginalDisplayName)
  711.     PrivacyRunning = false
  712. end
  713.  
  714. local function StartPrivacyMode()
  715.     if PrivacyRunning then
  716.         return
  717.     end
  718.     PrivacyRunning = true
  719.     ClearPrivacyConns()
  720.     ApplyPrivacyOnce()
  721.     local pg = LocalPlayer:FindFirstChild("PlayerGui")
  722.     if pg then
  723.         HookPrivacyRoot(pg)
  724.     end
  725.     local CoreGui = game:GetService("Co
Advertisement
Add Comment
Please, Sign In to add comment