Advertisement
AnonymousJG179

JG'S GUI

Jul 11th, 2024 (edited)
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.96 KB | None | 0 0
  1. --[[
  2. JG's GUI Script
  3.  
  4. ### Notes for Developers (AI or Human):
  5. - **Purpose of Notes:** These notes serve as a record for modifications made to the GUI. Always update the notes to reflect the current state of the code.
  6. - **Update Rule:** If any feature or component is added, removed, or modified, ensure the notes are updated to describe the change. Do not remove a feature from the code unless explicitly requested.
  7. - **Current Features:**
  8. 1. **GUI Title**:
  9. - Displays "JG's GUI" at the top.
  10. - Uses a sleek title bar design with a label and controls.
  11. - **Rainbow Animation**: Title text cycles through rainbow colors.
  12. 2. **Minimize Button (-)**:
  13. - Shrinks the GUI into a compact size at the bottom of the screen.
  14. - Animated transition to minimize and restore positions and sizes.
  15. 3. **Close Button (X)**:
  16. - Slides the GUI off the screen and destroys it.
  17. - Smooth animation during the closing transition.
  18. 4. **Search Bar**:
  19. - Dynamically filters the script list based on user input.
  20. - Works in real-time without requiring the Enter key.
  21. - Resets the filtered view when the search bar is cleared.
  22. 5. **Script Buttons**:
  23. - Each button executes a predefined script via `HttpGet` or `loadstring`.
  24. - Visual Indicator:
  25. - A green dot appears to the right of the button for successful execution.
  26. - A red dot blinks three times, then stays red, for failed execution.
  27. - Automatically logs execution results (success or error) in the logs.
  28. - Supports dynamic updates and layout adjustments.
  29. 6. **Diagnostics Button**:
  30. - Tests the executor's capabilities, including:
  31. - **HTTP Requests** (`game:HttpGet`).
  32. - **Loadstring Support** (`loadstring`).
  33. - **File Writing Support** (`writefile`).
  34. - Other advanced functionalities (e.g., `getgenv`, `hookfunction`, `getconnections`, etc.).
  35. - Results are displayed in the Diagnostics panel with clear green (supported) or red (not supported) labels.
  36. - Prevents stacking by dynamically clearing and repopulating the frame.
  37. 7. **View Logs Button**:
  38. - Displays logs from executed scripts or errors.
  39. - Logs successful execution in white text and errors in red text.
  40. - Dynamically updates when new logs are added.
  41. - Uses `UIListLayout` to ensure proper spacing and avoid stacking issues.
  42. - Includes a larger font size for better readability.
  43. 8. **Animations**:
  44. - Smooth slide transitions for minimizing and closing the GUI.
  45. - Fade-in and fade-out effects for Diagnostics and Logs frames.
  46. 9. **Fade Transitions**:
  47. - Diagnostics and Logs frames toggle visibility with fade effects.
  48. 10. **Dynamic Content Updates**:
  49. - Diagnostics and Logs panels clear and repopulate their frames dynamically when toggled.
  50. 11. **Layout Management**:
  51. - Uses `UIListLayout` in the Diagnostics and Logs panels to ensure consistent spacing between elements and prevent stacking.
  52. - Buttons and logs are dynamically spaced for readability.
  53. 12. **Robust Script Execution**:
  54. - Handles script execution via HTTP (`game:HttpGet`) or `loadstring`.
  55. - Handles errors gracefully, logging them and updating the corresponding button's indicator.
  56. 13. **Interactive Indicators**:
  57. - Each script button shows a dynamic indicator to the right:
  58. - **Green Dot**: For successful script execution.
  59. - **Red Blinking Dot**: For failed script execution (blinks three times, then stays red).
  60. - Indicators are visually distinct and update immediately after execution.
  61. 14. **Scrollable Script List**:
  62. - The script list is scrollable to accommodate a large number of scripts.
  63. - Buttons dynamically adjust visibility based on search results.
  64. 15. **Script List Auto-Management**:
  65. - The script list dynamically updates and filters based on user input.
  66. - Ensures buttons remain responsive and visually consistent.
  67. 16. **Loading Screen**:
  68. - A fullscreen loading screen with a progress bar.
  69. - Loading screen slides in at the start and animates a progress bar.
  70. - GUI becomes fully visible as the loading screen slides out.
  71. 17. **GUI Closing Animation**:
  72. - The GUI slides off to the left when the close button is pressed, instead of disappearing abruptly.
  73. 18. **Rainbow Effect**:
  74. - The title text cycles through a rainbow effect seamlessly.
  75.  
  76. - **Guidelines for Future Edits:**
  77. - Any new feature added must be described in these notes.
  78. - Always verify functionality matches the description in the notes.
  79. - Ensure transitions, animations, and layout behavior remain consistent with the overall design.
  80. - Before removing any feature, confirm it was requested or justified in context.
  81.  
  82. -- End of Notes --
  83. ]]
  84.  
  85. -- Variables
  86. local TweenService = game:GetService("TweenService")
  87. local Players = game:GetService("Players")
  88. local player = Players.LocalPlayer
  89.  
  90. -- Utility function to create a new UI element with properties
  91. local function createUIElement(class, properties, parent)
  92. local element = Instance.new(class)
  93. for property, value in pairs(properties) do
  94. element[property] = value
  95. end
  96. element.Parent = parent
  97. return element
  98. end
  99.  
  100. -- Function to add rounded corners
  101. local function addRoundedCorners(element, radius)
  102. local corner = Instance.new("UICorner")
  103. corner.CornerRadius = UDim.new(0, radius)
  104. corner.Parent = element
  105. end
  106.  
  107. -- Function to create a tween for position changes
  108. local function slideTo(element, targetPosition, duration, callback)
  109. local tween = TweenService:Create(element, TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = targetPosition})
  110. tween:Play()
  111. if callback then
  112. tween.Completed:Connect(callback)
  113. end
  114. end
  115.  
  116. -- Function for the rainbow effect
  117. local function rainbowEffect(element, duration)
  118. spawn(function()
  119. while element do
  120. for hue = 0, 1, 0.01 do
  121. element.TextColor3 = Color3.fromHSV(hue, 1, 1)
  122. wait(duration / 100) -- Adjust speed
  123. end
  124. end
  125. end)
  126. end
  127.  
  128. -- GUI Setup
  129. local gui = createUIElement("ScreenGui", {Name = "JG's GUI", ResetOnSpawn = false}, player:WaitForChild("PlayerGui"))
  130.  
  131. -- Add Loading Screen
  132. local loadingScreen = createUIElement("Frame", {
  133. Size = UDim2.new(1, 0, 1, 0),
  134. Position = UDim2.new(1, 0, 0, 0), -- Start off-screen
  135. BackgroundColor3 = Color3.fromRGB(30, 30, 30),
  136. BorderSizePixel = 0,
  137. ZIndex = 10 -- Ensures it appears above all other elements
  138. }, gui)
  139.  
  140. local loadingText = createUIElement("TextLabel", {
  141. Size = UDim2.new(0.4, 0, 0.1, 0),
  142. Position = UDim2.new(0.3, 0, 0.4, 0),
  143. BackgroundTransparency = 1,
  144. Text = "Initializing...",
  145. TextColor3 = Color3.fromRGB(255, 255, 255),
  146. TextScaled = true,
  147. Font = Enum.Font.GothamBold,
  148. ZIndex = 11 -- Appears above the loading screen background
  149. }, loadingScreen)
  150.  
  151. local loadingBarBackground = createUIElement("Frame", {
  152. Size = UDim2.new(0.6, 0, 0.05, 0),
  153. Position = UDim2.new(0.2, 0, 0.55, 0),
  154. BackgroundColor3 = Color3.fromRGB(50, 50, 50),
  155. BorderSizePixel = 0,
  156. ZIndex = 11
  157. }, loadingScreen)
  158. addRoundedCorners(loadingBarBackground, 8)
  159.  
  160. local loadingBar = createUIElement("Frame", {
  161. Size = UDim2.new(0, 0, 1, 0),
  162. Position = UDim2.new(0, 0, 0, 0),
  163. BackgroundColor3 = Color3.fromRGB(0, 150, 255),
  164. BorderSizePixel = 0,
  165. ZIndex = 12
  166. }, loadingBarBackground)
  167. addRoundedCorners(loadingBar, 8)
  168.  
  169. -- Main GUI (Initially Hidden)
  170. local mainFrame = createUIElement("Frame", {
  171. Size = UDim2.new(0.6, 0, 0.7, 0),
  172. Position = UDim2.new(0.2, 0, 0.15, 0),
  173. BackgroundColor3 = Color3.fromRGB(40, 40, 40),
  174. BorderSizePixel = 0,
  175. Visible = false -- Hidden until the loading screen starts sliding out
  176. }, gui)
  177. addRoundedCorners(mainFrame, 12)
  178.  
  179. -- Title Bar for Main GUI
  180. local titleBar = createUIElement("Frame", {
  181. Size = UDim2.new(1, 0, 0, 50),
  182. BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  183. }, mainFrame)
  184. addRoundedCorners(titleBar, 12)
  185.  
  186. local titleText = createUIElement("TextLabel", {
  187. Size = UDim2.new(1, -50, 1, 0),
  188. Position = UDim2.new(0, 5, 0, 0),
  189. BackgroundTransparency = 1,
  190. Text = "JG's GUI",
  191. TextColor3 = Color3.fromRGB(255, 255, 255),
  192. TextScaled = true,
  193. Font = Enum.Font.GothamBold,
  194. TextXAlignment = Enum.TextXAlignment.Left
  195. }, titleBar)
  196.  
  197. -- Apply the Rainbow Effect to the Title
  198. rainbowEffect(titleText, 5)
  199.  
  200. -- Function to animate the Loading Screen
  201. local function startLoadingScreen(duration, callback)
  202. -- Slide in the loading screen
  203. slideTo(loadingScreen, UDim2.new(0, 0, 0, 0), 1, function()
  204. -- Animate the loading bar
  205. local tween = TweenService:Create(loadingBar, TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {Size = UDim2.new(1, 0, 1, 0)})
  206. tween:Play()
  207. tween.Completed:Connect(function()
  208. -- Show the main GUI
  209. mainFrame.Visible = true
  210.  
  211. -- Slide out the loading screen
  212. slideTo(loadingScreen, UDim2.new(-1, 0, 0, 0), 1, function()
  213. loadingScreen:Destroy()
  214. if callback then
  215. callback()
  216. end
  217. end)
  218. end)
  219. end)
  220. end
  221.  
  222. -- Start the Loading Screen
  223. startLoadingScreen(5, function()
  224. print("Loading complete! GUI is now visible.")
  225. end)
  226.  
  227. -- Close Button for Main GUI
  228. local closeButton = createUIElement("TextButton", {
  229. Size = UDim2.new(0, 40, 0, 40),
  230. Position = UDim2.new(1, -50, 0.5, -20),
  231. BackgroundColor3 = Color3.fromRGB(200, 0, 0),
  232. Text = "X",
  233. TextColor3 = Color3.fromRGB(255, 255, 255),
  234. Font = Enum.Font.GothamBold,
  235. TextScaled = true
  236. }, titleBar)
  237. addRoundedCorners(closeButton, 8)
  238.  
  239. -- Slide the GUI out when closing
  240. closeButton.MouseButton1Click:Connect(function()
  241. slideTo(mainFrame, UDim2.new(-1, 0, mainFrame.Position.Y.Scale, mainFrame.Position.Y.Offset), 1, function()
  242. gui:Destroy()
  243. end)
  244. end)
  245.  
  246. -- Minimize Button (-)
  247. local minimizeButton = createUIElement("TextButton", {
  248. Size = UDim2.new(0, 40, 0, 40),
  249. Position = UDim2.new(1, -100, 0.5, -20),
  250. BackgroundColor3 = Color3.fromRGB(200, 200, 0),
  251. Text = "-",
  252. TextColor3 = Color3.fromRGB(255, 255, 255),
  253. Font = Enum.Font.GothamBold,
  254. TextScaled = true
  255. }, titleBar)
  256. addRoundedCorners(minimizeButton, 8)
  257.  
  258. local isMinimized = false
  259. local minimizedSize = UDim2.new(0.3, 0, 0, 50) -- Smaller size for minimized GUI
  260. local minimizedPosition = UDim2.new(0.35, 0, 0.85, 0) -- Bottom center of the screen
  261. local originalSize = mainFrame.Size
  262. local originalPosition = mainFrame.Position
  263.  
  264. minimizeButton.MouseButton1Click:Connect(function()
  265. if isMinimized then
  266. slideTo(mainFrame, originalPosition, 1) -- Slower slide back to original position
  267. mainFrame:TweenSize(originalSize, "Out", "Quad", 1)
  268. isMinimized = false
  269. else
  270. slideTo(mainFrame, minimizedPosition, 1) -- Slower slide to minimized position
  271. mainFrame:TweenSize(minimizedSize, "Out", "Quad", 1)
  272. isMinimized = true
  273. end
  274. end)
  275.  
  276. -- Track the currently open frame
  277. local currentOpenFrame = nil
  278.  
  279. -- Function to toggle frames with mutual exclusivity
  280. local function toggleFrame(frame, refreshFunction)
  281. if currentOpenFrame == frame then
  282. -- If the current frame is already open, close it
  283. fade(frame, 1, 0.5, function()
  284. frame.Visible = false
  285. currentOpenFrame = nil
  286. end)
  287. else
  288. -- Close the currently open frame, if any
  289. if currentOpenFrame then
  290. fade(currentOpenFrame, 1, 0.5, function()
  291. currentOpenFrame.Visible = false
  292. end)
  293. end
  294.  
  295. -- Open the new frame
  296. if refreshFunction then
  297. refreshFunction() -- Refresh the content of the new frame
  298. end
  299. frame.Visible = true
  300. fade(frame, 0, 0.5)
  301. currentOpenFrame = frame
  302. end
  303. end
  304.  
  305. -- Diagnostics Panel
  306. local diagnosticsFrame = createUIElement("ScrollingFrame", {
  307. Size = UDim2.new(0.5, 0, 0.6, 0),
  308. Position = UDim2.new(0.5, 0, 0.25, 0),
  309. BackgroundColor3 = Color3.fromRGB(20, 20, 20),
  310. ScrollBarThickness = 8,
  311. Visible = false
  312. }, mainFrame)
  313. addRoundedCorners(diagnosticsFrame, 8)
  314.  
  315. local function refreshDiagnostics()
  316. diagnosticsFrame:ClearAllChildren()
  317. local layout = createUIElement("UIListLayout", {Padding = UDim.new(0, 5)}, diagnosticsFrame)
  318.  
  319. local capabilities = {
  320. {name = "HTTP Requests", supported = pcall(function() return game:HttpGet("https://www.roblox.com") end)},
  321. {name = "Loadstring", supported = pcall(function() return loadstring("return true") end)},
  322. {name = "File Writing", supported = pcall(function() return writefile("test.txt", "Test") end)},
  323. {name = "getgenv", supported = pcall(function() return getgenv() end)},
  324. {name = "hookfunction", supported = pcall(function() return hookfunction end)},
  325. {name = "getconnections", supported = pcall(function() return getconnections end)},
  326. }
  327.  
  328. for _, capability in ipairs(capabilities) do
  329. createUIElement("TextLabel", {
  330. Size = UDim2.new(1, -10, 0, 30),
  331. Text = capability.name .. ": " .. (capability.supported and "Supported" or "Not Supported"),
  332. TextColor3 = capability.supported and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0),
  333. BackgroundTransparency = 1,
  334. Font = Enum.Font.Gotham,
  335. TextScaled = true
  336. }, diagnosticsFrame)
  337. end
  338. end
  339.  
  340. local diagnosticsButton = createUIElement("TextButton", {
  341. Size = UDim2.new(0.15, 0, 0, 30),
  342. Position = UDim2.new(0.7, 0, 0.9, 0),
  343. Text = "Diagnostics",
  344. TextColor3 = Color3.fromRGB(255, 255, 255),
  345. BackgroundColor3 = Color3.fromRGB(45, 45, 45),
  346. Font = Enum.Font.Gotham,
  347. TextScaled = true
  348. }, mainFrame)
  349. addRoundedCorners(diagnosticsButton, 8)
  350.  
  351. diagnosticsButton.MouseButton1Click:Connect(function()
  352. toggleFrame(diagnosticsFrame, refreshDiagnostics)
  353. end)
  354.  
  355. -- Logs Panel
  356. local logsFrame = createUIElement("ScrollingFrame", {
  357. Size = UDim2.new(0.5, 0, 0.6, 0),
  358. Position = UDim2.new(0.5, 0, 0.25, 0),
  359. BackgroundColor3 = Color3.fromRGB(20, 20, 20),
  360. ScrollBarThickness = 8,
  361. Visible = false,
  362. ClipsDescendants = true -- Prevents overflow outside the frame
  363. }, mainFrame)
  364. addRoundedCorners(logsFrame, 8)
  365.  
  366. -- Add a UIListLayout to ensure proper spacing
  367. local logsLayout = createUIElement("UIListLayout", {
  368. Padding = UDim.new(0, 5), -- Space between log entries
  369. FillDirection = Enum.FillDirection.Vertical, -- Vertical stacking
  370. SortOrder = Enum.SortOrder.LayoutOrder -- Ordered by LayoutOrder
  371. }, logsFrame)
  372.  
  373. local logs = {}
  374.  
  375. local function addLogEntry(entry, isError)
  376. local color = isError and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(255, 255, 255)
  377. table.insert(logs, {text = os.date("[%X] ") .. entry, color = color})
  378.  
  379. -- Create a new log entry in the frame
  380. createUIElement("TextLabel", {
  381. Size = UDim2.new(1, -10, 0, 40), -- Increased height for larger text
  382. Text = os.date("[%X] ") .. entry,
  383. TextColor3 = color,
  384. BackgroundTransparency = 1,
  385. Font = Enum.Font.Gotham,
  386. TextSize = 20, -- Set a larger text size
  387. TextWrapped = true, -- Wrap text if it exceeds the width
  388. LayoutOrder = #logs -- Ensure logs are ordered
  389. }, logsFrame)
  390. end
  391.  
  392. local function refreshLogsFrame()
  393. logsFrame:ClearAllChildren() -- Clear current logs
  394. createUIElement("UIListLayout", {Padding = UDim.new(0, 5)}, logsFrame) -- Re-add layout
  395. for _, log in ipairs(logs) do
  396. createUIElement("TextLabel", {
  397. Size = UDim2.new(1, -10, 0, 40), -- Consistent height for larger text
  398. Text = log.text,
  399. TextColor3 = log.color,
  400. BackgroundTransparency = 1,
  401. Font = Enum.Font.Gotham,
  402. TextSize = 20, -- Set a larger text size
  403. TextWrapped = true,
  404. LayoutOrder = _
  405. }, logsFrame)
  406. end
  407. end
  408.  
  409. -- Logs Button
  410. local logsButton = createUIElement("TextButton", {
  411. Size = UDim2.new(0.15, 0, 0, 30),
  412. Position = UDim2.new(0.85, 0, 0.9, 0),
  413. Text = "View Logs",
  414. TextColor3 = Color3.fromRGB(255, 255, 255),
  415. BackgroundColor3 = Color3.fromRGB(45, 45, 45),
  416. Font = Enum.Font.Gotham,
  417. TextScaled = true
  418. }, mainFrame)
  419. addRoundedCorners(logsButton, 8)
  420.  
  421. logsButton.MouseButton1Click:Connect(function()
  422. toggleFrame(logsFrame, refreshLogsFrame)
  423. end)
  424.  
  425. -- Script List
  426. local scriptsFrame = createUIElement("ScrollingFrame", {
  427. Size = UDim2.new(0.4, 0, 0.6, 0),
  428. Position = UDim2.new(0.05, 0, 0.25, 0),
  429. BackgroundColor3 = Color3.fromRGB(50, 50, 50),
  430. ScrollBarThickness = 8
  431. }, mainFrame)
  432. addRoundedCorners(scriptsFrame, 8)
  433.  
  434. local scriptsLayout = createUIElement("UIListLayout", {Padding = UDim.new(0, 5)}, scriptsFrame)
  435.  
  436. local buttons = {
  437. {name = "InventoryChecker", text = "Inventory Checker", color = Color3.fromRGB(255, 165, 0), scriptUrl = "https://pastebin.com/raw/hAArcq8L", directLoadstring = true},
  438. {name = "MiniMap", text = "Mini Map", color = Color3.fromRGB(100, 100, 200), scriptUrl = "https://pastebin.com/raw/RC68w0yJ", directLoadstring = true},
  439. {name = "MissileLocker3.0", text = "Missile Locker 3.0", color = Color3.fromRGB(200, 0, 0), scriptUrl = "https://pastebin.com/raw/Sw30RsRj", directLoadstring = false},
  440. {name = "MissileLockerPVP3.0", text = "Missile Locker PVP 3.0", color = Color3.fromRGB(0, 200, 0), scriptUrl = "https://pastebin.com/raw/eyQkGPpX", directLoadstring = true},
  441. {name = "NamelessAdmin", text = "Nameless Admin", color = Color3.fromRGB(150, 0, 150), scriptUrl = "https://raw.githubusercontent.com/FD2Team/Nameless-Admin-No-Byfron-Kick/main/Source", directLoadstring = false},
  442. {name = "SkyFEGUI", text = "Sky FE GUI", color = Color3.fromRGB(0, 150, 200), scriptUrl = "https://raw.githubusercontent.com/yofriendfromschool1/Sky-Hub/main/FE%20Trolling%20GUI.luau", directLoadstring = false},
  443. {name = "Telekinesis", text = "Telekinesis", color = Color3.fromRGB(0, 0, 200), scriptUrl = "https://pastebin.com/raw/dfkijtzG", directLoadstring = false},
  444. {name = "SupermanFly", text = "Superman Fly", color = Color3.fromRGB(0, 0, 255), scriptUrl = "https://pastebin.com/raw/bbgJDXSK", directLoadstring = true},
  445. {name = "ObjectESP", text = "Object ESP", color = Color3.fromRGB(255, 69, 0), scriptUrl = "https://pastebin.com/raw/QZ9yzEgz", directLoadstring = true},
  446. {name = "SpectateTP", text = "Spectate TP", color = Color3.fromRGB(0, 128, 255), scriptUrl = "https://pastebin.com/raw/gHErb073", directLoadstring = true}
  447. }
  448.  
  449. local function createScriptButtons()
  450. for _, buttonInfo in ipairs(buttons) do
  451. local scriptButton = createUIElement("TextButton", {
  452. Size = UDim2.new(1, 0, 0, 30),
  453. BackgroundColor3 = buttonInfo.color,
  454. Text = buttonInfo.text,
  455. TextColor3 = Color3.fromRGB(255, 255, 255),
  456. Font = Enum.Font.Gotham,
  457. TextScaled = true,
  458. AutoButtonColor = true
  459. }, scriptsFrame)
  460. addRoundedCorners(scriptButton, 8)
  461.  
  462. -- Add indicator dot
  463. local indicatorDot = createUIElement("Frame", {
  464. Size = UDim2.new(0, 20, 0, 20),
  465. Position = UDim2.new(0.9, 0, 0.5, -10),
  466. BackgroundColor3 = Color3.fromRGB(150, 150, 150),
  467. BorderSizePixel = 0,
  468. Visible = false
  469. }, scriptButton)
  470. addRoundedCorners(indicatorDot, 10)
  471.  
  472. scriptButton.MouseButton1Click:Connect(function()
  473. indicatorDot.Visible = true
  474. local success, err = pcall(function()
  475. local scriptContent = game:HttpGet(buttonInfo.scriptUrl)
  476. loadstring(scriptContent)()
  477. end)
  478.  
  479. if success then
  480. indicatorDot.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
  481. addLogEntry("Executed: " .. buttonInfo.text, false)
  482. else
  483. indicatorDot.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
  484. addLogEntry("Error executing: " .. buttonInfo.text .. " - " .. err, true)
  485. end
  486.  
  487. refreshLogsFrame()
  488. end)
  489. end
  490. end
  491.  
  492. createScriptButtons()
  493.  
  494. -- Search Bar
  495. local searchBar = createUIElement("TextBox", {
  496. Size = UDim2.new(0.4, 0, 0, 30),
  497. Position = UDim2.new(0.05, 0, 0.2, 0),
  498. PlaceholderText = "Search scripts...",
  499. TextColor3 = Color3.fromRGB(255, 255, 255),
  500. BackgroundColor3 = Color3.fromRGB(50, 50, 50),
  501. Font = Enum.Font.Gotham,
  502. TextScaled = true,
  503. ClearTextOnFocus = false
  504. }, mainFrame)
  505. addRoundedCorners(searchBar, 8)
  506.  
  507. searchBar:GetPropertyChangedSignal("Text"):Connect(function()
  508. for _, button in ipairs(scriptsFrame:GetChildren()) do
  509. if button:IsA("TextButton") then
  510. button.Visible = button.Text:lower():find(searchBar.Text:lower()) ~= nil
  511. end
  512. end
  513. end)
  514.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement