SHOW:
|
|
- or go back to the newest paste.
1 | --TopKek 4.0 Leak by Nazi Army | |
2 | --Works for Intriga, RC7, Stella, Cerberus, Veil and ProtoSmasher | |
3 | - | local topkek = {} |
3 | + | local topkek = {robloxguyeg2} |
4 | topkek.patch = '1.0.5a' | |
5 | topkek.data = {} | |
6 | topkek.commandbase = {} | |
7 | topkek.navigation = {} | |
8 | topkek.banmgr = {} | |
9 | topkek.lplr = game:GetService('Players').LocalPlayer | |
10 | ||
11 | topkek.tools = {} | |
12 | topkek.tools.gui = {} | |
13 | topkek.tools.util = {} | |
14 | topkek.tools.animator = {} | |
15 | ||
16 | topkek.windows = {} | |
17 | topkek.windows.lplr = {} | |
18 | topkek.windows.server = {} | |
19 | topkek.windows.players = {} | |
20 | topkek.windows.destruction = {} | |
21 | topkek.windows.scripts = {} | |
22 | topkek.windows.misc = {} | |
23 | ||
24 | topkek.misc = {} | |
25 | ||
26 | topkek.gui = game:GetObjects("rbxassetid://678309209")[1] | |
27 | topkek.gui.Parent = game:GetService("CoreGui") | |
28 | ||
29 | topkek.center = topkek.gui.Main | |
30 | topkek.holder = topkek.center.Holder | |
31 | topkek.topbar = topkek.center.Topbar | |
32 | topkek.template = topkek.holder.Template | |
33 | topkek.navigator = topkek.center.Navigation | |
34 | ||
35 | AllowHovers = false | |
36 | PlayerChatHook, UpdateBanlist = nil | |
37 | cmd = {} | |
38 | ||
39 | --// data //-- | |
40 | topkek.data.windows = { | |
41 | 'Home', | |
42 | 'LocalPlayer', | |
43 | 'Server', | |
44 | 'Players', | |
45 | 'Destruction', | |
46 | 'Scripts', | |
47 | 'Catalog', | |
48 | 'Music', | |
49 | 'Hats', | |
50 | 'Faces', | |
51 | 'Settings', | |
52 | 'Commands', | |
53 | 'Banlist', | |
54 | } | |
55 | ||
56 | color3 = function(r,g,b) | |
57 | return Color3.new(r/255, g/255, b/255) | |
58 | end | |
59 | --// doggo dropdown //-- | |
60 | -- thanks krystal | |
61 | GUI = { | |
62 | TextBox = { | |
63 | Settings = { | |
64 | Font = Enum.Font.SourceSans; | |
65 | FontSize = Enum.FontSize.Size14; | |
66 | }; | |
67 | Color = { | |
68 | Main = Color3.fromRGB(5,8,11); | |
69 | Border = Color3.fromRGB(27,42,53); | |
70 | Text = Color3.fromRGB(199,199,199); | |
71 | }; | |
72 | New = function(Position, Size, Parent, ...) | |
73 | local arguments = {...}; | |
74 | ||
75 | local TextBox = Instance.new("TextBox", Parent); | |
76 | TextBox.BackgroundColor3 = GUI.DropDown.Color.Main; | |
77 | TextBox.BorderColor3 = GUI.DropDown.Color.Border; | |
78 | TextBox.Font = GUI.TextBox.Settings.Font; | |
79 | TextBox.FontSize = GUI.TextBox.Settings.FontSize; | |
80 | TextBox.TextColor3 = GUI.TextBox.Color.Text; | |
81 | TextBox.Position = Position; | |
82 | TextBox.Size = Size; | |
83 | if #arguments then | |
84 | if arguments[1] then | |
85 | TextBox.Text = tostring(arguments[1]); | |
86 | else | |
87 | TextBox.Text = ""; | |
88 | end | |
89 | end | |
90 | return TextBox; | |
91 | end; | |
92 | }; | |
93 | DropDown = { | |
94 | Settings = { | |
95 | ScrollerAmount = 5; --A scroller will appear at this amount. | |
96 | ScrollBarThickness = 6; | |
97 | }; | |
98 | Gfx = { | |
99 | Scroller = "rbxassetid://606572419"; | |
100 | }; | |
101 | Color = { | |
102 | Main = color3(107, 36, 36); | |
103 | Secondary = color3(113, 39, 39); | |
104 | Border = color3(127, 44, 44); | |
105 | Text = Color3.fromRGB(199,199,199); | |
106 | }; | |
107 | New = function(Position, Size, Parent, ...) | |
108 | local vValue = {}; | |
109 | local arguments = {...}; | |
110 | local vSelected = Instance.new("StringValue"); | |
111 | vSelected.Value = "nil"; | |
112 | ||
113 | if arguments then | |
114 | if type(arguments) == "table" then | |
115 | for i=1,#(arguments) do | |
116 | if type(arguments[i]) == "table" then | |
117 | for f=1,#(arguments[i]) do | |
118 | table.insert(vValue, tostring((arguments[i])[f])); | |
119 | end | |
120 | else | |
121 | table.insert(vValue, tostring(arguments[i])); | |
122 | end | |
123 | end | |
124 | vSelected.Value = (vValue[1]); | |
125 | end | |
126 | end | |
127 | ||
128 | local Main = Instance.new("TextButton", Parent); | |
129 | Main.BackgroundColor3 = GUI.DropDown.Color.Main; | |
130 | Main.BorderColor3 = GUI.DropDown.Color.Border; | |
131 | Main.Position = Position; | |
132 | Main.Size = Size; | |
133 | Main.TextColor3 = GUI.DropDown.Color.Text; | |
134 | Main.FontSize = Enum.FontSize.Size14; | |
135 | Main.TextStrokeTransparency = 0.5; | |
136 | Main.TextXAlignment = Enum.TextXAlignment.Left; | |
137 | Main.Font = Enum.Font.SourceSans; | |
138 | Main.Text = " "..tostring(vSelected.Value); | |
139 | Main.ZIndex = 3 | |
140 | ||
141 | local Icon = Instance.new("TextLabel", Main); | |
142 | Icon.SizeConstraint = Enum.SizeConstraint.RelativeYY; | |
143 | Icon.BackgroundColor3 = GUI.DropDown.Color.Secondary; | |
144 | Icon.BorderColor3 = GUI.DropDown.Color.Border; | |
145 | Icon.Position = UDim2.new(1,-2,1,-2); | |
146 | Icon.Size = UDim2.new(-1,4,-1,4); | |
147 | Icon.TextColor3 = GUI.DropDown.Color.Text; | |
148 | Icon.FontSize = Enum.FontSize.Size14; | |
149 | Icon.TextStrokeTransparency = 0.5; | |
150 | Icon.Font = Enum.Font.SourceSans; | |
151 | Icon.Text = "V" | |
152 | Icon.ZIndex = 4 | |
153 | ||
154 | local Holder, Search; | |
155 | local ClearHolder = function() | |
156 | if Holder then | |
157 | Holder:ClearAllChildren(); | |
158 | Holder.Size = UDim2.new(1,0,0,0); | |
159 | Holder.Visible = false; | |
160 | if Search then | |
161 | Search.Visible = false; | |
162 | end | |
163 | end | |
164 | end; | |
165 | ||
166 | local CreateButton; | |
167 | local RefreshDropDown = function() | |
168 | if #vValue <= (GUI.DropDown.Settings.ScrollerAmount) then | |
169 | if not Holder or not Holder:IsA("Frame") then | |
170 | Holder = nil; Search = nil; | |
171 | Holder = Instance.new("Frame",Main); | |
172 | Holder.Size = UDim2.new(1,0,0,0); | |
173 | Holder.BackgroundColor3 = GUI.DropDown.Color.Main; | |
174 | Holder.BorderColor3 = GUI.DropDown.Color.Border; | |
175 | Holder.Visible = false; | |
176 | Holder.ZIndex = 3 | |
177 | end | |
178 | elseif #vValue > (GUI.DropDown.Settings.ScrollerAmount) then | |
179 | if not Holder or not Holder:IsA("ScrollingFrame") then | |
180 | Holder = nil; Search = nil; | |
181 | Search = GUI.TextBox.New(UDim2.new(0,0,0,0),UDim2.new(1,0,0,Main.AbsoluteSize.Y),Main); | |
182 | Search.Visible = false; | |
183 | Search.ZIndex = 4 | |
184 | Search.Changed:connect(function(p) | |
185 | if p == "Text" then | |
186 | CreateButton(Search.Text); | |
187 | end | |
188 | end) | |
189 | Holder = Instance.new("ScrollingFrame",Main); | |
190 | Holder.BackgroundColor3 = GUI.DropDown.Color.Main; | |
191 | Holder.BorderColor3 = GUI.DropDown.Color.Border; | |
192 | Holder.TopImage = GUI.DropDown.Gfx.Scroller; | |
193 | Holder.MidImage = GUI.DropDown.Gfx.Scroller; | |
194 | Holder.BottomImage = GUI.DropDown.Gfx.Scroller; | |
195 | Holder.Size = UDim2.new(1,0,0,Main.AbsoluteSize.Y * (GUI.DropDown.Settings.ScrollerAmount-1)); | |
196 | Holder.Position = UDim2.new(0,0,0,Main.AbsoluteSize.Y) | |
197 | Holder.ScrollBarThickness = GUI.DropDown.Settings.ScrollBarThickness; | |
198 | Holder.Visible = false; | |
199 | Holder.ZIndex = 3; | |
200 | end | |
201 | end | |
202 | if #vValue == 1 and vSelected.Value ~= vValue[1] then | |
203 | vSelected.Value = vValue[1]; | |
204 | elseif #vValue == 0 then | |
205 | vSelected.Value = "nil"; | |
206 | warn("Table amount is nil."); | |
207 | end | |
208 | Main.Text = " "..tostring(vSelected.Value); | |
209 | --ClearHolder(); | |
210 | end; | |
211 | ||
212 | local Debounce = false; | |
213 | CreateButton = function(searches) | |
214 | if Debounce == false then | |
215 | Debounce = true; | |
216 | ClearHolder() | |
217 | Holder.Visible = true; | |
218 | local Searched = 0; | |
219 | if #vValue > 0 then | |
220 | for i=1,#vValue do | |
221 | if (searches ~= nil and string.find(string.lower(vValue[i]), string.lower(searches)) and searches ~= "") then | |
222 | Searched = Searched + 1; | |
223 | end | |
224 | end | |
225 | for i=1,#vValue do | |
226 | if (searches ~= nil and string.find(string.lower(vValue[i]), string.lower(searches)) and searches ~= "" and Searched > 0) or searches == nil or searches == "" or Searched <= 0 then | |
227 | local Select = Instance.new("TextButton", Holder); | |
228 | Select.BackgroundColor3 = GUI.DropDown.Color.Main; | |
229 | Select.BorderColor3 = GUI.DropDown.Color.Border; | |
230 | Select.BackgroundTransparency = 1; | |
231 | Select.BorderSizePixel = 0; | |
232 | Select.Position = Position; | |
233 | if #vValue <= (GUI.DropDown.Settings.ScrollerAmount) then | |
234 | Select.Size = UDim2.new(1,0,0,Main.AbsoluteSize.Y); | |
235 | else | |
236 | Select.Size = UDim2.new(1,-(GUI.DropDown.Settings.ScrollBarThickness),0,Main.AbsoluteSize.Y); | |
237 | end | |
238 | Select.Position = UDim2.new(0,0,0,(Main.AbsoluteSize.Y) * (#Holder:GetChildren() - 1)) | |
239 | Select.TextColor3 = GUI.DropDown.Color.Text; | |
240 | Select.FontSize = Enum.FontSize.Size14; | |
241 | Select.TextStrokeTransparency = 0.5; | |
242 | Select.Font = Enum.Font.SourceSans; | |
243 | Select.Text = tostring(vValue[i]); | |
244 | Select.ZIndex = 3 | |
245 | Select.MouseButton1Click:connect(function() | |
246 | vSelected.Value = vValue[i]; | |
247 | ClearHolder(); | |
248 | RefreshDropDown(); | |
249 | end) | |
250 | if #vValue <= (GUI.DropDown.Settings.ScrollerAmount) then | |
251 | Holder.Size = UDim2.new(1,0,0,Main.AbsoluteSize.Y * i); | |
252 | elseif Holder:IsA("ScrollingFrame") then | |
253 | Search.Visible = true; | |
254 | if #Holder:GetChildren() >= 1 then | |
255 | Holder.CanvasSize = UDim2.new(1,0,0,Main.AbsoluteSize.Y * #Holder:GetChildren()); | |
256 | Holder.Size = UDim2.new(1,0,0,Main.AbsoluteSize.Y * #Holder:GetChildren());--GUI.DropDown.Settings.ScrollerAmount); | |
257 | if #Holder:GetChildren() >= GUI.DropDown.Settings.ScrollerAmount then | |
258 | Holder.Size = UDim2.new(1,0,0,Main.AbsoluteSize.Y * GUI.DropDown.Settings.ScrollerAmount); | |
259 | Holder.CanvasSize = UDim2.new(1,0,0,Main.AbsoluteSize.Y * #Holder:GetChildren()); | |
260 | end | |
261 | elseif #Holder:GetChildren() < 1 then | |
262 | Holder.CanvasSize = UDim2.new(1,0,0,Main.AbsoluteSize.Y * 1); | |
263 | Holder.Size = UDim2.new(1,0,0,Main.AbsoluteSize.Y * 1); | |
264 | end | |
265 | end | |
266 | end | |
267 | end | |
268 | end | |
269 | Debounce = false; | |
270 | end | |
271 | end; | |
272 | ||
273 | RefreshDropDown(); | |
274 | ||
275 | Main.MouseButton1Click:connect(function() | |
276 | CreateButton() | |
277 | if #vValue >= GUI.DropDown.Settings.ScrollerAmount and Search ~= nil then | |
278 | Search:CaptureFocus(); | |
279 | Search.Text = ""; | |
280 | end | |
281 | end) | |
282 | ||
283 | topkek.lplr:GetMouse().Button1Down:connect(function() | |
284 | ClearHolder() | |
285 | end) | |
286 | ||
287 | return { | |
288 | Update = function() | |
289 | RefreshDropDown(); | |
290 | end; | |
291 | GetValue = function() | |
292 | RefreshDropDown(); | |
293 | return vValue; | |
294 | end; | |
295 | GetSelected = function() | |
296 | RefreshDropDown(); | |
297 | return vSelected.Value; | |
298 | end; | |
299 | SetTable = function(F) | |
300 | vValue = F; | |
301 | RefreshDropDown(); | |
302 | end; | |
303 | Changed = function(F) | |
304 | vSelected.Changed:connect(function() | |
305 | ypcall(function() | |
306 | F(vSelected.Value); | |
307 | end) | |
308 | end) | |
309 | return "ChangedEvent Hooked"; | |
310 | end; | |
311 | AddValue = function(obj) | |
312 | local Type = type(obj); | |
313 | if Type == "table" then | |
314 | for i=1,#obj do | |
315 | table.insert(vValue, obj[i]) | |
316 | end | |
317 | elseif Type == "string" or Type == "number" or Type == "boolean" then | |
318 | table.insert(vValue, obj) | |
319 | end | |
320 | RefreshDropDown(); | |
321 | end; | |
322 | RemoveValue = function(obj) | |
323 | local Type = type(obj); | |
324 | if Type == "table" then | |
325 | for i=1,#vValue do | |
326 | for f=1,#obj do | |
327 | if tostring(obj[f]) == tostring(vValue[i]) then | |
328 | table.remove(vValue,i) | |
329 | end | |
330 | end | |
331 | end | |
332 | else | |
333 | for i=1,#vValue do | |
334 | if tostring(obj) == tostring(vValue[i]) then | |
335 | table.remove(vValue,i) | |
336 | end | |
337 | end | |
338 | end | |
339 | RefreshDropDown(); | |
340 | end; | |
341 | ClearValue = function() | |
342 | vValue = {}; | |
343 | RefreshDropDown(); | |
344 | end; | |
345 | } | |
346 | end; | |
347 | }; | |
348 | }; | |
349 | --// util //-- | |
350 | function topkek.tools.util.Object(o, p) | |
351 | local a, b = pcall(function() | |
352 | Instance.new(o) | |
353 | end) | |
354 | if not a then | |
355 | return | |
356 | end | |
357 | local obj = Instance.new(o) | |
358 | for prop, val in pairs(p) do | |
359 | pcall(function() | |
360 | obj[prop] = val | |
361 | end) | |
362 | end | |
363 | return obj | |
364 | end | |
365 | ||
366 | function topkek.tools.util.getContainer(n) | |
367 | if topkek.holder:FindFirstChild(n) then | |
368 | return topkek.holder[n] | |
369 | else | |
370 | print("menu not found; returning template") | |
371 | return topkek.holder['Template'] | |
372 | end | |
373 | end | |
374 | ||
375 | function topkek.tools.util.play(id) | |
376 | local mu = Instance.new("Sound", game:GetService('Workspace')) | |
377 | mu.Volume = 1 | |
378 | mu.Looped = true | |
379 | mu.Pitch = 1 | |
380 | mu.SoundId = "rbxassetid://"..tostring(id) | |
381 | mu:Play() | |
382 | end | |
383 | ||
384 | function topkek.tools.util.getTorso(plr) --r15 compatibility lole | |
385 | if plr.Character then | |
386 | if plr.Character:FindFirstChild('UpperTorso') then | |
387 | return plr.Character.UpperTorso | |
388 | elseif plr.Character:FindFirstChild('Torso') then | |
389 | return plr.Character.Torso | |
390 | else | |
391 | return nil | |
392 | end | |
393 | end | |
394 | end | |
395 | ||
396 | function topkek.tools.util.recurseRemove(x,type_) | |
397 | local function recurse(x) | |
398 | for i, v in pairs(x:GetChildren()) do | |
399 | pcall(function() | |
400 | if v:IsA(type_) then | |
401 | v:Destroy() | |
402 | end | |
403 | if #(v:GetChildren())>0 then | |
404 | recurse(v) | |
405 | end | |
406 | end) | |
407 | end | |
408 | end | |
409 | recurse(x) | |
410 | end | |
411 | ||
412 | function topkek.tools.util.recurseFunc(type_,func) | |
413 | local function recurse(x) | |
414 | for i, v in pairs(x:GetChildren()) do | |
415 | pcall(function() | |
416 | if v:IsA(type_) then | |
417 | func(v) | |
418 | end | |
419 | if #(v:GetChildren())>0 then | |
420 | recurse(v) | |
421 | end | |
422 | end) | |
423 | end | |
424 | end | |
425 | recurse(game) | |
426 | end | |
427 | function topkek.tools.util.trowel() | |
428 | local T = Instance.new('Tool', game.Players.LocalPlayer.Backpack) | |
429 | T.Name = 'Custom Trowel' | |
430 | ||
431 | local p = Instance.new('Part') | |
432 | p.Name = 'Handle' | |
433 | p.Size = Vector3.new(1,4.4,1) | |
434 | p.Parent = T | |
435 | ||
436 | local specialMesh = Instance.new('SpecialMesh') | |
437 | specialMesh.MeshId = 'rbxasset://fonts/trowel.mesh' | |
438 | specialMesh.MeshType = 'FileMesh' | |
439 | specialMesh.TextureId = 'rbxasset://textures/TrowelTexture.png' | |
440 | specialMesh.Parent = T.Handle | |
441 | ||
442 | local sound = Instance.new'Sound' | |
443 | sound.Name = 'build' | |
444 | sound.SoundId = 'rbxasset://sounds//bass.wav' | |
445 | sound.Volume = 1 | |
446 | sound.Parent = T.Handle | |
447 | ||
448 | local brickHeight = 100 | |
449 | local trowelSpeed = 0.05 | |
450 | local brickWidth = 500 | |
451 | local mouseConnection | |
452 | ||
453 | function newBrick(CF, P, color) | |
454 | local brick = Instance.new('Part') | |
455 | brick.BrickColor = color | |
456 | brick.CFrame = CF * CFrame.new(P + brick.Size / 2) | |
457 | brick.Parent = game.Workspace | |
458 | brick:MakeJoints() | |
459 | brick.Material = 'Neon' | |
460 | brick.Name = 'DeleteMe' | |
461 | return brick, P + brick.Size | |
462 | end | |
463 | ||
464 | function genBrick(cFrame) | |
465 | local randBrickColor = BrickColor.Random() | |
466 | assert(brickWidth > 0) | |
467 | ||
468 | local yPos = 0 | |
469 | ||
470 | while yPos < brickHeight do | |
471 | local vPos | |
472 | local X = -brickWidth / 2 | |
473 | while X < brickWidth / 2 do | |
474 | local brick | |
475 | brick, vPos = newBrick(cFrame, Vector3.new(X, yPos, 0), randBrickColor) | |
476 | X = vPos.x | |
477 | wait(trowelSpeed) | |
478 | end | |
479 | yPos = vPos.y | |
480 | end | |
481 | end | |
482 | ||
483 | function calcPos(vec) | |
484 | if (math.abs(vec.x) > math.abs(vec.z)) then | |
485 | if vec.x > 0 then | |
486 | return Vector3.new(1, 0, 0) | |
487 | else | |
488 | return Vector3.new(-1, 0, 0) | |
489 | end | |
490 | else | |
491 | if (vec.z > 0) then | |
492 | return Vector3.new(0, 0, 1) | |
493 | else | |
494 | return Vector3.new(0, 0, -1) | |
495 | end | |
496 | end | |
497 | end | |
498 | ||
499 | T.Enabled = true | |
500 | ||
501 | T.Activated:connect(function() | |
502 | if T.Enabled and game.Players.LocalPlayer.Character:FindFirstChild('Humanoid') then | |
503 | T.Enabled = false | |
504 | T.Handle.build:Play() | |
505 | genBrick(CFrame.new(game.Players.LocalPlayer.Character.Humanoid.TargetPoint, game.Players.LocalPlayer.Character.Humanoid.TargetPoint + calcPos((game.Players.LocalPlayer.Character.Humanoid.TargetPoint - game.Players.LocalPlayer.Character.Head.Position).unit))) | |
506 | T.Enabled = true | |
507 | end | |
508 | end) | |
509 | ||
510 | T.Equipped:connect(function() | |
511 | mouseConnection = game.Players.LocalPlayer:GetMouse().KeyDown:connect(function(key) | |
512 | if (key == 'r') then | |
513 | for i,v in next, workspace:children'' do | |
514 | if (v.Name == 'DeleteMe') then | |
515 | v:Destroy() | |
516 | end | |
517 | end | |
518 | end | |
519 | end) | |
520 | end) | |
521 | ||
522 | T.Unequipped:connect(function() | |
523 | mouseConnection:disconnect() | |
524 | end) | |
525 | end | |
526 | function topkek.tools.util.recurseSet(type_,prop,val) | |
527 | local function recurse(x) | |
528 | for i, v in pairs(x:GetChildren()) do | |
529 | pcall(function() | |
530 | if v:IsA(type_) then | |
531 | v[prop]=val | |
532 | end | |
533 | if #(v:GetChildren())>0 then | |
534 | recurse(v) | |
535 | end | |
536 | end) | |
537 | end | |
538 | end | |
539 | recurse(game) | |
540 | end | |
541 | function topkek.tools.util.recurseUltimate(d) | |
542 | topkek.tools.util.recurseDecal(d) | |
543 | topkek.tools.util.recurseParticles(d) | |
544 | end | |
545 | function topkek.tools.util.recurseDecal(img) | |
546 | img = 'rbxassetid://' .. img | |
547 | local function skybox(x) | |
548 | local sky = Instance.new("Sky",game.Lighting) | |
549 | local fcs={"Bk","Dn","Ft","Lf","Rt","Up"} | |
550 | for i,v in pairs(fcs) do | |
551 | sky["Skybox"..v]=x | |
552 | end | |
553 | end | |
554 | ||
555 | local function decal(p, b) | |
556 | local sides = {"Back", "Bottom", "Front", "Left", "Right", "Top"} | |
557 | for i, v in pairs(sides) do | |
558 | local a = Instance.new("Decal", p) | |
559 | a.Texture = b | |
560 | a.Face = v | |
561 | end | |
562 | end | |
563 | ||
564 | local function recurse(x) | |
565 | for i, v in pairs(x:GetChildren()) do | |
566 | pcall(function() -- 'error occured, no output from Lua' LOLE | |
567 | if v:IsA("BasePart") then | |
568 | decal(v, img) | |
569 | end | |
570 | if #(v:GetChildren())>0 then | |
571 | recurse(v) | |
572 | end | |
573 | end) | |
574 | end | |
575 | end | |
576 | ||
577 | recurse(game) | |
578 | skybox(img) | |
579 | end | |
580 | function topkek.tools.util.recurseParticles(img)--topkek2.0 code tbh | |
581 | img = 'rbxassetid://' .. img | |
582 | local function skybox(x) | |
583 | local sky = Instance.new("Sky",game.Lighting) | |
584 | local fcs={"Bk","Dn","Ft","Lf","Rt","Up"} | |
585 | for i,v in pairs(fcs) do | |
586 | sky["Skybox"..v]=x | |
587 | end | |
588 | end | |
589 | local function particle(p, b) | |
590 | local a = Instance.new("ParticleEmitter", p) | |
591 | a.Rate = 500 | |
592 | a.Lifetime = NumberRange.new(20, 30) | |
593 | a.VelocitySpread = 200 | |
594 | a.Texture = b | |
595 | end | |
596 | ||
597 | local function recurse(x) | |
598 | for i, v in pairs(x:GetChildren()) do | |
599 | pcall(function() -- 'error occured, no output from Lua' LOLE | |
600 | if v:IsA("BasePart") then | |
601 | particle(v, img) | |
602 | end | |
603 | if #(v:GetChildren())>0 then | |
604 | recurse(v) | |
605 | end | |
606 | end) | |
607 | end | |
608 | end | |
609 | ||
610 | recurse(game) | |
611 | skybox(img) | |
612 | end | |
613 | function topkek.tools.util.recurseSetObj(obj,type_,prop,val) | |
614 | local function recurse(x) | |
615 | for i, v in pairs(x:GetChildren()) do | |
616 | pcall(function() | |
617 | if v:IsA(type_) then | |
618 | v[prop]=val | |
619 | end | |
620 | if #(v:GetChildren())>0 then | |
621 | recurse(v) | |
622 | end | |
623 | end) | |
624 | end | |
625 | end | |
626 | recurse(obj) | |
627 | end | |
628 | function topkek.tools.util.doPlayers(cval, func) | |
629 | local plrs = {} | |
630 | if cval == 'All' then | |
631 | plrs = game:GetService('Players'):GetPlayers() | |
632 | else | |
633 | plrs = {game:GetService('Players'):FindFirstChild(cval)} | |
634 | end | |
635 | for i, v in pairs(plrs) do | |
636 | func(v) | |
637 | end | |
638 | end | |
639 | function topkek.tools.util.scalePlayer(sc,plr) | |
640 | local pchar = plr.Character | |
641 | if pchar:FindFirstChild("UpperTorso") then | |
642 | warn("Player [" ..plr.Name.. "] is R15.") | |
643 | return | |
644 | end | |
645 | local function scale(chr,scl) | |
646 | ||
647 | for _,v in pairs(pchar:GetChildren()) do | |
648 | if v:IsA("Hat") then | |
649 | v:Clone() | |
650 | v.Parent = game.Lighting | |
651 | end | |
652 | end | |
653 | ||
654 | local Head = chr['Head'] | |
655 | local Torso = chr['Torso'] | |
656 | local LA = chr['Left Arm'] | |
657 | local RA = chr['Right Arm'] | |
658 | local LL = chr['Left Leg'] | |
659 | local RL = chr['Right Leg'] | |
660 | local HRP = chr['HumanoidRootPart'] | |
661 | ||
662 | wait(0.1) | |
663 | ||
664 | Head.formFactor = 3 | |
665 | Torso.formFactor = 3 | |
666 | LA.formFactor = 3 | |
667 | RA.formFactor = 3 | |
668 | LL.formFactor = 3 | |
669 | RL.formFactor = 3 | |
670 | HRP.formFactor = 3 | |
671 | ||
672 | Head.Size = Vector3.new(scl * 2, scl, scl) | |
673 | Torso.Size = Vector3.new(scl * 2, scl * 2, scl) | |
674 | LA.Size = Vector3.new(scl, scl * 2, scl) | |
675 | RA.Size = Vector3.new(scl, scl * 2, scl) | |
676 | LL.Size = Vector3.new(scl, scl * 2, scl) | |
677 | RL.Size = Vector3.new(scl, scl * 2, scl) | |
678 | HRP.Size = Vector3.new(scl * 2, scl * 2, scl) | |
679 | ||
680 | local Motor1 = Instance.new('Motor6D', Torso) | |
681 | Motor1.Part0 = Torso | |
682 | Motor1.Part1 = Head | |
683 | Motor1.C0 = CFrame.new(0, 1 * scl, 0) * CFrame.Angles(-1.6, 0, 3.1) | |
684 | Motor1.C1 = CFrame.new(0, -0.5 * scl, 0) * CFrame.Angles(-1.6, 0, 3.1) | |
685 | Motor1.Name = "Neck" | |
686 | ||
687 | local Motor2 = Instance.new('Motor6D', Torso) | |
688 | Motor2.Part0 = Torso | |
689 | Motor2.Part1 = LA | |
690 | Motor2.C0 = CFrame.new(-1 * scl, 0.5 * scl, 0) * CFrame.Angles(0, -1.6, 0) | |
691 | Motor2.C1 = CFrame.new(0.5 * scl, 0.5 * scl, 0) * CFrame.Angles(0, -1.6, 0) | |
692 | Motor2.Name = "Left Shoulder" | |
693 | ||
694 | local Motor3 = Instance.new('Motor6D', Torso) | |
695 | Motor3.Part0 = Torso | |
696 | Motor3.Part1 = RA | |
697 | Motor3.C0 = CFrame.new(1 * scl, 0.5 * scl, 0) * CFrame.Angles(0, 1.6, 0) | |
698 | Motor3.C1 = CFrame.new(-0.5 * scl, 0.5 * scl, 0) * CFrame.Angles(0, 1.6, 0) | |
699 | Motor3.Name = "Right Shoulder" | |
700 | ||
701 | local Motor4 = Instance.new('Motor6D', Torso) | |
702 | Motor4.Part0 = Torso | |
703 | Motor4.Part1 = LL | |
704 | Motor4.C0 = CFrame.new(-1 * scl, -1 * scl, 0) * CFrame.Angles(0, -1.6, 0) | |
705 | Motor4.C1 = CFrame.new(-0.5 * scl, 1 * scl, 0) * CFrame.Angles(0, -1.6, 0) | |
706 | Motor4.Name = "Left Hip" | |
707 | ||
708 | local Motor5 = Instance.new('Motor6D', Torso) | |
709 | Motor5.Part0 = Torso | |
710 | Motor5.Part1 = RL | |
711 | Motor5.C0 = CFrame.new(1 * scl, -1 * scl, 0) * CFrame.Angles(0, 1.6, 0) | |
712 | Motor5.C1 = CFrame.new(0.5 * scl, 1 * scl, 0) * CFrame.Angles(0, 1.6, 0) | |
713 | Motor5.Name = "Right Hip" | |
714 | ||
715 | local Motor6 = Instance.new('Motor6D', HRP) | |
716 | Motor6.Part0 = HRP | |
717 | Motor6.Part1 = Torso | |
718 | Motor6.C0 = CFrame.new(0, 0, 0) * CFrame.Angles(-1.6, 0, -3.1) | |
719 | Motor6.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(-1.6, 0, -3.1) | |
720 | ||
721 | end | |
722 | ||
723 | scale(pchar, sc) | |
724 | ||
725 | for _,v in pairs(game.Lighting:GetChildren()) do | |
726 | if v:IsA("Hat") then | |
727 | v.Parent = pchar | |
728 | end | |
729 | end | |
730 | end | |
731 | function topkek.tools.util.applyFace(id) | |
732 | local Char = topkek.lplr.Character | |
733 | if(Char)then | |
734 | local Type = id | |
735 | local Meme=id | |
736 | local BBG_SIZE=Char.Head.Size.X*1.25; | |
737 | local STUD_VECTOR_1=Char.Head.Size.Z/4; | |
738 | local STUD_VECTOR_2=Char.Head.Size.Z; | |
739 | local bbg=Char:FindFirstChild'BBGMEME'or Instance.new('BillboardGui',Char); | |
740 | bbg.StudsOffset=Vector3.new(0,STUD_VECTOR_1,STUD_VECTOR_2); | |
741 | bbg.Size=UDim2.new(BBG_SIZE,0,BBG_SIZE); | |
742 | bbg.Adornee=Char.Head; | |
743 | bbg.Name='BBGMEME'; | |
744 | local img=bbg:FindFirstChild'Meme'or Instance.new('ImageLabel',bbg); | |
745 | img.BackgroundTransparency=1; | |
746 | img.Image="rbxassetid://"..Meme; | |
747 | img.Size=UDim2.new(1,0,1,0) | |
748 | img.Name='Meme'; | |
749 | for i,v in next,Char:children()do | |
750 | if(v.className=='Hat')then | |
751 | v=v:FindFirstChild'Handle'; | |
752 | if(v)then | |
753 | v.Transparency=0 | |
754 | end; | |
755 | end; | |
756 | end; | |
757 | end; | |
758 | end; | |
759 | function topkek.tools.util.weenieHutJunior(plr) | |
760 | plr=plr.Character | |
761 | Shaft=Instance.new("Part", plr) | |
762 | Shaft.Name='Shaft' | |
763 | Shaft.Size=Vector3.new(1, 2.5, 1) | |
764 | Shaft.TopSurface=0 | |
765 | Shaft.BottomSurface=0 | |
766 | Shaft.CanCollide=true | |
767 | Cyln=Instance.new("CylinderMesh", Shaft) | |
768 | Cyln.Scale=Vector3.new(0.5,0.7,0.5) | |
769 | Instance.new("Weld", plr) | |
770 | plr.Weld.Part0=plr:FindFirstChild("Torso") or plr:FindFirstChild("LowerTorso") | |
771 | plr.Weld.Part1=plr.Shaft | |
772 | plr.Weld.C0=CFrame.new(0,-0.35,-0.9)*CFrame.fromEulerAnglesXYZ(2.2,0,0) | |
773 | Shaft.BrickColor=BrickColor.new("Pastel brown") | |
774 | Tip=Instance.new("Part", plr) | |
775 | Tip.Name='Tip' | |
776 | Tip.TopSurface=0 | |
777 | Tip.BottomSurface=0 | |
778 | Tip.Size=Vector3.new(1, 1, 1) | |
779 | Tip.CanCollide=true | |
780 | Tip.Touched:connect(function(prt) if prt.Parent~=player then spawn(function() for i=1, 5 do local pert=Instance.new("Part", player) pert.CFrame=CFrame.new(prt.Position) pert.CanCollide=true local mesh=Instance.new("BlockMesh", pert) mesh.Scale=Vector3.new(0.2,0.2,0.2) pert.BrickColor=BrickColor.new("White") end end) end end) | |
781 | Cyln2=Instance.new("SpecialMesh", Tip) | |
782 | Cyln2.MeshType='Sphere' | |
783 | Cyln2.Scale=Vector3.new(0.6,0.6,0.6) | |
784 | Instance.new("Weld", plr).Name='Weld2' | |
785 | plr.Weld2.Part0=plr.Shaft | |
786 | plr.Weld2.Part1=plr.Tip | |
787 | plr.Weld2.C0=CFrame.new(0,-.9,0) | |
788 | Tip.BrickColor=BrickColor.new("Pink") | |
789 | ----- | |
790 | Ball1=Instance.new("Part", plr) | |
791 | Ball1.Name='Ball1' | |
792 | Ball1.Size=Vector3.new(1, 1, 1) | |
793 | Ball1.TopSurface=0 | |
794 | Ball1.BottomSurface=0 | |
795 | Cyln3=Instance.new("SpecialMesh", Ball1) | |
796 | Cyln3.MeshType='Sphere' | |
797 | Cyln3.Scale=Vector3.new(0.4,0.4,0.4) | |
798 | Instance.new("Weld", plr).Name='Weld3' | |
799 | plr.Weld3.Part0=plr.Shaft | |
800 | plr.Weld3.Part1=plr.Ball1 | |
801 | plr.Weld3.C0=CFrame.new(0.225,.4,0.2) | |
802 | Ball1.BrickColor=BrickColor.new("Pastel brown") | |
803 | ----- | |
804 | Ball2=Instance.new("Part", plr) | |
805 | Ball2.Name='Ball2' | |
806 | Ball2.Size=Vector3.new(1, 1, 1) | |
807 | Ball2.TopSurface=0 | |
808 | Ball2.BottomSurface=0 | |
809 | Cyln3=Instance.new("SpecialMesh", Ball2) | |
810 | Cyln3.MeshType='Sphere' | |
811 | Cyln3.Scale=Vector3.new(0.4,0.4,0.4) | |
812 | Instance.new("Weld", plr).Name='Weld4' | |
813 | plr.Weld4.Part0=plr.Shaft | |
814 | plr.Weld4.Part1=plr.Ball2 | |
815 | plr.Weld4.C0=CFrame.new(-0.225,.4,0.2) | |
816 | Ball2.BrickColor=BrickColor.new("Pastel brown") | |
817 | end | |
818 | --// banmgr //-- | |
819 | topkek.banmgr.isPrivate = false | |
820 | topkek.banmgr.whitelist = {} | |
821 | topkek.banmgr.bans = {} | |
822 | function topkek.banmgr.executeKick(z) | |
823 | local function doKick() | |
824 | if z.Character and z.Character:FindFirstChild('HumanoidRootPart') and z.Character:FindFirstChild('Torso') then | |
825 | z.Character.HumanoidRootPart.CFrame = CFrame.new(math.random(999000, 1001000), 1000000, 1000000) | |
826 | local SP = Instance.new('SkateboardPlatform', z.Character) SP.Position = z.Character.HumanoidRootPart.Position SP.Transparency = 1 | |
827 | spawn(function() | |
828 | repeat wait() | |
829 | if z.Character and z.Character:FindFirstChild('HumanoidRootPart') then | |
830 | SP.Position = z.Character.HumanoidRootPart.Position | |
831 | end | |
832 | until not game:GetService('Players'):FindFirstChild(z.Name) | |
833 | end) | |
834 | z.Character.Torso.Anchored = true | |
835 | end | |
836 | end | |
837 | repeat | |
838 | doKick() | |
839 | wait() | |
840 | until not z | |
841 | end | |
842 | function topkek.banmgr.loadFromFile() | |
843 | -- todo: read file | |
844 | topkek.settings.get() | |
845 | topkek.banmgr.bans = topkek.settingsTable['Bans'] | |
846 | end | |
847 | function topkek.banmgr.addHardBan(p) | |
848 | -- todo: write file | |
849 | table.insert(topkek.banmgr.bans, p.Name) | |
850 | topkek.settings.get() | |
851 | table.insert(topkek.settingsTable['Bans'], p.Name) | |
852 | topkek.settings.write() | |
853 | print("Hardbanned " .. p.Name) | |
854 | UpdateBanlist() | |
855 | topkek.banmgr.executeKick(p) | |
856 | topkek.banmgr.loadFromFile() | |
857 | end | |
858 | function topkek.banmgr.addSoftBan(p) | |
859 | table.insert(topkek.banmgr.bans, p.Name) | |
860 | topkek.banmgr.executeKick(p) | |
861 | end | |
862 | function topkek.banmgr.plrBanned(p) | |
863 | for x, m in pairs(topkek.banmgr.bans) do | |
864 | if m == p.Name then | |
865 | return true | |
866 | end | |
867 | end | |
868 | return false | |
869 | end | |
870 | function topkek.banmgr.doWhitelist(p) | |
871 | print(p .. " whitelisted") | |
872 | table.insert(topkek.banmgr.whitelist, p) | |
873 | end | |
874 | function topkek.banmgr.unwhitelist(p) | |
875 | for x, m in pairs(topkek.banmgr.whitelist) do | |
876 | if m == p then | |
877 | print(m .. " unwhitelisted") | |
878 | table.remove(topkek.banmgr.whitelist, x) | |
879 | if game:GetService('Players'):FindFirstChild(p) then | |
880 | topkek.banmgr.executeKick(game:GetService('Players')[p]) | |
881 | end | |
882 | end | |
883 | end | |
884 | end | |
885 | function topkek.banmgr.plrWhitelisted(p) | |
886 | for x, m in pairs(topkek.banmgr.whitelist) do | |
887 | if m == p.Name then | |
888 | return true | |
889 | end | |
890 | end | |
891 | return false | |
892 | end | |
893 | function topkek.banmgr.makePrivate() | |
894 | topkek.banmgr.isPrivate = true | |
895 | for i, v in pairs(game:GetService('Players'):GetPlayers()) do | |
896 | if not topkek.banmgr.plrWhitelisted(v) and v ~= topkek.lplr then | |
897 | spawn(function() | |
898 | topkek.banmgr.executeKick(v) | |
899 | end) | |
900 | end | |
901 | end | |
902 | end | |
903 | function topkek.banmgr.unprivate() | |
904 | topkek.banmgr.isPrivate = false | |
905 | end | |
906 | function topkek.banmgr.init() | |
907 | topkek.banmgr.loadFromFile() | |
908 | game:GetService('Players').PlayerAdded:connect(function(p) | |
909 | if topkek.banmgr.plrBanned(p) or (topkek.banmgr.isPrivate and not topkek.banmgr.plrWhitelisted(p)) then | |
910 | print("Player " .. p.Name .. " is banned (or private on)! Kicking now.") | |
911 | topkek.banmgr.executeKick(p) | |
912 | end | |
913 | end) | |
914 | end | |
915 | --// settings //-- | |
916 | topkek.settings = {} | |
917 | topkek.settingsTable = {} | |
918 | function topkek.settings.write() | |
919 | --writefile("testplzignore.lua", "", game:GetService('HttpService'):JSONEncode(topkek.settingsTable)) | |
920 | end | |
921 | function topkek.settings.get() | |
922 | if game.Players.LocalPlayer.Character then | |
923 | print("No settings! Making new ...") | |
924 | topkek.settingsTable = { | |
925 | ['Bans'] = { | |
926 | ||
927 | }, | |
928 | ['Themes'] = { | |
929 | {Primary = {0,0,0}, Secondary = {0,0,0}, Tertiary = {0,0,0}} | |
930 | }; | |
931 | } | |
932 | topkek.settings.write() | |
933 | return topkek.settingsTable | |
934 | else | |
935 | local lset = game:GetService('HttpService'):JSONDecode(set) | |
936 | topkek.settingsTable = lset | |
937 | return lset | |
938 | end | |
939 | end | |
940 | --// shortcuts //-- | |
941 | tk = {} | |
942 | tk.ob = topkek.tools.util.Object | |
943 | tk.dp = topkek.tools.util.doPlayers | |
944 | tk.rcm = topkek.tools.util.recurseRemove | |
945 | tk.rcs = topkek.tools.util.recurseSet | |
946 | tk.rcf = topkek.tools.util.recurseFunc | |
947 | tk.rco = topkek.tools.util.recurseSetObj | |
948 | tk.play = topkek.tools.util.play | |
949 | tk.gt = topkek.tools.util.getTorso | |
950 | --// gui //-- | |
951 | -- copying this from topkek3.0 because i'm | |
952 | -- too lazy to rewrite my lib | |
953 | topkek.tools.gui.seperation = 12 | |
954 | function topkek.tools.gui:addLeftIcon(parent, img, sz) | |
955 | topkek.tools.util.Object('ImageLabel', { | |
956 | Parent = parent; | |
957 | BackgroundTransparency = 1; | |
958 | Position = UDim2.new(0, 2, 0, 2); | |
959 | Size = UDim2.new(0, sz, 0, sz); | |
960 | Image = img; | |
961 | }) | |
962 | end | |
963 | function topkek.tools.gui:makeContainer(n) | |
964 | local temp = topkek.template:Clone() | |
965 | temp.Name = n | |
966 | temp.Parent = topkek.holder | |
967 | temp.Container.Visible = false | |
968 | end | |
969 | function topkek.tools.gui:hookContainer(o, ncan, sepr, stt) | |
970 | if not o:IsA("ScrollingFrame") and (not ncan) then | |
971 | return nil | |
972 | elseif o:IsA("ScrollingFrame") then | |
973 | o.CanvasSize = UDim2.new(0, 0, 0, 0) | |
974 | end | |
975 | ||
976 | local self = {} | |
977 | self.main = o | |
978 | self.drawX = 0 | |
979 | self.drawY = stt or topkek.tools.gui.seperation/2 | |
980 | self.drawHeight = 0 | |
981 | self.sepr = sepr or topkek.tools.gui.seperation | |
982 | ||
983 | function self:drawButton(sz, txt, func, ysz, cbgd) | |
984 | local xposOffset = 0 | |
985 | local xposScale = self.drawX | |
986 | local xszOffset = 0 | |
987 | local xszScale = sz | |
988 | if not (self.drawX == 0) then | |
989 | xszOffset = -5 | |
990 | if sz + self.drawX > 0.998 then | |
991 | xszOffset = -10 | |
992 | end | |
993 | elseif sz == 1 then | |
994 | local bzz = 4 | |
995 | if ncan then | |
996 | bzz = 0 | |
997 | end | |
998 | xszOffset = -(self.sepr) - bzz | |
999 | xposOffset = self.sepr/2 | |
1000 | else | |
1001 | xszOffset = -4 + -(self.sepr/2) | |
1002 | xposOffset = self.sepr/2 | |
1003 | end | |
1004 | if not ysz then ysz = 20 end | |
1005 | local obj = topkek.tools.util.Object("TextButton", { | |
1006 | Parent = self.main; | |
1007 | BackgroundColor3 = cbgd or Color3.new(163/255, 57/255, 57/255); | |
1008 | BorderSizePixel = 0; | |
1009 | Position = UDim2.new(xposScale, xposOffset, 0, self.drawY); | |
1010 | Size = UDim2.new(xszScale, xszOffset, 0, ysz); | |
1011 | Font = 'SourceSans'; | |
1012 | FontSize = 'Size14'; | |
1013 | Text = txt; | |
1014 | TextSize = 14; | |
1015 | TextColor3 = Color3.new(199/255, 199/255, 199/255); | |
1016 | }) | |
1017 | obj.MouseButton1Down:connect(function() | |
1018 | spawn(func) | |
1019 | end) | |
1020 | if ysz > self.drawHeight then | |
1021 | self.drawHeight = ysz | |
1022 | end | |
1023 | self.drawX = self.drawX + sz | |
1024 | if self.drawX > 0.998 then | |
1025 | self.drawY = self.drawY + 3 + self.drawHeight | |
1026 | self.drawX = 0 | |
1027 | self.drawHeight = 0 | |
1028 | if (not ncan) then | |
1029 | self.main.CanvasSize = UDim2.new(0, 0, 0, self.drawY + 5) | |
1030 | end | |
1031 | end | |
1032 | return obj | |
1033 | end | |
1034 | ||
1035 | function self:GetChildren() | |
1036 | return self.main:GetChildren() | |
1037 | end | |
1038 | ||
1039 | function self:getDrawY() | |
1040 | return self.drawY | |
1041 | end | |
1042 | ||
1043 | function self:setDrawY(y) | |
1044 | self.drawY = y | |
1045 | end | |
1046 | ||
1047 | function self:drawTextBox(sz, txt, ysz, cbgd) | |
1048 | local xposOffset = 0 | |
1049 | local xposScale = self.drawX | |
1050 | local xszOffset = 0 | |
1051 | local xszScale = sz | |
1052 | if not (self.drawX == 0) then | |
1053 | xszOffset = -5 | |
1054 | if sz + self.drawX > 0.998 then | |
1055 | xszOffset = -10 | |
1056 | end | |
1057 | elseif sz == 1 then | |
1058 | xszOffset = -(self.sepr) - 5 | |
1059 | xposOffset = self.sepr/2 | |
1060 | else | |
1061 | xszOffset = -4 + -(self.sepr/2) | |
1062 | xposOffset = self.sepr/2 | |
1063 | end | |
1064 | if not ysz then ysz = 20 end | |
1065 | local obj = topkek.tools.util.Object("TextBox", { | |
1066 | Parent = self.main; | |
1067 | BackgroundColor3 = cbgd or color3(153, 52, 52); | |
1068 | BorderSizePixel = 0; | |
1069 | Position = UDim2.new(xposScale, xposOffset, 0, self.drawY); | |
1070 | Size = UDim2.new(xszScale, xszOffset, 0, ysz); | |
1071 | Font = 'SourceSans'; | |
1072 | FontSize = 'Size14'; | |
1073 | Text = txt; | |
1074 | TextSize = 14; | |
1075 | TextColor3 = Color3.new(199/255, 199/255, 199/255); | |
1076 | }) | |
1077 | if ysz > self.drawHeight then | |
1078 | self.drawHeight = ysz | |
1079 | end | |
1080 | self.drawX = self.drawX + sz | |
1081 | if self.drawX > 0.998 then | |
1082 | self.drawY = self.drawY + 3 + self.drawHeight | |
1083 | self.drawX = 0 | |
1084 | self.drawHeight = 0 | |
1085 | self.main.CanvasSize = UDim2.new(0, 0, 0, self.drawY + 5) | |
1086 | end | |
1087 | return obj | |
1088 | end | |
1089 | ||
1090 | function self:drawImage(sz, img, ysz) | |
1091 | local xposOffset = 0 | |
1092 | local xposScale = self.drawX | |
1093 | local xszOffset = 0 | |
1094 | local xszScale = sz | |
1095 | if not (self.drawX == 0) then | |
1096 | xszOffset = -5 | |
1097 | if sz + self.drawX > 0.998 then | |
1098 | xszOffset = -12 | |
1099 | end | |
1100 | elseif sz == 1 then | |
1101 | xszOffset = -(self.sepr) - 5 | |
1102 | xposOffset = self.sepr/2 | |
1103 | else | |
1104 | xszOffset = -5 + -(self.sepr/2) | |
1105 | xposOffset = self.sepr/2 | |
1106 | end | |
1107 | if not ysz then ysz = 20 end | |
1108 | local obj = topkek.tools.util.Object("ImageLabel", { | |
1109 | Parent = self.main; | |
1110 | BackgroundTransparency = 1; | |
1111 | BorderColor3 = Color3.new(27, 42, 53); | |
1112 | BorderSizePixel = 0; | |
1113 | Position = UDim2.new(xposScale, xposOffset, 0, self.drawY); | |
1114 | Size = UDim2.new(xszScale, xszOffset, 0, ysz); | |
1115 | Image = img; | |
1116 | }) | |
1117 | if ysz > self.drawHeight then | |
1118 | self.drawHeight = ysz | |
1119 | end | |
1120 | self.drawX = self.drawX + sz | |
1121 | if self.drawX > 0.998 then | |
1122 | self.drawY = self.drawY + 3 + self.drawHeight | |
1123 | self.drawX = 0 | |
1124 | self.drawHeight = 0 | |
1125 | if (not ncan) then | |
1126 | self.main.CanvasSize = UDim2.new(0, 0, 0, self.drawY + 5) | |
1127 | end | |
1128 | end | |
1129 | return obj | |
1130 | end | |
1131 | ||
1132 | function self:drawText(sz, txt, ysz) | |
1133 | local xposOffset = 0 | |
1134 | local xposScale = self.drawX | |
1135 | local xszOffset = 0 | |
1136 | local xszScale = sz | |
1137 | if not (self.drawX == 0) then | |
1138 | xszOffset = -5 | |
1139 | if sz + self.drawX > 0.998 then | |
1140 | xszOffset = -10 | |
1141 | end | |
1142 | elseif sz == 1 then | |
1143 | local bzz = 5 | |
1144 | if ncan then | |
1145 | bzz = 0 | |
1146 | end | |
1147 | xszOffset = -(self.sepr) - bzz | |
1148 | xposOffset = self.sepr/2 | |
1149 | else | |
1150 | xszOffset = -4 + -(self.sepr/2) | |
1151 | xposOffset = self.sepr/2 | |
1152 | end | |
1153 | if not ysz then ysz = 20 end | |
1154 | local obj = topkek.tools.util.Object("TextLabel", { | |
1155 | Parent = self.main; | |
1156 | BackgroundColor3 = Color3.new(148/255, 51/255, 51/255); | |
1157 | BorderSizePixel = 0; | |
1158 | Position = UDim2.new(xposScale, xposOffset, 0, self.drawY); | |
1159 | Size = UDim2.new(xszScale, xszOffset, 0, ysz); | |
1160 | Font = 'SourceSans'; | |
1161 | FontSize = 'Size14'; | |
1162 | Text = txt; | |
1163 | TextSize = 14; | |
1164 | TextColor3 = Color3.new(199/255, 199/255, 199/255); | |
1165 | ||
1166 | }) | |
1167 | if ysz > self.drawHeight then | |
1168 | self.drawHeight = ysz | |
1169 | end | |
1170 | self.drawX = self.drawX + sz | |
1171 | if self.drawX > 0.998 then | |
1172 | self.drawY = self.drawY + 3 + self.drawHeight | |
1173 | self.drawX = 0 | |
1174 | self.drawHeight = 0 | |
1175 | if (not ncan) then | |
1176 | self.main.CanvasSize = UDim2.new(0, 0, 0, self.drawY + 5) | |
1177 | end | |
1178 | end | |
1179 | return obj | |
1180 | end | |
1181 | ||
1182 | ||
1183 | function self:drawScrollingContainer(ysz) | |
1184 | local sz = UDim2.new(1, -(self.sepr/2) - 11, 0, ysz) | |
1185 | local pos = UDim2.new(0, self.sepr/2, 0, self.drawY) | |
1186 | local obj = topkek.tools.util.Object("ScrollingFrame", { | |
1187 | Parent = self.main; | |
1188 | BackgroundColor3 = color3(117, 42, 42); | |
1189 | BorderSizePixel = 0; | |
1190 | Position = pos; | |
1191 | Size = sz; | |
1192 | BottomImage = 'rbxassetid://368504177'; | |
1193 | MidImage = 'rbxassetid://368504177'; | |
1194 | TopImage = 'rbxassetid://368504177'; | |
1195 | ScrollBarThickness = 5; | |
1196 | }) | |
1197 | ||
1198 | self.drawY = self.drawY + 5 + ysz | |
1199 | self.drawX = 0 | |
1200 | self.drawHeight = 0 | |
1201 | if (not ncan) then | |
1202 | self.main.CanvasSize = UDim2.new(0, 0, 0, self.drawY + 5) | |
1203 | end | |
1204 | return topkek.tools.gui:hookContainer(obj, false, 10, 3) | |
1205 | end | |
1206 | ||
1207 | function self:drawContainer(xsz, ysz, xz, tz, sep) | |
1208 | local sz = UDim2.new(xsz, -(self.sepr/2) - 11, 0, ysz) | |
1209 | local pos = UDim2.new(tz or 0, self.sepr/2, 0, self.drawY) | |
1210 | local obj = topkek.tools.util.Object("Frame", { | |
1211 | Parent = self.main; | |
1212 | BackgroundColor3 = color3(117, 42, 42); | |
1213 | BorderSizePixel = 0; | |
1214 | Position = pos; | |
1215 | Size = sz; | |
1216 | }) | |
1217 | if not xz then | |
1218 | self.drawY = self.drawY + 5 + ysz | |
1219 | end | |
1220 | self.drawX = 0 | |
1221 | self.drawHeight = 0 | |
1222 | if (not ncan) then | |
1223 | self.main.CanvasSize = UDim2.new(0, 0, 0, self.drawY + 5) | |
1224 | end | |
1225 | return topkek.tools.gui:hookContainer(obj, sep or 12, 5) | |
1226 | end | |
1227 | ||
1228 | function self:addSpacing() | |
1229 | self.drawY = self.drawY + 3 | |
1230 | end | |
1231 | ||
1232 | function self:center() | |
1233 | local a,c,b= | |
1234 | self.main.Position.X.Scale, | |
1235 | self.main.Position.X.Offset,self.main.Size.Y.Offset | |
1236 | self.main.Position=UDim2.new(a,c+2, 0.5, -(b/2)) | |
1237 | end | |
1238 | ||
1239 | return self | |
1240 | end | |
1241 | ||
1242 | --//anim//-- | |
1243 | topkek.tools.animator.animateTo = function(source, dest) | |
1244 | -- holder2holder: | |
1245 | -- invis holder | |
1246 | -- clone holder; vis | |
1247 | -- move holder to right | |
1248 | -- vis dest container | |
1249 | -- tween clone holder left | |
1250 | -- tween dest holder right | |
1251 | print("nav",source,dest) | |
1252 | topkek.holder.Visible = false | |
1253 | local hclone = topkek.holder:Clone() | |
1254 | hclone.Parent = topkek.center | |
1255 | hclone.Name = 'animclone' | |
1256 | hclone.Visible = true | |
1257 | topkek.holder.Position = UDim2.new(-1, 0, 0, 30) | |
1258 | source.Visible = false | |
1259 | dest.Visible = true | |
1260 | dest.Container.Visible = true | |
1261 | dest.Container.ZIndex = 1 | |
1262 | dest.ZIndex = 1 | |
1263 | topkek.holder.Visible = true | |
1264 | topkek.holder:TweenPosition(UDim2.new(0, 150, 0, 30), "Out", "Quad", 0.3) | |
1265 | hclone:TweenPosition(UDim2.new(1, 0, 0, 30), "Out", "Quad", 0.3) | |
1266 | wait(0.3) | |
1267 | end | |
1268 | topkek.tools.animator.initialAnimation = function() | |
1269 | -- initanim: | |
1270 | -- join both composites | |
1271 | -- delete composites; vis solid | |
1272 | -- tween solid to nav topbar | |
1273 | -- copy topbar plrname; move outside region | |
1274 | -- tween in clone topbar | |
1275 | -- delete clone and solid; vis topbar | |
1276 | -- tween down topbar | |
1277 | -- tween holder out | |
1278 | local function abspos(x) | |
1279 | return UDim2.new(0, x.AbsolutePosition.X, 0, x.AbsolutePosition.Y) | |
1280 | end | |
1281 | local function abssz(x) | |
1282 | return UDim2.new(0, x.AbsoluteSize.X, 0, x.AbsoluteSize.Y) | |
1283 | end | |
1284 | local holder = topkek.holder | |
1285 | local nav = topkek.navigator | |
1286 | local topnav = nav.Topbar | |
1287 | local topbar = topkek.topbar | |
1288 | local pname = topbar.PlayerName:Clone() | |
1289 | local solid = topkek.gui.Solid | |
1290 | topkek.center.Size = UDim2.new(0, 150, 0, 30) | |
1291 | topkek.gui.Composite1:TweenPosition(UDim2.new(0.5, -50, 0.5, -50), 'Out', 'Quad', 0.5) | |
1292 | topkek.gui.Composite2:TweenPosition(UDim2.new(0.5, 0, 0.5, -50), 'Out', 'Quad', 0.5) | |
1293 | wait(0.52) | |
1294 | solid.Visible = true | |
1295 | topkek.gui.Composite1:Destroy() | |
1296 | topkek.gui.Composite2:Destroy() | |
1297 | wait(3) | |
1298 | solid.Label:TweenPosition(UDim2.new(0, 0, 1.5, 0), 'Out', 'Quad', 0.5) | |
1299 | solid:TweenSizeAndPosition(abssz(topnav), abspos(topnav), 'Out', 'Linear', 0.6) | |
1300 | wait(0.52) | |
1301 | solid.Label:Destroy() | |
1302 | wait(0.12) | |
1303 | topkek.center.Visible = true | |
1304 | topnav.Visible = true | |
1305 | solid:Destroy() | |
1306 | pname.Position = UDim2.new(0, -170, 0, 0) | |
1307 | pname.Parent = topnav | |
1308 | pname.Visible = true | |
1309 | pname:TweenPosition(UDim2.new(0, 10, 0, 0), 'Out', 'Quad', 0.2) | |
1310 | wait(0.25) | |
1311 | topkek.center:TweenSize(UDim2.new(0, 150, 0, 395), 'Out', 'Quad', 0.3) | |
1312 | spawn(topkek.navigation.buildNavigator) | |
1313 | wait(0.35) | |
1314 | topkek.center:TweenSize(UDim2.new(0, 470, 0, 395), 'In', 'Quad', 0.3) | |
1315 | wait(0.35) | |
1316 | topbar.PlayerName.Visible = true | |
1317 | pname:Destroy() | |
1318 | AllowHovers = true | |
1319 | end | |
1320 | --//nav//-- | |
1321 | topkek.navigation.currentContainer = topkek.tools.util.getContainer('Home') | |
1322 | topkek.navigation.windowState = 0 | |
1323 | topkek.navigation.gotoContainer = function(cont) | |
1324 | topkek.tools.animator.animateTo(topkek.navigation.currentContainer, cont) | |
1325 | topkek.navigation.currentContainer = cont | |
1326 | end | |
1327 | topkek.navigation.buildNavigator = function() | |
1328 | local nav = topkek.navigator | |
1329 | local hook = topkek.tools.gui:hookContainer(nav.Scroll, false) | |
1330 | local btns = {} | |
1331 | for l, x in pairs(topkek.data.windows) do | |
1332 | local container = topkek.tools.util.getContainer(x) | |
1333 | local btn = hook:drawButton(1, x, function() topkek.navigation.gotoContainer(container) end, 25) | |
1334 | local ZPos = btn.Position | |
1335 | btn.Position = btn.Position - UDim2.new(0, 0, 0, 5) | |
1336 | btn:TweenPosition(ZPos, 'Out', 'Bounce', 0.2) | |
1337 | btn.LayoutOrder = l | |
1338 | btn.ZIndex = 4 | |
1339 | local OPos = btn.Position | |
1340 | btn.MouseEnter:connect(function() | |
1341 | if AllowHovers == false then | |
1342 | return | |
1343 | end | |
1344 | for i, v in pairs(btns) do | |
1345 | if v[1] ~= btn then | |
1346 | v[1]:TweenPosition(v[2], 'Out', 'Quad', 0.1) | |
1347 | end | |
1348 | end | |
1349 | btn:TweenPosition(OPos + UDim2.new(0, 3, 0, 0), 'Out', 'Quad', 0.1) | |
1350 | end) | |
1351 | btn.MouseLeave:connect(function() | |
1352 | btn:TweenPosition(OPos, 'Out', 'Quad', 0.1) | |
1353 | end) | |
1354 | table.insert(btns, {btn, OPos}) | |
1355 | wait() | |
1356 | end | |
1357 | end | |
1358 | topkek.navigation.buildTopbar = function() | |
1359 | local top = topkek.topbar | |
1360 | local FELabel = top.Controllers.IsFE | |
1361 | top.PlayerName.Text = topkek.lplr.Name | |
1362 | if game:GetService('Workspace').FilteringEnabled == true then | |
1363 | FELabel.Text = "FE Game" | |
1364 | FELabel.TextColor3 = BrickColor.new("Bright red").Color | |
1365 | else | |
1366 | FELabel.Text = "Not FE" | |
1367 | FELabel.TextColor3 = BrickColor.new("Bright green").Color | |
1368 | end | |
1369 | top.Controllers.Hide.MouseButton1Down:connect(function() | |
1370 | if topkek.navigation.windowState == 0 then | |
1371 | topkek.navigation.windowState = 1 | |
1372 | topkek.center:TweenSize(UDim2.new(0, 470, 0, 30), 'Out', 'Quint', 0.2) | |
1373 | else | |
1374 | topkek.navigation.windowState = 0 | |
1375 | topkek.center:TweenSize(UDim2.new(0, 470, 0, 395), 'Out', 'Quint', 0.2) | |
1376 | end | |
1377 | end) | |
1378 | top.Controllers.Exit.MouseButton1Down:connect(function() | |
1379 | topkek.center:TweenSize(UDim2.new(0, 470, 0, 30), 'Out', 'Quint', 0.3) | |
1380 | wait(0.31) | |
1381 | topkek.center:TweenSize(UDim2.new(0, 0, 0, 0), 'Out', 'Quint', 0.3) | |
1382 | PlayerChatHook:disconnect() | |
1383 | end) | |
1384 | ||
1385 | end | |
1386 | topkek.navigation.initCommandBar = function() | |
1387 | DistributedCmdBar, cmd = topkek.holder.Command, {} | |
1388 | loadstring(game:GetObjects("rbxassetid://685510751")[1].Source)() | |
1389 | DistributedCmdBar.FocusLost:connect(function(e) | |
1390 | if e == true then | |
1391 | cmd.commands.run(DistributedCmdBar.Text) | |
1392 | DistributedCmdBar.Text = '' | |
1393 | end | |
1394 | end) | |
1395 | ||
1396 | PlayerChatHook = cmd.players.PlayerChatted:connect(function (_, plr, msg, _) | |
1397 | if cmd.util.isadmin(plr.Name) then | |
1398 | if msg:sub(1,1) == cmd.prefix or msg:sub(1,1) == cmd.hidden then | |
1399 | cmd.commands.run(msg:sub(2, #msg)) | |
1400 | end | |
1401 | end | |
1402 | end) | |
1403 | end | |
1404 | topkek.navigation.buildHomePage = function() | |
1405 | local count = 0 | |
1406 | for _, _ in pairs(cmd.commands.store) do count = count + 1 end | |
1407 | local hook = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Home').Container, true) | |
1408 | hook:drawText(1, 'T0PK3K 4.0 ProtoSmasher Edition edited by bork') | |
1409 | hook:drawText(1, 'Patch version 1.0.5') | |
1410 | hook:drawText(1, 'Commandbase patch version 1.0.0') | |
1411 | hook:drawText(1, 'Number of commands: ' .. tostring(count)) | |
1412 | local stime = hook:drawText(1, 'Server Time: 0') | |
1413 | spawn(function() | |
1414 | while true do | |
1415 | stime.Text = 'Server Time: ' .. tostring(game:GetService('Workspace').DistributedGameTime) | |
1416 | wait(0.5) | |
1417 | end | |
1418 | end) | |
1419 | local ssz = hook:drawText(1, 'Server Size: 0') | |
1420 | spawn(function() | |
1421 | while true do | |
1422 | ssz.Text = 'Server Size: ' .. tostring(game:GetService('Players').NumPlayers) | |
1423 | wait(0.5) | |
1424 | end | |
1425 | end) | |
1426 | local fe = game:GetService('Workspace').FilteringEnabled | |
1427 | hook:drawText(1, 'FilteringEnabled: ' .. (fe and "YES" or "NO")) | |
1428 | hook:drawText(1, 'PlaceId: ' .. tostring(game.PlaceId)) | |
1429 | hook:drawText(1, 'same', 55) | |
1430 | end | |
1431 | topkek.navigation.buildContainers = function() | |
1432 | for _, v in pairs(topkek.data.windows) do | |
1433 | topkek.tools.gui:makeContainer(v) | |
1434 | end | |
1435 | end | |
1436 | ||
1437 | topkek.navigation.initCommandBar() | |
1438 | topkek.navigation.buildContainers() | |
1439 | topkek.navigation.buildTopbar() | |
1440 | topkek.navigation.buildHomePage() | |
1441 | wait() | |
1442 | ||
1443 | ||
1444 | --// actual code below lole //-- | |
1445 | ||
1446 | --// PLAYERS //-- | |
1447 | local plrwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Players').Container) | |
1448 | local search = plrwin:drawButton(1, '', function()end) | |
1449 | drop = GUI.DropDown.New(UDim2.new(0, 0, 0, 0), UDim2.new(1, 0, 1, 0), search, {'All'}) | |
1450 | function fixPlayerDrop() | |
1451 | local t = {'All'} | |
1452 | for i, v in pairs(game.Players:GetPlayers()) do | |
1453 | table.insert(t, v.Name) | |
1454 | end | |
1455 | drop.SetTable(t) | |
1456 | end | |
1457 | game.Players.PlayerAdded:connect(function() | |
1458 | fixPlayerDrop() | |
1459 | end) | |
1460 | game.Players.PlayerRemoving:connect(function() | |
1461 | fixPlayerDrop() | |
1462 | end) | |
1463 | plrFrame = plrwin:drawContainer(1, 100) | |
1464 | headshotContainer = plrFrame:drawContainer(0.4, 94, true) | |
1465 | headshotContainer:setDrawY(20) | |
1466 | headshot = headshotContainer:drawImage(1, "https://www.roblox.com/bust-thumbnail/image?userId=1&width=420&height=420&format=png", 74) | |
1467 | headshotContainer:setDrawY(0) | |
1468 | userNameText = headshotContainer:drawText(1, "[All]") | |
1469 | userNameText.ClipsDescendants = true | |
1470 | userNameText.Font = Enum.Font.SourceSansBold | |
1471 | infoContainer = plrFrame:drawContainer(0.5, 94, true, 0.5) | |
1472 | infoContainer.BackgroundColor3 = color3(108, 38, 38) | |
1473 | userIdText = infoContainer:drawText(1, "ID: 0") | |
1474 | userAgeText = infoContainer:drawText(1, "Age: 0") | |
1475 | userTeamText = infoContainer:drawText(1, "Team: Neutral") | |
1476 | cval = 'All' | |
1477 | fixPlayerDrop() | |
1478 | ||
1479 | function updatePlayer(plri) | |
1480 | local plr = game:GetService('Players'):FindFirstChild(plri) | |
1481 | if not plr and plri ~= 'All' then | |
1482 | print("Couldn't find player!") | |
1483 | updatePlayer(topkek.lplr) | |
1484 | else | |
1485 | headshot.Image = "https://www.roblox.com/bust-thumbnail/image?userId=1&width=420&height=420&format=png" | |
1486 | userNameText.Text = "[All]" | |
1487 | userIdText.Text = 'ID: [multiple]' | |
1488 | userAgeText.Text = 'Age: [multiple]' | |
1489 | userTeamText.Text = 'Team: [multiple]' | |
1490 | cval = 'All' | |
1491 | end | |
1492 | local team = plr.TeamColor | |
1493 | if team == nil then | |
1494 | team = 'Neutral' | |
1495 | else | |
1496 | team = tostring(team) | |
1497 | end | |
1498 | headshot.Image = "https://www.roblox.com/bust-thumbnail/image?userId=" .. tostring(plr.UserId) .. "&width=420&height=420&format=png" | |
1499 | userNameText.Text = plr.Name | |
1500 | userIdText.Text = 'ID: ' .. tostring(plr.UserId) | |
1501 | userAgeText.Text = 'Age: ' .. tostring(plr.AccountAge) | |
1502 | userTeamText.Text = 'Team: ' .. team | |
1503 | cval = plr.Name | |
1504 | ||
1505 | end | |
1506 | drop.Changed(updatePlayer) | |
1507 | --actual code ------__- | |
1508 | plrwin:addSpacing() | |
1509 | plrwin:drawButton(1/2, 'Kick', function() | |
1510 | tk.dp(cval, function(p) | |
1511 | topkek.banmgr.executeKick(p) | |
1512 | end) | |
1513 | end) | |
1514 | ||
1515 | plrwin:drawButton(1/2, 'Ban', function() | |
1516 | tk.dp(cval, function(p) | |
1517 | topkek.banmgr.addSoftBan(p) | |
1518 | end) | |
1519 | end) | |
1520 | plrwin:drawButton(1/2,'Friendlag', function() | |
1521 | tk.dp(cval, function(p) | |
1522 | for i = 1, 10 do | |
1523 | spawn(function() | |
1524 | while wait() do | |
1525 | game.Players.LocalPlayer:RequestFriendship(p) | |
1526 | game.Players.LocalPlayer:RevokeFriendship(p) | |
1527 | end | |
1528 | end) | |
1529 | end | |
1530 | end) | |
1531 | end) | |
1532 | plrwin:drawButton(1/2, 'Hardban', function() | |
1533 | tk.dp(cval, function(p) | |
1534 | topkek.banmgr.addHardBan(p) | |
1535 | end) | |
1536 | end) | |
1537 | plrwin:addSpacing() | |
1538 | plrwin:drawButton(1/2, 'Bring', function() | |
1539 | tk.dp(cval, function(z) | |
1540 | if z.Character then | |
1541 | z.Character.HumanoidRootPart.CFrame = | |
1542 | game:service'Players'.LocalPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(1,1,1) | |
1543 | end | |
1544 | end) | |
1545 | end) | |
1546 | plrwin:drawButton(1/2, 'Goto', function() | |
1547 | tk.dp(cval, function(z) | |
1548 | game:service'Players'.LocalPlayer.Character.HumanoidRootPart.CFrame = | |
1549 | z.Character.HumanoidRootPart.CFrame * CFrame.new(1,1,1) | |
1550 | end) | |
1551 | end) | |
1552 | plrwin:addSpacing() | |
1553 | plrwin:drawButton(1/3, 'Kill', function() | |
1554 | tk.dp(cval, function(p) | |
1555 | if p.Character and p.Character:FindFirstChild("Humanoid") then | |
1556 | p.Character.Humanoid.Health = 0 | |
1557 | end | |
1558 | end) | |
1559 | end) | |
1560 | plrwin:drawButton(1/3, 'Seizure', function() | |
1561 | tk.dp(cval, function(p) | |
1562 | if p.Character and p.Character:FindFirstChild("Humanoid") and tk.gt(p) then | |
1563 | spawn(function() | |
1564 | p.Character.Humanoid.PlatformStand = true | |
1565 | tk.gt(p).CFrame = tk.gt(p).CFrame * CFrame.Angles(math.rad(90),0,0) | |
1566 | repeat | |
1567 | wait() | |
1568 | p.Character.Humanoid.PlatformStand = true | |
1569 | tk.gt(p).Velocity = Vector3.new(math.random(-10,10),-5,math.random(-10,10)) | |
1570 | tk.gt(p).RotVelocity = Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)) | |
1571 | until not p.Character:FindFirstChild("Humanoid") or not tk.gt(p) | |
1572 | end) | |
1573 | end | |
1574 | end) | |
1575 | end) | |
1576 | plrwin:drawButton(1/3, 'Stun', function() | |
1577 | tk.dp(cval, function(p) | |
1578 | if p.Character and p.Character:FindFirstChild("Humanoid") then | |
1579 | p.Character.Humanoid.PlatformStand = true | |
1580 | p.Character.Torso.CFrame = p.Character.Torso.CFrame * CFrame.Angles(math.rad(90),0,0) | |
1581 | end | |
1582 | end) | |
1583 | end) | |
1584 | plrwin:drawButton(1/3, 'Freeze', function() | |
1585 | tk.dp(cval, function(p) | |
1586 | if p.Character then | |
1587 | tk.gt(p).Anchored = true | |
1588 | end | |
1589 | end) | |
1590 | end) | |
1591 | plrwin:drawButton(1/3, 'Thaw', function() | |
1592 | tk.dp(cval, function(p) | |
1593 | if p.Character then | |
1594 | tk.gt(p).Anchored = false | |
1595 | end | |
1596 | end) | |
1597 | end) | |
1598 | plrwin:drawButton(1/3, 'Superslow', function() | |
1599 | tk.dp(cval, function(p) | |
1600 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1601 | p.Character.Humanoid.WalkSpeed = 1 | |
1602 | end | |
1603 | end) | |
1604 | end) | |
1605 | plrwin:drawButton(1/3, 'Highjump', function() | |
1606 | tk.dp(cval, function(p) | |
1607 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1608 | p.Character.Humanoid.JumpPower = 125 | |
1609 | end | |
1610 | end) | |
1611 | end) | |
1612 | plrwin:drawButton(1/3, 'God', function() | |
1613 | tk.dp(cval, function(p) | |
1614 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1615 | p.Character.Humanoid.MaxHealth = math.huge | |
1616 | p.Character.Humanoid.Health = math.huge | |
1617 | end | |
1618 | end) | |
1619 | end) | |
1620 | plrwin:drawButton(1/3, 'Semigod', function() | |
1621 | tk.dp(cval, function(p) | |
1622 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1623 | p.Character.Humanoid.MaxHealth = 9e9 | |
1624 | p.Character.Humanoid.Health = 9e9 | |
1625 | end | |
1626 | end) | |
1627 | end) | |
1628 | plrwin:drawButton(1/3, 'Fast', function() | |
1629 | tk.dp(cval, function(p) | |
1630 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1631 | p.Character.Humanoid.WalkSpeed = 50 | |
1632 | end | |
1633 | end) | |
1634 | end) | |
1635 | Follow = false; | |
1636 | plrwin:drawButton(1/3, 'Annoy', function() | |
1637 | tk.dp(cval, function(p) | |
1638 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1639 | if Follow == true then | |
1640 | Follow = false; return | |
1641 | else Follow = true end | |
1642 | while Follow == true do | |
1643 | game:service'Players'.LocalPlayer.Character.HumanoidRootPart.CFrame= | |
1644 | p.Character.HumanoidRootPart.CFrame | |
1645 | wait() | |
1646 | end | |
1647 | end | |
1648 | end) | |
1649 | end) | |
1650 | plrwin:drawButton(1/3, 'Freefall', function() | |
1651 | tk.dp(cval, function(p) | |
1652 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1653 | p.Character.HumanoidRootPart.CFrame = p.Character.HumanoidRootPart.CFrame * CFrame.new(0, 10000, 0) | |
1654 | end | |
1655 | end) | |
1656 | end) | |
1657 | plrwin:drawButton(1/3, 'Destroy', function() | |
1658 | tk.dp(cval, function(p) | |
1659 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1660 | p.Character.Humanoid:Destroy() | |
1661 | end | |
1662 | end) | |
1663 | end) | |
1664 | plrwin:drawButton(1/3, 'Fix', function() | |
1665 | tk.dp(cval, function(p) | |
1666 | if p.Character and p.Character:FindFirstChild('Humanoid') then | |
1667 | p.Character.Humanoid.Health = 100 | |
1668 | p.Character.Humanoid.MaxHealth = 100 | |
1669 | p.Character.Humanoid.JumpPower = 100 | |
1670 | p.Character.Humanoid.WalkSpeed = 16 | |
1671 | p.Character.Humanoid.PlatformStand = false | |
1672 | p.Character.Humanoid.Jump = true | |
1673 | end | |
1674 | end) | |
1675 | end) | |
1676 | plrwin:drawButton(1/3, 'Respawn', function() | |
1677 | tk.dp(cval, function(p) | |
1678 | if p.Character then | |
1679 | local a1 = Instance.new("Model", game:service'Workspace') | |
1680 | local a2 = Instance.new("Part", game:service'Workspace') | |
1681 | a2.CanCollide = true | |
1682 | a2.Anchored = true | |
1683 | a2.CFrame = CFrame.new(10000, 10000, 10000) | |
1684 | a2.Name = "Torso" | |
1685 | local a3 = Instance.new("Humanoid", a1) | |
1686 | a3.MaxHealth=100;a3.Health=100 | |
1687 | p.Character = a1 | |
1688 | a3.Health=0 | |
1689 | end | |
1690 | end) | |
1691 | end) | |
1692 | plrwin:addSpacing() | |
1693 | local nameInp | |
1694 | plrwin:drawButton(1/3, 'Name', function() | |
1695 | tk.dp(cval, function(z) | |
1696 | local Character = z.Character | |
1697 | local newName = Instance.new("Model", z.Character) | |
1698 | newName.Name = nameInp.Text | |
1699 | local cl = Character:WaitForChild("Head"):Clone() | |
1700 | cl.Parent = newName | |
1701 | cl:WaitForChild("face"):Destroy() | |
1702 | local hum = Instance.new("Humanoid", newName) | |
1703 | hum.Name = "NameTag" | |
1704 | hum.MaxHealth = 0 | |
1705 | hum.Health = 0 | |
1706 | local weld = Instance.new("Weld", cl) | |
1707 | weld.Part0 = cl | |
1708 | weld.Part1 = Character:WaitForChild("Head") | |
1709 | Character:WaitForChild("Head").Transparency = 1 | |
1710 | wait(.5) | |
1711 | cl.BrickColor = Character:WaitForChild("Head").BrickColor | |
1712 | end) | |
1713 | end) | |
1714 | nameInp = plrwin:drawTextBox(2/3, '') | |
1715 | local chatInp | |
1716 | plrwin:drawButton(1/3, 'Chat', function() | |
1717 | tk.dp(cval, function(z) | |
1718 | game:GetService('Chat'):Chat(z.Charcter, chatInp.Text) | |
1719 | end) | |
1720 | end) | |
1721 | chatInp = plrwin:drawTextBox(2/3, '') | |
1722 | local disgInp | |
1723 | plrwin:drawButton(1/3, 'Disguise', function() | |
1724 | tk.dp(cval, function(p) | |
1725 | local id = 0 | |
1726 | if tonumber(disgInp.Text) then | |
1727 | id = tonumber(disgInp.Text) | |
1728 | else | |
1729 | id = game:GetService('Players'):GetUserIdFromNameAsync(disgInp.Text) | |
1730 | end | |
1731 | if p.Character:FindFirstChild("Humanoid") then | |
1732 | p.Character.Humanoid.Health = 0 | |
1733 | end | |
1734 | p.CharacterAppearance = 'https://assetgame.roblox.com/Asset/CharacterFetch.ashx?userId=' .. tostring(id) | |
1735 | end) | |
1736 | end) | |
1737 | disgInp = plrwin:drawTextBox(2/3, 'ROBLOX') | |
1738 | plrwin:addSpacing() | |
1739 | clrR = plrwin:drawTextBox(1/3, '0') | |
1740 | clrG = plrwin:drawTextBox(1/3, '0') | |
1741 | clrB = plrwin:drawTextBox(1/3, '0') | |
1742 | function getColor() | |
1743 | local r = tonumber(clrR.Text) | |
1744 | local g = tonumber(clrG.Text) | |
1745 | local b = tonumber(clrB.Text) | |
1746 | if not (r and g and b) then return Color3.new(0,0,0) end | |
1747 | return Color3.new(r/255, g/255, b/255) | |
1748 | end | |
1749 | plrwin:drawButton(1/3, 'Sparkles', function() | |
1750 | tk.dp(cval, function(z) | |
1751 | Instance.new("Sparkles", tk.gt(z)).SparkleColor = getColor() | |
1752 | end) | |
1753 | end) | |
1754 | plrwin:drawButton(1/3, 'Smoke', function() | |
1755 | tk.dp(cval, function(z) | |
1756 | Instance.new("Smoke", tk.gt(z)).Color = getColor() | |
1757 | ||
1758 | end) | |
1759 | end) | |
1760 | plrwin:drawButton(1/3, 'Fire', function() | |
1761 | tk.dp(cval, function(z) | |
1762 | local fr = Instance.new("Fire", tk.gt(z)) | |
1763 | fr.Color = getColor() | |
1764 | fr.Heat = 30 | |
1765 | fr.Size = 20 | |
1766 | end) | |
1767 | end) | |
1768 | plrwin:drawButton(1/3, 'Forcefield', function() | |
1769 | tk.dp(cval, function(z) | |
1770 | if z.Character then | |
1771 | Instance.new("ForceField", z.Character) | |
1772 | end | |
1773 | end) | |
1774 | end) | |
1775 | plrwin:drawButton(1/3, 'Select', function() | |
1776 | tk.dp(cval, function(z) | |
1777 | if z.Character and tk.gt(z) then | |
1778 | Instance.new("SelectionBox", tk.gt(z)).Adornee = tk.gt(z) | |
1779 | end | |
1780 | end) | |
1781 | end) | |
1782 | plrwin:drawButton(1/3, 'Sphere', function() | |
1783 | tk.dp(cval, function(z) | |
1784 | if z.Character and tk.gt(z) then | |
1785 | Instance.new("SelectionSphere", tk.gt(z)).Adornee = tk.gt(z) | |
1786 | end | |
1787 | end) | |
1788 | end) | |
1789 | plrwin:drawButton(1/3, 'Fling', function() | |
1790 | tk.dp(cval, function(z) | |
1791 | spawn(function() --kohls admin commands lol | |
1792 | if z.Character and tk.gt(z) then | |
1793 | local xran, zran | |
1794 | repeat xran = math.random(5555, 9999) until math.abs(xran) >= 5555 | |
1795 | repeat zran = math.random(5555, 9999) until math.abs(zran) >= 5555 | |
1796 | z.Character.Humanoid.Sit = true | |
1797 | tk.gt(z).Velocity = Vector3.new(0,0,0) | |
1798 | local frc = Instance.new("BodyForce", tk.gt(z)) | |
1799 | frc.Name = "BFRC" | |
1800 | frc.force = Vector3.new(xran*4,9999*5,zran*4) | |
1801 | game:GetService("Debris"):AddItem(frc, 0.1) | |
1802 | end | |
1803 | end) | |
1804 | end) | |
1805 | end) | |
1806 | plrwin:drawButton(1/3, 'Explode', function() | |
1807 | tk.dp(cval, function(z) | |
1808 | if z.Character and tk.gt(z) then | |
1809 | local explosion = Instance.new("Explosion") | |
1810 | explosion.Position = tk.gt(z).Position | |
1811 | explosion.Parent = workspace | |
1812 | end | |
1813 | end) | |
1814 | end) | |
1815 | plrwin:drawButton(1/3, 'Nuke', function() | |
1816 | tk.dp(cval, function(z) | |
1817 | if z.Character and tk.gt(z) then | |
1818 | local torso = tk.gt(z) | |
1819 | local nuke = Instance.new("Part", game.Workspace) | |
1820 | local opos = torso.CFrame | |
1821 | nuke.BrickColor = BrickColor.new("Bright yellow") | |
1822 | nuke.TopSurface = Enum.SurfaceType.Smooth | |
1823 | nuke.BottomSurface = Enum.SurfaceType.Smooth | |
1824 | nuke.Anchored = true | |
1825 | nuke.CanCollide = false | |
1826 | nuke.Shape = "Ball" | |
1827 | nuke.Transparency = 0.5 | |
1828 | nuke.CFrame = torso.CFrame | |
1829 | nuke.Size = Vector3.new(1, 1, 1) | |
1830 | nuke.Touched:connect(function(p) | |
1831 | local expl = Instance.new("Explosion", p) | |
1832 | expl.BlastPressure = 50000 | |
1833 | expl.BlastRadius = 50 | |
1834 | expl.Position = p.Position | |
1835 | p.Material = Enum.Material.CorrodedMetal | |
1836 | p:BreakJoints() | |
1837 | end) | |
1838 | for i = 1, 150 do | |
1839 | nuke.Size = Vector3.new(i, i, i) | |
1840 | nuke.CFrame = opos | |
1841 | wait(0.08) | |
1842 | end | |
1843 | nuke:Destroy() | |
1844 | end | |
1845 | end) | |
1846 | end) | |
1847 | plrwin:drawButton(1/3, 'No Tools', function() | |
1848 | tk.dp(cval, function(p) | |
1849 | for _, t in pairs(p.Backpack:GetChildren()) do | |
1850 | t:Destroy() | |
1851 | end | |
1852 | end) | |
1853 | end) | |
1854 | plrwin:drawButton(1/3, 'Take Tools', function() | |
1855 | tk.dp(cval, function(p) | |
1856 | for _, t in pairs(p.Backpack:GetChildren()) do | |
1857 | t.Parent = game:service'Players'.LocalPlayer.Backpack | |
1858 | end | |
1859 | end) | |
1860 | end) | |
1861 | plrwin:drawButton(1/3, 'BTools', function() | |
1862 | tk.dp(cval, function(p) | |
1863 | local a = Instance.new("HopperBin") | |
1864 | a.BinType = "GameTool" | |
1865 | a.Parent = p.Backpack | |
1866 | local a = Instance.new("HopperBin") | |
1867 | a.BinType = "Clone" | |
1868 | a.Parent = p.Backpack | |
1869 | local a = Instance.new("HopperBin") | |
1870 | a.BinType = "Hammer" | |
1871 | a.Parent = p.Backpack | |
1872 | end) | |
1873 | end) | |
1874 | plrwin:drawButton(1/3, 'Hotdog', function() | |
1875 | tk.dp(cval, function(p) | |
1876 | if p.Character and tk.gt(p) then | |
1877 | topkek.tools.util.weenieHutJunior(p) | |
1878 | end | |
1879 | end) | |
1880 | end) | |
1881 | plrwin:drawButton(1/3, 'Quicksand', function() | |
1882 | tk.dp(cval, function(z) | |
1883 | if z.Character and z.Character:FindFirstChild("Humanoid") then | |
1884 | local tor = tk.gt(z) | |
1885 | local hole = Instance.new("Part", z.Character) | |
1886 | hole.Anchored = true | |
1887 | hole.Name = "Hole" | |
1888 | hole.FormFactor = Enum.FormFactor.Custom | |
1889 | hole.Size = Vector3.new(7, 1, 7) | |
1890 | hole.CanCollide = false | |
1891 | hole.CFrame = tor.CFrame * CFrame.new(0,-3.3,0) | |
1892 | hole.BrickColor = BrickColor.new("Cool yellow") | |
1893 | hole.Material = Enum.Material.Sand | |
1894 | local hm = Instance.new("CylinderMesh", hole) | |
1895 | tor.Anchored = true | |
1896 | if z.Character:FindFirstChild("Humanoid") then | |
1897 | z.Character.Humanoid.Jump = true | |
1898 | end | |
1899 | for x,m in pairs(z.Character:GetChildren()) do | |
1900 | if m:IsA("BasePart") or m:IsA("MeshPart") then | |
1901 | m.CanCollide = false | |
1902 | end | |
1903 | end | |
1904 | for i=1,75 do | |
1905 | tor.CFrame=tor.CFrame*CFrame.new(0,-0.1,0) | |
1906 | wait(0.06) | |
1907 | end | |
1908 | tor.CFrame=tor.CFrame*CFrame.new(0, | |
1909 | -500,0 | |
1910 | ) | |
1911 | z.Character.Humanoid.Health = 0 | |
1912 | end | |
1913 | end) | |
1914 | end) | |
1915 | plrwin:drawButton(1/3, 'Insane', function() | |
1916 | tk.dp(cval, function(p) | |
1917 | if p.Character and tk.gt(p) then | |
1918 | for i,v in pairs(tk.gt(p):GetChildren()) do | |
1919 | if v:IsA("Motor6D") then | |
1920 | spawn(function() | |
1921 | while v do | |
1922 | v.C0=v.C0*CFrame.Angles(math.random(-180,180),math.random(-180,180),math.random(-180,180)) | |
1923 | wait() | |
1924 | end | |
1925 | end) | |
1926 | end | |
1927 | end | |
1928 | end | |
1929 | end) | |
1930 | end) | |
1931 | plrwin:drawButton(1/3, 'Invisible', function() | |
1932 | tk.dp(cval, function(p) | |
1933 | tk.rco(p.Character, 'BasePart', 'Transparency', 1) | |
1934 | tk.rco(p.Character, 'MeshPart', 'Transparency', 1) | |
1935 | end) | |
1936 | end) | |
1937 | plrwin:drawButton(1/3, 'Visible', function() | |
1938 | tk.dp(cval, function(p) | |
1939 | tk.rco(p.Character, 'BasePart', 'Transparency', 0) | |
1940 | tk.rco(p.Character, 'MeshPart', 'Transparency', 0) | |
1941 | end) | |
1942 | end) | |
1943 | plrwin:drawButton(1/3, 'Bighead', function() | |
1944 | tk.dp(cval, function(z) | |
1945 | if z.Character then | |
1946 | if z.Character:FindFirstChild('Head') then | |
1947 | z.Character.Head.Mesh.Scale=Vector3.new(5,5,5) | |
1948 | end | |
1949 | end | |
1950 | end) | |
1951 | end) | |
1952 | plrwin:drawButton(1/3, 'Goldify', function() | |
1953 | tk.dp(cval, function(z) | |
1954 | if z.Character then | |
1955 | tk.rco(z.Character, 'BasePart', 'Material', 'Marble') | |
1956 | tk.rco(z.Character, 'MeshPart', 'Material', 'Marble') | |
1957 | tk.rco(z.Character, 'BasePart', 'BrickColor', BrickColor.new('Bright yellow')) | |
1958 | tk.rco(z.Character, 'MeshPart', 'BrickColor', BrickColor.new('Bright yellow')) | |
1959 | end | |
1960 | end) | |
1961 | end) | |
1962 | plrwin:drawButton(1/3, 'Neon', function() | |
1963 | tk.dp(cval, function(z) | |
1964 | if z.Character then | |
1965 | tk.rco(z.Character, 'BasePart', 'Material', 'Neon') | |
1966 | tk.rco(z.Character, 'MeshPart', 'Material', 'Neon') | |
1967 | end | |
1968 | end) | |
1969 | end) | |
1970 | plrwin:drawButton(1/3, 'Shiny', function() | |
1971 | tk.dp(cval, function(z) | |
1972 | if z.Character then | |
1973 | tk.rco(z.Character, 'BasePart', 'Reflectance', 1) | |
1974 | tk.rcm(z.Character, 'MeshPart') | |
1975 | end | |
1976 | end) | |
1977 | end) | |
1978 | plrwin:drawButton(1/3, 'Shrek', function() | |
1979 | tk.dp(cval, function(z) | |
1980 | if z.Character then | |
1981 | local pchar = z.Character | |
1982 | for i,v in pairs(pchar:GetChildren()) do | |
1983 | if v:IsA("Hat") or v:IsA("Accessory") or v:IsA("CharacterMesh") or v:IsA("Shirt") or v:IsA("Pants") then | |
1984 | v:Destroy() | |
1985 | end | |
1986 | end | |
1987 | for i,v in pairs(pchar.Head:GetChildren()) do | |
1988 | if v:IsA("Decal") or v:IsA("SpecialMesh") then | |
1989 | v:Destroy() | |
1990 | end | |
1991 | end | |
1992 | ||
1993 | local mesh = Instance.new("SpecialMesh", pchar.Head) | |
1994 | mesh.MeshType = "FileMesh" | |
1995 | pchar.Head.Mesh.MeshId = "http://www.roblox.com/asset/?id=19999257" | |
1996 | pchar.Head.Mesh.Offset = Vector3.new(-0.1, 0.1, 0) | |
1997 | pchar.Head.Mesh.TextureId = "http://www.roblox.com/asset/?id=156397869" | |
1998 | ||
1999 | local Shirt = Instance.new("Shirt", z.Character) | |
2000 | local Pants = Instance.new("Pants", z.Character) | |
2001 | ||
2002 | Shirt.ShirtTemplate = "rbxassetid://133078194" | |
2003 | Pants.PantsTemplate = "rbxassetid://133078204" | |
2004 | end | |
2005 | end) | |
2006 | end) | |
2007 | plrwin:drawButton(1/3, 'Duck', function() | |
2008 | tk.dp(cval, function(z) | |
2009 | if z.Character then | |
2010 | local pchar = z.Character | |
2011 | for i,v in pairs(pchar:GetChildren()) do | |
2012 | if v:IsA("Hat") or v:IsA("Accessory") then | |
2013 | v:Destroy() | |
2014 | end | |
2015 | end | |
2016 | local duck = Instance.new("SpecialMesh", z.Character.HumanoidRootPart) | |
2017 | duck.MeshType = "FileMesh" | |
2018 | duck.MeshId = "http://www.roblox.com/asset/?id=9419831" | |
2019 | duck.TextureId = "http://www.roblox.com/asset/?id=9419827" | |
2020 | duck.Scale = Vector3.new(5, 5, 5) | |
2021 | tk.rco(z.Character, 'Instance', 'Transparency', 1) | |
2022 | z.Character.HumanoidRootPart.Transparency = 0 | |
2023 | end | |
2024 | end) | |
2025 | end) | |
2026 | plrwin:drawButton(1/3, 'Spheres', function() | |
2027 | tk.dp(cval, function(z) | |
2028 | if z.Character then | |
2029 | tk.rco(z.Character, 'BasePart', 'Shape', 'Cylinder') | |
2030 | end | |
2031 | end) | |
2032 | end) | |
2033 | plrwin:drawButton(1/3, 'Big', function() | |
2034 | tk.dp(cval, function(z) | |
2035 | if z.Character then | |
2036 | topkek.tools.util.scalePlayer(5, z) | |
2037 | end | |
2038 | end) | |
2039 | end) | |
2040 | plrwin:drawButton(1/3, 'Small', function() | |
2041 | tk.dp(cval, function(z) | |
2042 | if z.Character then | |
2043 | topkek.tools.util.scalePlayer(5, z) | |
2044 | end | |
2045 | end) | |
2046 | end) | |
2047 | plrwin:drawButton(1/3, 'Giraffe', function() | |
2048 | tk.dp(cval, function(z) | |
2049 | if z.Character then | |
2050 | local char=z.Character | |
2051 | local h=char.Head | |
2052 | local tor=char:FindFirstChild("Torso") | |
2053 | if not tor then return end | |
2054 | tor.Neck.C0=tor.Neck.C0*CFrame.new(0,0,5) | |
2055 | local fn=Instance.new("Part",char) | |
2056 | fn.Size=Vector3.new(1,5.5,1) | |
2057 | fn.Name="FakeNeck" | |
2058 | fn.Anchored=false | |
2059 | fn.CanCollide=false | |
2060 | if char:FindFirstChild("Body Colors") then | |
2061 | fn.BrickColor=char["Body Colors"].HeadColor | |
2062 | end | |
2063 | local cm=Instance.new("CylinderMesh",fn) | |
2064 | local we=Instance.new("Weld",h) | |
2065 | we.Part0=h | |
2066 | we.Part1=fn | |
2067 | we.C1=we.C1*CFrame.new(0,2.6,0) | |
2068 | end | |
2069 | end) | |
2070 | end) | |
2071 | plrwin:drawButton(1/3, 'Dab', function() | |
2072 | tk.dp(cval, function(z) | |
2073 | if z.Character and z.Character:FindFirstChild("Torso") then | |
2074 | local chr = z.Character | |
2075 | chr.Animate.Disabled = true | |
2076 | chr.Torso["Left Shoulder"].C1 = CFrame.new(0, 0.699999988, 0, 0.939692616, 0, -0.342020124, -0.330366075, -0.258819044, -0.907673359, -0.0885213241, 0.965925813, -0.243210346) | |
2077 | chr.Torso["Right Shoulder"].C1 = CFrame.new(-0.600000024, 0.5, -0.200000003, 0.664462984, 0.241844743, 0.707106769, -0.664462984, -0.241844788, 0.707106769, 0.342020154, -0.939692616, -3.09086197e-008) | |
2078 | chr.Torso["Neck"].C1 = CFrame.new(0, -0.600000024, 0, -0.866025388, 0.5, 0, -0.171010137, -0.29619807, 0.939692616, 0.469846278, 0.813797653, 0.342020124) | |
2079 | end | |
2080 | end) | |
2081 | end) | |
2082 | plrwin:drawButton(1/3, 'Force Follow', function() | |
2083 | tk.dp(cval, function(z) | |
2084 | game:GetService("RunService"):BindToRenderStep("_", 0, function() | |
2085 | z.Character.Humanoid:MoveTo(topkek.lplr.Character.Head.Position) | |
2086 | end) | |
2087 | end) | |
2088 | end) | |
2089 | plrwin:drawButton(1/3, 'Camlock', function() | |
2090 | tk.dp(cval, function(z) | |
2091 | z.CameraMode = "LockFirstPerson" | |
2092 | end) | |
2093 | end) | |
2094 | --// SERVER //-- | |
2095 | local servwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Server').Container) | |
2096 | local detailWin = servwin:drawContainer(1, 100, nil, nil, 18) | |
2097 | detailWin:drawText(1, 'Job ID: ' .. (game.JobId and (game.JobId ~= "") or "???")) | |
2098 | detailWin:drawText(1, 'Game Name: ' .. game:service'MarketplaceService':GetProductInfo(game.PlaceId).Name) | |
2099 | detailWin:drawText(1, 'Creator Name: ' .. game:GetService('Players'):GetNameFromUserIdAsync(game.CreatorId)) | |
2100 | detailWin:drawText(1, 'Genre: ' .. tostring(game.Genre)) | |
2101 | servwin:drawButton(1/2, 'Shutdown', function() | |
2102 | workspace.Gravity = 0/0 | |
2103 | end) | |
2104 | servwin:drawButton(1/2, 'Clear', function() | |
2105 | for i,v in pairs(game:service'Workspace':GetChildren()) do | |
2106 | if (not v:IsA("Terrain"))and(v.Name~="Camera") then | |
2107 | v:Destroy() | |
2108 | end | |
2109 | end | |
2110 | end) | |
2111 | servwin:drawButton(1/2, 'Baseplate', function() | |
2112 | for X = -2500, 2500, 512 do | |
2113 | for Z = -2500, 2500, 512 do | |
2114 | local P = Instance.new("Part") | |
2115 | P.Anchored = true | |
2116 | P.Locked = true | |
2117 | P.Size = Vector3.new(512,3,512) | |
2118 | P.CFrame = CFrame.new(X,0,Z) | |
2119 | P.BrickColor = BrickColor.Green() | |
2120 | P.Parent = game:service'Workspace' | |
2121 | end | |
2122 | end | |
2123 | end) | |
2124 | servwin:drawButton(1/2, 'Reset', function() | |
2125 | for i,v in pairs(game:service'Workspace':GetChildren()) do | |
2126 | if (not v:IsA("Terrain"))and(v.Name~="Camera") then | |
2127 | v:Destroy() | |
2128 | end | |
2129 | end | |
2130 | for X = -2500, 2500, 512 do | |
2131 | for Z = -2500, 2500, 512 do | |
2132 | local P = Instance.new("Part") | |
2133 | P.Anchored = true | |
2134 | P.Locked = true | |
2135 | P.Size = Vector3.new(512,3,512) | |
2136 | P.CFrame = CFrame.new(X,0,Z) | |
2137 | P.BrickColor = BrickColor.Green() | |
2138 | P.Parent = game:service'Workspace' | |
2139 | end | |
2140 | end | |
2141 | for i, v in pairs(game:GetService('Players'):GetPlayers()) do | |
2142 | local a1 = Instance.new("Model", game:service'Workspace') | |
2143 | local a2 = Instance.new("Part", game:service'Workspace') | |
2144 | a2.CanCollide = true | |
2145 | a2.Anchored = true | |
2146 | a2.CFrame = CFrame.new(10000, 10000, 10000) | |
2147 | a2.Name = "Torso" | |
2148 | local a3 = Instance.new("Humanoid", a1) | |
2149 | a3.MaxHealth=100;a3.Health=100 | |
2150 | v.Character = a1 | |
2151 | a3.Health=0 | |
2152 | end | |
2153 | end) | |
2154 | servwin:drawButton(1, 'Remove Sounds', function() | |
2155 | tk.rcm(game, 'Sound') | |
2156 | end) | |
2157 | servwin:addSpacing() | |
2158 | servwin:drawButton(1, 'Break All', function() | |
2159 | workspace:BreakJoints(workspace:GetChildren()) | |
2160 | end) | |
2161 | local gravInp | |
2162 | servwin:drawButton(1/3, 'Gravity', function() | |
2163 | if not tonumber(gravInp.Text) then return end | |
2164 | workspace.Gravity = tonumber(gravInp.Text) | |
2165 | end) | |
2166 | gravInp = servwin:drawTextBox(2/3, '') | |
2167 | servwin:addSpacing() | |
2168 | servwin:drawButton(1, 'Reset Lighting', function() | |
2169 | local l = game:service'Lighting' | |
2170 | l.Ambient = Color3.new(0, 0, 0) | |
2171 | l.Brightness = 1 | |
2172 | l.GlobalShadows = true | |
2173 | l.Outlines = true | |
2174 | l.FogEnd = 100000 | |
2175 | l.FogStart = 0 | |
2176 | l:SetMinutesAfterMidnight(12*60) | |
2177 | end) | |
2178 | local brightInp | |
2179 | servwin:drawButton(1/3, 'Brightness', function() | |
2180 | if not tonumber(brightInp.Text) then return end | |
2181 | game:GetService('Lighting').Brightness = tonumber(brightInp.Text) | |
2182 | end) | |
2183 | brightInp = servwin:drawTextBox(2/3, '100') | |
2184 | local fogInp | |
2185 | servwin:drawButton(1/3, 'Fog', function() | |
2186 | if not tonumber(fogInp.Text) then return end | |
2187 | game:GetService('Lighting').FogEnd = tonumber(fogInp.Text) | |
2188 | end) | |
2189 | fogInp = servwin:drawTextBox(2/3, '0') | |
2190 | local timeInp | |
2191 | servwin:drawButton(1/3, 'Hour', function() | |
2192 | if not tonumber(timeInp.Text) then return end | |
2193 | game:GetService('Lighting'):SetMinutesAfterMidnight(60*tonumber(timeInp.Text)) | |
2194 | end) | |
2195 | timeInp = servwin:drawTextBox(2/3, '12') | |
2196 | servwin:addSpacing() | |
2197 | -- private server crap | |
2198 | local privateToggle | |
2199 | local privStatus = false | |
2200 | privateToggle = servwin:drawButton(1, 'Private Server OFF', function() | |
2201 | if privStatus == false then | |
2202 | privStatus = true | |
2203 | privateToggle.Text = 'Private Server ON' | |
2204 | topkek.banmgr.makePrivate() | |
2205 | else | |
2206 | privateToggle.Text = 'Private Server OFF' | |
2207 | topkek.banmgr.unprivate() | |
2208 | end | |
2209 | end) | |
2210 | servwin:addSpacing() | |
2211 | servwin:drawText(1, 'Whitelist') | |
2212 | local plrAddInp | |
2213 | servwin:drawButton(1/3, 'Add', function() | |
2214 | topkek.banmgr.doWhitelist(plrAddInp.Text) | |
2215 | ReorderWL() | |
2216 | end) | |
2217 | plrAddInp = servwin:drawTextBox(2/3, '') | |
2218 | wlCont = servwin:drawScrollingContainer(100) | |
2219 | function ReorderWL() | |
2220 | local wl = topkek.banmgr.whitelist | |
2221 | for i,v in pairs(wlCont:GetChildren()) do | |
2222 | v:Destroy() | |
2223 | end | |
2224 | wlCont:setDrawY(3) | |
2225 | for i,v in pairs(wl) do | |
2226 | wlCont:drawText(2/3, v) | |
2227 | wlCont:drawButton(1/3, 'Remove', function() | |
2228 | topkek.banmgr.unwhitelist(v) | |
2229 | ReorderWL() | |
2230 | end) | |
2231 | end | |
2232 | end | |
2233 | ReorderWL() | |
2234 | --// LOCALPLAYER //-- | |
2235 | local lpwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('LocalPlayer').Container) | |
2236 | lpwin:drawButton(1, 'Reset Camera', function() | |
2237 | game.Workspace.CurrentCamera:remove() | |
2238 | wait(.1) | |
2239 | game.Workspace.CurrentCamera.CameraSubject = topkek.lplr.Character.Humanoid or | |
2240 | game.Workspace[topkek.lplr.Name].Humanoid | |
2241 | game.Workspace.CurrentCamera.CameraType = "Custom" | |
2242 | end) | |
2243 | lpwin:drawButton(1, 'Respawn', function() | |
2244 | local a1 = Instance.new("Model", game:service'Workspace') | |
2245 | local a2 = Instance.new("Part", game:service'Workspace') | |
2246 | a2.CanCollide = true | |
2247 | a2.Anchored = true | |
2248 | a2.CFrame = CFrame.new(10000, 10000, 10000) | |
2249 | a2.Name = "Torso" | |
2250 | local a3 = Instance.new("Humanoid", a1) | |
2251 | a3.MaxHealth=100;a3.Health=100 | |
2252 | topkek.lplr.Character = a1 | |
2253 | a3.Health=0 | |
2254 | end) | |
2255 | lpwin:drawButton(1, 'Rejoin', function() | |
2256 | game:GetService('TeleportService'):Teleport(game.PlaceId) | |
2257 | end) | |
2258 | lpwin:addSpacing() | |
2259 | lpwin:drawButton(1/2, 'God', function() | |
2260 | if topkek.lplr.Character:FindFirstChild("Humanoid") then | |
2261 | topkek.lplr.Character.Humanoid.MaxHealth = math.huge | |
2262 | topkek.lplr.Character.Humanoid.Health = math.huge | |
2263 | end | |
2264 | end) | |
2265 | lpwin:drawButton(1/2, 'Semigod', function() | |
2266 | if topkek.lplr.Character:FindFirstChild("Humanoid") then | |
2267 | topkek.lplr.Character.Humanoid.MaxHealth = 9e9 | |
2268 | topkek.lplr.Character.Humanoid.Health = 9e9 | |
2269 | end | |
2270 | end) | |
2271 | Loopgod = false | |
2272 | lpwin:drawButton(1, 'Loopgod', function() | |
2273 | if Loopgod == false then | |
2274 | Loopgod = true | |
2275 | spawn(function() | |
2276 | repeat | |
2277 | topkek.lplr.Character.Humanoid.MaxHealth = math.huge | |
2278 | topkek.lplr.Character.Humanoid.Health = math.huge | |
2279 | wait() | |
2280 | until Loopgod == false | |
2281 | end) | |
2282 | else | |
2283 | Loopgod = false | |
2284 | end | |
2285 | end) | |
2286 | lpwin:addSpacing() | |
2287 | plrwin:addSpacing() | |
2288 | local Lev, Clip, Fly | |
2289 | lpwin:drawButton(1/2, 'Levitate', function() | |
2290 | if Lev == true then | |
2291 | Lev = false | |
2292 | return | |
2293 | end | |
2294 | Lev = true | |
2295 | repeat | |
2296 | topkek.lplr.Character.Humanoid:ChangeState(10) | |
2297 | wait(0) | |
2298 | until Lev == false | |
2299 | end) | |
2300 | lpwin:drawButton(1/2, 'Noclip', function() | |
2301 | if Clip == true then | |
2302 | Clip = false | |
2303 | return | |
2304 | end | |
2305 | Clip = true | |
2306 | game:GetService("RunService").Stepped:connect(function() | |
2307 | tk.gt(topkek.lplr).CanCollide = not Clip | |
2308 | topkek.lplr.Character.Head.CanCollide = not Clip | |
2309 | topkek.lplr.Character.HumanoidRootPart.CanCollide = not Clip | |
2310 | if topkek.lplr.Character.UpperTorso then | |
2311 | topkek.lplr.Character.LowerTorso.CanCollide = not Clip | |
2312 | end | |
2313 | end) | |
2314 | topkek.lplr.Character.HumanoidRootPart.Changed:connect(function() | |
2315 | tk.gt(topkek.lplr).CanCollide = not Clip | |
2316 | topkek.lplr.Character.Head.CanCollide = not Clip | |
2317 | topkek.lplr.Character.HumanoidRootPart.CanCollide = not Clip | |
2318 | if topkek.lplr.Character.UpperTorso then | |
2319 | topkek.lplr.Character.LowerTorso.CanCollide = not Clip | |
2320 | end | |
2321 | end) | |
2322 | end) | |
2323 | lpwin:drawButton(1/2, 'Fly', function() | |
2324 | if Fly == true then | |
2325 | Fly = false | |
2326 | return | |
2327 | end | |
2328 | Fly = true | |
2329 | local mouse=game.Players.LocalPlayer:GetMouse'' | |
2330 | localplayer=game.Players.LocalPlayer | |
2331 | game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart") | |
2332 | local torso = game.Players.LocalPlayer.Character.HumanoidRootPart | |
2333 | local speed=0 | |
2334 | local keys={a=false,d=false,w=false,s=false} | |
2335 | local e1 | |
2336 | local e2 | |
2337 | local function start() | |
2338 | local pos = Instance.new("BodyPosition",torso) | |
2339 | local gyro = Instance.new("BodyGyro",torso) | |
2340 | pos.Name="EPIXPOS" | |
2341 | pos.maxForce = Vector3.new(math.huge, math.huge, math.huge) | |
2342 | pos.position = torso.Position | |
2343 | gyro.maxTorque = Vector3.new(9e9, 9e9, 9e9) | |
2344 | gyro.cframe = torso.CFrame | |
2345 | repeat | |
2346 | wait() | |
2347 | localplayer.Character.Humanoid.PlatformStand=true | |
2348 | local new=gyro.cframe - gyro.cframe.p + pos.position | |
2349 | if not keys.w and not keys.s and not keys.a and not keys.d then | |
2350 | speed=1 | |
2351 | end | |
2352 | if keys.w then | |
2353 | new = new + workspace.CurrentCamera.CoordinateFrame.lookVector * speed | |
2354 | speed=speed+0.01 | |
2355 | end | |
2356 | if keys.s then | |
2357 | new = new - workspace.CurrentCamera.CoordinateFrame.lookVector * speed | |
2358 | speed=speed+0.01 | |
2359 | end | |
2360 | if keys.d then | |
2361 | new = new * CFrame.new(speed,0,0) | |
2362 | speed=speed+0.01 | |
2363 | end | |
2364 | if keys.a then | |
2365 | new = new * CFrame.new(-speed,0,0) | |
2366 | speed=speed+0.01 | |
2367 | end | |
2368 | if speed>5 then | |
2369 | speed=5 | |
2370 | end | |
2371 | pos.position=new.p | |
2372 | if keys.w then | |
2373 | gyro.cframe = workspace.CurrentCamera.CoordinateFrame*CFrame.Angles(-math.rad(speed*15),0,0) | |
2374 | elseif keys.s then | |
2375 | gyro.cframe = workspace.CurrentCamera.CoordinateFrame*CFrame.Angles(math.rad(speed*15),0,0) | |
2376 | else | |
2377 | gyro.cframe = workspace.CurrentCamera.CoordinateFrame | |
2378 | end | |
2379 | until not Fly | |
2380 | if gyro then gyro:Destroy() end | |
2381 | if pos then pos:Destroy() end | |
2382 | flying=false | |
2383 | localplayer.Character.Humanoid.PlatformStand=false | |
2384 | speed=0 | |
2385 | end | |
2386 | e1=mouse.KeyDown:connect(function(key) | |
2387 | if not torso or not torso.Parent then flying=false e1:disconnect() e2:disconnect() return end | |
2388 | if key=="w" then | |
2389 | keys.w=true | |
2390 | elseif key=="s" then | |
2391 | keys.s=true | |
2392 | elseif key=="a" then | |
2393 | keys.a=true | |
2394 | elseif key=="d" then | |
2395 | keys.d=true | |
2396 | end | |
2397 | end) | |
2398 | e2=mouse.KeyUp:connect(function(key) | |
2399 | if key=="w" then | |
2400 | keys.w=false | |
2401 | elseif key=="s" then | |
2402 | keys.s=false | |
2403 | elseif key=="a" then | |
2404 | keys.a=false | |
2405 | elseif key=="d" then | |
2406 | keys.d=false | |
2407 | end | |
2408 | end) | |
2409 | start() | |
2410 | end) | |
2411 | lpwin:drawButton(1/2, 'Highjump', function() | |
2412 | local thrust = Instance.new("BodyVelocity") | |
2413 | game:GetService('UserInputService').InputBegan:connect(function(i, b) | |
2414 | if i.KeyCode == Enum.KeyCode.Space then | |
2415 | print("Got jump") | |
2416 | coroutine.resume(coroutine.create(function() | |
2417 | thrust.Parent = game.Players.LocalPlayer.Character.PrimaryPart | |
2418 | thrust.velocity = Vector3.new(0,50,0) | |
2419 | thrust.maxForce = Vector3.new(0,4e+050,0) | |
2420 | wait(0.2) | |
2421 | thrust.Parent = nil | |
2422 | end)) | |
2423 | end | |
2424 | end) | |
2425 | end) | |
2426 | lpwin:addSpacing() | |
2427 | local apprInp | |
2428 | lpwin:drawButton(1/3, 'Appearance', function() | |
2429 | local id = 0 | |
2430 | if tonumber(apprInp.Text) then | |
2431 | id = tonumber(apprInp.Text) | |
2432 | else | |
2433 | id = game:GetService('Players'):GetUserIdFromNameAsync(apprInp.Text) | |
2434 | end | |
2435 | if topkek.lplr.Character:FindFirstChild("Humanoid") then | |
2436 | topkek.lplr.Character.Humanoid.Health = 0 | |
2437 | end | |
2438 | topkek.lplr.CharacterAppearance = 'https://assetgame.roblox.com/Asset/CharacterFetch.ashx?userId=' .. tostring(id) | |
2439 | end) | |
2440 | apprInp = lpwin:drawTextBox(2/3, 'ROBLOX') | |
2441 | local teamInp | |
2442 | lpwin:drawButton(1/3, 'Team', function() | |
2443 | topkek.lplr.TeamColor = BrickColor.new(teamInp.Text) | |
2444 | end) | |
2445 | teamInp = lpwin:drawTextBox(2/3, 'Bright red') | |
2446 | lpwin:drawButton(1/2, 'Naked', function() | |
2447 | topkek.lplr:ClearCharacterAppearance() | |
2448 | end) | |
2449 | lpwin:drawButton(1/2, 'Neutral', function() | |
2450 | topkek.lplr.Neutral = true | |
2451 | end) | |
2452 | lpwin:addSpacing() | |
2453 | lpwin:drawButton(1/2, 'Orb', function() | |
2454 | game.Players.LocalPlayer.Character = nil | |
2455 | --lp:Destroy() | |
2456 | local cam = game.Workspace.CurrentCamera | |
2457 | local m = Instance.new("Model", game.Workspace) | |
2458 | m.Name = game.Players.LocalPlayer.Name | |
2459 | local hum = Instance.new("Humanoid", m) | |
2460 | hum.Health = 0 | |
2461 | hum.MaxHealth = 0 | |
2462 | local orb = Instance.new("Part", m) | |
2463 | orb.Size = Vector3.new(1, 1, 1) | |
2464 | orb.Shape = "Ball" | |
2465 | orb.Name = "Head" | |
2466 | orb.Anchored = true | |
2467 | orb.CanCollide = true | |
2468 | orb.BottomSurface = Enum.SurfaceType.Smooth | |
2469 | orb.TopSurface = Enum.SurfaceType.Smooth | |
2470 | orb.Transparency = 0 | |
2471 | spawn(function() | |
2472 | while true do | |
2473 | wait(0.1) | |
2474 | if orb then | |
2475 | orb.BrickColor = BrickColor.Random() | |
2476 | else break end | |
2477 | end | |
2478 | end) | |
2479 | cam.CameraSubject = orb | |
2480 | cam.CameraType = Enum.CameraType.Fixed | |
2481 | game:GetService("RunService").RenderStepped:connect(function() | |
2482 | orb.CFrame = cam.CoordinateFrame * CFrame.new(0, -2, -6) | |
2483 | end) | |
2484 | game.Players.LocalPlayer.Chatted:connect(function(a) | |
2485 | game:GetService("Chat"):Chat(orb, a) | |
2486 | end) | |
2487 | end) | |
2488 | lpwin:drawButton(1/2, 'Freecam', function() | |
2489 | local cam = game.Workspace.CurrentCamera | |
2490 | cam.CameraType = "Fixed" | |
2491 | cam.CameraSubject = nil | |
2492 | topkek.lplr.Character = nil | |
2493 | end) | |
2494 | lpwin:drawButton(1/2, 'NoGrav', function() | |
2495 | if topkek.lplr.Character then | |
2496 | for x,m in pairs(topkek.lplr.Character:GetChildren()) do | |
2497 | if m:IsA("BasePart") then | |
2498 | local bf = Instance.new("BodyForce", m) | |
2499 | bf.force = Vector3.new(0, 192.25, 0) * m:GetMass() | |
2500 | end | |
2501 | if m:IsA("Hat") or m:IsA("Accessory") then | |
2502 | if m:findFirstChild("Handle") then | |
2503 | local bf = Instance.new("BodyForce", m.Handle) | |
2504 | bf.force = Vector3.new(0, 192.25, 0) * m.Handle:GetMass() | |
2505 | end | |
2506 | end | |
2507 | end | |
2508 | end | |
2509 | end) | |
2510 | lpwin:drawButton(1/2, 'Trowel', function() | |
2511 | topkek.tools.util.trowel() | |
2512 | end) | |
2513 | lpwin:addSpacing() | |
2514 | lpwin:drawButton(1/2, 'Fedora', function() | |
2515 | local hats={ | |
2516 | 98346834, | |
2517 | 215751161, | |
2518 | 119916949, | |
2519 | 72082328, | |
2520 | 147180077, | |
2521 | 100929604, | |
2522 | 63043890, | |
2523 | 1285307, | |
2524 | 1029025, | |
2525 | 334663683, | |
2526 | 259423244 | |
2527 | } | |
2528 | game:GetObjects("rbxassetid://" .. tostring(hats[math.random(1,#hats)]))[1].Parent = topkek.lplr.Character | |
2529 | end) | |
2530 | lpwin:drawButton(1/2, 'Rainbow Name', function() | |
2531 | topkek.lplr.Neutral = false | |
2532 | repeat | |
2533 | wait() | |
2534 | topkek.lplr.TeamColor = BrickColor.Random() | |
2535 | until not topkek.lplr.Character.Humanoid | |
2536 | end) | |
2537 | local tagInp | |
2538 | lpwin:drawButton(1/3, 'Tag', function() | |
2539 | local len = 10 | |
2540 | local bb = Instance.new("BillboardGui") | |
2541 | bb.Parent = topkek.lplr.Character.Head | |
2542 | bb.Adornee = topkek.lplr.Character.Head | |
2543 | bb.AlwaysOnTop = true | |
2544 | bb.Enabled = true | |
2545 | bb.Size = UDim2.new(len, 0, 1.5, 0) | |
2546 | bb.Name = "tag" | |
2547 | bb.StudsOffset = Vector3.new(0, 3, 0) | |
2548 | --local fr = Instance.new("Frame") | |
2549 | --fr.Parent = bb | |
2550 | --fr.Size = UDim2.new(1, 0, 1, 0) | |
2551 | --fr.Style = Enum.FrameStyle.RobloxRound | |
2552 | local tl = Instance.new("TextLabel") | |
2553 | tl.Parent = bb | |
2554 | tl.Font = Enum.Font.Code | |
2555 | tl.BackgroundTransparency = 1 | |
2556 | tl.TextScaled = true | |
2557 | tl.TextColor3 = Color3.new(15/255, 15/255, 15/255) | |
2558 | tl.Size = UDim2.new(1, 0, 1, 0) | |
2559 | tl.Text = tagInp.Text | |
2560 | tl.Name = "trutag" | |
2561 | tl.Visible = true | |
2562 | tl.ZIndex = 2 | |
2563 | end) | |
2564 | tagInp = lpwin:drawTextBox(2/3, '') | |
2565 | --// SCRIPTS //-- | |
2566 | local scriptwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Scripts').Container) | |
2567 | local search = scriptwin:drawTextBox(1,'') | |
2568 | local origy = scriptwin:getDrawY() | |
2569 | scriptwin:addSpacing() | |
2570 | scriptwin:addSpacing() | |
2571 | local scripts = game:GetObjects("rbxassetid://376553985")[1] | |
2572 | local container = {} | |
2573 | function MakeList(condition) | |
2574 | for i,v in pairs(scriptwin:GetChildren()) do | |
2575 | if v.Name == "Script" then | |
2576 | v:Destroy() | |
2577 | end | |
2578 | end | |
2579 | scriptwin:setDrawY(origy) | |
2580 | for i, v in pairs(scripts:GetChildren()) do | |
2581 | if string.find(v.Name:lower(), condition:lower()) or (condition == "") or (condition == " ") then | |
2582 | local scr = scriptwin:drawButton(1, v.Name, function() | |
2583 | spawn(function() loadstring(v.Source)() end) | |
2584 | end, 25) | |
2585 | scr.Name = 'Script' | |
2586 | end | |
2587 | end | |
2588 | end | |
2589 | game:GetService("UserInputService").InputChanged:connect(function(inp) | |
2590 | if inp.UserInputType == Enum.UserInputType.TextInput then | |
2591 | if search:IsFocused() then | |
2592 | MakeList(search.Text) | |
2593 | end | |
2594 | end | |
2595 | end) | |
2596 | MakeList('') | |
2597 | --// DESTRUCTION // -- | |
2598 | local destwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Destruction').Container) | |
2599 | local decals, seldec = destwin:drawScrollingContainer(100) | |
2600 | seldec = destwin:drawText(1, 'Selected Decal: None') | |
2601 | cursel = nil | |
2602 | local decs = { | |
2603 | {'Rain', '574772793'}, | |
2604 | {'Robbie', '574773630'}, | |
2605 | {'Pepe', '244905904'}, | |
2606 | {'Troll Face', '48308661'}, | |
2607 | {'Jeff', '109129888'}, | |
2608 | {'Shrek', '170539018'}, | |
2609 | {'Doge', '133720697'}, | |
2610 | {'Dat Boi', '409578848'}, | |
2611 | } | |
2612 | for _, v in pairs(decs) do | |
2613 | local b = decals:drawButton(1, v[1], function()seldec.Text="Selected Decal: " ..v[2] cursel=v[2] end,20) | |
2614 | topkek.tools.gui:addLeftIcon(b,'rbxassetid://'..v[2],20) | |
2615 | end | |
2616 | destwin:drawButton(1, 'Spam Decal', function() | |
2617 | if cursel ~= nil then | |
2618 | topkek.tools.util.recurseDecal(tonumber(cursel)) | |
2619 | end | |
2620 | end) | |
2621 | destwin:drawButton(1, 'Spam Particles', function() | |
2622 | if cursel ~= nil then | |
2623 | topkek.tools.util.recurseParticles(tonumber(cursel)) | |
2624 | end | |
2625 | end) | |
2626 | destwin:drawButton(1, 'Spam Both', function() | |
2627 | if cursel ~= nil then | |
2628 | topkek.tools.util.recurseUltimate(tonumber(cursel)) | |
2629 | end | |
2630 | end) | |
2631 | destwin:drawButton(1, 'Rollback', function() | |
2632 | tk.rcm(workspace, 'Decal') | |
2633 | tk.rcm(workspace, 'ParticleEmitter') | |
2634 | end) | |
2635 | destwin:addSpacing() | |
2636 | destwin:drawButton(1, '666', function() | |
2637 | for i,v in next,workspace:children''do | |
2638 | if(v:IsA'BasePart')then | |
2639 | me=v; | |
2640 | bbg=Instance.new('BillboardGui',me); | |
2641 | bbg.Name='stuf'; | |
2642 | bbg.Adornee=me; | |
2643 | bbg.Size=UDim2.new(2.5,0,2.5,0) | |
2644 | --bbg.StudsOffset=Vector3.new(0,2,0) | |
2645 | tlb=Instance.new'TextLabel'; | |
2646 | tlb.Text='666 666 666 666 666 666'; | |
2647 | tlb.Font='SourceSansBold'; | |
2648 | tlb.FontSize='Size48'; | |
2649 | tlb.TextColor3=Color3.new(1,0,0); | |
2650 | tlb.Size=UDim2.new(1.25,0,1.25,0); | |
2651 | tlb.Position=UDim2.new(-0.125,-22,-1.1,0); | |
2652 | tlb.BackgroundTransparency=1; | |
2653 | tlb.Parent=bbg; | |
2654 | end;end; | |
2655 | --coroutine.wrap(function()while wait''do | |
2656 | s=Instance.new'Sound'; | |
2657 | s.Parent=workspace; | |
2658 | s.SoundId='rbxassetid://152840862'; | |
2659 | s.Pitch=1; | |
2660 | s.Volume=1; | |
2661 | s.Looped=true; | |
2662 | s:play(); | |
2663 | --end;end)(); | |
2664 | function xds(dd) | |
2665 | for i,v in next,dd:children''do | |
2666 | if(v:IsA'BasePart')then | |
2667 | v.BrickColor=BrickColor.new'Really black'; | |
2668 | v.TopSurface='Smooth'; | |
2669 | v.BottomSurface='Smooth'; | |
2670 | s=Instance.new('SelectionBox',v); | |
2671 | s.Adornee=v; | |
2672 | s.Color=BrickColor.new'Really red'; | |
2673 | a=Instance.new('PointLight',v); | |
2674 | a.Color=Color3.new(1,0,0); | |
2675 | a.Range=15; | |
2676 | a.Brightness=5; | |
2677 | f=Instance.new('Fire',v); | |
2678 | f.Size=19; | |
2679 | f.Heat=22; | |
2680 | end; | |
2681 | game.Lighting.TimeOfDay=0; | |
2682 | game.Lighting.Brightness=0; | |
2683 | game.Lighting.ShadowColor=Color3.new(0,0,0); | |
2684 | game.Lighting.Ambient=Color3.new(1,0,0); | |
2685 | game.Lighting.FogEnd=200; | |
2686 | game.Lighting.FogColor=Color3.new(0,0,0); | |
2687 | local dec = 'http://www.roblox.com/asset/?id=19399245'; | |
2688 | local fac = {'Front', 'Back', 'Left', 'Right', 'Top', 'Bottom'} | |
2689 | --coroutine.wrap(function() | |
2690 | --for _,__ in pairs(fac) do | |
2691 | --local ddec = Instance.new("Decal", v) | |
2692 | --ddec.Face = __ | |
2693 | --ddec.Texture = dec | |
2694 | --end end)() | |
2695 | if #(v:GetChildren())>0 then | |
2696 | xds(v) | |
2697 | end | |
2698 | end | |
2699 | end | |
2700 | xds(game.Workspace) | |
2701 | end) | |
2702 | destwin:drawButton(1, 'Troll', function() | |
2703 | topkek.tools.util.recurseUltimate('48308661') | |
2704 | tk.play(154664102) | |
2705 | end) | |
2706 | destwin:addSpacing() | |
2707 | destwin:drawButton(1/2,'Colorize',function() -- when u skid off variable XDDDDDpranked | |
2708 | local materiallist = | |
2709 | {Enum.Material.Plastic,Enum.Material.Wood,Enum.Material.Slate,Enum.Material.Concrete,Enum.Material.CorrodedMetal, | |
2710 | Enum.Material.DiamondPlate,Enum.Material.Foil,Enum.Material.Grass, | |
2711 | Enum.Material.Ice,Enum.Material.Marble,Enum.Material.Granite,Enum.Material.Brick, | |
2712 | Enum.Material.Pebble,Enum.Material.Sand,Enum.Material.Sand, | |
2713 | Enum.Material.Fabric,Enum.Material.SmoothPlastic,Enum.Material.Metal,Enum.Material.WoodPlanks,Enum.Material.Neon,Enum.Material.Cobblestone} | |
2714 | local function r(where) | |
2715 | for _,v in pairs (where:GetChildren()) do | |
2716 | if v:IsA("BasePart") then | |
2717 | spawn(function() while wait(0.1) do v.Material = materiallist[math.random(#materiallist)] wait() end end) end r(v) end end r(workspace) | |
2718 | end) | |
2719 | destwin:drawButton(1/2,'Materialize',function() | |
2720 | local function r(where) | |
2721 | for _,v in pairs (where:GetChildren()) do | |
2722 | if v:IsA("BasePart") then | |
2723 | spawn(function() while wait(0.1) do v.Transparency = math.random(0,1) wait() end end) end r(v) end end r(workspace) | |
2724 | end) | |
2725 | destwin:drawButton(1/2,'Meshify',function() | |
2726 | local enums={ | |
2727 | Enum.MeshType.Head; | |
2728 | Enum.MeshType.Torso; | |
2729 | Enum.MeshType.Wedge; | |
2730 | Enum.MeshType.Brick; | |
2731 | Enum.MeshType.Sphere; | |
2732 | Enum.MeshType.Cylinder; | |
2733 | } | |
2734 | tk.rcf('BasePart',function(o) | |
2735 | local mesh = Instance.new('SpecialMesh', o) | |
2736 | mesh.MeshType = enums[math.random(1,#enums)] | |
2737 | end) | |
2738 | end) | |
2739 | destwin:drawButton(1/2,'Loop-Meshify',function() | |
2740 | coroutine.wrap(function() | |
2741 | while true do | |
2742 | local enums={ | |
2743 | Enum.MeshType.Head; | |
2744 | Enum.MeshType.Torso; | |
2745 | Enum.MeshType.Wedge; | |
2746 | Enum.MeshType.Brick; | |
2747 | Enum.MeshType.Sphere; | |
2748 | Enum.MeshType.Cylinder; | |
2749 | } | |
2750 | tk.rcf('BasePart',function(o) | |
2751 | if o:FindFirstChild("Mesh") then o.Mesh:Destroy() end | |
2752 | local mesh = Instance.new('SpecialMesh', o) | |
2753 | mesh.MeshType = enums[math.random(1,#enums)] | |
2754 | end) | |
2755 | wait(0.5) | |
2756 | end | |
2757 | end)() | |
2758 | end) | |
2759 | destwin:addSpacing() | |
2760 | destwin:drawButton(1, 'Rotations', function() | |
2761 | tk.rcf('BasePart', function(o) | |
2762 | o.Rotation = Vector3.new(math.random(0,180),math.random(0,180),math.random(0,180)) | |
2763 | end) | |
2764 | end) | |
2765 | destwin:drawButton(1, 'Collisions', function() | |
2766 | tk.rcf('BasePart', function(o) | |
2767 | o.CanCollide = false | |
2768 | end) | |
2769 | end) | |
2770 | destwin:drawButton(1, 'Velocity', function() | |
2771 | tk.rcf('BasePart', function(o) | |
2772 | o.Velocity = Vector3.new(math.random(0,180),math.random(0,180),math.random(0,180)) | |
2773 | end) | |
2774 | end) | |
2775 | destwin:drawButton(1, 'Invisiblity', function() | |
2776 | tk.rcf('BasePart', function(o) | |
2777 | o.Transparency = 1 | |
2778 | end) | |
2779 | end) | |
2780 | destwin:drawButton(1, 'BreakJoints', function() | |
2781 | tk.rcf('Model', function(o) | |
2782 | o:BreakJoints() | |
2783 | end) | |
2784 | end) | |
2785 | destwin:drawButton(1, 'Forces', function() | |
2786 | tk.rcf('BasePart', function(o) | |
2787 | local bf = Instance.new("BodyForce", o) | |
2788 | bf.Force = Vector3.new(math.random(0,180)*5,math.random(0,180)*5,math.random(0,180)*5) | |
2789 | end) | |
2790 | end) | |
2791 | destwin:drawButton(1, 'Brightness', function() | |
2792 | tk.rcf('BasePart', function(o) | |
2793 | local light = Instance.new("SpotLight", o) | |
2794 | light.Brightness = 9e9 | |
2795 | light.Range = 60 | |
2796 | end) | |
2797 | end) | |
2798 | --// CATALOG //-- | |
2799 | local catwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Catalog').Container) | |
2800 | local page, currentkeyword = 1, "" | |
2801 | local searchbar, search, makeCatalog, res = 0, 0, 0, {} | |
2802 | local searchbar = catwin:drawTextBox(2/3,'') | |
2803 | local search = catwin:drawButton(1/3, 'Search', function() | |
2804 | page = 1 | |
2805 | currentkeyword = searchbar.Text | |
2806 | makeCatalog(currentkeyword, page) | |
2807 | end) | |
2808 | local previous = catwin:drawButton(1/2, 'Previous Page', function() | |
2809 | if page > 1 then | |
2810 | page = page - 1 | |
2811 | makeCatalog(currentkeyword, page) | |
2812 | end | |
2813 | end) | |
2814 | local previous = catwin:drawButton(1/2, 'Next Page', function() | |
2815 | if page >= 1 then | |
2816 | page = page + 1 | |
2817 | makeCatalog(currentkeyword, page) | |
2818 | end | |
2819 | end) | |
2820 | local catalog_start = catwin:getDrawY() | |
2821 | function split(str,divider) | |
2822 | local found = "" | |
2823 | local results = {} | |
2824 | for i=1,string.len(str) do | |
2825 | if (string.lower(string.sub(str,i,i)) == string.lower(divider)) then | |
2826 | table.insert(results, found) | |
2827 | found = "" | |
2828 | else | |
2829 | found = found..string.sub(str,i,i) | |
2830 | end | |
2831 | end | |
2832 | table.insert(results, found) | |
2833 | return results | |
2834 | end | |
2835 | function GetName(nm) | |
2836 | local spl = split(nm," ") | |
2837 | local a,b,c,d,e=spl[1] or "",spl[2] or "",spl[3] or "", spl[4] or "", spl[5] or "" | |
2838 | return (a.." "..b.." "..c.." "..d.." "..e) | |
2839 | end | |
2840 | function makeCatalog(keyword, page) | |
2841 | local endpoint = "http://search.roblox.com/catalog/json?Category=6&Keyword="..keyword.."&IncludeNotForSale=false&ResultsPerPage=10&PageNumber="..tostring(page) | |
2842 | local results = game:HttpGet(endpoint, true) | |
2843 | local parse = game:GetService('HttpService'):JSONDecode(results) | |
2844 | for i, v in pairs(res) do | |
2845 | v:Destroy() | |
2846 | end | |
2847 | catwin:setDrawY(catalog_start) | |
2848 | catwin:addSpacing() | |
2849 | for i, v in pairs(parse) do | |
2850 | local img = catwin:drawImage(1/2, 'https://www.roblox.com/Thumbs/Asset.ashx?width=420&height=420&assetId='..tostring(v['AssetId']), 50) | |
2851 | local below = topkek.tools.util.Object("TextButton", { | |
2852 | Parent = img; | |
2853 | BackgroundColor3 = Color3.new(163/255, 57/255, 57/255); | |
2854 | BorderSizePixel = 0; | |
2855 | Position = UDim2.new(0, -45, 1, 5); | |
2856 | Size = UDim2.new(0,img.AbsoluteSize.X, 0, 20); | |
2857 | Font = 'SourceSans'; | |
2858 | FontSize = 'Size14'; | |
2859 | Text = GetName(v['Name']); | |
2860 | TextSize = 14; | |
2861 | TextColor3 = color3(199, 199, 199); | |
2862 | TextStrokeTransparency = 0.5; | |
2863 | ClipsDescendants = true; | |
2864 | }) | |
2865 | below.MouseButton1Down:connect(function() | |
2866 | local Model = Instance.new("Model", workspace) | |
2867 | game:GetObjects('rbxassetid://'..tostring(v['AssetId']))[1].Parent = Model | |
2868 | Model:MakeJoints() | |
2869 | Model:MoveTo(topkek.lplr.Character.Head.Position) | |
2870 | end) | |
2871 | img.Size=UDim2.new(0,50,0,50) | |
2872 | img.Position=img.Position+UDim2.new(0,45,0,0) | |
2873 | if (i%2)==0 then | |
2874 | catwin:setDrawY(catwin:getDrawY() + 25) | |
2875 | end | |
2876 | if (i==10) then | |
2877 | catwin.main.CanvasSize = catwin.main.CanvasSize + UDim2.new(0,0,0,25) | |
2878 | end | |
2879 | table.insert(res,img) | |
2880 | end | |
2881 | end | |
2882 | makeCatalog("", 1) | |
2883 | --// CMDS //-- | |
2884 | cmdwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Commands').Container) | |
2885 | count = 0 | |
2886 | for _, _ in pairs(cmd.commands.store) do count = count + 1 end | |
2887 | cmdwin:drawText(1, tostring(count) .. " Commands") | |
2888 | cmdwin:drawText(1, 'Chat Prefix: /') | |
2889 | local cmdlist = cmdwin:drawScrollingContainer(260) | |
2890 | for i, v in pairs(cmd.commands.fmtstore) do | |
2891 | local xfmt = {} | |
2892 | local str = " ;" .. i .. " " | |
2893 | for form in v:gmatch("[^%%]+") do | |
2894 | if form ~= 'cmd' then | |
2895 | if form == 'inf' then form = 'str' end | |
2896 | str = str .. "{" .. form .. "} " | |
2897 | end | |
2898 | end | |
2899 | cmdlist:drawText(1, str) | |
2900 | end | |
2901 | --// MUSIC //-- | |
2902 | musicwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Music').Container) | |
2903 | Sounds = { | |
2904 | {"caramell", 2303479}; | |
2905 | {"epic", 27697743}; | |
2906 | {"rick", 2027611}; | |
2907 | {"halo", 1034065}; | |
2908 | {"pokemon", 1372261}; | |
2909 | {"cursed", 1372257}; | |
2910 | {"extreme", 11420933}; | |
2911 | {"awaken", 27697277}; | |
2912 | {"alone", 27697392}; | |
2913 | {"mario", 1280470}; | |
2914 | {"choir", 1372258}; | |
2915 | {"chrono" ,1280463}; | |
2916 | {"dotr", 11420922}; | |
2917 | {"entertain", 27697267}; | |
2918 | {"fantasy", 1280473}; | |
2919 | {"final", 787}; | |
2920 | {"organ", 11231513}; | |
2921 | {"tunnel", 9650822} | |
2922 | } | |
2923 | ||
2924 | local cursel | |
2925 | local xcursel = 0 | |
2926 | scr = musicwin:drawScrollingContainer(230) | |
2927 | for i, v in pairs(Sounds) do | |
2928 | scr:drawButton(1, v[1] .. " - " .. tonumber(v[2]), function() | |
2929 | cursel.Text = "Currently Selected - " .. v[1] | |
2930 | xcursel = v[2] | |
2931 | end) | |
2932 | end | |
2933 | ||
2934 | cursel = musicwin:drawText(1, "Currently Selected - None") | |
2935 | local setInp | |
2936 | musicwin:drawButton(1/3, "Set", function() | |
2937 | if tonumber(setInp.Text) then | |
2938 | cursel.Text = "Currently Selected - " .. setInp.Text | |
2939 | xcursel = tonumber(setInp.Text) | |
2940 | end | |
2941 | end) | |
2942 | setInp = musicwin:drawTextBox(2/3, '') | |
2943 | musicwin:drawButton(1, "Play", function() | |
2944 | tk.rcm(game, 'Sound') | |
2945 | tk.play(xcursel) | |
2946 | end) | |
2947 | musicwin:drawButton(1, "Stop", function() | |
2948 | tk.rcm(game, 'Sound') | |
2949 | end) | |
2950 | --// FACES //-- | |
2951 | facwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Faces').Container) | |
2952 | local faces = { | |
2953 | {name='Rofl',id=47595647}, | |
2954 | {name='Sparta',id=74142203}, | |
2955 | {name='UJelly',id=48989071}, | |
2956 | {name='Troll',id=45120559}, | |
2957 | {name='Horse',id=62079221}, | |
2958 | {name='Angry',id=48258623}, | |
2959 | {name='Okey',id=62830600}, | |
2960 | {name='Yeaw',id=53646377}, | |
2961 | {name='Here',id=62677045}, | |
2962 | {name='Har',id=48260066}, | |
2963 | {name='Baby Sun',id=47596170}, | |
2964 | {name='LOL',id=48293007}, | |
2965 | {name='Sad',id=53645378}, | |
2966 | {name='Joseph Stalin',id=48290678}, | |
2967 | {name='Doge',id=130742396}, | |
2968 | {name='Forever Alone',id=156886272}, | |
2969 | {name='RickRoll',id=5104631}, | |
2970 | {name='Jim Carrey',id=74885351}, | |
2971 | {name='Meh IRL',id=237553381} | |
2972 | } | |
2973 | local cursel, xcursel = nil, 0 | |
2974 | faclist = facwin:drawScrollingContainer(260) | |
2975 | for i,v in pairs(faces) do | |
2976 | local btn = faclist:drawButton(1, v['name'], function() | |
2977 | xcursel = v['id'] | |
2978 | cursel.Text = 'Currently Selected: ' .. v['name'] | |
2979 | end) | |
2980 | topkek.tools.gui:addLeftIcon(btn,'rbxassetid://'..tostring(v['id']),20) | |
2981 | end | |
2982 | cursel = facwin:drawText(1, 'Currently Selected: None') | |
2983 | facwin:drawButton(1, 'Wear', function() | |
2984 | if not (xcursel == 0) then | |
2985 | if topkek.lplr.Character then | |
2986 | tk.rcm(topkek.lplr.Character, 'Accessory') | |
2987 | tk.rcm(topkek.lplr.Character, 'Hat') | |
2988 | topkek.tools.util.applyFace(xcursel) | |
2989 | end | |
2990 | end | |
2991 | end) | |
2992 | --// SETTINGS // -- | |
2993 | setwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Settings').Container) | |
2994 | setwin:drawText(1, 'Patch: ' .. topkek.patch) | |
2995 | setwin:drawText(1, 'Devnote: foh skids') | |
2996 | setwin:drawText(1, [[ | |
2997 | === CREDITS === | |
2998 | ||
2999 | Variable - retard that created Stella | |
3000 | KrystalTeam - provided critical design tips & advice | |
3001 | Circumvention - lol joey salads | |
3002 | ||
3003 | Thanks to everyone that supported T0PK3K 4.0! | |
3004 | ||
3005 | ]], 260) | |
3006 | --// BANLIST //-- | |
3007 | banwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Banlist').Container) | |
3008 | local plrBanInp | |
3009 | banwin:drawButton(1/3, 'Add', function() | |
3010 | topkek.settings.get() | |
3011 | table.insert(topkek.settingsTable['Bans'], plrBanInp.Text) | |
3012 | topkek.settings.write() | |
3013 | UpdateBanlist() | |
3014 | end) | |
3015 | plrBanInp = banwin:drawTextBox(2/3, '') | |
3016 | banCont = banwin:drawScrollingContainer(288) | |
3017 | function UpdateBanlist(x) | |
3018 | topkek.settings.get() | |
3019 | local wl = x or topkek.settingsTable['Bans'] | |
3020 | for i,v in pairs(banCont:GetChildren()) do | |
3021 | v:Destroy() | |
3022 | end | |
3023 | banCont:setDrawY(3) | |
3024 | for i,v in pairs(wl) do | |
3025 | banCont:drawText(2/3, v) | |
3026 | banCont:drawButton(1/3, 'Remove', function() | |
3027 | for x, m in pairs(wl) do | |
3028 | if m == v then | |
3029 | table.remove(topkek.settingsTable['Bans'], x) | |
3030 | topkek.settings.write() | |
3031 | UpdateBanlist() | |
3032 | topkek.banmgr.bans = topkek.settingsTable['Bans'] | |
3033 | end | |
3034 | end | |
3035 | end) | |
3036 | end | |
3037 | end | |
3038 | UpdateBanlist() | |
3039 | --// HATS //-- | |
3040 | hatwin = topkek.tools.gui:hookContainer(topkek.tools.util.getContainer('Hats').Container) | |
3041 | local hats={ | |
3042 | {name='Dominus Empyreus',id=21070012}, | |
3043 | {name='Dominus Vespertilio',id=96103379}, | |
3044 | {name='Dominus Infernus',id=31101391}, | |
3045 | {name='Dominus Rex',id=250395631}, | |
3046 | {name='Dominus Frigidus',id=48545806}, | |
3047 | {name='Dominus Astra',id=162067148}, | |
3048 | {name='Dominus Aureus',id=138932314}, | |
3049 | {name='DIY Dominus Empyreus',id=151789690}, | |
3050 | {name='Dominus Messor',id=64444871}, | |
3051 | {name='Demon Skeleton Wings',id=133554007}, | |
3052 | {name='Gilded Wings of Glory',id=250405532}, | |
3053 | {name='Majestic Ice Wings',id=188702967}, | |
3054 | {name='Black Wings',id=215719598}, | |
3055 | {name='Clockworks Shades',id=11748356}, | |
3056 | {name='Faerie Wings',id=19399896}, | |
3057 | {name='Orinthian Wings',id=223751505}, | |
3058 | {name='Clockworks Headphones',id=1235488}, | |
3059 | {name='Perfectly Legitimate Business Hat',id=19027209}, | |
3060 | {name='Sparkling Angel Wings',id=192557913}, | |
3061 | {name='Commander Crows Wings',id=133553855}, | |
3062 | {name='Sunfire Wings',id=158068470}, | |
3063 | {name='Royal Faerie Wings',id=119916756}, | |
3064 | {name='Wings of Freedom',id=164174048}, | |
3065 | {name='Firebrand Wings',id=128160626}, | |
3066 | {name='Frozen Wings',id=136758613}, | |
3067 | {name='Webbed Wings',id=120507280}, | |
3068 | {name='Gargoyle Wings',id=120507201}, | |
3069 | {name='Bat Wings',id=19399858}, | |
3070 | {name='Wings of Fire',id=136758532}, | |
3071 | {name='Headrow',id=1082935}, | |
3072 | {name='Rubber Duckie',id=9254254}, | |
3073 | {name='Valkyrie Helm',id=1365767}, | |
3074 | {name='Hockey Mask',id=5161514}} | |
3075 | local searchi = hatwin:drawButton(1, '', function()end) | |
3076 | dropx = GUI.DropDown.New(UDim2.new(0, 0, 0, 0), UDim2.new(1, 0, 1, 0), searchi, {'All'}) | |
3077 | function fixPlayerDropi() | |
3078 | local t = {'All'} | |
3079 | for i, v in pairs(game.Players:GetPlayers()) do | |
3080 | table.insert(t, v.Name) | |
3081 | end | |
3082 | dropx.SetTable(t) | |
3083 | end | |
3084 | game.Players.PlayerAdded:connect(function() | |
3085 | fixPlayerDropi() | |
3086 | end) | |
3087 | game.Players.PlayerRemoving:connect(function() | |
3088 | fixPlayerDropi() | |
3089 | end) | |
3090 | local eval = 'All' | |
3091 | dropx.Changed(function(p) eval = p end) | |
3092 | fixPlayerDrop() | |
3093 | ||
3094 | local hatInp | |
3095 | hatlist = hatwin:drawScrollingContainer(260) | |
3096 | for i,v in pairs(hats) do | |
3097 | hatlist:drawButton(1, v['name'], function() | |
3098 | hatInp.Text = tostring(v['id']) | |
3099 | end) | |
3100 | end | |
3101 | hatwin:drawButton(1/3, 'Wear', function() | |
3102 | local hat = game:GetObjects("rbxassetid://"..tonumber(hatInp.Text))[1] | |
3103 | tk.dp(eval, function(x) | |
3104 | if x.Character then | |
3105 | hat:Clone().Parent = x.Character | |
3106 | end | |
3107 | end) | |
3108 | end) | |
3109 | ||
3110 | ||
3111 | hatInp = hatwin:drawTextBox(2/3, '') | |
3112 | topkek.tools.animator.initialAnimation() | |
3113 | topkek.banmgr.init() |