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