1 | loadstring(game:HttpGet("https://github.com/MuhXd/Roblox-mobile-script/blob/main/FileFixes.lua?raw=true"))(); |
2 | if _G.BrickAdmin then |
3 | for i, v in _G.ExtensionAPI:GetToggles() do v.Toggled = false end |
4 | _G.BrickAdmin:Destroy() |
5 | writefile("BrickAdmin/config.json", _G.ExtensionAPI:GetSettings(true)) |
6 | _G.ExtensionAPI = nil |
7 | end |
8 | local bindable = Instance.new("BindableFunction") |
9 | |
10 | function bindable.OnInvoke(response) |
11 | if response == 'Copy Link' then |
12 | setclipboard('https://discord.gg/gYhqMRBeZV') |
13 | end |
14 | end |
15 | game:GetService("StarterGui"):SetCore('SendNotification', {Title='Join The Discord', Text="https://discord.gg/gYhqMRBeZV", Duration=5, Button1='Copy Link', Button2='No thanks', Callback=bindable}) |
16 | function GenKey(bytes) |
17 | local Str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' |
18 | local b = '' |
19 | local counter = 0 |
20 | for i = 1, bytes do |
21 | if counter == 8 then b = b .. "-" counter = 0 end |
22 | local num = math.random(1, #Str) |
23 | b = b .. Str:sub(num, num) |
24 | counter+=1 |
25 | end |
26 | return b |
27 | end |
28 | function gethui() |
29 | return game:GetService("CoreGui") |
30 | end |
31 | local randomstring = Instance.new("ScreenGui") |
32 | local Background = Instance.new("Frame") |
33 | local BackgroundImage = Instance.new("ImageLabel") |
34 | local Settings = Instance.new("Frame") |
35 | local UIListLayout = Instance.new("UIListLayout") |
36 | local Settings_2 = Instance.new("ImageButton") |
37 | local Extensions = Instance.new("ImageButton") |
38 | local TimeDisplay = Instance.new("TextLabel") |
39 | local DisplayThing = Instance.new("TextLabel") |
40 | local Commands = Instance.new("ScrollingFrame") |
41 | local Template = Instance.new("Frame") |
42 | local NameLabel = Instance.new("TextLabel") |
43 | local DescLabel = Instance.new("TextLabel") |
44 | local UIListLayout_2 = Instance.new("UIListLayout") |
45 | local SearchBox = Instance.new("TextBox") |
46 | local ImageLabel = Instance.new("ImageLabel") |
47 | local CommandBar = Instance.new("TextBox") |
48 | local Close = Instance.new("ImageButton") |
49 | local SettingsTab = Instance.new("Folder") |
50 | local ToggleOff = Instance.new("Frame") |
51 | local a = Instance.new("UICorner") |
52 | local Dot = Instance.new("ImageButton") |
53 | local UICorner = Instance.new("UICorner") |
54 | local PrefixBox = Instance.new("TextBox") |
55 | local CustomThemes = Instance.new("TextLabel") |
56 | local Prefix = Instance.new("TextLabel") |
57 | local SliderBG = Instance.new("Frame") |
58 | local Slide = Instance.new("ImageButton") |
59 | local ThemeBright = Instance.new("TextLabel") |
60 | local Toggles = Instance.new("Frame") |
61 | local Layout = Instance.new("UIListLayout") |
62 | local Template_2 = Instance.new("TextLabel") |
63 | local ExtensionsTab = Instance.new("Folder") |
64 | local ExtensionsHolder = Instance.new("ScrollingFrame") |
65 | local EXTemplate = Instance.new("Frame") |
66 | local EXTitle = Instance.new("TextLabel") |
67 | local EXDescription = Instance.new("TextLabel") |
68 | local UIListLayout_3 = Instance.new("UIListLayout") |
69 | local RPT = Instance.new("ImageButton") |
70 | local Send = Instance.new("ImageButton") |
71 | local EXIcon = Instance.new("ImageLabel") |
72 | local HideBindC = Instance.new("TextButton", SettingsTab) |
73 | |
74 | _G.BrickAdmin = randomstring |
75 | _G.BrickAdminFuncs = {} |
76 | randomstring.Destroying:Connect(function() |
77 | for i, v in _G.BrickAdminFuncs do |
78 | v = nil |
79 | end |
80 | end) |
81 | randomstring.Name = GenKey(256) -- a lot of bytes |
82 | randomstring.Parent = gethui() |
83 | randomstring.ZIndexBehavior = Enum.ZIndexBehavior.Sibling |
84 | randomstring.ResetOnSpawn = false |
85 | |
86 | Background.Name = "Background" |
87 | Background.Parent = randomstring |
88 | Background.Active = true |
89 | Background.BackgroundColor3 = Color3.new(0.176471, 0.176471, 0.176471) |
90 | Background.BorderColor3 = Color3.new(0, 0, 0) |
91 | Background.BorderSizePixel = 0 |
92 | Background.Position = UDim2.new(0.233468279, 0, 0.161854446, 0) |
93 | Background.Size = UDim2.new(0.507, 0,0.659, 0) |
94 | Background.Draggable = true |
95 | |
96 | BackgroundImage.Name = "BackgroundImage" |
97 | BackgroundImage.Parent = Background |
98 | BackgroundImage.BackgroundColor3 = Color3.new(1, 1, 1) |
99 | BackgroundImage.BackgroundTransparency = 1 |
100 | BackgroundImage.BorderColor3 = Color3.new(0, 0, 0) |
101 | BackgroundImage.BorderSizePixel = 0 |
102 | BackgroundImage.Size = UDim2.new(1, 0, 1, 0) |
103 | BackgroundImage.ZIndex = -1 |
104 | BackgroundImage.Image = "rbxassetid://16953009805" |
105 | BackgroundImage.Active = false |
106 | |
107 | Settings.Name = "Settings" |
108 | Settings.Parent = Background |
109 | Settings.BackgroundColor3 = Color3.new(1, 1, 1) |
110 | Settings.BackgroundTransparency = 1 |
111 | Settings.BorderColor3 = Color3.new(0, 0, 0) |
112 | Settings.BorderSizePixel = 0 |
113 | Settings.Size = UDim2.new(0.119680852, 0, 1, 0) |
114 | |
115 | UIListLayout.Parent = Settings |
116 | UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center |
117 | UIListLayout.Padding = UDim.new(0.05, 0) |
118 | |
119 | Settings_2.Name = "Settings" |
120 | Settings_2.Parent = Settings |
121 | Settings_2.BackgroundColor3 = Color3.new(1, 1, 1) |
122 | Settings_2.BackgroundTransparency = 1 |
123 | Settings_2.BorderColor3 = Color3.new(0, 0, 0) |
124 | Settings_2.BorderSizePixel = 0 |
125 | Settings_2.Size = UDim2.new(0.722222209, 0, 0.153664306, 0) |
126 | Settings_2.Image = "rbxassetid://16953275663" |
127 | |
128 | Extensions.Name = "Extensions" |
129 | Extensions.Parent = Settings |
130 | Extensions.BackgroundColor3 = Color3.new(1, 1, 1) |
131 | Extensions.BackgroundTransparency = 1 |
132 | Extensions.BorderColor3 = Color3.new(0, 0, 0) |
133 | Extensions.BorderSizePixel = 0 |
134 | Extensions.Size = UDim2.new(0.722222209, 0, 0.153664306, 0) |
135 | Extensions.Image = "rbxassetid://17023645582" |
136 | |
137 | TimeDisplay.Name = "TimeDisplay" |
138 | TimeDisplay.Parent = Background |
139 | TimeDisplay.AnchorPoint = Vector2.new(0.5, 0) |
140 | TimeDisplay.BackgroundColor3 = Color3.new(1, 1, 1) |
141 | TimeDisplay.BackgroundTransparency = 1 |
142 | TimeDisplay.BorderColor3 = Color3.new(0, 0, 0) |
143 | TimeDisplay.BorderSizePixel = 0 |
144 | TimeDisplay.Position = UDim2.new(0.5, 0, 0, 0) |
145 | TimeDisplay.Size = UDim2.new(0.265957445, 0, 0.118203312, 0) |
146 | TimeDisplay.Font = Enum.Font.GothamBold |
147 | TimeDisplay.Text = "00:00" |
148 | TimeDisplay.TextColor3 = Color3.new(1, 1, 1) |
149 | TimeDisplay.TextScaled = true |
150 | TimeDisplay.TextSize = 14 |
151 | TimeDisplay.TextWrapped = true |
152 | |
153 | DisplayThing.Name = "DisplayThing" |
154 | DisplayThing.Parent = Background |
155 | DisplayThing.AnchorPoint = Vector2.new(0.5, 0) |
156 | DisplayThing.BackgroundColor3 = Color3.new(1, 1, 1) |
157 | DisplayThing.BackgroundTransparency = 1 |
158 | DisplayThing.BorderColor3 = Color3.new(0, 0, 0) |
159 | DisplayThing.BorderSizePixel = 0 |
160 | DisplayThing.Position = UDim2.new(0.75, 0, 0, 0) |
161 | DisplayThing.Size = UDim2.new(0.3, 0, 0.1, 0) |
162 | DisplayThing.Font = Enum.Font.GothamBold |
163 | DisplayThing.Text = "{KEY_BIND} to hide." |
164 | DisplayThing.TextColor3 = Color3.new(1, 1, 1) |
165 | DisplayThing.TextSize = 15 |
166 | DisplayThing.TextWrapped = true |
167 | |
168 | Commands.Name = "Commands" |
169 | Commands.Parent = Background |
170 | Commands.Active = true |
171 | Commands.BackgroundColor3 = Color3.new(1, 1, 1) |
172 | Commands.BackgroundTransparency = 1 |
173 | Commands.BorderColor3 = Color3.new(0, 0, 0) |
174 | Commands.BorderSizePixel = 0 |
175 | Commands.Position = UDim2.new(0.25132978, 0, 0.248227015, 0) |
176 | Commands.Size = UDim2.new(0.497340411, 0, 0.635933816, 0) |
177 | Commands.CanvasSize = UDim2.new(0, 0, 0, 0) |
178 | Commands.AutomaticCanvasSize = Enum.AutomaticSize.XY |
179 | Commands.ScrollBarThickness = 0 |
180 | Commands.VerticalScrollBarPosition = Enum.VerticalScrollBarPosition.Left |
181 | |
182 | |
183 | Template.Name = "Template" |
184 | Template.Parent = Commands |
185 | Template.BackgroundColor3 = Color3.new(0.117647, 0.117647, 0.117647) |
186 | Template.BackgroundTransparency = 1 |
187 | Template.BorderColor3 = Color3.new(0, 0, 0) |
188 | Template.BorderSizePixel = 0 |
189 | Template.Size = UDim2.new(1, 0, 0.42085427, 0) |
190 | Template.Visible = false |
191 | |
192 | NameLabel.Name = "NameLabel" |
193 | NameLabel.Parent = Template |
194 | NameLabel.AnchorPoint = Vector2.new(0.5, 0) |
195 | NameLabel.BackgroundColor3 = Color3.new(1, 1, 1) |
196 | NameLabel.BackgroundTransparency = 1 |
197 | NameLabel.BorderColor3 = Color3.new(0, 0, 0) |
198 | NameLabel.BorderSizePixel = 0 |
199 | NameLabel.Position = UDim2.new(0.5, 0, 0, 0) |
200 | NameLabel.Size = UDim2.new(1, 0, 0.349999994, 0) |
201 | NameLabel.Font = Enum.Font.GothamBold |
202 | NameLabel.Text = "No Results Found!" |
203 | NameLabel.TextColor3 = Color3.new(1, 1, 1) |
204 | NameLabel.TextScaled = true |
205 | NameLabel.TextWrapped = true |
206 | NameLabel.RichText = true |
207 | |
208 | DescLabel.Name = "DescLabel" |
209 | DescLabel.Parent = Template |
210 | DescLabel.AnchorPoint = Vector2.new(0.5, 0) |
211 | DescLabel.BackgroundColor3 = Color3.new(1, 1, 1) |
212 | DescLabel.BackgroundTransparency = 1 |
213 | DescLabel.BorderColor3 = Color3.new(0, 0, 0) |
214 | DescLabel.BorderSizePixel = 0 |
215 | DescLabel.Position = UDim2.new(0.5, 0, 0.346268654, 0) |
216 | DescLabel.Size = UDim2.new(1, 0, 0.649999976, 0) |
217 | DescLabel.Font = Enum.Font.GothamBold |
218 | DescLabel.Text = "We looked in the commands list for the command '{CMD_NAME}' but could not find it." |
219 | DescLabel.TextColor3 = Color3.new(1, 0, 0) |
220 | DescLabel.TextSize = 15 |
221 | DescLabel.TextWrapped = true |
222 | DescLabel.TextXAlignment = Enum.TextXAlignment.Left |
223 | |
224 | UIListLayout_2.Parent = Commands |
225 | UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder |
226 | UIListLayout_2.Padding = UDim.new(.05, 0) |
227 | |
228 | SearchBox.Name = "SearchBox" |
229 | SearchBox.Parent = Background |
230 | SearchBox.BackgroundColor3 = Color3.new(1, 1, 1) |
231 | SearchBox.BackgroundTransparency = 1 |
232 | SearchBox.BorderColor3 = Color3.new(0, 0, 0) |
233 | SearchBox.BorderSizePixel = 0 |
234 | SearchBox.Position = UDim2.new(0.367021263, 0, 0.118203312, 0) |
235 | SearchBox.Size = UDim2.new(0.265957445, 0, 0.118203312, 0) |
236 | SearchBox.ZIndex = -1 |
237 | SearchBox.Font = Enum.Font.GothamBlack |
238 | SearchBox.PlaceholderColor3 = Color3.new(1, 1, 1) |
239 | SearchBox.PlaceholderText = "..." |
240 | SearchBox.Text = "" |
241 | SearchBox.TextColor3 = Color3.new(1, 1, 1) |
242 | SearchBox.TextSize = 18 |
243 | SearchBox.TextWrapped = true |
244 | |
245 | ImageLabel.Parent = SearchBox |
246 | ImageLabel.BackgroundColor3 = Color3.new(1, 1, 1) |
247 | ImageLabel.BackgroundTransparency = 1 |
248 | ImageLabel.BorderColor3 = Color3.new(0, 0, 0) |
249 | ImageLabel.BorderSizePixel = 0 |
250 | ImageLabel.Position = UDim2.new(0.75, 0, 0, 0) |
251 | ImageLabel.Size = UDim2.new(0.25, 0, 1, 0) |
252 | ImageLabel.ZIndex = 3 |
253 | ImageLabel.Image = "rbxassetid://16953657353" |
254 | |
255 | CommandBar.Name = "CommandBar" |
256 | CommandBar.Parent = Background |
257 | CommandBar.BackgroundColor3 = Color3.new(1, 1, 1) |
258 | CommandBar.BackgroundTransparency = 1 |
259 | CommandBar.BorderColor3 = Color3.new(0, 0, 0) |
260 | CommandBar.BorderSizePixel = 0 |
261 | CommandBar.Position = UDim2.new(0.300531924, 0, 0.862884223, 0) |
262 | CommandBar.Size = UDim2.new(0.332, 0,0.118, 0) |
263 | CommandBar.ClearTextOnFocus = false |
264 | CommandBar.Font = Enum.Font.GothamBlack |
265 | CommandBar.PlaceholderColor3 = Color3.new(0.698039, 0.698039, 0.698039) |
266 | CommandBar.Text = "" |
267 | CommandBar.TextColor3 = Color3.new(0.254902, 0.254902, 0.254902) |
268 | CommandBar.TextSize = 25 |
269 | CommandBar.TextWrapped = true |
270 | CommandBar.TextXAlignment = Enum.TextXAlignment.Left |
271 | |
272 | |
273 | Close.Name = "Close" |
274 | Close.Parent = Background |
275 | Close.Active = false |
276 | Close.BackgroundColor3 = Color3.new(1, 1, 1) |
277 | Close.BackgroundTransparency = 1 |
278 | Close.BorderColor3 = Color3.new(0, 0, 0) |
279 | Close.BorderSizePixel = 0 |
280 | Close.Position = UDim2.new(0.966755331, 0, 0, 0) |
281 | Close.Selectable = false |
282 | Close.Size = UDim2.new(0.0332446806, 0, 0.0591016561, 0) |
283 | Close.Image = "rbxassetid://16953009199" |
284 | |
285 | SettingsTab.Name = "SettingsTab" |
286 | SettingsTab.Parent = Background |
287 | |
288 | ToggleOff.Name = "ToggleOff" |
289 | ToggleOff.Parent = SettingsTab |
290 | ToggleOff.BackgroundColor3 = Color3.new(0, 0.470588, 0.831373) |
291 | ToggleOff.BorderColor3 = Color3.new(0, 0, 0) |
292 | ToggleOff.BorderSizePixel = 0 |
293 | ToggleOff.Position = UDim2.new(0.525265932, 0, 0.193853423, 0) |
294 | ToggleOff.Size = UDim2.new(0.0877659544, 0, 0.0638297871, 0) |
295 | ToggleOff.Visible = false |
296 | |
297 | a.Name = "a" |
298 | a.Parent = ToggleOff |
299 | a.CornerRadius = UDim.new(1, 0) |
300 | |
301 | Dot.Name = "Dot" |
302 | Dot.Parent = ToggleOff |
303 | Dot.Active = false |
304 | Dot.BackgroundColor3 = Color3.new(1, 1, 1) |
305 | Dot.BorderColor3 = Color3.new(0, 0, 0) |
306 | Dot.BorderSizePixel = 0 |
307 | Dot.Position = UDim2.new(0.600000024, 0, 0, 0) |
308 | Dot.Selectable = false |
309 | Dot.Size = UDim2.new(0.410606116, 0, 1, 0) |
310 | |
311 | UICorner.Parent = Dot |
312 | UICorner.CornerRadius = UDim.new(0.75, 0) |
313 | |
314 | PrefixBox.Name = "PrefixBox" |
315 | PrefixBox.Parent = SettingsTab |
316 | PrefixBox.BackgroundColor3 = Color3.new(1, 1, 1) |
317 | PrefixBox.BackgroundTransparency = 1 |
318 | PrefixBox.BorderColor3 = Color3.new(0, 0, 0) |
319 | PrefixBox.BorderSizePixel = 0 |
320 | PrefixBox.Position = UDim2.new(0.525265932, 0, 0.303000003, 0) |
321 | PrefixBox.Size = UDim2.new(0.0877659544, 0, 0.118203312, 0) |
322 | PrefixBox.Visible = false |
323 | PrefixBox.Font = Enum.Font.GothamBold |
324 | PrefixBox.PlaceholderColor3 = Color3.new(1, 1, 1) |
325 | PrefixBox.PlaceholderText = ";" |
326 | PrefixBox.Text = "" |
327 | PrefixBox.TextColor3 = Color3.new(1, 1, 1) |
328 | PrefixBox.TextScaled = true |
329 | PrefixBox.TextSize = 14 |
330 | PrefixBox.TextWrapped = true |
331 | |
332 | CustomThemes.Name = "Custom Themes" |
333 | CustomThemes.Parent = SettingsTab |
334 | CustomThemes.BackgroundColor3 = Color3.new(1, 1, 1) |
335 | CustomThemes.BackgroundTransparency = 1 |
336 | CustomThemes.BorderColor3 = Color3.new(0, 0, 0) |
337 | CustomThemes.BorderSizePixel = 0 |
338 | CustomThemes.Position = UDim2.new(0.25132978, 0, 0.167848706, 0) |
339 | CustomThemes.Size = UDim2.new(0.265957445, 0, 0.118203312, 0) |
340 | CustomThemes.Visible = false |
341 | CustomThemes.Font = Enum.Font.GothamBold |
342 | CustomThemes.Text = "Custom Themes" |
343 | CustomThemes.TextColor3 = Color3.new(1, 1, 1) |
344 | CustomThemes.TextScaled = true |
345 | CustomThemes.TextSize = 20 |
346 | CustomThemes.TextWrapped = true |
347 | CustomThemes.TextXAlignment = Enum.TextXAlignment.Left |
348 | |
349 | Prefix.Name = "Prefix" |
350 | Prefix.Parent = SettingsTab |
351 | Prefix.BackgroundColor3 = Color3.new(1, 1, 1) |
352 | Prefix.BackgroundTransparency = 1 |
353 | Prefix.BorderColor3 = Color3.new(0, 0, 0) |
354 | Prefix.BorderSizePixel = 0 |
355 | Prefix.Position = UDim2.new(0.25132978, 0, 0.302600473, 0) |
356 | Prefix.Size = UDim2.new(0.265957445, 0, 0.118203312, 0) |
357 | Prefix.Visible = false |
358 | Prefix.Font = Enum.Font.GothamBold |
359 | Prefix.Text = "Choose Prefix" |
360 | Prefix.TextColor3 = Color3.new(1, 1, 1) |
361 | Prefix.TextScaled = true |
362 | Prefix.TextSize = 20 |
363 | Prefix.TextWrapped = true |
364 | Prefix.TextXAlignment = Enum.TextXAlignment.Left |
365 | |
366 | HideBindC.Name = "HideBi" |
367 | HideBindC.BackgroundColor3 = Color3.new(1, 1, 1) |
368 | HideBindC.BackgroundTransparency = 1 |
369 | HideBindC.BorderColor3 = Color3.new(0, 0, 0) |
370 | HideBindC.BorderSizePixel = 0 |
371 | HideBindC.Position = UDim2.new(0.25132978, 0, 0.65, 0) |
372 | HideBindC.Size = UDim2.new(0.465957445, 0, 0.118203312, 0) |
373 | HideBindC.Visible = false |
374 | HideBindC.Font = Enum.Font.GothamBold |
375 | HideBindC.Text = "Change hide bind" |
376 | HideBindC.TextColor3 = Color3.fromRGB(30, 30, 30) |
377 | HideBindC.TextScaled = true |
378 | HideBindC.TextSize = 15 |
379 | HideBindC.TextWrapped = true |
380 | HideBindC.TextXAlignment = Enum.TextXAlignment.Left |
381 | |
382 | SliderBG.Name = "SliderBG" |
383 | SliderBG.Parent = SettingsTab |
384 | SliderBG.BackgroundColor3 = Color3.new(0.117647, 0.117647, 0.117647) |
385 | SliderBG.BorderColor3 = Color3.new(0, 0, 0) |
386 | SliderBG.BorderSizePixel = 0 |
387 | SliderBG.Position = UDim2.new(0.25132978, 0, 0.560283661, 0) |
388 | SliderBG.Size = UDim2.new(0.381648928, 0, 0.0496453904, 0) |
389 | SliderBG.Visible = false |
390 | |
391 | Slide.Name = "Slide" |
392 | Slide.Parent = SliderBG |
393 | Slide.Active = false |
394 | Slide.BackgroundColor3 = Color3.new(0.913725, 0.176471, 0.231373) |
395 | Slide.BorderColor3 = Color3.new(0, 0, 0) |
396 | Slide.BorderSizePixel = 0 |
397 | Slide.Position = UDim2.new(0.951219499, 0, -0.285714298, 0) |
398 | Slide.Selectable = false |
399 | Slide.Size = UDim2.new(0.048780486, 0, 1.5, 0) |
400 | |
401 | ThemeBright.Name = "ThemeBright" |
402 | ThemeBright.Parent = SettingsTab |
403 | ThemeBright.BackgroundColor3 = Color3.new(1, 1, 1) |
404 | ThemeBright.BackgroundTransparency = 1 |
405 | ThemeBright.BorderColor3 = Color3.new(0, 0, 0) |
406 | ThemeBright.BorderSizePixel = 0 |
407 | ThemeBright.Position = UDim2.new(0.25132978, 0, 0.420803785, 0) |
408 | ThemeBright.Size = UDim2.new(0.381648928, 0, 0.118203312, 0) |
409 | ThemeBright.Visible = false |
410 | ThemeBright.Font = Enum.Font.GothamBold |
411 | ThemeBright.Text = "Theme Brightness" |
412 | ThemeBright.TextColor3 = Color3.new(1, 1, 1) |
413 | ThemeBright.TextScaled = true |
414 | ThemeBright.TextSize = 20 |
415 | ThemeBright.TextWrapped = true |
416 | ThemeBright.TextXAlignment = Enum.TextXAlignment.Left |
417 | |
418 | Toggles.Name = "Toggles" |
419 | Toggles.Parent = randomstring |
420 | Toggles.BackgroundColor3 = Color3.new(1, 1, 1) |
421 | Toggles.BackgroundTransparency = 1 |
422 | Toggles.BorderColor3 = Color3.new(0, 0, 0) |
423 | Toggles.BorderSizePixel = 0 |
424 | Toggles.Size = UDim2.new(0.122132257, 0, 1, 0) |
425 | |
426 | Layout.Name = "Layout" |
427 | Layout.Parent = Toggles |
428 | Layout.SortOrder = Enum.SortOrder.LayoutOrder |
429 | |
430 | Template_2.Name = "Template" |
431 | Template_2.Parent = Toggles |
432 | Template_2.BackgroundColor3 = Color3.new(1, 1, 1) |
433 | Template_2.BackgroundTransparency = 1 |
434 | Template_2.BorderColor3 = Color3.new(0, 0, 0) |
435 | Template_2.BorderSizePixel = 0 |
436 | Template_2.Size = UDim2.new(1, 0, 0.062656641, 0) |
437 | Template_2.Font = Enum.Font.GothamMedium |
438 | Template_2.Text = "Enabled Toggles" |
439 | Template_2.TextColor3 = Color3.new(1, 1, 1) |
440 | Template_2.TextSize = 23 |
441 | Template_2.TextWrapped = true |
442 | |
443 | ExtensionsTab.Name = "ExtensionsTab" |
444 | ExtensionsTab.Parent = Background |
445 | |
446 | ExtensionsHolder.Name = "ExtensionsHolder" |
447 | ExtensionsHolder.Parent = ExtensionsTab |
448 | ExtensionsHolder.Active = true |
449 | ExtensionsHolder.BackgroundColor3 = Color3.new(1, 1, 1) |
450 | ExtensionsHolder.BackgroundTransparency = 1 |
451 | ExtensionsHolder.BorderColor3 = Color3.new(0, 0, 0) |
452 | ExtensionsHolder.BorderSizePixel = 0 |
453 | ExtensionsHolder.Position = UDim2.new(0.14475143, 0, 0.118039608, 0) |
454 | ExtensionsHolder.Size = UDim2.new(0.782189131, 0, 0.800982594, 0) |
455 | ExtensionsHolder.CanvasSize = UDim2.new(0, 0, 0, 0) |
456 | ExtensionsHolder.ScrollBarThickness = 0 |
457 | ExtensionsHolder.Visible = false |
458 | |
459 | EXTemplate.Name = "EXTemplate" |
460 | EXTemplate.Parent = ExtensionsHolder |
461 | EXTemplate.BackgroundColor3 = Color3.new(0.117647, 0.117647, 0.117647) |
462 | EXTemplate.BackgroundTransparency = 0.8999999761581421 |
463 | EXTemplate.BorderColor3 = Color3.new(0, 0, 0) |
464 | EXTemplate.BorderSizePixel = 0 |
465 | EXTemplate.Position = UDim2.new(0.00339558581, 0, 0, 0) |
466 | EXTemplate.Size = UDim2.new(1, 0,0.507, 0) |
467 | EXTemplate.Visible = false |
468 | |
469 | EXTitle.Name = "EXTitle" |
470 | EXTitle.Parent = EXTemplate |
471 | EXTitle.AnchorPoint = Vector2.new(0.5, 0) |
472 | EXTitle.BackgroundColor3 = Color3.new(1, 1, 1) |
473 | EXTitle.BackgroundTransparency = 1 |
474 | EXTitle.BorderColor3 = Color3.new(0, 0, 0) |
475 | EXTitle.BorderSizePixel = 0 |
476 | EXTitle.Position = UDim2.new(0.499300212, 0, -1.60618839e-07, 0) |
477 | EXTitle.Size = UDim2.new(1.00139952, 0, 0.29715094, 0) |
478 | EXTitle.Font = Enum.Font.GothamBold |
479 | EXTitle.Text = "Extension Name" |
480 | EXTitle.TextColor3 = Color3.new(1, 1, 1) |
481 | EXTitle.TextScaled = true |
482 | EXTitle.TextSize = 14 |
483 | EXTitle.TextWrapped = true |
484 | EXTitle.TextXAlignment = Enum.TextXAlignment.Left |
485 | |
486 | EXDescription.Name = "EXDescription" |
487 | EXDescription.Parent = EXTemplate |
488 | EXDescription.AnchorPoint = Vector2.new(0.5, 0) |
489 | EXDescription.BackgroundColor3 = Color3.new(1, 1, 1) |
490 | EXDescription.BackgroundTransparency = 1 |
491 | EXDescription.BorderColor3 = Color3.new(0, 0, 0) |
492 | EXDescription.BorderSizePixel = 0 |
493 | EXDescription.Position = UDim2.new(0.499300212, 0, 0.294736534, 0) |
494 | EXDescription.Size = UDim2.new(1.00139952, 0, 0.705263734, 0) |
495 | EXDescription.Font = Enum.Font.GothamBold |
496 | EXDescription.Text = "Extension Description" |
497 | EXDescription.TextColor3 = Color3.new(1, 1, 1) |
498 | EXDescription.TextSize = 15 |
499 | EXDescription.TextWrapped = true |
500 | EXDescription.TextXAlignment = Enum.TextXAlignment.Left |
501 | EXDescription.TextYAlignment = Enum.TextYAlignment.Top |
502 | |
503 | EXIcon.Name = "EXIcon" |
504 | EXIcon.Parent = EXTemplate |
505 | EXIcon.BackgroundColor3 = Color3.new(1, 1, 1) |
506 | EXIcon.BackgroundTransparency = 1 |
507 | EXIcon.BorderColor3 = Color3.new(0, 0, 0) |
508 | EXIcon.BorderSizePixel = 0 |
509 | EXIcon.Position = UDim2.new(0.9, 0,0, 0) |
510 | EXIcon.Size = UDim2.new(0.65, 0,0.35, 0) |
511 | EXIcon.ZIndex = math.huge |
512 | |
513 | UIListLayout_3.Parent = ExtensionsHolder |
514 | UIListLayout_3.HorizontalAlignment = Enum.HorizontalAlignment.Center |
515 | UIListLayout_3.SortOrder = Enum.SortOrder.LayoutOrder |
516 | |
517 | RPT.Name = "RPT" |
518 | RPT.Parent = Background |
519 | RPT.BackgroundColor3 = Color3.new(1, 1, 1) |
520 | RPT.BackgroundTransparency = 1 |
521 | RPT.BorderColor3 = Color3.new(0, 0, 0) |
522 | RPT.BorderSizePixel = 0 |
523 | RPT.Position = UDim2.new(0.244351059, 0, 0.881796718, 0) |
524 | RPT.Size = UDim2.new(0.0464798287, 0, 0.0827423185, 0) |
525 | RPT.Image = "rbxassetid://17025977129" |
526 | |
527 | Send.Name = "Send" |
528 | Send.Parent = Background |
529 | Send.BackgroundColor3 = Color3.new(1, 1, 1) |
530 | Send.BackgroundTransparency = 1 |
531 | Send.BorderColor3 = Color3.new(0, 0, 0) |
532 | Send.BorderSizePixel = 0 |
533 | Send.Position = UDim2.new(0.642749608, 0, 0.881796718, 0) |
534 | Send.Size = UDim2.new(0.0464798287, 0, 0.0827423185, 0) |
535 | Send.Image = "rbxassetid://17025986943" |
536 | |
537 | local function SVHU_fake_script() -- Background.CommandAdder |
538 | local script = Instance.new('LocalScript', Background) |
539 | local TweenService = game:GetService('TweenService'); |
540 | local Players = game:GetService('Players'); |
541 | local TweenService = game:GetService('TweenService'); |
542 | local UIS = game:GetService('UserInputService'); |
543 | local Runservice = game:GetService('RunService'); |
544 | local HTTPs = game:GetService('HttpService'); |
545 | local vim = game:GetService('VirtualInputManager'); |
546 | local Path = game:GetService('ReplicatedStorage'); |
547 | local UserInputService = game:GetService('UserInputService'); |
548 | local SearchBox = script.Parent:WaitForChild('SearchBox') |
549 | |
550 | local CMD = script.Parent:WaitForChild('CommandBar') |
551 | |
552 | |
553 | |
554 | local lp = Players.LocalPlayer |
555 | |
556 | local Char = lp.Character or lp.CharacterAdded:Wait() |
557 | |
558 | local Humanoid = Char:WaitForChild('Humanoid') |
559 | |
560 | local Root = Char:WaitForChild('HumanoidRootPart') |
561 | |
562 | |
563 | |
564 | |
565 | local TIME_LABEL = script.Parent.TimeDisplay |
566 | |
567 | local Frame = script.Parent.SettingsTab.SliderBG |
568 | |
569 | local Button = script.Parent.SettingsTab.SliderBG.Slide |
570 | |
571 | |
572 | local cmds = {} -- table: Name and Description |
573 | local ExtensionsTable = {} -- table: Name, Code, Description, Icon |
574 | local NoResultsTBL = {} |
575 | local NoClipSave = {} |
576 | local funcs = {} |
577 | _G.BrickAdminFuncs = funcs |
578 | |
579 | local ToggleColors = { |
580 | Off=Color3.fromRGB(233, 45, 59), |
581 | On=Color3.fromRGB(0, 120, 212) |
582 | } |
583 | local Errors = { |
584 | 'Player not found', 'Command not found', 'Missing arguements', 'Macro not found.' |
585 | } |
586 | local Toggles = {} |
587 | |
588 | |
589 | local prefix = '' |
590 | local CurrentTab = 'home' |
591 | local LastCmd = '' |
592 | |
593 | |
594 | local step = 0.01 |
595 | local percentage = 0 |
596 | local Speed = Humanoid.WalkSpeed |
597 | |
598 | local HoveringOver = false |
599 | local db = false |
600 | local Chatting = false |
601 | local ChatType = game:GetService("TextChatService").ChatVersion |
602 | if isfolder('BrickAdmin') then |
603 | local Files = listfiles('BrickAdmin') |
604 | local config; |
605 | local success, config = pcall(function() |
606 | return HTTPs:JSONDecode(readfile('BrickAdmin/config.json')) |
607 | end) |
608 | if success then |
609 | if config.CustomThemes.CustomThemePath ~= '' then |
610 | BackgroundImage.Image = getcustomasset(config.CustomThemes.CustomThemePath) |
611 | elseif config.CustomThemes.Theme ~= '' and config.CustomThemes.CustomThemePath == '' then |
612 | BackgroundImage.Image = config.CustomThemes.Theme |
613 | end |
614 | Settings = config |
615 | DisplayThing.Text = config.HideBind:split(".")[3] .. " to hide." |
616 | else |
617 | Settings = { |
618 | CustomThemes= { |
619 | Enabled=true, |
620 | Theme='rbxassetid://16953009805', |
621 | CustomThemePath = '' |
622 | }, |
623 | Prefix='', |
624 | ThemeBrightness=1, |
625 | HideBind = 'Enum.KeyCode.RightShift' |
626 | } |
627 | writefile('BrickAdmin/config.json', HTTPs:JSONEncode(Settings)) |
628 | warn("Failed to get BrickAdmin/config.json content, overriding..") |
629 | end |
630 | else |
631 | print("Hello new user/tester!") |
632 | Settings = { |
633 | CustomThemes= { |
634 | Enabled=true, |
635 | Theme='rbxassetid://16953009805', |
636 | CustomThemePath = '' |
637 | }, |
638 | Prefix='', |
639 | ThemeBrightness=1, |
640 | HideBind = 'Enum.KeyCode.RightShift' |
641 | } |
642 | makefolder("BrickAdmin") |
643 | writefile("BrickAdmin/config.json", HTTPs:JSONEncode(Settings)) |
644 | writefile("BrickAdmin/README.txt", 'To use custom themes, Instead of the default theme: Go to config.json, Edit the CustomThemePath to BrickAdmin/YourThemeName.png and edit the Theme=\'rbx:assetid://16953009805\' to Theme=""') |
645 | end |
646 | local Api = setmetatable({}, {}) |
647 | local ExtensionAPI = {} |
648 | |
649 | function Api:AddExtension(name, desc, icon, code) |
650 | print(name, desc, icon, code) |
651 | local Tmp = EXTemplate:Clone() |
652 | Tmp.Parent = ExtensionsHolder |
653 | Tmp.EXTitle.Text = tostring(name) |
654 | Tmp.EXDescription.Text = tostring(desc) |
655 | if #desc > 700 then |
656 | Tmp.EXDescription.TextSize = 13 |
657 | Tmp.Size = UDim2.new(1, 0, .807, 0) |
658 | end |
659 | if #desc > 300 and #desc < 500 then |
660 | Tmp.EXDescription.TextSize = 14 |
661 | Tmp.Size = UDim2.new(1, 0, .407, 0) |
662 | end |
663 | if not icon or icon == '' then |
664 | Tmp.EXIcon.Image = 'rbxassetid://17031987165' |
665 | else |
666 | if icon:sub(1, #'rbxassetid://') == 'rbxassetid://' then |
667 | Tmp.EXIcon.Image = icon |
668 | else |
669 | Tmp.EXIcon.Image = getcustomasset(icon) |
670 | end |
671 | end |
672 | Tmp.Visible = true |
673 | table.insert(ExtensionsTable, {Name=name, Desc=desc, Icon=icon, Code=code}) |
674 | return Tmp |
675 | end |
676 | function Api:LoadExtension(name) |
677 | for i, v in ExtensionsTable do |
678 | if v.Name == name then |
679 | task.spawn(function() |
680 | loadstring(v.Code)() |
681 | --Api:AddExtension(v.Name, v.Desc, v.Icon, v.Code) |
682 | end) |
683 | end |
684 | end |
685 | end |
686 | if not isfolder("BrickAdmin/Extensions") then |
687 | makefolder("BrickAdmin/Extensions") |
688 | elseif isfolder("BrickAdmin/Extensions") and #listfiles("BrickAdmin/Extensions") > 0 then |
689 | local FailedFiles = {} |
690 | for i, v in listfiles("BrickAdmin/Extensions") do |
691 | local s, e = pcall(function() |
692 | local Extension = HTTPs:JSONDecode(readfile(v.."/config.json")) |
693 | Api:AddExtension(Extension.Name, Extension.Desc, Extension.Icon, readfile(v.."/Code.lua")) |
694 | end) |
695 | if not s then table.insert(FailedFiles, v..":\n"..e) end |
696 | end |
697 | if #FailedFiles > 0 then |
698 | for i, v in FailedFiles do |
699 | print("!EXTENSION ERROR!\n"..tostring(v)) |
700 | end |
701 | end |
702 | print(("Loaded %d/%d extensions successfully."):format(#listfiles("BrickAdmin/Extensions") - #FailedFiles, #listfiles("BrickAdmin/Extensions"))) |
703 | end |
704 | if not isfolder("BrickAdmin/Macros") then |
705 | makefolder("BrickAdmin/Macros") |
706 | end |
707 | prefix = Settings.Prefix |
708 | PrefixBox.PlaceholderText = prefix |
709 | function ExtensionAPI:SaveExtension(name, desc, icon, code) |
710 | if icon:sub(1, #'rbxassetid') == 'rbxassetid' then |
711 | Url = 'https://assetdelivery.roblox.com/v1/asset/?id=' .. tostring(icon:gsub("rbxassetid://", '')) |
712 | end -- Download the extension icon and save it. |
713 | local Path = "BrickAdmin/Extensions/"..tostring(name) |
714 | local ConfPath = Path .. "/config.json" |
715 | local Tbl = { |
716 | Icon = Path .. "/Icon.png", |
717 | Name = name, |
718 | Desc = desc |
719 | } |
720 | makefolder(Path) |
721 | writefile(ConfPath, HTTPs:JSONEncode(Tbl)) |
722 | writefile(Path.."/Code.lua", code) |
723 | if Url then |
724 | writefile(Path.."/Icon.png", game:HttpGet(url)) -- If rbxassetid:// |
725 | else |
726 | writefile(Path..'/Icon.png', readfile(icon)) -- If getcustomasset() |
727 | end |
728 | Api:AddExtension(name, desc, icon) |
729 | Api:LoadExtension(name) |
730 | end |
731 | function CloseUI() |
732 | randomstring.Enabled = not randomstring.Enabled |
733 | end |
734 | function ExtensionAPI:GetUI() |
735 | return randomstring |
736 | end |
737 | function ExtensionAPI:GetExtensions() |
738 | return ExtensionsTable |
739 | end |
740 | function ExtensionAPI:AddCommand(name, desc, args, ToggleOptions, callback) -- Example usage: AddCommand('sit', "Makes your character sit for x seconds.", {'x'}, {isToggle=true}, function() print("Hello World") end) -- To make a command a toggle, add {isToggle=true}, Otherwise add {}, Callback is what happens whenever the command is used. |
741 | return AddCommand(name, desc, args, ToggleOptions, callback) |
742 | end |
743 | function ExtensionAPI:GetCurrentTab() |
744 | return CurrentTab |
745 | end |
746 | function ExtensionAPI:AddTab(name, children, icon, callback) |
747 | local a = Settings_2:Clone() |
748 | a.Parent = Settings_2.Parent |
749 | a.Image = icon |
750 | a.MouseButton1Click:Connect(callback) |
751 | local b = Instance.new('Folder', Background) |
752 | b.Name = name |
753 | for i, v in children do |
754 | local inst = v:Clone() |
755 | inst.Parent = v.Parent |
756 | end |
757 | return a |
758 | end |
759 | function ExtensionAPI:SetTheme(id) |
760 | Settings.CustomThemes.Theme = id |
761 | end |
762 | function ExtensionAPI:GetTabs() |
763 | return {SettingsTab=SettingsTab, ExtensionsTab=ExtensionsTab, Background=Background} |
764 | end |
765 | function ExtensionAPI:IsGUIObject(object) |
766 | local classNames = {'ScrollingFrame', 'Frame', "TextLabel", 'TextButton', 'TextBox', 'ImageButton', 'ImageLabel'} |
767 | return table.find(classNames, object.ClassName) |
768 | end |
769 | function ExtensionAPI:GetToggles() |
770 | return Toggles |
771 | end |
772 | function ExtensionAPI:GetSettings(asjson) |
773 | return asjson and HTTPs:JSONEncode(Settings) or Settings |
774 | end |
775 | _G.ExtensionAPI = ExtensionAPI |
776 | for _, func in _G.ExtensionAPI do table.insert(funcs, func) end |
777 | for i, v in ExtensionsTable do |
778 | Api:LoadExtension(v.Name) |
779 | end |
780 | function checkHover(position, maxoffset) |
781 | local mousePosition = UIS:GetMouseLocation() |
782 | |
783 | if mousePosition.X >= position.X and |
784 | mousePosition.X <= position.X + maxoffset and -- Adjust width as needed |
785 | mousePosition.Y >= position.Y and |
786 | mousePosition.Y <= position.Y + maxoffset then -- Adjust height as needed |
787 | return true |
788 | else |
789 | return false |
790 | end |
791 | end |
792 | function Chat(message) |
793 | if ChatType == Enum.ChatVersion.TextChatService then |
794 | game:GetService("TextChatService").TextChannels.RBXGeneral:SendAsync(message) |
795 | else |
796 | local Path2 = Path.DefaultChatSystemChatEvents |
797 | if not Path2 then return error ("Could not chat because: DefaultChatSystemChatEvents missing.") end |
798 | local Path3 = Path2.SayMessageRequest |
799 | if not Path3 then return error("Could not chat because: SayMessageRequest not found.") end |
800 | Path3:FireServer(message, 'All') |
801 | end |
802 | end |
803 | function toggleTab() |
804 | local b = script.Parent |
805 | if CurrentTab == 'settings' then |
806 | for i, v in b:GetChildren() do |
807 | if not v:IsA("LocalScript") and not v:IsA("UICorner") and not v:IsA("Folder") and v.Name ~= 'Settings' and v.Name ~= 'BackgroundImage' and v.Name ~= 'TimeDisplay' and v.Name ~= 'Close' then |
808 | v.Visible = false |
809 | end |
810 | end |
811 | for i, v in ExtensionsTab:GetChildren() do |
812 | v.Visible = false |
813 | end |
814 | for i, v in SettingsTab:GetChildren() do |
815 | v.Visible = true |
816 | end |
817 | elseif CurrentTab == 'home' then |
818 | for i, v in b:GetChildren() do |
819 | if not v:IsA("LocalScript") and not v:IsA("UICorner") and not v:IsA("Folder") then |
820 | v.Visible = true |
821 | end |
822 | end |
823 | for i, v in SettingsTab:GetChildren() do |
824 | v.Visible = false |
825 | end |
826 | for i, v in ExtensionsTab:GetChildren() do |
827 | v.Visible = false |
828 | end |
829 | elseif CurrentTab == 'extensions' then |
830 | for i, v in b:GetChildren() do |
831 | if not v:IsA("LocalScript") and not v:IsA("UICorner") and not v:IsA("Folder") and v.Name ~= 'Settings' and v.Name ~= 'BackgroundImage' and v.Name ~= 'TimeDisplay' and v.Name ~= 'Close' then |
832 | v.Visible = false |
833 | end |
834 | end |
835 | for i, v in SettingsTab:GetChildren() do |
836 | v.Visible = false |
837 | end |
838 | for i, v in ExtensionsTab:GetChildren() do |
839 | v.Visible = true |
840 | end |
841 | end |
842 | end |
843 | function snap(number,factor) |
844 | if factor == 0 then |
845 | return number |
846 | else |
847 | return math.floor(number/factor+0.5)*factor |
848 | |
849 | end |
850 | end |
851 | table.insert(funcs, snap) |
852 | table.insert(funcs, toggleTab) |
853 | table.insert(funcs, Chat) |
854 | Background.MouseEnter:Connect(function() |
855 | HoveringOver = true |
856 | end) |
857 | BackgroundImage.MouseEnter:Connect(function() |
858 | HoveringOver = true |
859 | end) |
860 | Background.MouseLeave:Connect(function() |
861 | HoveringOver = false |
862 | end) |
863 | BackgroundImage.MouseLeave:Connect(function() |
864 | HoveringOver = false |
865 | end) |
866 | function fly(Speed) |
867 | Toggles['fly'].Toggled = true |
868 | Humanoid.PlatformStand = true |
869 | local ctrl = {left=0, forward=0,right=0,backwards=0} |
870 | local bg = Instance.new("BodyGyro", Root) |
871 | bg.P = 9e9 |
872 | bg.maxTorque = Vector3.new(9e9, 9e9, 9e9) |
873 | bg.cframe = Root.CFrame |
874 | bg.Name = 'bg' |
875 | local bodyVelocity = Instance.new("BodyVelocity") |
876 | bodyVelocity.Parent = Root |
877 | bodyVelocity.Velocity = Humanoid.MoveDirection*Speed |
878 | bodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9) |
879 | bodyVelocity.Name = 'bv' |
880 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing,false) |
881 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown,false) |
882 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Flying,false) |
883 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Freefall,false) |
884 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.GettingUp,false) |
885 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping,false) |
886 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Landed,false) |
887 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics,false) |
888 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding,false) |
889 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,false) |
890 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Running,false) |
891 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.RunningNoPhysics,false) |
892 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated,false) |
893 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.StrafingNoPhysics,false) |
894 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Swimming,false) |
895 | Humanoid:ChangeState(Enum.HumanoidStateType.Swimming) |
896 | Char.Animate.Disabled = true |
897 | while task.wait() do |
898 | if Humanoid.MoveDirection ~= Vector3.zero then |
899 | local cam = workspace.CurrentCamera |
900 | local cf = cam.CFrame |
901 | local lv = cam.CFrame.LookVector |
902 | local a = lv * Speed + Vector3.new(0, .2*lv.Y, 0); |
903 | |
904 | bodyVelocity.Velocity = a |
905 | bg.cframe = cf * CFrame.Angles(0,.2,0) |
906 | Char:TranslateBy(Humanoid.MoveDirection) |
907 | else |
908 | bodyVelocity.Velocity = Vector3.zero |
909 | end |
910 | if not Toggles['fly'].Toggled then |
911 | break |
912 | end |
913 | end |
914 | if Root:FindFirstChild('bv') then Root:FindFirstChild('bv'):Destroy() end |
915 | if Root:FindFirstChild('bg') then Root:FindFirstChild('bg'):Destroy() end |
916 | Humanoid.PlatformStand = false |
917 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing,true) |
918 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown,true) |
919 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Flying,true) |
920 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Freefall,true) |
921 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.GettingUp,true) |
922 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping,true) |
923 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Landed,true) |
924 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics,true) |
925 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding,true) |
926 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,true) |
927 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Running,true) |
928 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.RunningNoPhysics,true) |
929 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated,true) |
930 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.StrafingNoPhysics,true) |
931 | Humanoid:SetStateEnabled(Enum.HumanoidStateType.Swimming,true) |
932 | Humanoid:ChangeState(Enum.HumanoidStateType.RunningNoPhysics) |
933 | Char.Animate.Disabled = false |
934 | return |
935 | end |
936 | table.insert(funcs, fly) |
937 | function ToggleChange(ToggleI: Instance) |
938 | local Clr = ToggleI.BackgroundColor3 |
939 | if ToggleI.Position == UDim2.new(0,0,0,0) then |
940 | -- Off |
941 | TweenService:Create(ToggleI, TweenInfo.new(1), {Position=UDim2.new(.6,0,0,0)}):Play() |
942 | task.wait(.25) |
943 | ToggleI.Parent.BackgroundColor3 = ToggleColors.On |
944 | else |
945 | TweenService:Create(ToggleI, TweenInfo.new(1), {Position=UDim2.new(0,0,0,0)}):Play() |
946 | task.wait(.25) |
947 | ToggleI.Parent.BackgroundColor3 = ToggleColors.Off |
948 | end |
949 | end |
950 | table.insert(funcs, ToggleChange) |
951 | CMD.PlaceholderText = prefix .. 'command' |
952 | function orbitPart(part, speed) |
953 | local distance = 10 |
954 | |
955 | local angle = tick() * speed |
956 | local offsetX = math.cos(angle) * distance |
957 | local offsetZ = math.sin(angle) * distance |
958 | |
959 | local newPosition = part.Position + Vector3.new(offsetX, 0, offsetZ) |
960 | Root.CFrame = CFrame.new(newPosition) * CFrame.lookAt(newPosition, part.Position) |
961 | end |
962 | function rainbow(t) |
963 | local frequency = 1 |
964 | local red = math.sin(frequency*t + 0) * 127 + 128 |
965 | local green = math.sin(frequency*t + 2*math.pi/3) * 127 + 128 |
966 | local blue = math.sin(frequency*t + 4*math.pi/3) * 127 + 128 |
967 | |
968 | return Color3.fromRGB(red, green, blue) |
969 | end |
970 | function transitionColor(part) |
971 | local duration = .01 |
972 | local totalDuration = 2 * duration |
973 | task.spawn(function() |
974 | while task.wait() do |
975 | -- Transition from white to rainbow |
976 | local tweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.Out) |
977 | local tween = TweenService:Create(part, tweenInfo, { TextColor3 = rainbow(tick()) }) |
978 | tween:Play() |
979 | tween.Completed:Wait() |
980 | |
981 | -- Transition from rainbow to white |
982 | tweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.Out) |
983 | tween = TweenService:Create(part, tweenInfo, { TextColor3 = Color3.new(1, 1, 1) }) |
984 | tween:Play() |
985 | tween.Completed:Wait() |
986 | end |
987 | end) |
988 | end |
989 | function Search(name) |
990 | local Found = {} |
991 | for i, v in cmds do |
992 | if v.Name.Text:lower():find(name:lower()) or v.Desc.Text:lower():find(name:lower()) then |
993 | table.insert(Found, v) |
994 | end |
995 | end |
996 | return Found |
997 | end |
998 | function CustomError(Index) |
999 | CMD.Text = Errors[Index] |
1000 | task.wait(2) |
1001 | CMD.Text = CMD.Text:gsub(Errors[Index], '') |
1002 | end |
1003 | function UpdateTime() |
1004 | local _TIME = os.date('*t') |
1005 | local _H = tostring(_TIME.hour) |
1006 | local _M = tostring(_TIME.min) |
1007 | local TIME = ("%s:%s"):format(#_H >= 2 and _H or "0".._H, #_M >=2 and _M or "0".._M) |
1008 | TIME_LABEL.Text = TIME |
1009 | end |
1010 | function NoResults(cmd) |
1011 | local NoResults = script.Parent.Commands.Template:Clone() |
1012 | NoResults.DescLabel.TextColor3 = Color3.fromRGB(255, 0, 0) |
1013 | NoResults.Visible = true |
1014 | NoResults.Parent = script.Parent.Commands |
1015 | NoResults.DescLabel.Text = NoResults.DescLabel.Text:gsub('{CMD_NAME}', cmd) |
1016 | table.insert(NoResultsTBL, NoResults) |
1017 | end |
1018 | table.insert(funcs, NoResults) |
1019 | table.insert(funcs, Search) |
1020 | table.insert(funcs, UpdateTime) |
1021 | table.insert(funcs, CustomError) |
1022 | table.insert(funcs, transitionColor) |
1023 | table.insert(funcs, rainbow) |
1024 | table.insert(funcs, orbitPart) |
1025 | function AddCommand(name, desc, args, Toggle, callback) |
1026 | local Temp = Template:Clone() |
1027 | Temp.Name = '' |
1028 | Temp.NameLabel.Text = prefix .. name |
1029 | Temp.NameLabel.TextColor3 = Color3.fromRGB(80, 80, 80) |
1030 | Temp.DescLabel.Text = desc |
1031 | if args then |
1032 | local str = ''; |
1033 | if typeof(args)=='string' then |
1034 | str = args |
1035 | elseif typeof(args)=='table' then |
1036 | for i, v in args do |
1037 | str = str .. ("<font color='rgb(255, 0, 0)'>%s</font>"):format(v) |
1038 | if i ~= #args then |
1039 | str = str .. ", " |
1040 | end |
1041 | end |
1042 | end |
1043 | Temp.NameLabel.Text = Temp.NameLabel.Text .. " " .. str |
1044 | end |
1045 | Temp.DescLabel.TextColor3 = Color3.fromRGB(90, 90, 90) |
1046 | Temp.Visible = true |
1047 | Temp.Parent = Commands |
1048 | table.insert(cmds, {Self = Temp, Name=Temp.NameLabel, Desc=Temp.DescLabel, Callback=callback}) |
1049 | table.insert(funcs, callback) |
1050 | if Toggle.isToggle then |
1051 | Toggles[name] = Toggle |
1052 | Toggles[name].isToggle = nil |
1053 | Toggles[name].Toggled = false |
1054 | if Toggle.ToggleCmd then table.insert(funcs, Toggles[name].ToggleCmd) end |
1055 | AddCommand('un'..name, 'Cancels '..name.." if on", '', {isToggle = false}, function() |
1056 | Toggles[name].Toggled = false |
1057 | if Toggles[name].ToggleCmd then |
1058 | Toggles[name].ToggleCmd() |
1059 | end |
1060 | end) |
1061 | end |
1062 | end |
1063 | function Toggle(name) |
1064 | Toggles[name].Toggled = false |
1065 | end |
1066 | function UpdateSearch() |
1067 | if SearchBox then |
1068 | local Results = Search(SearchBox.Text:gsub(prefix, '')) |
1069 | for i, v in Commands:GetChildren() do |
1070 | if v:IsA("Frame") then v.Visible = false end |
1071 | end |
1072 | for i, v in Results do |
1073 | v.Self.Visible = true |
1074 | end |
1075 | if #Results == 0 then |
1076 | NoResults(SearchBox.Text) |
1077 | else |
1078 | for i, v in NoResultsTBL do v:Destroy() end |
1079 | end |
1080 | end |
1081 | end |
1082 | function FindCommand(cmd) |
1083 | for i, v in cmds do |
1084 | if v.Name.Text:lower():split(" ")[1]:sub(1, #v.Name.Text) == cmd:lower():split(" ")[1]:sub(1, #cmd) then |
1085 | return v.Callback |
1086 | end |
1087 | end |
1088 | return nil |
1089 | end |
1090 | function GetPlayer(name) |
1091 | if name:lower() == 'me' then return lp end |
1092 | if name:lower() == 'random' then return Players:GetChildren(math.random(#Players:GetChildren() >= 2 and 2 or 1, #Players:GetChildren())) end |
1093 | local Plr = nil; |
1094 | local Plrs = Players:GetChildren() |
1095 | table.remove(Plrs, 1) |
1096 | for i, v in Plrs do |
1097 | if v.Name:lower():find(name:lower()) or v.DisplayName:lower():find(name:lower()) then return v end |
1098 | end |
1099 | return Plr |
1100 | end |
1101 | table.insert(funcs, GetPlayer) |
1102 | table.insert(funcs, Toggle) |
1103 | table.insert(funcs, UpdateSearch) |
1104 | AddCommand('headsit', 'Allows you to sit on playrs heads!', {'playerName'}, {isToggle=true, ToggleCmd=function() |
1105 | workspace.Gravity = 196.2 |
1106 | Toggles['headsit'].Selected = nil |
1107 | end, Selected=nil}, function(tbl) |
1108 | if not tbl[1] then return end |
1109 | local Player = GetPlayer(tbl[1]) |
1110 | if not Player then |
1111 | return CustomError(1) |
1112 | end |
1113 | if Toggles['headsit'].Toggled then Toggles['headsit'].Selected = Player else Toggles['headsit'].Toggled = true Toggles['headsit'].Selected = Player end |
1114 | end) |
1115 | AddCommand('spin', 'Allows your character to spin at x speed!', {'x'}, {isToggle=true, Speed=0, Counter=0}, function(args) |
1116 | if not args[1] then return end |
1117 | if Toggles['spin'].Toggled then |
1118 | Toggles['spin'].Speed = tonumber(args[1]) |
1119 | else |
1120 | Toggles['spin'].Toggled = true |
1121 | Toggles['spin'].Speed = tonumber(args[1]) |
1122 | end |
1123 | end) |
1124 | AddCommand('void', 'Immediately sends your character to the void (-10000) and back without killing you for x seconds.', {'x'}, {isToggle=false}, function(Args) |
1125 | local Seconds = 5; |
1126 | if Args[1] then |
1127 | local success, err = pcall(function() Seconds = tonumber(Args[1]) end) -- Incase Args[1] isn't a number. |
1128 | end |
1129 | local Fallen = workspace.FallenPartsDestroyHeight |
1130 | pcall(function() workspace.FallenPartsDestroyHeight = 'nan' end) |
1131 | local CurrentY = Root.Position.Y |
1132 | Root.CFrame = CFrame.new(Root.Position.X, -10000, Root.Position.Z) |
1133 | Root.Anchored = true |
1134 | task.wait(Seconds) |
1135 | Root.Anchored = false |
1136 | Root.CFrame = CFrame.new(Root.Position.X, CurrentY, Root.Position.Z) |
1137 | workspace.FallenPartsDestroyHeight = Fallen |
1138 | end) |
1139 | AddCommand('speed', 'Sets your walkspeed to x, Attempts to bypass local anticheats.', {'x'}, {}, function(args) |
1140 | if not args[1] then return CustomError(3) end |
1141 | local Speed = tonumber(args[1]) |
1142 | Humanoid.WalkSpeed = Speed |
1143 | end) |
1144 | AddCommand('jp', 'Sets your jumppower to x, Attempts to bypass local anticheats.', {'x'}, {}, function(args) |
1145 | if not args[1] then return CustomError(3) end |
1146 | Humanoid.UseJumpPower = true |
1147 | local Power = tonumber(args[1]) |
1148 | Humanoid.JumpPower = Power |
1149 | end) |
1150 | AddCommand('view', 'Sets your CameraSubject to plr, Basically lets you view what plr sees.', {'plr'}, {isToggle=true,Viewing=nil, ToggleCmd=function() |
1151 | Toggles['view'].Viewing = Humanoid |
1152 | workspace.CurrentCamera.CameraSubject = Humanoid |
1153 | end}, function(args) |
1154 | if not args[1] then return end |
1155 | if GetPlayer(args[1]) ~= nil then |
1156 | Toggles['view'].Viewing = GetPlayer(args[1]) |
1157 | elseif not GetPlayer(args[1]) or not GetPlayer(args[1]).Character then |
1158 | return CustomError(1) |
1159 | end |
1160 | workspace.CurrentCamera.CameraSubject = GetPlayer(args[1]).Character:FindFirstChildWhichIsA('Humanoid') |
1161 | end) |
1162 | AddCommand("spam", 'Spams the specified message in chat with x delay between the messages.', {'message', 'x'}, {isToggle=true, Delay=math.huge, Message=''}, function(args) |
1163 | if #args < 1 then return end |
1164 | Toggles['spam'].Toggled = true |
1165 | Toggles['spam'].Message = args[1] |
1166 | pcall(function() |
1167 | Toggles['spam'].Delay = tonumber(args[2] / 1000) |
1168 | end) |
1169 | end) |
1170 | AddCommand('whois', 'Displays information about a player, Outputs result into console.', {'player'}, {}, function(args) |
1171 | if not args[1] then return CustomError(3) end |
1172 | local function formatDate(date) |
1173 | local formattedDate = DateTime.fromUnixTimestamp(date) |
1174 | return formattedDate:FormatLocalTime("d MMMM YYYY", game:GetService("LocalizationService").SystemLocaleId) |
1175 | end |
1176 | local function a(b)return coroutine.wrap(function()local c=1;while true do for d,e in ipairs(b:GetCurrentPage())do coroutine.yield(e,c)end;if b.IsFinished then break end;b:AdvanceToNextPageAsync()c=c+1 end end)end |
1177 | local Plr = GetPlayer(args[1]) |
1178 | if Plr == nil then return CustomError(1) end |
1179 | local c={}for i, v in a(game:GetService("Players"):GetFriendsAsync(Plr.UserId)) do table.insert(c, v) end |
1180 | local FullData = ('@%s (%s):\nJoin Date: %s\nFriend Count: %d\nID: %d'):format(Plr.Name, Plr.DisplayName, formatDate(os.time() - Plr.AccountAge * 24 * 60 * 60), #c, Plr.UserId) |
1181 | print(FullData) |
1182 | end) |
1183 | AddCommand('hownice', 'Sends a (fake) message in chat saying how nice a player is, Chance is randomized from 1 - 100 everytime.', {'plr'}, {}, function(args) |
1184 | if not args[1] then return CustomError(2) end |
1185 | Chat(string.format("%s is %d%% nice.", GetPlayer(args[1])~=nil and GetPlayer(args[1]).DisplayName or 'Unknown', math.random(1, 100))) |
1186 | end) |
1187 | AddCommand('howlucky', 'Sends a (fake) message in chat saying how lucky a player is, Chance is randomized from 1 - 100 everytime.', {'plr'}, {}, function(args) |
1188 | if not args[1] then return CustomError(2) end |
1189 | Chat(string.format("%s is %d%% lucky.", GetPlayer(args[1])~=nil and GetPlayer(args[1]).DisplayName or 'Unknown', math.random(1, 100))) |
1190 | end) |
1191 | AddCommand('to', 'Teleports to player Z', {'Z'}, {}, function(a) |
1192 | if not a[1] then return CustomError(1) elseif a[1] and GetPlayer(a[1]) == nil then return CustomError(2) end |
1193 | local Player = GetPlayer(a[1]) |
1194 | if not Player.Character then Player.CharacterAdded:Wait() end |
1195 | Root.CFrame = GetPlayer(a[1]).Character:FindFirstChildWhichIsA('BasePart').CFrame |
1196 | end) |
1197 | AddCommand('annoy', 'Loop teleports to player Z until stopped', {'Z'}, {isToggle=true,Plr=nil}, function(a) |
1198 | if not a[1] then return CustomError(3) elseif a[1] and GetPlayer(a[1]) == nil then return CustomError(1) end |
1199 | local Player = GetPlayer(a[1]) |
1200 | if not Player.Character then print("Waiting for character") Player.CharacterAdded:Wait() end |
1201 | Toggles['annoy'].Plr = Player |
1202 | Toggles['annoy'].Toggled = true |
1203 | end) |
1204 | AddCommand('fullbright', 'Removes any lighting effects, Makes you see the game clearly (USE THE COMMAND DAY IF YOU JUST WANT TO THE SET GAME TIME TO DAY!).', {}, {}, function(a) |
1205 | game:GetService("Lighting").Ambient = Color3.fromRGB(70, 70, 70) |
1206 | game:GetService("Lighting").Brightness = 3 |
1207 | end) |
1208 | AddCommand('day', 'Sets the game time to day (CLIENT SIDED)', {}, {}, function(a) |
1209 | game:GetService("Lighting").ClockTime = 14.5 |
1210 | end) |
1211 | AddCommand('night', 'Sets the game time to night (CLIENT SIDED)', {}, {}, function(a) |
1212 | game:GetService("Lighting").ClockTime = 20.5 |
1213 | end) |
1214 | AddCommand('plog', 'Notifies you whenever a player leaves or joins.', {'sendInChat'}, {isToggle=true, inChat=false}, function(args) |
1215 | Toggles['plog'].Toggled = true |
1216 | Toggles.plog.inChat = #args >= 1 and true or false |
1217 | end) |
1218 | AddCommand('re', 'Resets your character and teleports you to where you last were.', {}, {}, function(args) |
1219 | local cf = Root.CFrame |
1220 | Humanoid.Health = 0 |
1221 | lp.CharacterAdded:Wait() |
1222 | task.wait(1) |
1223 | Root.CFrame = cf |
1224 | end) |
1225 | AddCommand('float', 'Changes your hipheight to x.', {'x'}, {isToggle=true, ToggleCmd=function() |
1226 | Humanoid.HipHeight = 1 |
1227 | end}, function(args) |
1228 | if not args[1] then return CustomError(3) end |
1229 | Humanoid.HipHeight = tonumber(args[1]) |
1230 | end) |
1231 | AddCommand('giant', 'Turns a player into a giant. (CLIENTSIDED)', {'plr'}, {isToggle=true, p={OriginalScale=1,player=nil}, ToggleCmd=function() |
1232 | local plr = Toggles.giant.p.player |
1233 | if not plr.Character then plr.CharacterAdded:Wait() task.wait(.1) end |
1234 | plr.Character:ScaleTo(Toggles.giant.p.OriginalScale) |
1235 | plr.Character.HumanoidRootPart.CFrame += CFrame.new(0, 30, 0) |
1236 | Toggles.giant.Toggled=false |
1237 | end}, function(args) |
1238 | if not args[1] then return CustomError(3) end |
1239 | local plr = GetPlayer(args[1]) |
1240 | if not plr then return CustomError(3) end |
1241 | if not plr.Character then plr.CharacterAdded:Wait() task.wait(.1) end |
1242 | Toggles.giant.p = {player=plr,OriginalScale=plr.Character:GetScale()} |
1243 | plr.Character:ScaleTo(7) |
1244 | Toggles.giant.Toggled = true |
1245 | end) |
1246 | AddCommand('follow', 'Follows a player.', {'plr'}, {isToggle=true,Following=nil}, function(args) |
1247 | if not args[1] or (args[1] and not args[1]:match("%s")) then return CustomError(3) end |
1248 | local Player = GetPlayer(args[1]) |
1249 | if not Player then return CustomError(1) end |
1250 | Toggles['follow'].Following = Player |
1251 | Toggles['follow'].Toggled = true |
1252 | end) |
1253 | AddCommand('fly', "Allows you to fly at X speed!", {'X'}, {isToggle=true}, function(args) |
1254 | local speed; |
1255 | if args[1] and args[1]:match("%d+") then speed = tonumber(args[1]:match("%d+")) else speed = 20 end |
1256 | fly(speed) |
1257 | end) |
1258 | AddCommand('rj', 'Rejoins the game', {}, {}, function(args) |
1259 | game:GetService("TeleportService"):Teleport(game.PlaceId, lp) |
1260 | end) |
1261 | AddCommand('noclip', 'Enables noclip which allows you to walk through walls, Sets every part to walkthrough enabled in radius RDS, If no RDS is given radius is infinite.', {'rds'}, {isToggle=true, ToggleCmd=function() |
1262 | for i, v in NoClipSave do |
1263 | v.object.CanCollide = v.cancollide |
1264 | end |
1265 | end}, function(args) |
1266 | local Radius = math.huge; |
1267 | if args[2] then Radius = tonumber(args[2]:match("%d+")) end |
1268 | for i, v in workspace:GetPartBoundsInRadius(Root.Position, Radius) do |
1269 | if Root.Position.Y < v.Position.Y then |
1270 | table.insert(NoClipSave, {object=v, cancollide=v.CanCollide}) |
1271 | v.CanCollide = false |
1272 | end |
1273 | end |
1274 | end) |
1275 | AddCommand('autoclick', 'Autoclicks at your mouse position while waiting {delay} MILLIseconds. Default delay is 100 MS (0.1)', {'delay'}, {isToggle=true, delay=100}, function(args) |
1276 | Toggles['autoclick'].Toggled = true |
1277 | if args[1] and args[1]:match('%d+') then |
1278 | Toggles['autoclick'].delay = tonumber(args[1]:match('%d+')) |
1279 | end |
1280 | end) |
1281 | AddCommand('orbit', 'Orbits your character around a player.', {'plr', 'speed'}, {isToggle=true,Selected=nil, Speed=5, ToggleCmd=function() |
1282 | workspace.Gravity = 196.2 |
1283 | end}, function(args) |
1284 | if not args[1] then return CustomError(3) elseif args[1] and GetPlayer(args[1]) == nil then return CustomError(1) end |
1285 | Toggles['orbit'].Toggled = true |
1286 | Toggles['orbit'].Selected = GetPlayer(args[1]) |
1287 | if args[2] and args[2]:match("%d+") then |
1288 | Toggles.orbit.Speed = tonumber(args[2]:match("%d+")) |
1289 | end |
1290 | end) |
1291 | AddCommand('autowalk', 'Automatically walks forward.', {}, {isToggle=true}, function() |
1292 | Toggles.autowalk.Toggled = true |
1293 | end) |
1294 | AddCommand('discord', 'Copies the discord join link.', {}, {}, function() |
1295 | setclipboard('https://discord.gg/gYhqMRBeZV') |
1296 | end) |
1297 | AddCommand('animbuff', 'Boosts your animation speeds by X (/e dance becomes X times faster)', {'x'}, {isToggle=true,Boost=1, ToggleCmd=function() Toggles['animbuff'].Boost = 1 end}, function(args) |
1298 | if not args[1] then return CustomError(3) elseif args[1] and not args[1]:match('%d+') then return CustomError(1) end |
1299 | Toggles['animbuff'].Buff = tonumber(args[1]:match("%d+")) |
1300 | Toggles['animbuff'].Toggled = true |
1301 | end) |
1302 | AddCommand("macros", 'Lists the macros you\'ve created (And prints in console)', {}, {}, function() |
1303 | if not isfolder("BrickAdmin/Macros") then return print("Macros folder does not exist.") end |
1304 | for i, v in listfiles('BrickAdmin/Macros') do |
1305 | print(i, v) |
1306 | end |
1307 | end) |
1308 | AddCommand("macro", 'Runs the specified macro.', {'macroID'}, {}, function(args) |
1309 | if not args[1] then return CustomError(3) end |
1310 | local macro = isfile("BrickAdmin/Macros/"..args[1]) and readfile('BrickAdmin/Macros/'..args[1]) or 'warn("Macro does not exist.")' |
1311 | CloseUI() |
1312 | loadstring(macro)() |
1313 | CloseUI() |
1314 | end) |
1315 | AddCommand("createmacro", 'Records until stopbind is pressed and saves the macro as macroID', {'macroID', 'stopbind'}, {}, function(args) |
1316 | if not args[1] or not args[2] then return CustomError(3) end |
1317 | macroName = args[1] |
1318 | macroStopBind = ToEnum("Enum.KeyCode."..args[2]) |
1319 | macroCreate = true |
1320 | game:GetService("VirtualUser"):StartRecording() |
1321 | CloseUI() |
1322 | end) |
1323 | AddCommand('\n\n', '\n\n\n', {}, {}, function() end) |
1324 | AddCommand('\n\n', '\n\n\n', {}, {}, function() end) |
1325 | Players.PlayerAdded:Connect(function(plr) |
1326 | if Toggles['plog'].Toggled then |
1327 | if Toggles.plog.inChat then |
1328 | Chat(plr.DisplayName.." joined the game!") |
1329 | else |
1330 | game:GetService("StarterGui"):SetCore('SendNotification', {Title='Player Joined', Text=plr.DisplayName.." joined the game!", Duration=5}) |
1331 | end |
1332 | end |
1333 | end) |
1334 | Players.PlayerRemoving:Connect(function(plr) |
1335 | if Toggles['plog'].Toggled then |
1336 | if Toggles.plog.inChat then |
1337 | Chat(plr.DisplayName.." left the game.") |
1338 | else |
1339 | game:GetService("StarterGui"):SetCore('SendNotification', {Title='Player Left', Text=plr.DisplayName.." left the game!", Duration=5}) |
1340 | end |
1341 | end |
1342 | end) |
1343 | UIS.InputEnded:Connect(function(input) |
1344 | if input.UserInputType == Enum.UserInputType.MouseButton1 then |
1345 | db = false |
1346 | end |
1347 | end) |
1348 | Button.MouseButton1Down:Connect(function() |
1349 | db = true |
1350 | end) |
1351 | Settings_2.MouseButton1Click:Connect(function() |
1352 | if CurrentTab ~= 'settings' then |
1353 | CurrentTab = 'settings' |
1354 | else |
1355 | CurrentTab = 'home' |
1356 | end |
1357 | toggleTab() |
1358 | end) |
1359 | Extensions.MouseButton1Click:Connect(function() |
1360 | if CurrentTab ~= 'extensions' then |
1361 | CurrentTab = 'extensions' |
1362 | else |
1363 | CurrentTab = 'home' |
1364 | end |
1365 | toggleTab() |
1366 | end) |
1367 | PrefixBox.FocusLost:Connect(function() |
1368 | local text = PrefixBox.Text:gsub(" ", ""):sub(1,1) |
1369 | if text ~= ' ' and text ~= '[' and text ~= ']' and text ~= "'" and text ~= '"' then |
1370 | local subfrom = 2 |
1371 | if Settings.Prefix == '' then |
1372 | subfrom = 1 |
1373 | end |
1374 | PrefixBox.Text = '' |
1375 | Settings.Prefix = text |
1376 | prefix = Settings.Prefix |
1377 | for i, v in cmds do |
1378 | v.Name.Text = text .. v.Name.Text:sub(subfrom, #v.Name.Text) |
1379 | end |
1380 | CMD.PlaceholderText = prefix .. 'command' |
1381 | writefile("BrickAdmin/config.json", HTTPs:JSONEncode(Settings)) |
1382 | else |
1383 | PrefixBox.Text = 'Blacklisted Prefix.' |
1384 | end |
1385 | end) |
1386 | RPT.MouseButton1Click:Connect(function() |
1387 | CMD.Text = LastCmd |
1388 | end) |
1389 | Send.MouseButton1Click:Connect(function() |
1390 | if CMD.Text == '' then |
1391 | CMD.Text = LastCmd |
1392 | end |
1393 | LastCmd = CMD.Text |
1394 | local Command = FindCommand(CMD.Text) |
1395 | local Args = CMD.Text:split(" ") |
1396 | if not Command then |
1397 | return CustomError(2) |
1398 | end |
1399 | CMD.Text = '' |
1400 | if #Args > 1 then table.remove(Args, 1) end |
1401 | Command(Args) |
1402 | end) |
1403 | CMD.FocusLost:Connect(function(enter) |
1404 | if not enter then return end |
1405 | LastCmd = CMD.Text |
1406 | local Command = FindCommand(CMD.Text) |
1407 | local Args = CMD.Text:split(" ") |
1408 | if not Command then |
1409 | return CustomError(2) |
1410 | end |
1411 | CMD.Text = '' |
1412 | if #Args > 1 then table.remove(Args, 1) end |
1413 | Command(Args) |
1414 | end) |
1415 | Dot.MouseButton1Click:Connect(function() |
1416 | ToggleChange(Dot) |
1417 | Settings.CustomThemes.Enabled = not Settings.CustomThemes.Enabled |
1418 | end) |
1419 | function loopfunc() |
1420 | while task.wait() do |
1421 | task.spawn(function() |
1422 | if Toggles['spin'].Toggled then |
1423 | task.wait(1/Toggles['spin'].Speed) |
1424 | Root.CFrame *= CFrame.Angles(0, Toggles['spin'].Counter, 0) |
1425 | Toggles['spin'].Counter+=1 |
1426 | end |
1427 | end) |
1428 | task.spawn(function() |
1429 | if Toggles['spam'].Toggled and Toggles['spam'].Message ~= '' and not Chatting then |
1430 | Chatting = true |
1431 | Chat(Toggles['spam'].Message) |
1432 | task.wait(Toggles['spam'].Delay / 1000) |
1433 | Chatting = false |
1434 | end |
1435 | end) |
1436 | task.spawn(function() |
1437 | if Toggles['annoy'].Toggled and Toggles['annoy'].Plr ~= nil and Root then |
1438 | local Char = Toggles['annoy'].Plr.Character or Toggles['annoy'].Plr.CharacterAdded:Wait() |
1439 | local root = Char:FindFirstChild("HumanoidRootPart") or Char:FindFirstChild('Head') |
1440 | Root.CFrame = root.CFrame |
1441 | end |
1442 | end) |
1443 | if Toggles['headsit'].Toggled and Toggles['headsit'].Selected then |
1444 | task.spawn(function() |
1445 | pcall(function() workspace.FallenPartsDestroyHeight = 'nan' end) |
1446 | workspace.Gravity = 0 |
1447 | local Player = Toggles['headsit'].Selected |
1448 | local Char = Player.Character or Player.CharacterAdded:Wait() |
1449 | local PRoot = Char:FindFirstChild("Head") or Char.PrimaryPart |
1450 | Humanoid.Sit = true |
1451 | Root.CFrame = PRoot.CFrame |
1452 | end) |
1453 | elseif not Toggles['headsit'].Selected and Toggles['headsit'].Toggled then |
1454 | Humanoid.Sit = false |
1455 | workspace.Gravity = 196.2 |
1456 | Toggles['headsit'].Toggled = false |
1457 | end |
1458 | if Toggles.follow.Toggled and Toggles.follow.Following then |
1459 | task.spawn(function() |
1460 | local Player = Toggles.follow.Following |
1461 | local Char = Player.Character or Player.CharacterAdded:Wait() |
1462 | local Root = Char:FindFirstChild('HumanoidRootPart') or Char:FindFirstChild('Torso') |
1463 | Humanoid.WalkToPoint = Root.Position |
1464 | end) |
1465 | elseif Toggles.follow.Toggled and not Toggles.follow.Following then |
1466 | Toggles.follow.Toggled = false |
1467 | end |
1468 | if Toggles.autoclick.Toggled then |
1469 | local x, y = UIS:GetMouseLocation().X, UIS:GetMouseLocation().Y |
1470 | if not HoveringOver and not game:GetService("GuiService").MenuIsOpen then |
1471 | if ChatType == Enum.ChatVersion.TextChatService then |
1472 | local Pos = game:GetService("TextChatService").ChatWindowConfiguration.AbsolutePosition |
1473 | if not checkHover(game:GetService("TextChatService").ChatWindowConfiguration.AbsolutePosition, (Pos.X+Pos.Y)/1.9) then |
1474 | vim:SendMouseButtonEvent(x, y, 0, true, game, 0) |
1475 | task.wait(Toggles.autoclick.delay / 1000) |
1476 | vim:SendMouseButtonEvent(x, y, 0, false, game, 0) |
1477 | end |
1478 | end |
1479 | end |
1480 | end |
1481 | if Toggles.orbit.Toggled and Toggles.orbit.Selected then |
1482 | task.spawn(function() |
1483 | local Char2 = Toggles.orbit.Selected.Character or Toggles.orbit.Selected.CharacterAdded:Wait() |
1484 | local Root2 = Char2:FindFirstChild('HumanoidRootPart') or Char2:FindFirstChild('Head') |
1485 | orbitPart(Root2, Toggles.orbit.Speed) |
1486 | end) |
1487 | end |
1488 | if Toggles.autowalk.Toggled then |
1489 | Humanoid.WalkToPoint = Root.Position + Root.CFrame.LookVector * 5 |
1490 | end |
1491 | end |
1492 | if db then |
1493 | local MousePos = UIS:GetMouseLocation().X |
1494 | local BtnPos = Button.Position |
1495 | local FrameSize = Frame.AbsoluteSize.X |
1496 | local FramePos = Frame.AbsolutePosition.X |
1497 | local pos = snap((MousePos-FramePos)/FrameSize,step) |
1498 | percentage = math.clamp(pos,0,1) |
1499 | Button.Position = UDim2.new(percentage,0,BtnPos.Y.Scale,BtnPos.Y.Offset) |
1500 | Settings.ThemeBrightness = percentage |
1501 | end |
1502 | end |
1503 | table.insert(funcs, loopfunc) |
1504 | task.spawn(loopfunc) |
1505 | task.spawn(function() |
1506 | while task.wait(1) do |
1507 | UpdateTime() |
1508 | UpdateSearch() |
1509 | BackgroundImage.ImageColor3 = Color3.fromRGB(Settings.ThemeBrightness*255,Settings.ThemeBrightness*255,Settings.ThemeBrightness*255) |
1510 | BackgroundImage.Visible = Settings.CustomThemes.Enabled |
1511 | BackgroundImage.Image = Settings.CustomThemes.Theme |
1512 | for i, v in Toggles do |
1513 | if v.Toggled then |
1514 | if not script.Parent.Parent.Toggles:FindFirstChild(i) then |
1515 | local clone = script.Parent.Parent.Toggles.Template:Clone() |
1516 | clone.Parent = script.Parent.Parent.Toggles |
1517 | clone.Text = i |
1518 | clone.Visible = true |
1519 | clone.Name = i |
1520 | else |
1521 | local obj = script.Parent.Parent.Toggles:FindFirstChild(i) |
1522 | transitionColor(obj) |
1523 | end |
1524 | elseif not v.Toggled and script and script.Parent and script.Parent.Parent and script.Parent.Parent.Toggles:FindFirstChild(i) then |
1525 | script.Parent.Parent.Toggles:FindFirstChild(i):Destroy() |
1526 | end |
1527 | end |
1528 | end |
1529 | end) |
1530 | function ToEnum(str) |
1531 | for _, enum in Enum:GetEnums() do |
1532 | for i, v in enum:GetEnumItems() do |
1533 | if tostring(v):lower() == str:lower() then return v end |
1534 | end |
1535 | end |
1536 | end |
1537 | table.insert(funcs, ToEnum) |
1538 | Close.MouseButton1Click:Connect(CloseUI) |
1539 | local InputTypes = {Enum.UserInputType.MouseButton1,Enum.UserInputType.MouseButton2,Enum.UserInputType.MouseButton3} |
1540 | game:GetService("UserInputService").InputBegan:Connect(function(inp) |
1541 | if inp.KeyCode == ToEnum(Settings.HideBind) and not macroCreate then |
1542 | CloseUI() |
1543 | end |
1544 | if inp.KeyCode == macroStopBind then |
1545 | local s, e = pcall(writefile, "BrickAdmin/Macros/"..macroName, game:GetService("VirtualUser"):StopRecording():gsub('KeUp', 'KeyUp'):gsub('wait(', 'task.wait')) |
1546 | if s then print("Successfully saved macro as " .. macroName..'!') else warn("Failed to save macro!\nMessage: "..e) end |
1547 | macroCreate = false |
1548 | macroStopBind = nil |
1549 | CloseUI() |
1550 | end |
1551 | if SelectingBind and inp.UserInputType == Enum.UserInputType.Keyboard then |
1552 | Settings.HideBind = tostring(inp.KeyCode) |
1553 | HideBindC.Text = 'Changed to ' .. tostring(inp.KeyCode):split(".")[3] |
1554 | SelectingBind = false |
1555 | DisplayThing.Text = tostring(inp.KeyCode):split(".")[3] .. ' to hide.' |
1556 | task.wait(1) |
1557 | HideBindC.Text = 'Change hide bind' |
1558 | end |
1559 | end) |
1560 | HideBindC.MouseButton1Click:Connect(function() |
1561 | if HideBindC.Text == 'Change hide bind' then |
1562 | HideBindC.Text = 'Press the new hide bind.' |
1563 | SelectingBind = true |
1564 | end |
1565 | end) |
1566 | |
1567 | lp.CharacterAdded:Connect(function(c) |
1568 | Char = c |
1569 | task.spawn(function() Humanoid = c:WaitForChild('Humanoid') Root = c:WaitForChild('HumanoidRootPart') Humanoid.WalkSpeed = Speed Humanoid:WaitForChild'Animator'.AnimationPlayed:Connect(function(anim) if Toggles['animbuff'].Toggled then anim:AdjustSpeed(Toggles['animbuff'].Buff) end end) end) |
1570 | end) |
1571 | Humanoid.Died:Connect(function() |
1572 | Speed = Humanoid.WalkSpeed |
1573 | end) |
1574 | Players.PlayerRemoving:Connect(function(plr) |
1575 | if plr.UserId == lp.UserId then |
1576 | writefile("BrickAdmin/config.json", HTTPs:JSONEncode(Settings)) |
1577 | end |
1578 | end) |
1579 | local old; |
1580 | old = hookmetamethod(game, "__index", newcclosure(function(Self, Prop) |
1581 | if Self == Humanoid and Prop == 'WalkSpeed' and not checkcaller() then |
1582 | return 16 |
1583 | elseif Self == Humanoid and Prop == 'JumpPower' and not checkcaller() then |
1584 | return 50 |
1585 | elseif Self == Humanoid and Prop == 'HipHeight' and not checkcaller() then |
1586 | return 0 |
1587 | end |
1588 | return old(Self, Prop) |
1589 | end)) |
1590 | Humanoid:WaitForChild'Animator'.AnimationPlayed:Connect(function(anim) if Toggles['animbuff'].Toggled then anim:AdjustSpeed(Toggles['animbuff'].Buff) end end) |
1591 | end |
1592 | SVHU_fake_script() |