Advertisement
sbfashfbsajfhsbafbas

UI Library

Apr 11th, 2020 (edited)
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.77 KB | None | 0 0
  1. function dragify(Frame)
  2. dragToggle = nil
  3. dragSpeed = .25
  4. dragInput = nil
  5. dragStart = nil
  6. dragPos = nil
  7.  
  8. function updateInput(input)
  9. Delta = input.Position - dragStart
  10. Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + Delta.X, startPos.Y.Scale, startPos.Y.Offset + Delta.Y)
  11. game:GetService("TweenService"):Create(Frame, TweenInfo.new(.25), {Position = Position}):Play()
  12. end
  13.  
  14. Frame.InputBegan:Connect(function(input)
  15. if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
  16. dragToggle = true
  17. dragStart = input.Position
  18. startPos = Frame.Position
  19. input.Changed:Connect(function()
  20. if (input.UserInputState == Enum.UserInputState.End) then
  21. dragToggle = false
  22. end
  23. end)
  24. end
  25. end)
  26.  
  27. Frame.InputChanged:Connect(function(input)
  28. if (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
  29. dragInput = input
  30. end
  31. end)
  32.  
  33. game:GetService("UserInputService").InputChanged:Connect(function(input)
  34. if (input == dragInput and dragToggle) then
  35. updateInput(input)
  36. end
  37. end)
  38. end
  39. local Library = {}
  40.  
  41. function Library:Create()
  42. local SCREENUI = Instance.new("ScreenGui")
  43. local UIListLayout = Instance.new("UIListLayout")
  44. local UIPadding = Instance.new("UIPadding")
  45.  
  46. SCREENUI.Name = "SCREENUI"
  47. SCREENUI.Parent = game:GetService("CoreGui")
  48. SCREENUI.ZIndexBehavior = Enum.ZIndexBehavior.Global
  49. SCREENUI.ResetOnSpawn = false
  50.  
  51. UIListLayout.Parent = SCREENUI
  52. UIListLayout.FillDirection = Enum.FillDirection.Horizontal
  53. UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
  54. UIListLayout.Padding = UDim.new(0, 2)
  55.  
  56. UIPadding.Parent = SCREENUI
  57. UIPadding.PaddingLeft = UDim.new(0, 5)
  58. UIPadding.PaddingTop = UDim.new(0, 5)
  59.  
  60. local Window = {}
  61.  
  62. function Window:CreateWindow(title)
  63. local Visible = true
  64. local topFrame = Instance.new("Frame")
  65. local lowerFrame = Instance.new("Frame")
  66. local titleLabel = Instance.new("TextLabel")
  67. local placeholderFrame = Instance.new("Frame")
  68. local mainFrame = Instance.new("Frame")
  69. local itemHolder = Instance.new("Frame")
  70. local itemLayout = Instance.new("UIListLayout")
  71. local placeholderFrame_2 = Instance.new("Frame")
  72.  
  73. topFrame.Name = "topFrame"
  74. topFrame.Parent = SCREENUI
  75. topFrame.BackgroundColor3 = Color3.fromRGB(165, 0, 152)
  76. topFrame.BorderSizePixel = 0
  77. topFrame.Position = UDim2.new(0.00527530536, 0, 0.00819672272, 0)
  78. topFrame.Size = UDim2.new(0, 215, 0, 20)
  79. dragify(topFrame)
  80.  
  81. game:GetService("UserInputService").InputBegan:Connect(function(input)
  82. if input.KeyCode == Enum.KeyCode.RightShift then
  83. if Visible then
  84. Visible = false
  85. topFrame.Visible = false
  86. else
  87. Visible = true
  88. topFrame.Visible = true
  89. end
  90. end
  91. end)
  92. lowerFrame.Name = "lowerFrame"
  93. lowerFrame.Parent = topFrame
  94. lowerFrame.AnchorPoint = Vector2.new(1, 0)
  95. lowerFrame.BackgroundColor3 = Color3.fromRGB(219, 0, 201)
  96. lowerFrame.BorderSizePixel = 0
  97. lowerFrame.Position = UDim2.new(1, 0, 1, 0)
  98. lowerFrame.Size = UDim2.new(0, 215, 0, 38)
  99.  
  100. titleLabel.Name = "titleLabel"
  101. titleLabel.Parent = lowerFrame
  102. titleLabel.AnchorPoint = Vector2.new(0.5, 0.5)
  103. titleLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  104. titleLabel.BackgroundTransparency = 1.000
  105. titleLabel.BorderSizePixel = 0
  106. titleLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
  107. titleLabel.Size = UDim2.new(0, 197, 0, 26)
  108. titleLabel.Font = Enum.Font.Code
  109. titleLabel.Text = title
  110. titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  111. titleLabel.TextSize = 20.000
  112. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  113.  
  114. placeholderFrame.Name = "placeholderFrame"
  115. placeholderFrame.Parent = lowerFrame
  116. placeholderFrame.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  117. placeholderFrame.BorderSizePixel = 0
  118. placeholderFrame.Position = UDim2.new(0, 0, 1, 0)
  119. placeholderFrame.Size = UDim2.new(0, 215, 0, 2)
  120.  
  121. mainFrame.Name = "mainFrame"
  122. mainFrame.Parent = lowerFrame
  123. mainFrame.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  124. mainFrame.BorderSizePixel = 0
  125. mainFrame.Position = UDim2.new(0, 0, 1.05263078, 0)
  126. mainFrame.Size = UDim2.new(0, 215, 0, 0)
  127.  
  128. itemHolder.Name = "itemHolder"
  129. itemHolder.Parent = mainFrame
  130. itemHolder.AnchorPoint = Vector2.new(1, 1)
  131. itemHolder.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  132. itemHolder.BackgroundTransparency = 1.000
  133. itemHolder.BorderSizePixel = 0
  134. itemHolder.ZIndex = 2
  135. itemHolder.Position = UDim2.new(1, 0, 1, 0)
  136. itemHolder.Size = UDim2.new(1, 0, 1, 0)
  137.  
  138. itemLayout.Name = "itemLayout"
  139. itemLayout.Parent = itemHolder
  140. itemLayout.SortOrder = Enum.SortOrder.LayoutOrder
  141.  
  142. placeholderFrame_2.Name = "placeholderFrame"
  143. placeholderFrame_2.Parent = mainFrame
  144. placeholderFrame_2.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  145. placeholderFrame_2.BorderSizePixel = 0
  146. placeholderFrame_2.Position = UDim2.new(0, 0, 1, 0)
  147. placeholderFrame_2.Size = UDim2.new(0, 215, 0, 2)
  148.  
  149. local function Resize()
  150. local Size = mainFrame.Size
  151. Size = UDim2.new(mainFrame.Size.X.Scale, mainFrame.Size.X.Offset, mainFrame.Size.Y.Scale, mainFrame.Size.Y.Offset + 23);
  152. mainFrame.Size = Size
  153. end
  154.  
  155. local Items = {}
  156.  
  157. function Items:Button(Text, Callback)
  158. Resize()
  159. local buttonStuff = {
  160. MouseEnterColor = Color3.fromRGB(219, 0, 201);
  161. MouseLeaveColor = Color3.fromRGB(165, 0, 152);
  162. TweenColor = function(object,properties)
  163. game:GetService("TweenService"):Create(object, TweenInfo.new(.2,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut,0,false,0), properties):Play()
  164. end;
  165. Ripple = function(btn)
  166. spawn(function()
  167. local img = Instance.new('ImageLabel')
  168. img.BackgroundTransparency = 1
  169. img.BorderSizePixel = 0
  170. img.Image = "rbxassetid://3188341304"
  171. img.ImageColor3 = Color3.new(54/255, 126/255, 207/255)
  172. img.Size = UDim2.new(0,0,0,0)
  173. img.Position = UDim2.new(.5,0,.5,0)
  174. img.Parent = btn
  175. img:TweenSizeAndPosition(UDim2.new(0,200,0,200),UDim2.new(.5,-100,.5,-100),Enum.EasingDirection.Out,Enum.EasingStyle.Linear,.5)
  176. for i = 0.1,1,.05 do
  177. img.ImageTransparency = i
  178. wait()
  179. end
  180. img:Destroy()
  181. end)
  182. end
  183. }
  184. local buttonHolder = Instance.new("Frame")
  185. local buttonConnect = Instance.new("TextButton")
  186.  
  187. buttonHolder.Name = "buttonHolder"
  188. buttonHolder.Parent = itemHolder
  189. buttonHolder.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  190. buttonHolder.BackgroundTransparency = 1.000
  191. buttonHolder.BorderSizePixel = 0
  192. buttonHolder.Position = UDim2.new(0.210025817, 0, 0.674279809, 0)
  193. buttonHolder.Size = UDim2.new(0, 215, 0, 23)
  194.  
  195. buttonConnect.Name = "buttonConnect"
  196. buttonConnect.Parent = buttonHolder
  197. buttonConnect.AnchorPoint = Vector2.new(0.5, 0.5)
  198. buttonConnect.BackgroundColor3 = Color3.fromRGB(159, 0, 147)
  199. buttonConnect.BorderSizePixel = 0
  200. buttonConnect.ClipsDescendants = true
  201. buttonConnect.Position = UDim2.new(0.5, 0, 0.5, 0)
  202. buttonConnect.Size = UDim2.new(0, 206, 0, 20)
  203. buttonConnect.AutoButtonColor = false
  204. buttonConnect.Font = Enum.Font.Code
  205. buttonConnect.Text = Text
  206. buttonConnect.TextColor3 = Color3.fromRGB(255, 255, 255)
  207. buttonConnect.TextSize = 16.00
  208.  
  209. buttonConnect.MouseButton1Down:Connect(function()
  210. Callback()
  211. buttonStuff.Ripple(buttonConnect)
  212. buttonStuff.TweenColor(buttonConnect, {BackgroundColor3 = buttonStuff.MouseEnterColor})
  213. end)
  214. buttonConnect.MouseEnter:Connect(function()
  215. buttonStuff.TweenColor(buttonConnect, {BackgroundColor3 = buttonStuff.MouseEnterColor})
  216. end)
  217. buttonConnect.MouseLeave:Connect(function()
  218. buttonStuff.TweenColor(buttonConnect, {BackgroundColor3 = buttonStuff.MouseLeaveColor})
  219. end)
  220. end
  221.  
  222. function Items:TextBox(Text, Callback)
  223. Resize()
  224. local boxHolder = Instance.new("Frame")
  225. local boxConnect = Instance.new("TextBox")
  226.  
  227. boxHolder.Name = "boxHolder"
  228. boxHolder.Parent = itemHolder
  229. boxHolder.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  230. boxHolder.BackgroundTransparency = 1.000
  231. boxHolder.BorderSizePixel = 0
  232. boxHolder.Position = UDim2.new(0.210025817, 0, 0.757103384, 0)
  233. boxHolder.Size = UDim2.new(0, 215, 0, 23)
  234.  
  235. boxConnect.Name = "boxConnect"
  236. boxConnect.Parent = boxHolder
  237. boxConnect.AnchorPoint = Vector2.new(0.5, 0.5)
  238. boxConnect.BackgroundColor3 = Color3.fromRGB(159, 0, 147)
  239. boxConnect.BorderSizePixel = 0
  240. boxConnect.Position = UDim2.new(0.5, 0, 0.5, 0)
  241. boxConnect.Size = UDim2.new(0, 206, 0, 20)
  242. boxConnect.Font = Enum.Font.Code
  243. boxConnect.PlaceholderText = Text
  244. boxConnect.Text = ""
  245. boxConnect.TextColor3 = Color3.fromRGB(255, 255, 255)
  246. boxConnect.TextSize = 16.000
  247.  
  248. local boxStuff = {
  249. MouseEnterColor = Color3.fromRGB(219, 0, 201);
  250. MouseLeaveColor = Color3.fromRGB(165, 0, 152);
  251. TweenColor = function(object,properties)
  252. game:GetService("TweenService"):Create(object, TweenInfo.new(.2,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut,0,false,0), properties):Play()
  253. end;
  254. focused = false;
  255. }
  256. boxConnect.Focused:Connect(function()
  257. boxStuff.focused = true
  258. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseLeaveColor})
  259. wait(.2)
  260. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseEnterColor})
  261. end)
  262.  
  263. boxConnect.FocusLost:Connect(function()
  264. Callback(boxConnect.Text)
  265. boxStuff.focused = false
  266. boxConnect.Text = ""
  267. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseLeaveColor})
  268. wait(.2)
  269. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseEnterColor})
  270. wait(.2)
  271. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseLeaveColor})
  272. end)
  273.  
  274. boxConnect.MouseEnter:Connect(function()
  275. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseEnterColor})
  276. end)
  277. boxConnect.MouseLeave:Connect(function()
  278. if boxStuff.focused then
  279. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseEnterColor})
  280. else
  281. boxStuff.TweenColor(boxConnect, {BackgroundColor3 = boxStuff.MouseLeaveColor})
  282. end
  283. end)
  284. end
  285.  
  286. function Items:Slider(Text, minAmmount, maxAmmount, Callback)
  287. Resize()
  288. local sliderHolder = Instance.new("Frame")
  289. local sliderFrame = Instance.new("TextButton")
  290. local sliderObject = Instance.new("TextButton")
  291. local sliderText = Instance.new("TextLabel")
  292.  
  293. sliderHolder.Name = "sliderHolder"
  294. sliderHolder.Parent = itemHolder
  295. sliderHolder.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  296. sliderHolder.BackgroundTransparency = 1.000
  297. sliderHolder.BorderSizePixel = 0
  298. sliderHolder.Position = UDim2.new(0.210025817, 0, 0.841245651, 0)
  299. sliderHolder.Size = UDim2.new(0, 215, 0, 23)
  300.  
  301. sliderFrame.Name = "sliderFrame"
  302. sliderFrame.Parent = sliderHolder
  303. sliderFrame.AnchorPoint = Vector2.new(0.5, 0.5)
  304. sliderFrame.BackgroundColor3 = Color3.fromRGB(159, 0, 147)
  305. sliderFrame.BorderSizePixel = 0
  306. sliderFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
  307. sliderFrame.Size = UDim2.new(0, 206, 0, 20)
  308. sliderFrame.AutoButtonColor = false
  309. sliderFrame.Font = Enum.Font.Code
  310. sliderFrame.Text = ""
  311. sliderFrame.TextColor3 = Color3.fromRGB(255, 255, 255)
  312. sliderFrame.TextSize = 18.000
  313.  
  314. sliderObject.Name = "sliderObject"
  315. sliderObject.Parent = sliderFrame
  316. sliderObject.BackgroundColor3 = Color3.fromRGB(219, 0, 201)
  317. sliderObject.BorderSizePixel = 0
  318. sliderObject.ClipsDescendants = true
  319. sliderObject.Size = UDim2.new(0, 0, 0, 20)
  320. sliderObject.AutoButtonColor = false
  321. sliderObject.Font = Enum.Font.Code
  322. sliderObject.Text = ""
  323. sliderObject.TextColor3 = Color3.fromRGB(255, 255, 255)
  324. sliderObject.TextSize = 18.000
  325.  
  326. sliderText.Name = "sliderText"
  327. sliderText.Parent = sliderFrame
  328. sliderText.AnchorPoint = Vector2.new(0.5, 0.5)
  329. sliderText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  330. sliderText.BackgroundTransparency = 1.000
  331. sliderText.BorderSizePixel = 0
  332. sliderText.Position = UDim2.new(0.49999994, 0, 0.5, 0)
  333. sliderText.Size = UDim2.new(0, 206, 0, 20)
  334. sliderText.Font = Enum.Font.Code
  335. sliderText.Text = Text
  336. sliderText.TextColor3 = Color3.fromRGB(255, 255, 255)
  337. sliderText.TextSize = 16.000
  338. sliderText.TextTransparency = 0.500
  339. sliderText.TextWrapped = true
  340.  
  341. local TweenColor = function(object,properties)
  342. game:GetService("TweenService"):Create(object, TweenInfo.new(.2,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut,0,false,0), properties):Play()
  343. end;
  344. local MouseEnterColor = Color3.fromRGB(219, 0, 201);
  345. local MouseLeaveColor = Color3.fromRGB(165, 0, 152);
  346.  
  347. sliderFrame.MouseEnter:Connect(function()
  348. TweenColor(sliderText, {TextTransparency = 0})
  349. end)
  350. sliderFrame.MouseLeave:Connect(function()
  351. TweenColor(sliderText, {TextTransparency = .5})
  352. end)
  353.  
  354. local renderSteppedConnection = nil
  355. local inputBeganConnection = nil
  356. local inputEndedConnection = nil
  357. local mouseLeaveConnection = nil
  358. local mouseDownConnection = nil
  359. local mouseUpConnection = nil
  360.  
  361. sliderFrame.MouseEnter:Connect(function()
  362. local function Update()
  363. if renderSteppedConnection then renderSteppedConnection:Disconnect() end
  364.  
  365. renderSteppedConnection = game:GetService("RunService").RenderStepped:Connect(function()
  366. local Mouse = game:GetService('UserInputService'):GetMouseLocation()
  367. local Percent = (Mouse.X - sliderFrame.AbsolutePosition.X) / (sliderFrame.AbsoluteSize.X)
  368.  
  369. Percent = math.clamp(Percent, 0, 1)
  370. Percent = tonumber(string.format('%.2f', Percent))
  371.  
  372. sliderObject:TweenSize(UDim2.new(math.clamp(Percent, 0, 01), 0, 0, 20), Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, .05, true)
  373.  
  374. local Number = math.floor(minAmmount + (maxAmmount - minAmmount) * Percent)
  375. sliderText.Text = Text .. ": " .. Number
  376. Callback(Number)
  377. end)
  378. end
  379.  
  380. function Disconnect()
  381. if renderSteppedConnection then renderSteppedConnection:Disconnect() end
  382. if inputBeganConnection then inputBeganConnection:Disconnect() end
  383. if inputEndedConnection then inputEndedConnection:Disconnect() end
  384. if mouseLeaveConnection then mouseLeaveConnection:Disconnect() end
  385. if mouseUpConnection then mouseUpConnection:Disconnect() end
  386. end
  387.  
  388. inputBeganConnection = sliderFrame.InputBegan:connect(function(input)
  389. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  390. Update()
  391. end
  392. end)
  393.  
  394. inputEndedConnection = sliderFrame.InputEnded:connect(function(input)
  395. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  396. Disconnect()
  397. end
  398. end)
  399.  
  400. mouseDownConnection = sliderObject.MouseButton1Down:Connect(Update)
  401. mouseUpConnection = game:GetService('UserInputService').InputEnded:connect(function(a, b)
  402. if a.UserInputType == Enum.UserInputType.MouseButton1 and (mouseDownConnection.Connected) then
  403. Disconnect()
  404. end
  405. end)
  406. end)
  407. end
  408.  
  409. function Items:Toggle(Text, Callback)
  410. Resize()
  411. local toggleHolder = Instance.new("Frame")
  412. local toggleOutline = Instance.new("Frame")
  413. local toggleBox = Instance.new("Frame")
  414. local toggleText = Instance.new("TextLabel")
  415. local toggleConnect = Instance.new("TextButton")
  416.  
  417. toggleHolder.Name = "toggleHolder"
  418. toggleHolder.Parent = itemHolder
  419. toggleHolder.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  420. toggleHolder.BackgroundTransparency = 1.000
  421. toggleHolder.BorderSizePixel = 0
  422. toggleHolder.Position = UDim2.new(0.210025817, 0, 0.507912457, 0)
  423. toggleHolder.Size = UDim2.new(0, 215, 0, 23)
  424.  
  425. toggleOutline.Name = "toggleOutline"
  426. toggleOutline.Parent = toggleHolder
  427. toggleOutline.AnchorPoint = Vector2.new(0.5, 0.5)
  428. toggleOutline.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  429. toggleOutline.BorderColor3 = Color3.fromRGB(165, 0, 152)
  430. toggleOutline.Position = UDim2.new(0.926046491, 0, 0.5, 0)
  431. toggleOutline.Size = UDim2.new(0, 20, 0, 20)
  432.  
  433. toggleBox.Name = "toggleBox"
  434. toggleBox.Parent = toggleOutline
  435. toggleBox.AnchorPoint = Vector2.new(0.5, 0.5)
  436. toggleBox.BackgroundColor3 = Color3.fromRGB(165, 0, 152)
  437. toggleBox.BorderColor3 = Color3.fromRGB(219, 0, 201)
  438. toggleBox.BorderSizePixel = 0
  439. toggleBox.Position = UDim2.new(0.5, 0, 0.5, 0)
  440.  
  441. toggleText.Name = "toggleText"
  442. toggleText.Parent = toggleHolder
  443. toggleText.AnchorPoint = Vector2.new(0.5, 0.5)
  444. toggleText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  445. toggleText.BackgroundTransparency = 1.000
  446. toggleText.BorderSizePixel = 0
  447. toggleText.Position = UDim2.new(0.442000011, 0, 0.5, 0)
  448. toggleText.Size = UDim2.new(0, 178, 0, 20)
  449. toggleText.Font = Enum.Font.Code
  450. toggleText.Text = Text
  451. toggleText.TextColor3 = Color3.fromRGB(255, 255, 255)
  452. toggleText.TextSize = 16.000
  453. toggleText.TextWrapped = true
  454. toggleText.TextXAlignment = Enum.TextXAlignment.Left
  455.  
  456. toggleConnect.Name = "toggleConnect"
  457. toggleConnect.Parent = toggleHolder
  458. toggleConnect.AnchorPoint = Vector2.new(0.5, 0.5)
  459. toggleConnect.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  460. toggleConnect.BackgroundTransparency = 1.000
  461. toggleConnect.Position = UDim2.new(0.939999998, 0, 0.5, 0)
  462. toggleConnect.Size = UDim2.new(0, 20, 0, 20)
  463. toggleConnect.Font = Enum.Font.SourceSans
  464. toggleConnect.Text = ""
  465. toggleConnect.TextColor3 = Color3.fromRGB(0, 0, 0)
  466. toggleConnect.TextSize = 14.000
  467. local toggleStuff = {
  468. MouseEnterColor = Color3.fromRGB(219, 0, 201);
  469. MouseLeaveColor = Color3.fromRGB(165, 0, 152);
  470. ToggledSize = UDim2.new(0, 18, 0, 18);
  471. UntoggledSize = UDim2.new(0, 0, 0, 0);
  472. TweenColor = function(object,properties)
  473. game:GetService("TweenService"):Create(object, TweenInfo.new(.2,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut,0,false,0), properties):Play()
  474. end;
  475. }
  476.  
  477. local Toggled = false
  478. toggleConnect.MouseButton1Down:Connect(function()
  479. if Toggled == true then
  480. toggleBox:TweenSize(toggleStuff.UntoggledSize, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, .2, false, function()
  481. Toggled = not Toggled
  482. Callback(Toggled)
  483. end)
  484. end
  485. if Toggled == false then
  486. toggleBox:TweenSize(toggleStuff.ToggledSize, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, .2, false, function()
  487. Toggled = not Toggled
  488. Callback(Toggled)
  489. end)
  490. end
  491. end)
  492. toggleConnect.MouseEnter:Connect(function()
  493. toggleStuff.TweenColor(toggleOutline, {BorderColor3 = toggleStuff.MouseEnterColor})
  494. toggleStuff.TweenColor(toggleBox, {BackgroundColor3 = toggleStuff.MouseEnterColor})
  495. end)
  496. toggleConnect.MouseLeave:Connect(function()
  497. toggleStuff.TweenColor(toggleOutline, {BorderColor3 = toggleStuff.MouseLeaveColor})
  498. toggleStuff.TweenColor(toggleBox, {BackgroundColor3 = toggleStuff.MouseLeaveColor})
  499. end)
  500. end
  501.  
  502. function Items:Dropdown(Text, items, Callback)
  503. Resize()
  504. local dropdownHolder = Instance.new("Frame")
  505. local dropdownConnect = Instance.new("TextButton")
  506. local rippleEffectHolder = Instance.new("Frame")
  507. local dropdownItemHolder = Instance.new("Frame")
  508. local dropdownLayout = Instance.new("UIListLayout")
  509. local dropdownPadding = Instance.new("UIPadding")
  510.  
  511. dropdownHolder.Name = "dropdownHolder"
  512. dropdownHolder.Parent = itemHolder
  513. dropdownHolder.BackgroundColor3 = Color3.fromRGB(39, 39, 39)
  514. dropdownHolder.BackgroundTransparency = 1.000
  515. dropdownHolder.BorderSizePixel = 0
  516. dropdownHolder.Position = UDim2.new(0.210025817, 0, 0.590315938, 0)
  517. dropdownHolder.Size = UDim2.new(0, 215, 0, 23)
  518.  
  519. dropdownConnect.Name = "dropdownConnect"
  520. dropdownConnect.Parent = dropdownHolder
  521. dropdownConnect.AnchorPoint = Vector2.new(0.5, 0.5)
  522. dropdownConnect.BackgroundColor3 = Color3.fromRGB(159, 0, 147)
  523. dropdownConnect.BorderSizePixel = 0
  524. dropdownConnect.Position = UDim2.new(0.5, 0, 0.5, 0)
  525. dropdownConnect.Size = UDim2.new(0, 206, 0, 20)
  526. dropdownConnect.AutoButtonColor = false
  527. dropdownConnect.Font = Enum.Font.Code
  528. dropdownConnect.Text = Text
  529. dropdownConnect.TextColor3 = Color3.fromRGB(255, 255, 255)
  530. dropdownConnect.TextSize = 16.000
  531.  
  532. rippleEffectHolder.Name = "rippleEffectHolder"
  533. rippleEffectHolder.Parent = dropdownConnect
  534. rippleEffectHolder.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  535. rippleEffectHolder.BackgroundTransparency = 1.000
  536. rippleEffectHolder.ClipsDescendants = true
  537. rippleEffectHolder.Size = UDim2.new(0, 206, 0, 20)
  538.  
  539. dropdownItemHolder.Name = "dropdownItemHolder"
  540. dropdownItemHolder.Parent = dropdownConnect
  541. dropdownItemHolder.BackgroundColor3 = Color3.fromRGB(219, 0, 201)
  542. dropdownItemHolder.BorderSizePixel = 0
  543. dropdownItemHolder.ClipsDescendants = true
  544. dropdownItemHolder.Position = UDim2.new(0, 0, 1, 0)
  545. dropdownItemHolder.Size = UDim2.new(0, 206, 0, 0)
  546. dropdownItemHolder.ZIndex = 3
  547.  
  548. dropdownLayout.Name = "dropdownLayout"
  549. dropdownLayout.Parent = dropdownItemHolder
  550. dropdownLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
  551. dropdownLayout.SortOrder = Enum.SortOrder.LayoutOrder
  552. dropdownLayout.Padding = UDim.new(0, 2)
  553.  
  554. dropdownPadding.Name = "dropdownPadding"
  555. dropdownPadding.Parent = dropdownItemHolder
  556. dropdownPadding.PaddingTop = UDim.new(0, 2)
  557. local dropdownStuff = {
  558. ClosedSize = UDim2.new(0, 206,0, 0);
  559. OpenSize = UDim2.new(0, 206, 0, 0);
  560. AddAmmountFirst = 24;
  561. AddAmmountOthers = 22;
  562. MouseEnterColor = Color3.fromRGB(219, 0, 201);
  563. MouseLeaveColor = Color3.fromRGB(165, 0, 152);
  564. TweenColor = function(object,properties)
  565. game:GetService("TweenService"):Create(object, TweenInfo.new(.2,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut,0,false,0), properties):Play()
  566. end;
  567. CurrentlyOpen = false;
  568. Ripple = function(btn)
  569. spawn(function()
  570. local img = Instance.new('ImageLabel')
  571. img.BackgroundTransparency = 1
  572. img.BorderSizePixel = 0
  573. img.Image = "rbxassetid://3188341304"
  574. img.ImageColor3 = Color3.new(54/255, 126/255, 207/255)
  575. img.Size = UDim2.new(0,0,0,0)
  576. img.Position = UDim2.new(.5,0,.5,0)
  577. img.Parent = btn
  578. img:TweenSizeAndPosition(UDim2.new(0,200,0,200),UDim2.new(.5,-100,.5,-100),Enum.EasingDirection.Out,Enum.EasingStyle.Linear,.5)
  579. for i = 0.1,1,.05 do
  580. img.ImageTransparency = i
  581. wait()
  582. end
  583. img:Destroy()
  584. end)
  585. end;
  586. }
  587.  
  588. local function changeIndex(index)
  589. for i,v in pairs(itemHolder:GetChildren()) do
  590. if v.Name ~= "dropdownItemHolder" then
  591. for i2,v2 in pairs(v:GetDescendants()) do
  592. if not v2:IsA("UIListLayout") or not v2:IsA("UIPadding") then
  593. v.ZIndex = index
  594. end
  595. end
  596. end
  597. end
  598. end
  599.  
  600. dropdownConnect.MouseEnter:Connect(function()
  601. dropdownStuff.TweenColor(dropdownConnect, {BackgroundColor3 = dropdownStuff.MouseEnterColor})
  602. end)
  603. dropdownConnect.MouseLeave:Connect(function()
  604. dropdownStuff.TweenColor(dropdownConnect, {BackgroundColor3 = dropdownStuff.MouseLeaveColor})
  605. end)
  606. dropdownConnect.MouseButton1Down:Connect(function()
  607. dropdownStuff.Ripple(rippleEffectHolder)
  608. if dropdownStuff.CurrentlyOpen then
  609. dropdownItemHolder:TweenSize(dropdownStuff.ClosedSize, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, .2, false, function()
  610. dropdownStuff.CurrentlyOpen = not dropdownStuff.CurrentlyOpen
  611. changeIndex(1)
  612. end)
  613. else
  614. changeIndex(-1)
  615. dropdownItemHolder:TweenSize(dropdownStuff.OpenSize, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, .2, false, function()
  616. dropdownStuff.CurrentlyOpen = not dropdownStuff.CurrentlyOpen
  617. end)
  618. end
  619. end)
  620.  
  621. for i,v in pairs(items) do
  622. local dropdownItem = Instance.new("TextButton")
  623.  
  624. dropdownItem.Name = "dropdownItem"
  625. dropdownItem.Parent = dropdownItemHolder
  626. dropdownItem.AnchorPoint = Vector2.new(0.5, 0.5)
  627. dropdownItem.BackgroundColor3 = Color3.fromRGB(159, 0, 147)
  628. dropdownItem.BorderSizePixel = 0
  629. dropdownItem.ClipsDescendants = true
  630. dropdownItem.Position = UDim2.new(0.503953516, 0, 0.5, 0)
  631. dropdownItem.Size = UDim2.new(0, 200, 0, 20)
  632. dropdownItem.AutoButtonColor = false
  633. dropdownItem.Font = Enum.Font.Code
  634. dropdownItem.Text = v
  635. dropdownItem.ZIndex = 10
  636. dropdownItem.TextColor3 = Color3.fromRGB(255, 255, 255)
  637. dropdownItem.TextSize = 16.000
  638. dropdownItem.MouseButton1Down:Connect(function()
  639. dropdownItemHolder:TweenSize(dropdownStuff.ClosedSize, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, .2, false, function()
  640. dropdownStuff.CurrentlyOpen = not dropdownStuff.CurrentlyOpen
  641. end)
  642. Callback(dropdownItem.Text)
  643. end)
  644. dropdownItem.MouseEnter:Connect(function()
  645. dropdownStuff.TweenColor(dropdownItem, {BackgroundColor3 = dropdownStuff.MouseEnterColor})
  646. end)
  647. dropdownItem.MouseLeave:Connect(function()
  648. dropdownStuff.TweenColor(dropdownItem, {BackgroundColor3 = dropdownStuff.MouseLeaveColor})
  649. end)
  650. end
  651.  
  652. for i,v in pairs(items) do
  653. if i == 1 then
  654. dropdownStuff.OpenSize = UDim2.new(dropdownItemHolder.Size.X.Scale, dropdownItemHolder.Size.X.Offset, dropdownItemHolder.Size.Y.Scale, dropdownItemHolder.Size.Y.Offset + dropdownStuff.AddAmmountFirst)
  655. end
  656. if i ~= 1 then
  657. dropdownStuff.OpenSize = UDim2.new(dropdownItemHolder.Size.X.Scale, dropdownItemHolder.Size.X.Offset, dropdownItemHolder.Size.Y.Scale, dropdownItemHolder.Size.Y.Offset + dropdownStuff.AddAmmountOthers)
  658. end
  659. dropdownItemHolder.Size = dropdownStuff.OpenSize
  660. end
  661. dropdownItemHolder.Size = UDim2.new(dropdownItemHolder.Size.X.Scale, dropdownItemHolder.Size.X.Offset, dropdownItemHolder.Size.Y.Scale, 0)
  662. end
  663.  
  664. return Items
  665. end
  666.  
  667. return Window
  668. end
  669.  
  670. return Library
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement