1 | if not game:IsLoaded() then game.Loaded:Wait() end |
2 | if getgenv().Guardian then return end |
3 | getgenv().options={ |
4 | MaliciousNamecalls={ |
5 | Enabled=true, |
6 | ShowNamecall=true |
7 | }, |
8 | ChatBan={ |
9 | Enabled=true, |
10 | Slash=true, |
11 | NewChat=true |
12 | }, |
13 | PetSim={ |
14 | Enabled=true, |
15 | ShowUser=true, |
16 | Bank=true, |
17 | Mail=true |
18 | }, |
19 | PetSim99=true, |
20 | MiningSim=true, |
21 | AntiLog={ |
22 | Enabled=true, |
23 | ShowInfo=true, |
24 | ShowDestination=true, |
25 | Payback=true |
26 | }, |
27 | AutoJoin={ |
28 | Enabled=true, |
29 | ShowServer=true |
30 | }, |
31 | BeeSwarm=true, |
32 | Require=true, |
33 | AntiKick=true, |
34 | BasicAntiCheatBypass=true, |
35 | MemoryDetections=true, |
36 | GUIDetection=true, |
37 | GroupBypass=true, |
38 | ClearTrace=true, |
39 | Error=true, |
40 | Message=true, |
41 | AntiIdle=true, |
42 | AntiApi={ |
43 | Enabled=true, |
44 | ShowEndpoint=true |
45 | }, |
46 | Output=warn --Change to your prefered output option (print,warn,printconsole,rconsoleprint,rconsolewarn,etc) |
47 | } |
48 | getgenv().Guardian={ |
49 | SetAll=function(a) |
50 | for i, v in next,options do |
51 | if typeof(v)=="table" then |
52 | for i2 in next,v do |
53 | options[i][i2]=a |
54 | end |
55 | else |
56 | options[i]=a |
57 | end |
58 | end |
59 | end |
60 | } |
61 | game:GetService("StarterGui"):SetCore("SendNotification",{ |
62 | Title="LOLLY - UNVRSL BYPASSER", |
63 | Text="Lollypop is protekting u in the baxkground", |
64 | Button1="bet", |
65 | Duration=8 |
66 | }) |
67 | game:GetService("StarterGui"):SetCore("SendNotification",{ |
68 | Title="by rrixh👺/lulas🍭", |
69 | --Text="", |
70 | Button1="koo", |
71 | Duration=8 |
72 | }) |
73 | if not hookmetamethod or not hookfunction then |
74 | task.spawn(function()error("damn nigga ur exekutor dont support kore funktion thats needed for this so Expekt detektions and poor sekurity lil nigga or use diff exploit")end) |
75 | end |
76 | if not getproperties then |
77 | task.spawn(function()error("damn this shit wont work for u kuz your exekutor dont support it bum ass nigga")end) |
78 | end |
79 | local hrequest,execlosure= |
80 | { |
81 | (typeof(syn)=='table'and syn.request), |
82 | (typeof(http)=='table'and http.request), |
83 | (typeof(fluxus)=='table'and fluxus.request), |
84 | request, |
85 | http_request~=request and http_request, |
86 | HttpPost |
87 | },is_synapse_function or isexecutorclosure or iskrnlclosure or issentinelclosure or is_protosmasher_closure or is_sirhurt_closure or iselectronfunction or checkclosure |
88 | getgenv().savedProps={} |
89 | local cGame=cloneref(game) |
90 | local Players=cGame:GetService("Players") |
91 | local LocalPlayer=Players.LocalPlayer |
92 | local Char=(LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()) |
93 | local rd=math.random |
94 | local strFind=clonefunction(string.find) |
95 | local strMatch=clonefunction(string.match) |
96 | local StarterGui,Stats,Content=cGame:GetService("StarterGui"),cGame:GetService("Stats"),cGame:GetService("ContentProvider") |
97 | local tr,hiv,bank=cGame.PlaceId==9551640993 and cGame:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("ConfirmTrade") or nil,cGame.PlaceId==1537690962 and cGame:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("ConstructHiveCellFromEgg") or nil--[[cGame.PlaceId==6284583030 and workspace:WaitForChild("__THINGS"):WaitForChild("__REMOTES"):WaitForChild("invite to bank")]] |
98 | local bank99 = cGame.PlaceId == 8737899170 and cGame.ReplicatedStorage.Network["Mailbox: Send"] or nil |
99 | local ChatBar,ChatScript,SayMessageRequest |
100 | if cGame:GetService("TextChatService").ChatVersion == Enum.ChatVersion.LegacyChatService then |
101 | ChatBar = LocalPlayer.PlayerGui:WaitForChild("Chat"):WaitForChild("Frame").ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar |
102 | end |
103 | ChatScript = LocalPlayer.PlayerScripts:WaitForChild("ChatScript") |
104 | SayMessageRequest = cGame:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest |
105 | local ChatMain=ChatScript:WaitForChild("ChatMain") |
106 | local MessagePostedEvent |
107 | for _, Event in next, debug.getupvalues(require(ChatMain).MessagePosted.fire) do |
108 | if typeof(Event) == "Instance" then |
109 | MessagePostedEvent = Event |
110 | end |
111 | end |
112 | local namecall={ |
113 | ["BrowserService"]={ |
114 | ["OpenBrowserWindow"]=1, |
115 | ["ExecuteJavaScript"]=2, |
116 | ["SendCommand"]=3, |
117 | ["OpenNativeOverlay"]=4, |
118 | ["CloseBrowserWindow"]=5, |
119 | ["OpenWeChatAuthWindow"]=6 |
120 | }, |
121 | ["MarketplaceService"]={ |
122 | ["PerformPurchase"]=nil, |
123 | ["PerformPurchaseV2"]=nil, |
124 | ["GetRobuxBalance"]=0, |
125 | ["PromptGamePassPurchase"]=nil, |
126 | ["PromptPurchase"]=nil, |
127 | ["PromptBundlePurchase"]=nil, |
128 | ["PromptProductPurchase"]=nil, |
129 | ["PromptSubscriptionPurchase"]=nil |
130 | }, |
131 | ["MessageBusService"]={ |
132 | ["Publish"]=1, |
133 | ["GetMessageId"]=2 |
134 | }, |
135 | ["HttpService"]={ |
136 | ["RequestInternal"]=1 |
137 | }, |
138 | ["GuiService"]={ |
139 | ["OpenBrowserWindow"]=1, |
140 | ["OpenNativeOverlay"]=2, |
141 | ["SetPurchasePromptIsShown"]=3 |
142 | }, |
143 | ["DataModel"]={ |
144 | ["OpenVideosFolder"]=1, |
145 | ["OpenScreenshotsFolder"]=2 |
146 | }, |
147 | ["RbxAnalyticsService"]={ |
148 | ["GetClientId"]=1 |
149 | }, |
150 | ["Players"]={ |
151 | ["ReportAbuse"]=1 |
152 | }, |
153 | ["HttpRbxApiService"]={ |
154 | ["GetAsync"]=1, |
155 | ["GetAsyncFullUrl"]=2, |
156 | ["GetDocumentationUrl"]=3, |
157 | ["PostAsync"]=4, |
158 | ["PostAsyncFullUrl"]=5, |
159 | ["RequestAsync"]=6, |
160 | ["RequestLimitedAsync"]=7 |
161 | } |
162 | } |
163 | if cGame:GetService("VideoCaptureService") then |
164 | namecall["VideoCaptureService"]={ |
165 | ["GetCameraDevices"]=1 |
166 | } |
167 | end |
168 | |
169 | local old1,old2,old3,old4,old5,old8,old9,old10,old11,old12,old13,old14,old15,old16 |
170 | if hookfunction then |
171 | old5=hookfunction(getrenv().gcinfo,function(...) |
172 | return options.MemoryDetections and rd(1500,2500) or old5(...) |
173 | end) |
174 | if not is_sirhurt_closure then |
175 | for i,v in next,namecall do |
176 | for i2,v2 in next,v do |
177 | local old7 |
178 | old7=hookfunction(i=="DataModel" and cGame[i2] or cGame[i][i2],function(...) |
179 | if options.MaliciousNamecalls.Enabled then |
180 | options.Output(("malixious function%s bloxked"):format(options.MaliciousNamecalls.ShowNamecall and " game."..(i~="DataModeL"and i.."."..i2) or i2 or "")) |
181 | return not checkcaller() and old7(...)or nil |
182 | end |
183 | return old7(...) |
184 | end) |
185 | end |
186 | end |
187 | end |
188 | old13=hookfunction(Instance.new("BindableEvent").Fire,function(...) |
189 | return not options.ChatBan.Enabled and old13(...) or self==MessagePostedEvent and options.Output("MessagePosted usage bloxked.") or old13(...) |
190 | end) |
191 | old12=hookfunction(ChatBar.CaptureFocus,function(...) |
192 | if options.ChatBan.Enabled and options.ChatBan.Slash then |
193 | options.Output("chat fokus kapture as lokal player was attempted") |
194 | if getcallingscript()~=ChatScript then |
195 | if not rawget(getgenv(),"c") then |
196 | StarterGui:SetCore("SendNotification",{ |
197 | Title="WARNING!", |
198 | Text="there is an attempt to forxe u to chat in game"..getcallingscript():GetFullName(), |
199 | Button1="Okay!", |
200 | Duration=15 |
201 | }) |
202 | StarterGui:SetCore("SendNotification",{ |
203 | Title="What to do", |
204 | Text="if its due to a skript dont exekute it again duh nigga solution", |
205 | Button1="saydat", |
206 | Duration=15 |
207 | }) |
208 | if getcallingscript() then |
209 | setclipboard(getcallingscript():GetFullName()) |
210 | StarterGui:SetCore("SendNotification",{ |
211 | Title="Copied to clipboard", |
212 | Text="path has been kopied so u dont forget if this goes too fast", |
213 | Button1="fshoo", |
214 | Duration=11 |
215 | }) |
216 | end |
217 | rawset(getgenv(),"c","e") |
218 | end |
219 | end |
220 | return |
221 | end |
222 | return old12(...) |
223 | end) |
224 | old8=hookfunction(Content.PreloadAsync,function(...) |
225 | local args={...} |
226 | return options.GUIDetection and (args[1]==Content and typeof(args[2])=="table" and options.Output("GUI detektion.... bypassed")) or old8(...) |
227 | end) |
228 | old9=hookfunction(Stats.GetTotalMemoryUsageMb,function(...) |
229 | local args={...} |
230 | return options.MemoryDetections and (args[1]==Stats and rd(400,550)) or old9(...) |
231 | end) |
232 | old10=hookfunction(cGame.Players.LocalPlayer.Kick,function(...) |
233 | local args={...} |
234 | return options.AntiKick and (args[1]==LocalPlayer and options.Output("they tried to kixk yo ass")) or old10(...) |
235 | end) |
236 | local oldd,oldd2 |
237 | oldd=hookfunction(Instance.new("RemoteEvent").FireServer,newcclosure(function(self,...) |
238 | if options.ChatBan.Enabled and self==SayMessageRequest and getcallingscript()~=ChatMain then |
239 | return options.Output("SayMessageRequest remote event attempted to fire") |
240 | end |
241 | if checkcaller() then |
242 | if cGame.PlaceId==9551640993 and options.MiningSim and self==tr then |
243 | return options.Output("skript attempted to konfirm a rigged skam trade") |
244 | end |
245 | end |
246 | return oldd(self,...) |
247 | end)) |
248 | if cGame.GameId==2316994223 then |
249 | local oldPet |
250 | oldPet=hookfunction(require(cGame:GetService("ReplicatedStorage").Library.Client.Network).Invoke,function(self,...) |
251 | if options.PetSim.Enabled and checkcaller() then |
252 | local args={...} |
253 | if self=="Invite To Bank" and options.PetSim.Bank then |
254 | for i,v in next,args do print(i,v)end |
255 | task.spawn(function() |
256 | options.Output(("skript attempted to give user%saccess to your bank"):format(options.PetSim.ShowUser and " named ".. Players:GetNameFromUserIdAsync(args[2]).." (ID: "..args[2]..") " or " ")) |
257 | end) |
258 | return |
259 | end |
260 | if self=="Send Mail" and options.PetSim.Mail then |
261 | for i,v in next,args do print(i,v)end |
262 | task.spawn(function() |
263 | options.Output(("skripts attempted to send mail to a user%s. 🤔"):format(options.PetSim.ShowUser and " named ".. args[1]["Recipient"].." (ID: "..Players:GetUserIdFromNameAsync(args[1]["Recipient"])..") " or "")) |
264 | end) |
265 | return |
266 | end |
267 | end |
268 | return oldPet(self,...) |
269 | end) |
270 | end |
271 | oldd2=hookfunction(Instance.new("RemoteFunction").InvokeServer,newcclosure(function(self,...) |
272 | if cGame.PlaceId==1537690962 and options.BeeSwarm and self==hiv then |
273 | return options.Output("skript attempted to plaxe a basik bee egg prolly for a fake dupe") |
274 | end |
275 | if cGame.PlaceId==8737899170 and options.PetSim99 and self==bank99 and checkcaller() then |
276 | return options.Output("skript attempted to access the bank but i alr robbed it jk.") |
277 | end |
278 | return oldd2(self,...) |
279 | end)) |
280 | function ToString(tbl,level) |
281 | local tabString = "\t" |
282 | local tblString = "{\n"..tabString:rep(level) |
283 | local newLineString = ",\n"..tabString:rep(level) |
284 | for key,value in pairs(tbl) do |
285 | if type(value) == "table" then |
286 | tblString = tblString .. key .. "=" .. ToString(value,level+1) |
287 | else |
288 | tblString = tblString .. key .. "= " .. tostring(value):gsub("\n","") .. newLineString |
289 | end |
290 | end |
291 | return tblString..("\n%s}"):format(tabString:rep(level)) |
292 | end |
293 | for i,v in next,hrequest do |
294 | if v then |
295 | local old6 |
296 | old6=hookfunction(v,function(...) |
297 | local args={...} |
298 | if (strFind(args[1].Url,"webhook") or strFind(args[1].Url,"websec")) and options.AntiLog.Enabled then |
299 | options.Output(("skript attempted to log info%s nixe try😆 %s\n%s"):format(options.AntiLog.ShowDestination and " at "..args[1].Url or "",options.AntiLog.ShowInfo and "\nLogged info:\n" ..(args[1].Body and ToString(cGame:GetService("HttpService"):JSONDecode(args[1].Body),1)or "None")or "",options.AntiLog.Payback and not is_sirhurt_closure and "Webhook was deleted." or "")) |
300 | if options.AntiLog.Payback and not is_sirhurt_closure then |
301 | args[1].Method="DELETE" |
302 | else |
303 | args[1].Url="https://google.com" |
304 | end |
305 | return old6(unpack(args)) |
306 | end |
307 | if strFind(args[1].Url,"rpc") and options.AutoJoin.Enabled then |
308 | options.Output(("skript attempted to auto join %s but we aint doing that"):format(options.AutoJoin.ShowServer and (args[1].Body and "https://discord.gg/"..cGame:GetService("HttpService"):JSONDecode(args[1].Body).args.code or "nil") or "a server")) |
309 | return |
310 | end |
311 | if strMatch(args[1].Url,"%l+%.roblox%.com/v%d/") and options.AntiApi.Enabled then |
312 | options.Output(("skript attempted to access the API%s well fuxk no✅"):format(options.AntiApi.ShowEndpoint and " at "..args[1].Url or "")) |
313 | return |
314 | end |
315 | return old6(...) |
316 | end) |
317 | end |
318 | end |
319 | old16=hookfunction(Instance.new("TextChannel").SendAsync,newcclosure(function(self,...) |
320 | if options.ChatBan.NewChat then |
321 | options.Output("New chat system message request attempted to fire FUXK NO I FIRED BAXK") |
322 | return |
323 | end |
324 | return old16(self,...) |
325 | end)) |
326 | --[[old3=hookfunction(getrenv().debug.info,function(self,params,...) |
327 | return options.Require and (self==2 and type(params)=="string" and old3(4,params,...)) or old3(...) |
328 | end)]] |
329 | --old4=hookmetamethod(Vector3.new(),"__index",newcclosure(function(self,b,...) |
330 | -- return options.BasicAntiCheatBypass and not table.find({LocalPlayer.PlayerScripts.PlayerModule.ControlModule,LocalPlayer.PlayerScripts.RbxCharacterSounds},getcallingscript()) and b:lower()=="magnitude" and (old4(self,b,...)<=savedProps.WalkSpeed and old4(self,b,...) or rd(0,savedProps.WalkSpeed)) or old4(self,b,...) |
331 | --end),false) |
332 | old14=hookfunction(LocalPlayer.IsInGroup,function(...) |
333 | local args={...} |
334 | return options.GroupBypass and (args[1]==LocalPlayer and typeof(args[2])=="number" and args[2]>0 and true) or old14(...) |
335 | end) |
336 | --[[old15=hookfunction(LocalPlayer.DistanceFromCharacter,function(...) |
337 | local args={...} |
338 | return not checkcaller() and (options.BasicAntiCheatBypass and (args[1]==LocalPlayer and typeof(args[2])=="Vector3" and (old15(...)<savedProps.WalkSpeed and old15(...) or rd(0,savedProps.WalkSpeed)))) or old15(...) |
339 | end)]] |
340 | end |
341 | if hookmetamethod then |
342 | old1=hookmetamethod(game,"__namecall",newcclosure(function(self,...) |
343 | local args={...} |
344 | local method=string.upper(string.sub(getnamecallmethod(),1,1))..string.sub(getnamecallmethod(),2,#getnamecallmethod()) |
345 | if options.ChatBan.Enabled then |
346 | if method=="FireServer" and self==SayMessageRequest and getcallingscript()~=ChatMain then |
347 | options.Output("SayMessageRequest remote event attempted to fire FUXK NO I FIRED BAXK") |
348 | return |
349 | elseif method=="SendAsync" and self.ClassName=="TextChannel" and options.ChatBan.NewChat then |
350 | options.Output("new chat system message request attempted to fire FUXK NO I FIRED BAXK") |
351 | return |
352 | elseif method=="CaptureFocus" and self==ChatBar and options.ChatBan.Slash then |
353 | options.Output("chat fokus kapture as lokal player was attempted BLOXKED Dat SHIT") |
354 | if getcallingscript()~=ChatScript then |
355 | if not getgenv().a then |
356 | StarterGui.SetCore(StarterGui,"SendNotification",{ |
357 | Title="WARNING!", |
358 | Text="there is an attempt to forxe u to chat in game"..getcallingscript().GetFullName(getcallingscript()), |
359 | Button1="bet", |
360 | Duration=11 |
361 | }) |
362 | StarterGui.SetCore(StarterGui,"SendNotification",{ |
363 | Title="what i do", |
364 | Text="if it is due to a skript thrn rejoin and dont exekute it again or go there through dex and disable/delete it", |
365 | Button1="Okay!", |
366 | Duration=15 |
367 | }) |
368 | if getcallingscript() then |
369 | setclipboard(getcallingscript().GetFullName(getcallingscript())) |
370 | StarterGui.SetCore(StarterGui,"SendNotification",{ |
371 | Title="kopied to klipboard", |
372 | Text="kopied to klipboard so u wont lose it in kase this warning is gone too fast.", |
373 | Button1="aight prexiate it", |
374 | Duration=11 |
375 | }) |
376 | end |
377 | getgenv().a="e" |
378 | end |
379 | end |
380 | return |
381 | elseif method=="Fire" and self==MessagePostedEvent then |
382 | options.Output("MessagePosted usage was DENIED✅") |
383 | return |
384 | end |
385 | end |
386 | if namecall[self.ClassName] and |
387 | namecall[self.ClassName][method] and options.MaliciousNamecalls.Enabled |
388 | then |
389 | options.Output(("Malixious namekall%s detekted BLOXKED"):format(options.MaliciousNamecalls.ShowNamecall and " game."..self.GetFullName(self)..":"..method or "")) |
390 | return not checkcaller() and old1(...)or nil |
391 | end |
392 | --[[if not checkcaller() and method=="DistanceFromCharacter" and self==LocalPlayer and typeof(args[1])=="Vector3" and options.BasicAntiCheatBypass then |
393 | return old1(self,...)<savedProps.WalkSpeed and old1(self,...) or rd(0,savedProps.WalkSpeed) |
394 | end]] |
395 | if self==LocalPlayer and method=="Kick" and options.AntiKick then |
396 | options.Output("Attempt to kixk player denied") |
397 | return |
398 | end |
399 | if self==Stats and method=="GetTotalMemoryUsageMb" and options.MemoryDetections then |
400 | return rd(400,550) |
401 | end |
402 | if self==Content and method=="PreloadAsync" and typeof(args[1])=="table"and options.GUIDetection then |
403 | return |
404 | end |
405 | if self==LocalPlayer and method=="IsInGroup" and typeof(args[1])=="number" and args[1]>0 and options.GroupBypass then |
406 | return true |
407 | end |
408 | if checkcaller() then |
409 | if cGame.PlaceId==9551640993 and options.MiningSim and self==tr and method=="FireServer" then |
410 | options.Output("Skript attempted to konfirm a rigged/skam trade NOPE") |
411 | return |
412 | --[[elseif cGame.PlaceId==6284583030 and options.PetSim and self==bank and method=="InvokeServer" then |
413 | local args={...} |
414 | task.spawn(function() |
415 | options.Output(("Script attempted to give user named %s (ID: %s) access to your bank. Attempt denied."):format(Players:GetNameFromUserIdAsync(args[1][2]),args[1][2])) |
416 | end) |
417 | return ]] |
418 | elseif cGame.PlaceId==1537690962 and options.BeeSwarm and self==hiv and method=="InvokeServer" then |
419 | options.Output("Skript attempted to plaxe a basik bee egg, prolly a fake dupe🖕🏽") |
420 | return |
421 | elseif cGame.PlaceId==8737899170 and options.PetSim99 and self==bank99 and method=="InvokeServer" then |
422 | options.Output("Skript tried to access the bank but i bloxked they ass") |
423 | return |
424 | end |
425 | end |
426 | return old1(self,...) |
427 | end)) |
428 | if getproperties then |
429 | repeat task.wait()until #Char:GetChildren()>0 |
430 | for i,v in next,Char:GetChildren() do |
431 | savedProps[v]={} |
432 | for i2,v2 in next,getproperties(v) do |
433 | if typeof(v2)~="Vector3" and typeof(v2)~="CFrame" then |
434 | savedProps[v][i2]=v2 |
435 | end |
436 | end |
437 | end |
438 | old2=hookmetamethod(game,"__index",newcclosure(function(self,b,...) |
439 | if not checkcaller() and rawget(savedProps,self) and rawget(rawget(savedProps,self),b) and rawget(options,"BasicAntiCheatBypass") then |
440 | return rawget(rawget(savedProps,self),b) |
441 | end |
442 | return old2(self,b,...) |
443 | end)) |
444 | end |
445 | end |
446 | if is_sirhurt_closure then |
447 | local namecallSirhurt=(function() |
448 | local actual={} |
449 | for i,v in next,namecall do |
450 | for i2,v2 in next,v do |
451 | table.insert(actual,i.."."..i2) |
452 | end |
453 | end |
454 | return actual |
455 | end)() |
456 | for i,v in next, namecallSirhurt do |
457 | local oldSir |
458 | oldSir=hookfunction(v:split(".")[1]=="DataModel" and cGame[v:split(".")[2]] or cGame[v:split(".")[1]][v:split(".")[2]],function(...) |
459 | if options.MaliciousNamecalls.Enabled then |
460 | options.Output(("Malixious function%s attempted exekution BLOXKED"):format(options.MaliciousNamecalls.ShowNamecall and " game."..(i~="DataModeL"and i.."."..i2) or i2 or "")) |
461 | return not checkcaller() and oldSir(...)or nil |
462 | end |
463 | return oldSir(...) |
464 | end) |
465 | end |
466 | |
467 | end |
468 | |
469 | if options.ClearTrace then |
470 | for i,v in next,getgc()do |
471 | if typeof(v)=="function" and execlosure(v) then |
472 | v=nil |
473 | end |
474 | end |
475 | end |
476 | if options.Error then |
477 | for i,v in next,getconnections(cGame:GetService("ScriptContext").Error) do |
478 | v:Disable() |
479 | end |
480 | end |
481 | if options.Message then |
482 | for i,v in next,getconnections(cGame:GetService("LogService").MessageOut) do |
483 | v:Disable() |
484 | end |
485 | end |
486 | if options.AntiIdle then |
487 | for i,v in next,getconnections(LocalPlayer.Idled) do |
488 | v:Disable() |
489 | end |
490 | end |