xKIMMOJIx

Solor lib

Mar 17th, 2022
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.50 KB | None | 0 0
  1. -- This User Interface Library is brought to you by Solaris Software.
  2. local Solaris = Instance.new("ScreenGui")
  3. Solaris.Name = tostring(math.random())
  4. Solaris.Parent = game.CoreGui
  5. Solaris.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  6.  
  7. local NotificationHolder = Instance.new("ScreenGui")
  8. NotificationHolder.Name = tostring(math.random())
  9. NotificationHolder.Parent = game.CoreGui
  10. NotificationHolder.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  11.  
  12. local UserInputService = game:GetService("UserInputService")
  13. local TweenService = game:GetService("TweenService")
  14. local RunService = game:GetService("RunService")
  15. local LocalPlayer = game:GetService("Players").LocalPlayer
  16. local Mouse = LocalPlayer:GetMouse()
  17. local http = game:GetService("HttpService")
  18.  
  19. local WhitelistedMouse = {Enum.UserInputType.MouseButton1, Enum.UserInputType.MouseButton2,Enum.UserInputType.MouseButton3}
  20. local BlacklistedKeys = {Enum.KeyCode.Unknown,Enum.KeyCode.W,Enum.KeyCode.A,Enum.KeyCode.S,Enum.KeyCode.D,Enum.KeyCode.Up,Enum.KeyCode.Left,Enum.KeyCode.Down,Enum.KeyCode.Right,Enum.KeyCode.Slash,Enum.KeyCode.Tab,Enum.KeyCode.Backspace,Enum.KeyCode.Escape}
  21.  
  22. local function CheckKey(tab, key)
  23. for i, v in next, tab do
  24. if v == key then
  25. return true
  26. end
  27. end
  28. end
  29.  
  30.  
  31.  
  32. local NotificationFrame = game:GetObjects("rbxassetid://6924028278")[1]
  33. NotificationFrame.ZIndex = 4
  34. NotificationFrame.Parent = NotificationHolder
  35. script = NotificationFrame.NotifScript
  36. local Notify = loadstring(NotificationFrame.NotifScript.Source)()
  37. script = oldScript
  38.  
  39. local SolarisLib = {
  40. Themes = {
  41. Default = {
  42. MainFrame = Color3.fromRGB(25, 25, 25),
  43. TopBar = Color3.fromRGB(30, 30, 30),
  44. TextColor = Color3.fromRGB(255,255,255),
  45. Menu = Color3.fromRGB(37, 37, 37),
  46. TabToggled = Color3.fromRGB(43,43,43),
  47. Button = Color3.fromRGB(30,30,30),
  48. ButtonHold = Color3.fromRGB(31,31,31),
  49. Toggle = Color3.fromRGB(30,30,30),
  50. ToggleFrame = Color3.fromRGB(55,55,55),
  51. ToggleToggled = Color3.fromRGB(22, 168, 76),
  52. Slider = Color3.fromRGB(30,30,30),
  53. SliderBar = Color3.fromRGB(25, 25, 25),
  54. SliderInc = Color3.fromRGB(60, 60, 60),
  55. Dropdown = Color3.fromRGB(30,30,30),
  56. DropdownItem = Color3.fromRGB(30,30,30),
  57. Textbox = Color3.fromRGB(30,30,30),
  58. TextboxFrame = Color3.fromRGB(25, 25, 25),
  59. Colorpicker = Color3.fromRGB(30,30,30),
  60. Label = Color3.fromRGB(30,30,30),
  61. Bind = Color3.fromRGB(30,30,30)
  62. },
  63. Discord = {
  64. MainFrame = Color3.fromRGB(54,57,63),
  65. TopBar = Color3.fromRGB(47,49,54),
  66. TextColor = Color3.fromRGB(255,255,255),
  67. Menu = Color3.fromRGB(47,49,54),
  68. TabToggled = Color3.fromRGB(54,57,63),
  69. Button = Color3.fromRGB(88,101,242),
  70. ButtonHold = Color3.fromRGB(71,82,196),
  71. Toggle = Color3.fromRGB(47,49,54),
  72. ToggleFrame = Color3.fromRGB(67,69,74),
  73. ToggleToggled = Color3.fromRGB(22, 168, 76),
  74. Slider = Color3.fromRGB(47,49,54),
  75. SliderBar = Color3.fromRGB(42,44,49),
  76. SliderInc = Color3.fromRGB(62,64,69),
  77. Dropdown = Color3.fromRGB(47,49,54),
  78. DropdownItem = Color3.fromRGB(47,49,54),
  79. Textbox = Color3.fromRGB(47,49,54),
  80. TextboxFrame = Color3.fromRGB(42,44,49),
  81. Colorpicker = Color3.fromRGB(47,49,54),
  82. Label = Color3.fromRGB(47,49,54),
  83. Bind = Color3.fromRGB(47,49,54)
  84. },
  85. Blue = {
  86. MainFrame = Color3.fromRGB(35, 35, 50),
  87. TopBar = Color3.fromRGB(40, 40, 55),
  88. TextColor = Color3.fromRGB(255,255,255),
  89. Menu = Color3.fromRGB(47, 47, 62),
  90. TabToggled = Color3.fromRGB(53,53,68),
  91. Button = Color3.fromRGB(40,40,55),
  92. ButtonHold = Color3.fromRGB(41,41,56),
  93. Toggle = Color3.fromRGB(40,40,55),
  94. ToggleFrame = Color3.fromRGB(65,65,80),
  95. ToggleToggled = Color3.fromRGB(64, 64, 120),
  96. Slider = Color3.fromRGB(40,40,55),
  97. SliderBar = Color3.fromRGB(35, 35, 50),
  98. SliderInc = Color3.fromRGB(70, 70, 85),
  99. Dropdown = Color3.fromRGB(40,40,55),
  100. DropdownItem = Color3.fromRGB(40,40,55),
  101. Textbox = Color3.fromRGB(40,40,55),
  102. TextboxFrame = Color3.fromRGB(35, 35, 50),
  103. Colorpicker = Color3.fromRGB(40,40,55),
  104. Label = Color3.fromRGB(40,40,55),
  105. Bind = Color3.fromRGB(40,40,55)
  106. },
  107. Red = {
  108. MainFrame = Color3.fromRGB(50, 35, 35),
  109. TopBar = Color3.fromRGB(55, 40, 40),
  110. TextColor = Color3.fromRGB(255,255,255),
  111. Menu = Color3.fromRGB(62, 47, 47),
  112. TabToggled = Color3.fromRGB(68,53,53),
  113. Button = Color3.fromRGB(55,40,40),
  114. ButtonHold = Color3.fromRGB(56,41,41),
  115. Toggle = Color3.fromRGB(55,40,40),
  116. ToggleFrame = Color3.fromRGB(80,65,65),
  117. ToggleToggled = Color3.fromRGB(120, 64, 64),
  118. Slider = Color3.fromRGB(55,40,40),
  119. SliderBar = Color3.fromRGB(50, 35, 35),
  120. SliderInc = Color3.fromRGB(85, 70, 70),
  121. Dropdown = Color3.fromRGB(55,40,40),
  122. DropdownItem = Color3.fromRGB(55,40,40),
  123. Textbox = Color3.fromRGB(55,40,40),
  124. TextboxFrame = Color3.fromRGB(50, 35, 35),
  125. Colorpicker = Color3.fromRGB(55,40,40),
  126. Label = Color3.fromRGB(55,40,40),
  127. Bind = Color3.fromRGB(55,40,40)
  128. },
  129. Green = {
  130. MainFrame = Color3.fromRGB(35, 50, 35),
  131. TopBar = Color3.fromRGB(40, 55, 40),
  132. TextColor = Color3.fromRGB(255,255,255),
  133. Menu = Color3.fromRGB(47, 62, 47),
  134. TabToggled = Color3.fromRGB(53,68,53),
  135. Button = Color3.fromRGB(40,55,40),
  136. ButtonHold = Color3.fromRGB(41,56,41),
  137. Toggle = Color3.fromRGB(40,55,40),
  138. ToggleFrame = Color3.fromRGB(65,80,65),
  139. ToggleToggled = Color3.fromRGB(64, 120, 64),
  140. Slider = Color3.fromRGB(40,55,40),
  141. SliderBar = Color3.fromRGB(35, 50, 35),
  142. SliderInc = Color3.fromRGB(70, 85, 70),
  143. Dropdown = Color3.fromRGB(40,55,40),
  144. DropdownItem = Color3.fromRGB(40,55,40),
  145. Textbox = Color3.fromRGB(40,55,40),
  146. TextboxFrame = Color3.fromRGB(35, 50, 35),
  147. Colorpicker = Color3.fromRGB(40,55,40),
  148. Label = Color3.fromRGB(40,55,40),
  149. Bind = Color3.fromRGB(40,55,40)
  150. }
  151. },
  152. Settings = {
  153. Theme = "Default",
  154. ShowFriendsOnLaunch = true,
  155. ShowMusicOnLaunch = false,
  156. CloseBind = "RightControl"
  157. },
  158. Flags = {},
  159. CurrentTab
  160. }
  161.  
  162.  
  163.  
  164. local MainUI = game:GetObjects("rbxassetid://7835727566")[1]
  165. print("SolarisLib Loaded!")
  166. local function MakeDraggable(topbarobject, object)
  167. pcall(function()
  168. local dragging, dragInput, mousePos, framePos = false
  169. topbarobject.InputBegan:Connect(function(input)
  170. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  171. dragging = true
  172. mousePos = input.Position
  173. framePos = object.Position
  174.  
  175. input.Changed:Connect(function()
  176. if input.UserInputState == Enum.UserInputState.End then
  177. dragging = false
  178. end
  179. end)
  180. end
  181. end)
  182. topbarobject.InputChanged:Connect(function(input)
  183. if input.UserInputType == Enum.UserInputType.MouseMovement then
  184. dragInput = input
  185. end
  186. end)
  187. UserInputService.InputChanged:Connect(function(input)
  188. if input == dragInput and dragging then
  189. local delta = input.Position - mousePos
  190. object.Position = UDim2.new(framePos.X.Scale, framePos.X.Offset + delta.X, framePos.Y.Scale, framePos.Y.Offset + delta.Y)
  191. end
  192. end)
  193. end)
  194. end
  195.  
  196.  
  197. function Ripple(Object)
  198. spawn(function()
  199. local Circle = Instance.new("ImageLabel")
  200. Circle.Parent = Object
  201. Circle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  202. Circle.BackgroundTransparency = 1.000
  203. Circle.ZIndex = 10
  204. Circle.Image = "rbxassetid://266543268"
  205. Circle.ImageColor3 = Color3.fromRGB(210,210,210)
  206. Circle.ImageTransparency = 0.8
  207. Circle.Position = UDim2.new(0, Mouse.X - Circle.AbsolutePosition.X, 0, Mouse.Y - Circle.AbsolutePosition.Y)
  208. local Size = Object.AbsoluteSize.X
  209. TweenService:Create(Circle, TweenInfo.new(0.5), {Position = UDim2.fromScale(math.clamp(Mouse.X - Object.AbsolutePosition.X, 0, Object.AbsoluteSize.X)/Object.AbsoluteSize.X,Object,math.clamp(Mouse.Y - Object.AbsolutePosition.Y, 0, Object.AbsoluteSize.Y)/Object.AbsoluteSize.Y) - UDim2.fromOffset(Size/2,Size/2), ImageTransparency = 1, Size = UDim2.fromOffset(Size,Size)}):Play()
  210. spawn(function()
  211. wait(0.5)
  212. Circle:Destroy()
  213. end)
  214. end)
  215. end
  216.  
  217. function SolarisLib:Notification(title, desc)
  218. Notify:New(title,desc)
  219. end
  220.  
  221. function SolarisLib:New(Config)
  222. if not isfolder(Config.FolderToSave) then
  223. makefolder(Config.FolderToSave)
  224. end
  225.  
  226. if not isfolder(Config.FolderToSave .. "/configs") then
  227. makefolder(Config.FolderToSave .. "/configs")
  228. end
  229.  
  230. if not isfile(Config.FolderToSave .. "/settings.txt") then
  231. local content = {}
  232. for i,v in pairs(SolarisLib.Settings) do
  233. content[i] = v
  234. end
  235. writefile(Config.FolderToSave .. "/settings.txt", tostring(http:JSONEncode(content)))
  236. end
  237. SolarisLib.Settings = http:JSONDecode(readfile(Config.FolderToSave .. "/settings.txt"))
  238.  
  239. local closebindbinding = false
  240. local fs = false
  241. local tabcount = 0
  242. local uitoggled = true
  243. local tabmenutoggled = false
  244. local TabPreset = game:GetObjects("rbxassetid://6958615840")[1]
  245. local SectionPreset = game:GetObjects("rbxassetid://7121846230")[1]
  246. local ContainerPreset = game:GetObjects("rbxassetid://7121886326")[1]
  247. local MFrame = MainUI.MainFrame
  248. MainUI.Parent = Solaris
  249. MFrame.TopBar.TopFrameTitle.Text = Config.Name
  250. MakeDraggable(MFrame.TopBar, MainUI)
  251. local oldScript = script
  252.  
  253. local MenuBtnPreset = game:GetObjects("rbxassetid://7037141226")[1]
  254.  
  255. local SettingsBtn = MenuBtnPreset:Clone()
  256. SettingsBtn.Parent = MFrame.TopBar.ButtonHolder.MenuBtn.MenuFrame
  257. SettingsBtn.Position = UDim2.new(0,0,0,5)
  258. SettingsBtn.Text = "Settings"
  259. SettingsBtn.MouseEnter:Connect(function() TweenService:Create(SettingsBtn,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0}):Play() end)
  260. SettingsBtn.MouseLeave:Connect(function() TweenService:Create(SettingsBtn,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0.4}):Play() end)
  261.  
  262. local MusicBtn = MenuBtnPreset:Clone()
  263. MusicBtn.Parent = MFrame.TopBar.ButtonHolder.MenuBtn.MenuFrame
  264. MusicBtn.Position = UDim2.new(0,0,0,25)
  265. MusicBtn.Text = "by EGO HUB"
  266. MusicBtn.MouseEnter:Connect(function() TweenService:Create(MusicBtn,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0}):Play() end)
  267. MusicBtn.MouseLeave:Connect(function() TweenService:Create(MusicBtn,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0.4}):Play() end)
  268.  
  269. function MusicConstructor()
  270. local abuttonhold = false
  271. local playing = false
  272. local MarketplaceService = game:GetService("MarketplaceService")
  273. local MusicFrame, MusicPreset = game:GetObjects("rbxassetid://7296373622")[1], game:GetObjects("rbxassetid://7296615234")[1]
  274. MusicFrame.Parent = Solaris
  275. MusicFrame.ZIndex = 5
  276. MusicFrame.Visible = SolarisLib.Settings.ShowMusicOnLaunch
  277. MusicFrame.Frame.Title.Text = "Not Playing"
  278. MusicFrame.Frame.Progress.ProgressFrame.Size = UDim2.new(0,0,1,0)
  279. MusicFrame.Frame.AddBtn.AutoButtonColor = false
  280.  
  281. MakeDraggable(MusicFrame.Frame.TopBar,MusicFrame)
  282. MusicFrame.Frame.TopBar.CloseBtn.MouseButton1Click:Connect(function()
  283. MusicFrame.Visible = false
  284. end)
  285. MusicFrame.Frame.TopBar.CloseBtn.MouseEnter:Connect(function() TweenService:Create(MusicFrame.Frame.TopBar.CloseBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0}):Play() end)
  286. MusicFrame.Frame.TopBar.CloseBtn.MouseLeave:Connect(function() TweenService:Create(MusicFrame.Frame.TopBar.CloseBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0.4}):Play() end)
  287.  
  288. local Sound = Instance.new("Sound")
  289. Sound.Name = "Sound"
  290. Sound.Parent = MusicFrame
  291. Sound.Volume = 3
  292. Sound:Stop()
  293.  
  294. local Sounds = {}
  295. if not isfile(Config.FolderToSave .. "/music.txt") then writefile(Config.FolderToSave .. "/music.txt", tostring(http:JSONEncode({}))) end
  296. Sounds = http:JSONDecode(readfile(Config.FolderToSave .. "/music.txt"))
  297.  
  298. function Save()
  299. local content = {}
  300. for i,v in pairs(Sounds) do
  301. content[i] = v
  302. end
  303. writefile(Config.FolderToSave .. "/music.txt", tostring(http:JSONEncode(content)))
  304. end
  305.  
  306. local function PlaySong(id, title)
  307. Sound:Stop()
  308. playing = true
  309. Sound.SoundId = "rbxassetid://" .. id
  310. Sound:Resume()
  311. MusicFrame.Frame.Play.Image = "http://www.roblox.com/asset/?id=6026663719"
  312. MusicFrame.Frame.Title.Text = title
  313. end
  314.  
  315. local function RefreshList(list)
  316. for i,v in next, MusicFrame.Frame.MusicList.Scroll:GetChildren() do
  317. if v.Name == "Btn" then
  318. v:Destroy()
  319. end
  320. end
  321. for i,v in next, list do
  322. local success, info = pcall(MarketplaceService.GetProductInfo, MarketplaceService, v)
  323. if success and info.AssetTypeId == 3 then
  324. local Btn = MusicPreset:Clone()
  325. Btn.Parent = MusicFrame.Frame.MusicList.Scroll
  326. Btn.Title.Text = info.Name
  327.  
  328. Btn.MouseButton1Click:Connect(function()
  329. PlaySong(v, info.Name)
  330. end)
  331.  
  332. Btn.Delete.MouseButton1Click:Connect(function()
  333. for g,c in next, Sounds do
  334. if c == v then
  335. table.remove(Sounds, g)
  336. end
  337. end
  338. Save()
  339. Btn:Destroy()
  340. end)
  341. end
  342. end
  343. end
  344.  
  345. MusicFrame.Frame.Play.MouseButton1Click:Connect(function()
  346. playing = not playing
  347. if playing then Sound:Pause() else Sound:Resume() end
  348. MusicFrame.Frame.Play.Image = playing and "http://www.roblox.com/asset/?id=6026663699" or "http://www.roblox.com/asset/?id=6026663719"
  349. end)
  350.  
  351. MusicFrame.Frame.AddBtn.MouseButton1Click:Connect(function()
  352. local id = MusicFrame.Frame.AddSong.Text
  353. if not table.find(Sounds, id) then
  354. table.insert(Sounds, id)
  355. Save()
  356. RefreshList(Sounds)
  357. end
  358. end)
  359.  
  360. MusicFrame.Frame.AddBtn.MouseEnter:Connect(function()
  361. abuttonhold = true
  362. end)
  363.  
  364. MusicFrame.Frame.AddBtn.MouseLeave:Connect(function()
  365. abuttonhold = false
  366. end)
  367.  
  368. RefreshList(Sounds)
  369.  
  370. game:GetService("RunService").RenderStepped:Connect(function()
  371. local time = math.floor(Sound.TimePosition)
  372. local timesecs = time % 60
  373. local timemins = math.floor(time / 60)
  374. if string.len(timesecs) < 2 then timesecs = "0" .. timesecs end
  375. if string.len(timemins) < 2 then timemins = "0" .. timemins end
  376. local timemax = math.floor(Sound.TimeLength)
  377. local timemaxsecs = timemax % 60
  378. local timemaxmins = math.floor(timemax / 60)
  379. if string.len(timemaxsecs) < 2 then timemaxsecs = "0" .. timemaxsecs end
  380. if string.len(timemaxmins) < 2 then timemaxmins = "0" .. timemaxmins end
  381. MusicFrame.Frame.Timer1.Text = timemins .. ":" .. timesecs
  382. MusicFrame.Frame.Timer2.Text = timemaxmins .. ":" .. timemaxsecs
  383. MusicFrame.Frame.Progress.ProgressFrame.Size = UDim2.new(Sound.TimePosition / Sound.TimeLength,0,1,0)
  384. end)
  385.  
  386.  
  387. spawn(function()
  388. while wait() do
  389. MusicFrame.Frame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].MainFrame
  390. MusicFrame.Frame.TopBar.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  391. MusicFrame.Frame.TopBar.CloseBtn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  392. MusicFrame.Frame.MusicList.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  393. MusicFrame.Frame.AddBtn.BackgroundColor3 = abuttonhold and SolarisLib.Themes[SolarisLib.Settings.Theme].ButtonHold or SolarisLib.Themes[SolarisLib.Settings.Theme].Button
  394. MusicFrame.Frame.Progress.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Slider
  395. MusicFrame.Frame.Progress.ProgressFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].SliderInc
  396. MusicFrame.Frame.AddSong.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Textbox
  397. end
  398. end)
  399. end
  400.  
  401. function SettingsConstructor()
  402. local Settings, SettingsFrame, TabPreset, ContainerPreset, TogglePreset, BindPreset, DropdownPreset, OptionPreset = {}, game:GetObjects("rbxassetid://7167491516")[1], game:GetObjects("rbxassetid://7177524915")[1], game:GetObjects("rbxassetid://7203599409")[1], game:GetObjects("rbxassetid://7208643984")[1], game:GetObjects("rbxassetid://7219277948")[1], game:GetObjects("rbxassetid://7435055269")[1], game:GetObjects("rbxassetid://7435032496")[1]
  403. local fs = true
  404. local SFrame = SettingsFrame.Main
  405. SettingsFrame.Parent = MFrame
  406. SFrame.TopBar.CloseBtn.MouseEnter:Connect(function() TweenService:Create(SFrame.TopBar.CloseBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0}):Play() end)
  407. SFrame.TopBar.CloseBtn.MouseLeave:Connect(function() TweenService:Create(SFrame.TopBar.CloseBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0.4}):Play() end)
  408. SettingsBtn.MouseButton1Click:Connect(function()
  409. SettingsFrame.Visible = not SettingsFrame.Visible
  410. MFrame.TopBar.ButtonHolder.MenuBtn.MenuFrame.Visible = false
  411. end)
  412. SFrame.TopBar.CloseBtn.MouseButton1Click:Connect(function()
  413. SettingsFrame.Visible = false
  414. end)
  415.  
  416. function SaveSettings()
  417. local content = {}
  418. for i,v in pairs(SolarisLib.Settings) do
  419. content[i] = v
  420. end
  421. writefile(Config.FolderToSave .. "/settings.txt", tostring(http:JSONEncode(content)))
  422. end
  423.  
  424.  
  425. spawn(function()
  426. while wait() do
  427. SFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].MainFrame
  428. SFrame.TopBar.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  429. SFrame.TopBar.CloseBtn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  430. SFrame.TopBar.TopFrameTitle.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  431. SFrame.TabHolder.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  432.  
  433. end
  434. end)
  435.  
  436. function Settings:Tab(text)
  437. local Tab = TabPreset:Clone()
  438. local Container = ContainerPreset:Clone()
  439. Tab.Parent = SFrame.TabHolder
  440. Tab.Text = text
  441. Tab.Size = UDim2.new(0,Tab.TextBounds.X,1,0)
  442. Container.Parent = SFrame.ContainerFolder
  443. Container.Visible = false
  444.  
  445. if fs then
  446. Tab.TextTransparency = 0
  447. Container.Visible = true
  448. fs = false
  449. end
  450.  
  451. Tab.MouseButton1Click:Connect(function()
  452. for i,v in next, SFrame.TabHolder:GetChildren() do
  453. if v.Name == "Tab" then
  454. v.TextTransparency = 0.4
  455. end
  456. end
  457. for i,v in next, SFrame.ContainerFolder:GetChildren() do
  458. if v.Name == "Container" then
  459. v.Visible = false
  460. end
  461. end
  462. Tab.TextTransparency = 0
  463. Container.Visible = true
  464. end)
  465. local TabHold = {}
  466. function TabHold:ToggleSetting(title, desc, def, path)
  467. local value = SolarisLib.Settings[path] or def
  468. local Toggle = TogglePreset:Clone()
  469. Toggle.Parent = Container
  470. Toggle.Title.Text = title
  471. Toggle.Desc.Text = desc
  472.  
  473. local function Tween(val)
  474. TweenService:Create(Toggle.ToggleFrame.ToggleToggled.ToggleIco,TweenInfo.new(.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency= val and 0 or 1}):Play()
  475. TweenService:Create(Toggle.ToggleFrame.ToggleToggled.ToggleIco,TweenInfo.new(.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size= val and UDim2.new(1,-2,1,-2) or UDim2.new(1,-6,1,-6)}):Play()
  476. end
  477.  
  478. local function SetValue(val)
  479. Tween(val)
  480. SolarisLib.Settings[path] = val
  481. value = val
  482. SaveSettings()
  483. end
  484.  
  485. Tween(value)
  486.  
  487. Toggle.MouseButton1Click:Connect(function()
  488. SetValue(not value)
  489. end)
  490.  
  491. spawn(function()
  492. while wait() do
  493. Toggle.ToggleFrame.ToggleToggled.BackgroundColor3 = value and SolarisLib.Themes[SolarisLib.Settings.Theme].ToggleToggled or SolarisLib.Themes[SolarisLib.Settings.Theme].MainFrame
  494. Toggle.ToggleFrame.BackgroundColor3 = value and SolarisLib.Themes[SolarisLib.Settings.Theme].ToggleToggled or SolarisLib.Themes[SolarisLib.Settings.Theme].ToggleFrame
  495. Toggle.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  496. end
  497. end)
  498. end
  499. function TabHold:BindSetting(title, desc, def, path)
  500. local value = SolarisLib.Settings[path] or def
  501. local Bind = BindPreset:Clone()
  502. Bind.Parent = Container
  503. Bind.Title.Text = title
  504. Bind.Desc.Text = desc
  505.  
  506. function SetValue(val)
  507. closebindbinding = false
  508. value = val or value
  509. value = value.Name or value
  510. Bind.BText.Text = value
  511. SolarisLib.Settings[path] = value
  512. SaveSettings()
  513. end
  514. SetValue(value)
  515.  
  516. Bind.InputEnded:Connect(function(Input)
  517. if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  518. if closebindbinding then return end
  519. closebindbinding = true
  520. Bind.BText.Text = "..."
  521. end
  522. end)
  523.  
  524. UserInputService.InputBegan:Connect(function(Input)
  525. if UserInputService:GetFocusedTextBox() then return end
  526. if closebindbinding then
  527. local Key
  528. pcall(function()
  529. if not CheckKey(BlacklistedKeys, Input.KeyCode) then
  530. Key = Input.KeyCode
  531. end
  532. end)
  533. pcall(function()
  534. if CheckKey(WhitelistedMouse, Input.UserInputType) and not Key then
  535. Key = Input.UserInputType
  536. end
  537. end)
  538. Key = Key or value
  539. SetValue(Key)
  540. end
  541. end)
  542.  
  543. spawn(function()
  544. while wait() do
  545. Bind.Desc.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  546. Bind.BText.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  547. Bind.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  548. end
  549. end)
  550.  
  551. end
  552. function TabHold:Dropdown(title, desc, list, def, path)
  553. local opened = false
  554. local value = SolarisLib.Settings[path] or def
  555. local Dropdown = DropdownPreset:Clone()
  556. Dropdown.Parent = Container
  557. Dropdown.Title.Text = title
  558. Dropdown.Desc.Text = desc
  559. Dropdown.Main.Current.Text = value
  560.  
  561. function Toggle()
  562. Dropdown.Main.Holder.Visible = opened
  563. Dropdown.Main.Holder.Size = opened and UDim2.new(1,0,0,Dropdown.Main.Holder.UIListLayout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,0)
  564. if opened then
  565. if (Dropdown.Main.Holder.UIListLayout.AbsoluteContentSize.Y + Container.UIListLayout.AbsoluteContentSize.Y) > 190 then
  566. Container.CanvasSize = UDim2.new(0,0,0,Dropdown.Main.Holder.UIListLayout.AbsoluteContentSize.Y + Container.UIListLayout.AbsoluteContentSize.Y)
  567. end
  568. else
  569. Container.CanvasSize = UDim2.new(0,0,0,Container.UIListLayout.AbsoluteContentSize.Y)
  570. end
  571. TweenService:Create(Dropdown.Main.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Rotation = opened and 180 or 0}):Play()
  572. end
  573.  
  574. Dropdown.InputEnded:Connect(function(Input)
  575. if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  576. opened = not opened
  577. Toggle()
  578. end
  579. end)
  580.  
  581. local function AddOptions(opts)
  582. for _,option in pairs(opts) do
  583. local Option = OptionPreset:Clone()
  584. Option.Parent = Dropdown.Main.Holder
  585. Option.Text = option
  586.  
  587. Option.MouseButton1Click:Connect(function()
  588. value = option
  589. SolarisLib.Settings[path] = value
  590. Dropdown.Main.Current.Text = value
  591. SaveSettings()
  592. end)
  593.  
  594. spawn(function()
  595. while wait() do
  596. Option.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  597. end
  598. end)
  599. end
  600. end
  601.  
  602. spawn(function()
  603. while wait() do
  604. Dropdown.Main.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  605. Dropdown.Main.Holder.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  606. end
  607. end)
  608. AddOptions(list)
  609. end
  610. return TabHold
  611. end
  612.  
  613. local general = Settings:Tab("General")
  614. general:BindSetting("Close Bind", "Hides/Shows the main window when pressed.", Enum.KeyCode.RightControl, "CloseBind")
  615.  
  616. local appearance = Settings:Tab("Appearance")
  617. appearance:Dropdown("Theme", "The look of the user interface", {"Default", "Discord", "Red", "Green", "Blue"}, "Default", "Theme")
  618.  
  619. end
  620. MusicConstructor()
  621. SettingsConstructor()
  622.  
  623. local function OpenTabMenu()
  624. TweenService:Create(MFrame.TabMenu,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Position = UDim2.new(0,0,0,0)}):Play()
  625. end
  626.  
  627. local function CloseTabMenu()
  628. TweenService:Create(MFrame.TabMenu,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Position = UDim2.new(-0.37, -8, 0, 0)}):Play()
  629. end
  630.  
  631. MFrame.TopBar.TabListBtn.MouseButton1Click:Connect(function()
  632. OpenTabMenu()
  633. end)
  634.  
  635. MFrame.TabMenu.Menu.Top.MenuCloseBtn.MouseButton1Click:Connect(function()
  636. CloseTabMenu()
  637. end)
  638.  
  639. MFrame.TopBar.ButtonHolder.SearchBtn.MouseButton1Click:Connect(function()
  640. MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.Visible = not MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.Visible
  641. MFrame.TopBar.TopFrameTitle.Visible = not MFrame.TopBar.TopFrameTitle.Visible
  642. end)
  643.  
  644. MFrame.TopBar.ButtonHolder.CloseBtn.MouseEnter:Connect(function() TweenService:Create(MFrame.TopBar.ButtonHolder.CloseBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0}):Play() end)
  645. MFrame.TopBar.ButtonHolder.CloseBtn.MouseLeave:Connect(function() TweenService:Create(MFrame.TopBar.ButtonHolder.CloseBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0.4}):Play() end)
  646. MFrame.TopBar.ButtonHolder.SearchBtn.MouseEnter:Connect(function() TweenService:Create(MFrame.TopBar.ButtonHolder.SearchBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0}):Play() end)
  647. MFrame.TopBar.ButtonHolder.SearchBtn.MouseLeave:Connect(function() TweenService:Create(MFrame.TopBar.ButtonHolder.SearchBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0.4}):Play() end)
  648. MFrame.TopBar.ButtonHolder.MenuBtn.MouseEnter:Connect(function() TweenService:Create(MFrame.TopBar.ButtonHolder.MenuBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0}):Play() end)
  649. MFrame.TopBar.ButtonHolder.MenuBtn.MouseLeave:Connect(function() TweenService:Create(MFrame.TopBar.ButtonHolder.MenuBtn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0.4}):Play() end)
  650. MFrame.TopBar.TabListBtn.MouseEnter:Connect(function() TweenService:Create(MFrame.TopBar.TabListBtn,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0}):Play() end)
  651. MFrame.TopBar.TabListBtn.MouseLeave:Connect(function() TweenService:Create(MFrame.TopBar.TabListBtn,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency = 0.4}):Play() end)
  652. MFrame.TopBar.ButtonHolder.MenuBtn.MouseButton1Click:Connect(function() MFrame.TopBar.ButtonHolder.MenuBtn.MenuFrame.Visible = not MFrame.TopBar.ButtonHolder.MenuBtn.MenuFrame.Visible end)
  653.  
  654. MFrame.TopBar.ButtonHolder.CloseBtn.MouseButton1Click:Connect(function()
  655. uitoggled = not uitoggled
  656. MainUI.Visible = uitoggled
  657. end)
  658.  
  659.  
  660. function SearchConstructor()
  661. function StitchElements()
  662. local elms = {}
  663. for i,v in next, SolarisLib.CurrentTab:GetDescendants() do
  664. if string.find(v.Name, "element") then
  665. table.insert(elms, v)
  666. end
  667. end
  668. return elms
  669. end
  670.  
  671. MFrame.TopBar.ButtonHolder.SearchBtn.TextBox:GetPropertyChangedSignal("Text"):Connect(function()
  672. for i,v in pairs(StitchElements()) do
  673. if string.len(MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.Text) >= 1 then
  674. if string.find(string.sub(v.Name:lower(),0,-8), MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.Text:lower()) then
  675. v.Visible = true
  676. else
  677. v.Visible = false
  678. end
  679. else
  680. v.Visible = true
  681. end
  682. end
  683. end)
  684. end
  685.  
  686. SearchConstructor()
  687.  
  688.  
  689. UserInputService.InputBegan:Connect(function(Input)
  690. if (Input.KeyCode.Name == SolarisLib.Settings.CloseBind or Input.UserInputType.Name == SolarisLib.Settings.CloseBind) and not closebindbinding then
  691. uitoggled = not uitoggled
  692. MainUI.Visible = uitoggled
  693. end
  694. end)
  695.  
  696. spawn(function()
  697. while wait() do
  698. MFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].MainFrame
  699. MFrame.TopBar.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  700. MFrame.TopBar.ButtonHolder.CloseBtn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  701. MFrame.TopBar.ButtonHolder.MenuBtn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  702. MFrame.TopBar.ButtonHolder.SearchBtn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  703. MFrame.TopBar.TabListBtn.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  704. MFrame.TopBar.TopFrameTitle.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  705. MFrame.TabMenu.Menu.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Menu
  706. MFrame.TabMenu.Menu.Top.MenuCloseBtn.ImageLabel.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  707. MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].MainFrame
  708. MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  709. MFrame.TopBar.ButtonHolder.SearchBtn.TextBox.PlaceholderColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  710. MFrame.TopBar.ButtonHolder.MenuBtn.MenuFrame.Frame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TopBar
  711. end
  712. end)
  713.  
  714. function SolarisLib:LoadCfg(cfg)
  715. local content = http:JSONDecode(cfg)
  716. table.foreach(content, function(a,b)
  717. if SolarisLib.Flags[a] then
  718. spawn(function() SolarisLib.Flags[a]:Set(b) end)
  719. else
  720. warn("cfg loader - could not find", a ,b )
  721. end
  722. end)
  723. end
  724.  
  725. function SolarisLib:SaveCfg(name)
  726. local content = {}
  727. for i,v in pairs(SolarisLib.Flags) do
  728. content[i] = v.Value
  729. end
  730. writefile(Config.FolderToSave .. "/configs/" .. name .. ".txt", tostring(http:JSONEncode(content)))
  731. end
  732.  
  733.  
  734. local TabHolder = {}
  735. function TabHolder:Tab(text)
  736. local Tab = TabPreset:Clone()
  737. Tab.AutoButtonColor = false
  738. Tab.Parent = MFrame.TabMenu.Menu.Holder
  739. Tab.Text = text
  740. Tab.TextSize = 14
  741.  
  742.  
  743. local Container = ContainerPreset:Clone()
  744. Container.Parent = MFrame.ContainerFolder
  745. Container.Visible = false
  746.  
  747. if fs == false then
  748. fs = true
  749. Container.Visible = true
  750. Tab.UIPadding.PaddingLeft = UDim.new(0,10)
  751. Tab.TextTransparency = 0
  752. Tab.BackgroundTransparency = 0
  753. SolarisLib.CurrentTab = Container
  754. end
  755.  
  756. spawn(function()
  757. while wait() do
  758. Tab.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  759. Tab.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TabToggled
  760. Container.CanvasSize = UDim2.new(0,0,0,Container.UIListLayout.AbsoluteContentSize.Y + 26)
  761. end
  762. end)
  763.  
  764.  
  765.  
  766. Tab.MouseButton1Click:Connect(function()
  767. for i,v in next, MFrame.TabMenu.Menu.Holder:GetChildren() do
  768. if v:IsA("TextButton") then
  769. TweenService:Create(v,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0.4}):Play()
  770. TweenService:Create(v,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  771. TweenService:Create(v.UIPadding,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{PaddingLeft = UDim.new(0,5)}):Play()
  772. end
  773. TweenService:Create(Tab,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  774. TweenService:Create(Tab,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  775. TweenService:Create(Tab.UIPadding,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{PaddingLeft = UDim.new(0,10)}):Play()
  776. end
  777. for i,v in next, MFrame.ContainerFolder:GetChildren() do
  778. if v.Name == "Container" then
  779. v.Visible = false
  780. end
  781. Container.Visible = true
  782. end
  783. tabtoggledname = Tab.Name
  784. CloseTabMenu()
  785. end)
  786.  
  787.  
  788. local SectionHold = {}
  789. function SectionHold:Section(text)
  790. local Section = SectionPreset:Clone()
  791. Section.Parent = Container
  792. Section.SectionTitle.Text = text
  793.  
  794. spawn(function()
  795. while wait() do
  796. Section.SectionTitle.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  797. Section.Size = UDim2.new(0.9,0,0,Section.UIListLayout.AbsoluteContentSize.Y)
  798. end
  799. end)
  800. local ItemHold = {}
  801. function ItemHold:Button(text,callback)
  802. local Holding = false
  803. local Button = game:GetObjects("rbxassetid://6937142338")[1]
  804. Button.Parent = Section
  805. Button.Name = text .. "element"
  806. Button.ButtonText.Text = text
  807. Button.ClipsDescendants = true
  808.  
  809. Button.MouseButton1Click:Connect(function()
  810. callback()
  811. Ripple(Button)
  812. end)
  813. Button.MouseEnter:Connect(function()
  814. Holding = true
  815. end)
  816. Button.MouseLeave:Connect(function()
  817. Holding = false
  818. end)
  819.  
  820. spawn(function()
  821. while wait() do
  822. Button.BackgroundColor3 = Holding and SolarisLib.Themes[SolarisLib.Settings.Theme].ButtonHold or SolarisLib.Themes[SolarisLib.Settings.Theme].Button
  823. Button.ButtonText.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  824. end
  825. end)
  826.  
  827. end
  828. function ItemHold:Toggle(text,def,flag,callback)
  829. local Toggle,ToggleMain = {Value = false}, game:GetObjects("rbxassetid://6963155498")[1]
  830. ToggleMain.Parent = Section
  831. ToggleMain.ToggleText.Text = text
  832. ToggleMain.Name = text .. "element"
  833.  
  834. function Toggle:Set(value)
  835. Toggle.Value = value
  836. TweenService:Create(ToggleMain.ToggleFrame.ToggleToggled.ToggleIco,TweenInfo.new(.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{ImageTransparency= Toggle.Value and 0 or 1}):Play()
  837. TweenService:Create(ToggleMain.ToggleFrame.ToggleToggled.ToggleIco,TweenInfo.new(.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size= Toggle.Value and UDim2.new(1,-2,1,-2) or UDim2.new(1,-6,1,-6)}):Play()
  838. return callback(Toggle.Value)
  839. end
  840.  
  841. ToggleMain.MouseButton1Click:Connect(function()
  842. Toggle.Value = not Toggle.Value
  843. Toggle:Set(Toggle.Value)
  844. end)
  845.  
  846. spawn(function()
  847. while wait() do
  848. ToggleMain.ToggleFrame.ToggleToggled.BackgroundColor3 = Toggle.Value and SolarisLib.Themes[SolarisLib.Settings.Theme].ToggleToggled or SolarisLib.Themes[SolarisLib.Settings.Theme].Toggle
  849. ToggleMain.ToggleFrame.BackgroundColor3 = Toggle.Value and SolarisLib.Themes[SolarisLib.Settings.Theme].ToggleToggled or SolarisLib.Themes[SolarisLib.Settings.Theme].ToggleFrame
  850. ToggleMain.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Toggle
  851. ToggleMain.ToggleText.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  852. end
  853. end)
  854.  
  855. Toggle:Set(def)
  856. SolarisLib.Flags[flag] = Toggle
  857. return Toggle
  858. end
  859. function ItemHold:Slider(text,min,max,start,inc,flag,callback)
  860. local Slider,SliderMain = {Value = start}, game:GetObjects("rbxassetid://6967573727")[1]
  861. SliderMain.Parent = Section
  862. SliderMain.SliderText.Text = text
  863. SliderMain.Name = text .. "element"
  864. local dragging = false
  865.  
  866. local function move(Input)
  867. local XSize = math.clamp((Input.Position.X - SliderMain.SliderFrame.AbsolutePosition.X) / SliderMain.SliderFrame.AbsoluteSize.X, 0, 1)
  868. local Increment = inc and (max / ((max - min) / (inc * 4))) or (max >= 50 and max / ((max - min) / 4)) or (max >= 25 and max / ((max - min) / 2)) or (max / (max - min))
  869. local SizeRounded = UDim2.new((math.round(XSize * ((max / Increment) * 4)) / ((max / Increment) * 4)), 0, 1, 0)
  870. TweenService:Create(SliderMain.SliderFrame.SliderCurrentFrame,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = SizeRounded}):Play()
  871. local Val = math.round((((SizeRounded.X.Scale * max) / max) * (max - min) + min) * 20) / 20
  872. SliderMain.SliderVal.Text = tostring(Val)
  873. Slider.Value = Val
  874. callback(Slider.Value)
  875. end
  876. SliderMain.SliderFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end)
  877. SliderMain.SliderFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end)
  878. game:GetService("UserInputService").InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then move(input) end end)
  879.  
  880. function Slider:Set(val)
  881. local a = tostring(val and (val / max) * (max - min) + min) or 0
  882. SliderMain.SliderVal.Text = tostring(a)
  883. SliderMain.SliderFrame.SliderCurrentFrame.Size = UDim2.new((val or 0) / max, 0, 1, 0)
  884. Slider.Value = val
  885. return callback(Slider.Value)
  886. end
  887.  
  888. spawn(function()
  889. while wait() do
  890. SliderMain.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Slider
  891. SliderMain.SliderFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].SliderBar
  892. SliderMain.SliderFrame.SliderCurrentFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].SliderInc
  893. SliderMain.SliderText.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  894. SliderMain.SliderVal.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  895. end
  896. end)
  897.  
  898.  
  899. Slider:Set(start)
  900. SolarisLib.Flags[flag] = Slider
  901. return Slider
  902. end
  903. function ItemHold:Dropdown(text,list,def,flag,callback)
  904. local Dropdown,DropMain,OptionPreset = {Value = nil, Toggled = false, Options = list}, game:GetObjects("rbxassetid://7027964359")[1], game:GetObjects("rbxassetid://7021432326")[1]
  905. DropMain.Parent = Section
  906. DropMain.Btn.Title.Text = text
  907. DropMain.Name = text .. "element"
  908.  
  909.  
  910. local function ToggleDrop()
  911. Dropdown.Toggled = not Dropdown.Toggled
  912. DropMain.Holder.Size = Dropdown.Toggled and UDim2.new(1,0,0,6+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,0)
  913. TweenService:Create(DropMain,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = Dropdown.Toggled and UDim2.new(1,0,0,38+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,32)}):Play()
  914. TweenService:Create(DropMain.Btn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Rotation = Dropdown.Toggled and 180 or 0}):Play()
  915. DropMain.Holder.Visible = Dropdown.Toggled
  916. end
  917.  
  918. local function AddOptions(opts)
  919. for _,option in pairs(opts) do
  920. local Option = OptionPreset:Clone()
  921. Option.Parent = DropMain.Holder
  922. Option.ItemText.Text = option
  923. Option.ClipsDescendants = true
  924.  
  925. Option.MouseButton1Click:Connect(function()
  926. Dropdown.Value = option
  927. DropMain.Btn.Title.Text = text .. " - " .. option
  928. Ripple(Option)
  929. return callback(Dropdown.Value)
  930. end)
  931.  
  932. spawn(function()
  933. while wait() do
  934. Option.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].DropdownItem
  935. DropMain.Btn.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  936. end
  937. end)
  938. end
  939. end
  940.  
  941. function Dropdown:Refresh(opts,del)
  942. if del then
  943. for _,v in pairs(DropMain.Holder:GetChildren()) do
  944. if v:IsA"TextButton" then
  945. v:Destroy()
  946. DropMain.Holder.Size = Dropdown.Toggled and UDim2.new(1,0,0,6+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,0)
  947. DropMain.Size = Dropdown.Toggled and UDim2.new(1,0,0,38+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,32)
  948. end
  949. end
  950. end
  951. AddOptions(opts)
  952. end
  953.  
  954.  
  955. DropMain.Btn.MouseButton1Click:Connect(function()
  956. ToggleDrop()
  957. end)
  958.  
  959. function Dropdown:Set(val)
  960. Dropdown.Value = val
  961. DropMain.Btn.Title.Text = text .. " - " .. val
  962. return callback(Dropdown.Value)
  963. end
  964.  
  965. spawn(function()
  966. while wait() do
  967. DropMain.Btn.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Dropdown
  968. DropMain.Btn.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  969. DropMain.Btn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  970. end
  971. end)
  972.  
  973. Dropdown:Refresh(list,false)
  974. Dropdown:Set(def)
  975. SolarisLib.Flags[flag] = Dropdown
  976. return Dropdown
  977. end
  978. function ItemHold:MultiDropdown(text,list,def,flag,callback)
  979. local Dropdown,DropMain,OptionPreset = {Value = {}, Toggled = false, Options = list}, game:GetObjects("rbxassetid://7027964359")[1], game:GetObjects("rbxassetid://7021432326")[1]
  980. DropMain.Parent = Section
  981. DropMain.Btn.Title.Text = text
  982. DropMain.Name = text .. "element"
  983.  
  984.  
  985. local function ToggleDrop()
  986. Dropdown.Toggled = not Dropdown.Toggled
  987. DropMain.Holder.Size = Dropdown.Toggled and UDim2.new(1,0,0,6+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,0)
  988. TweenService:Create(DropMain,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = Dropdown.Toggled and UDim2.new(1,0,0,38+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,32)}):Play()
  989. TweenService:Create(DropMain.Btn.Ico,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Rotation = Dropdown.Toggled and 180 or 0}):Play()
  990. DropMain.Holder.Visible = Dropdown.Toggled
  991. end
  992.  
  993. local function AddOptions(opts)
  994. for _,option in pairs(opts) do
  995. local Option = OptionPreset:Clone()
  996. Option.Parent = DropMain.Holder
  997. Option.ItemText.Text = option
  998. Option.ClipsDescendants = true
  999.  
  1000. Option.MouseButton1Click:Connect(function()
  1001. if table.find(Dropdown.Value, option) then
  1002. table.remove(Dropdown.Value, table.find(Dropdown.Value, option))
  1003. DropMain.Btn.Title.Text = text .. " - " .. table.concat(Dropdown.Value, ", ")
  1004. callback(Dropdown.Value)
  1005. else
  1006. table.insert(Dropdown.Value, option)
  1007. DropMain.Btn.Title.Text = text .. " - " .. table.concat(Dropdown.Value, ", ")
  1008. callback(Dropdown.Value)
  1009. end
  1010. Ripple(Option)
  1011. end)
  1012.  
  1013. spawn(function()
  1014. while wait() do
  1015. Option.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].DropdownItem
  1016. DropMain.Btn.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1017. end
  1018. end)
  1019. end
  1020. end
  1021.  
  1022. function Dropdown:Refresh(opts,del)
  1023. if del then
  1024. for _,v in pairs(DropMain.Holder:GetChildren()) do
  1025. if v:IsA"TextButton" then
  1026. v:Destroy()
  1027. DropMain.Holder.Size = Dropdown.Toggled and UDim2.new(1,0,0,6+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,0)
  1028. DropMain.Size = Dropdown.Toggled and UDim2.new(1,0,0,38+DropMain.Holder.Layout.AbsoluteContentSize.Y) or UDim2.new(1,0,0,32)
  1029. end
  1030. end
  1031. end
  1032. AddOptions(opts)
  1033. end
  1034.  
  1035.  
  1036. DropMain.Btn.MouseButton1Click:Connect(function()
  1037. ToggleDrop()
  1038. end)
  1039.  
  1040. function Dropdown:Set(val)
  1041. Dropdown.Value = val
  1042. DropMain.Btn.Title.Text = text .. " - " .. table.concat(Dropdown.Value, ", ")
  1043. return callback(Dropdown.Value)
  1044. end
  1045.  
  1046. spawn(function()
  1047. while wait() do
  1048. DropMain.Btn.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Dropdown
  1049. DropMain.Btn.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1050. DropMain.Btn.Ico.ImageColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1051. end
  1052. end)
  1053.  
  1054. Dropdown:Refresh(list,false)
  1055. Dropdown:Set(def)
  1056. SolarisLib.Flags[flag] = Dropdown
  1057. return Dropdown
  1058. end
  1059. function ItemHold:Colorpicker(text,preset,flag,callback)
  1060. local ColorH, ColorS, ColorV = 1, 1, 1
  1061. local ColorPicker, ColorPreset, DragPreset = {Value = preset, Toggled = false}, game:GetObjects("rbxassetid://7329998014")[1]
  1062. ColorPreset.Hue.Visible, ColorPreset.Color.Visible = ColorPicker.Toggled, ColorPicker.Toggled
  1063. ColorPreset.Parent = Section
  1064. ColorPreset.Btn.Colorpicker.Text = text
  1065. ColorPreset.Name = text .. "element"
  1066. ColorPreset.Btn.Box.BackgroundColor3 = preset
  1067. ColorPreset.Hue.HueGradient.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(255, 0, 4)), ColorSequenceKeypoint.new(0.20, Color3.fromRGB(234, 255, 0)), ColorSequenceKeypoint.new(0.40, Color3.fromRGB(21, 255, 0)), ColorSequenceKeypoint.new(0.60, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.80, Color3.fromRGB(0, 17, 255)), ColorSequenceKeypoint.new(0.90, Color3.fromRGB(255, 0, 251)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 0, 4))}
  1068. local Color = ColorPreset.Color
  1069. local Hue = ColorPreset.Hue
  1070. local HueSelection = ColorPreset.Hue.HueSelection
  1071. local ColorSelection = ColorPreset.Color.ColorSelection
  1072.  
  1073. function UpdateColorPicker()
  1074. ColorPreset.Btn.Box.BackgroundColor3 = Color3.fromHSV(ColorH, ColorS, ColorV)
  1075. Color.BackgroundColor3 = Color3.fromHSV(ColorH, 1, 1)
  1076. pcall(callback, ColorPreset.Btn.Box.BackgroundColor3)
  1077. end
  1078.  
  1079. ColorPreset.Btn.MouseButton1Click:Connect(function()
  1080. ColorPicker.Toggled = not ColorPicker.Toggled
  1081. TweenService:Create(ColorPreset,TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),{Size = ColorPicker.Toggled and UDim2.new(1,0,0,120) or UDim2.new(1,0,0,32)}):Play()
  1082. ColorPreset.Hue.Visible, ColorPreset.Color.Visible = ColorPicker.Toggled, ColorPicker.Toggled
  1083. end)
  1084.  
  1085. ColorH = 1 - (math.clamp(HueSelection.AbsolutePosition.Y - Hue.AbsolutePosition.Y, 0, Hue.AbsoluteSize.Y) / Hue.AbsoluteSize.Y)
  1086. ColorS = (math.clamp(ColorSelection.AbsolutePosition.X - Color.AbsolutePosition.X, 0, Color.AbsoluteSize.X) / Color.AbsoluteSize.X)
  1087. ColorV = 1 - (math.clamp(ColorSelection.AbsolutePosition.Y - Color.AbsolutePosition.Y, 0, Color.AbsoluteSize.Y) / Color.AbsoluteSize.Y)
  1088.  
  1089. ColorPreset.Btn.Box.BackgroundColor3 = preset
  1090. Color.BackgroundColor3 = preset
  1091. pcall(callback, ColorPreset.Btn.Box.BackgroundColor3)
  1092.  
  1093. Color.InputBegan:Connect(function(input)
  1094. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1095. if ColorInput then
  1096. ColorInput:Disconnect()
  1097. end
  1098. ColorInput = RunService.RenderStepped:Connect(function()
  1099. local ColorX = (math.clamp(Mouse.X - Color.AbsolutePosition.X, 0, Color.AbsoluteSize.X) / Color.AbsoluteSize.X)
  1100. local ColorY = (math.clamp(Mouse.Y - Color.AbsolutePosition.Y, 0, Color.AbsoluteSize.Y) / Color.AbsoluteSize.Y)
  1101. ColorSelection.Position = UDim2.new(ColorX, 0, ColorY, 0)
  1102. ColorS = ColorX
  1103. ColorV = 1 - ColorY
  1104. UpdateColorPicker()
  1105. end)
  1106. end
  1107. end)
  1108.  
  1109. Color.InputEnded:Connect(function(input)
  1110. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1111. if ColorInput then
  1112. ColorInput:Disconnect()
  1113. end
  1114. end
  1115. end)
  1116.  
  1117. Hue.InputBegan:Connect(function(input)
  1118. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1119. if HueInput then
  1120. HueInput:Disconnect()
  1121. end
  1122.  
  1123. HueInput = RunService.RenderStepped:Connect(function()
  1124. local HueY = (math.clamp(Mouse.Y - Hue.AbsolutePosition.Y, 0, Hue.AbsoluteSize.Y) / Hue.AbsoluteSize.Y)
  1125.  
  1126. HueSelection.Position = UDim2.new(0.48, 0, HueY, 0)
  1127. ColorH = 1 - HueY
  1128.  
  1129. UpdateColorPicker(true)
  1130. end)
  1131. end
  1132. end)
  1133.  
  1134. Hue.InputEnded:Connect(function(input)
  1135. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1136. if HueInput then
  1137. HueInput:Disconnect()
  1138. end
  1139. end
  1140. end)
  1141.  
  1142. spawn(function()
  1143. while wait() do
  1144. ColorPreset.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Colorpicker
  1145. ColorPreset.Btn.Colorpicker.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1146. end
  1147. end)
  1148.  
  1149. return ColorPicker
  1150. end
  1151. function ItemHold:Label(text)
  1152. local Label, LabelFrame = {}, game:GetObjects("rbxassetid://7032552322")[1]
  1153. LabelFrame.Parent = Section
  1154. LabelFrame.Title.Text = text
  1155. LabelFrame.Name = text .. "element"
  1156.  
  1157. function Label:Set(tochange)
  1158. LabelFrame.Title.Text = tochange
  1159. LabelFrame.Name = text .. "element"
  1160. end
  1161.  
  1162.  
  1163. spawn(function()
  1164. while wait() do
  1165. LabelFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Label
  1166. LabelFrame.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1167. end
  1168. end)
  1169.  
  1170. return Label
  1171. end
  1172. function ItemHold:Textbox(text,disappear,callback)
  1173. local Textbox, TextboxFrame = {}, game:GetObjects("rbxassetid://7147292392")[1]
  1174. TextboxFrame.Parent = Section
  1175. TextboxFrame.Title.Text = text
  1176. TextboxFrame.Name = text .. "element"
  1177.  
  1178. TextboxFrame.Box.Changed:Connect(function()
  1179. TextboxFrame.Box.Size = UDim2.new(0,TextboxFrame.Box.TextBounds.X + 16,0,22)
  1180. end)
  1181. TextboxFrame.Box.PlaceholderText = " "
  1182.  
  1183. TextboxFrame.InputBegan:Connect(function(input)
  1184. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1185. TextboxFrame.Box:CaptureFocus()
  1186. end
  1187. end)
  1188.  
  1189.  
  1190. TextboxFrame.Box.FocusLost:Connect(function()
  1191. local txt = TextboxFrame.Box.Text
  1192. if disappear then
  1193. TextboxFrame.Box.Text = ""
  1194. end
  1195. return callback(txt)
  1196. end)
  1197.  
  1198. UserInputService.InputBegan:Connect(function(input)
  1199. if input.KeyCode == Enum.KeyCode.Escape and TextboxFrame.Box:IsFocused() then
  1200. TextboxFrame.Box:ReleaseFocus()
  1201. end
  1202. end)
  1203.  
  1204. spawn(function()
  1205. while wait() do
  1206. TextboxFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Textbox
  1207. TextboxFrame.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1208. TextboxFrame.Box.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextboxFrame
  1209. TextboxFrame.Box.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1210. end
  1211. end)
  1212. return Textbox
  1213. end
  1214. function ItemHold:Bind(text,preset,holdmode,flag,callback)
  1215. local Bind, BindFrame = {Value, Binding = false, Holding = false}, game:GetObjects("rbxassetid://7126874744")[1]
  1216. BindFrame.Parent = Section
  1217. BindFrame.Title.Text = text
  1218. BindFrame.Name = text .. "element"
  1219.  
  1220.  
  1221.  
  1222. BindFrame.InputEnded:Connect(function(Input)
  1223. if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  1224. if Bind.Binding then return end
  1225. Bind.Binding = true
  1226. BindFrame.BText.Text = "..."
  1227. end
  1228. end)
  1229.  
  1230. UserInputService.InputBegan:Connect(function(Input)
  1231. if UserInputService:GetFocusedTextBox() then return end
  1232. if (Input.KeyCode.Name == Bind.Value or Input.UserInputType.Name == Bind.Value) and not Bind.Binding then
  1233. if holdmode then
  1234. Holding = true
  1235. callback(Holding)
  1236. else
  1237. callback()
  1238. end
  1239. elseif Bind.Binding then
  1240. local Key
  1241. pcall(function()
  1242. if not CheckKey(BlacklistedKeys, Input.KeyCode) then
  1243. Key = Input.KeyCode
  1244. end
  1245. end)
  1246. pcall(function()
  1247. if CheckKey(WhitelistedMouse, Input.UserInputType) and not Key then
  1248. Key = Input.UserInputType
  1249. end
  1250. end)
  1251. Key = Key or Bind.Value
  1252. Bind:Set(Key)
  1253. end
  1254. end)
  1255.  
  1256. UserInputService.InputEnded:Connect(function(Input)
  1257. if Input.KeyCode.Name == Bind.Value or Input.UserInputType.Name == Bind.Value then
  1258. if holdmode and Holding then
  1259. Holding = false
  1260. callback(Holding)
  1261. end
  1262. end
  1263. end)
  1264.  
  1265. function Bind:Set(key)
  1266. self.Binding = false
  1267. self.Value = key or self.Value
  1268. self.Value = self.Value.Name or self.Value
  1269. BindFrame.BText.Text = self.Value
  1270. end
  1271.  
  1272. spawn(function()
  1273. while wait() do
  1274. BindFrame.BackgroundColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].Bind
  1275. BindFrame.Title.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1276. BindFrame.BText.TextColor3 = SolarisLib.Themes[SolarisLib.Settings.Theme].TextColor
  1277. end
  1278. end)
  1279.  
  1280. Bind:Set(preset)
  1281. SolarisLib.Flags[flag] = Bind
  1282. return Bind
  1283. end
  1284. return ItemHold
  1285. end
  1286. return SectionHold
  1287. end
  1288. return TabHolder
  1289. end
  1290. return SolarisLib
Add Comment
Please, Sign In to add comment