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