View difference between Paste ID: eXcz4Gtp and qERhTewe
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()