MaxproGlitcher

Server Finder Deluxe

Jan 22nd, 2026
59
0
Never
5
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 62.54 KB | None | 0 0
  1. --[[By MaxproGlitcher Discord:maxproglitcher
  2.  
  3. -- Site Web official: https://github.com/MaxproGlitcher/Server-Finder-Deluxe
  4.  
  5. _____ ________.__ .__ __ .__
  6. / \ _____ ___ ________________ ____ / _____/| | |__|/ |_ ____ | |__ ___________
  7. / \ / \\__ \ \ \/ /\____ \_ __ \/ _ \/ \ ___| | | \ __\/ ___\| | \_/ __ \_ __ \
  8. / Y \/ __ \_> < | |_> > | \( <_> ) \_\ \ |_| || | \ \___| Y \ ___/| | \/
  9. \____|__ (____ /__/\_ \| __/|__| \____/ \______ /____/__||__| \___ >___| /\___ >__|
  10. \/ \/ \/|__| \/ \/ \/ \/
  11.  
  12.  
  13. --------------------------------------------------------------------------------------------------------------------
  14.  
  15.  
  16. _____ ______ _ _ _____ _
  17. / ____| | ____(_) | | | __ \ | |
  18. | (___ ___ _ ____ _____ _ __ | |__ _ _ __ __| | ___ _ __ | | | | ___| |_ ___ _____
  19. \___ \ / _ \ '__\ \ / / _ \ '__| | __| | | '_ \ / _` |/ _ \ '__| | | | |/ _ \ | | | \ \/ / _ \
  20. ____) | __/ | \ V / __/ | | | | | | | | (_| | __/ | | |__| | __/ | |_| |> < __/
  21. |_____/ \___|_| \_/ \___|_| |_| |_|_| |_|\__,_|\___|_| |_____/ \___|_|\__,_/_/\_\___|
  22.  
  23.  
  24. ]]
  25. --------------------------------------------------------------------------------------------------------------------
  26. if not game:IsLoaded() then
  27. game.Loaded:Wait()
  28. end
  29.  
  30. local TweenService = game:GetService("TweenService")
  31. local Lighting = game:GetService("Lighting")
  32. local CoreGui = game:GetService("CoreGui")
  33.  
  34. local gui = Instance.new("ScreenGui", game.CoreGui)
  35. gui.Parent = CoreGui
  36. gui.IgnoreGuiInset = true
  37. gui.ResetOnSpawn = false
  38.  
  39. local blur = Instance.new("BlurEffect")
  40. blur.Parent = Lighting
  41. blur.Size = 12
  42.  
  43. local main = Instance.new("Frame")
  44. main.Parent = gui
  45. main.Size = UDim2.new(0, 420, 0, 260)
  46. main.Position = UDim2.new(0.5, -210, 0.5, -130)
  47. main.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  48. main.BorderSizePixel = 0
  49. Instance.new("UICorner", main).CornerRadius = UDim.new(0, 12)
  50.  
  51. local title = Instance.new("TextLabel")
  52. title.Parent = main
  53. title.BackgroundTransparency = 1
  54. title.Size = UDim2.new(1, 0, 0, 50)
  55. title.Position = UDim2.new(0, 0, 0, 10)
  56. title.Font = Enum.Font.GothamBlack
  57. title.TextSize = 40
  58. title.TextColor3 = Color3.fromRGB(240, 240, 240)
  59. title.Text = "Server Finder Deluxe"
  60.  
  61. local versionLabel = Instance.new("TextLabel")
  62. versionLabel.Parent = main
  63. versionLabel.BackgroundTransparency = 1
  64. versionLabel.Size = UDim2.new(1, 0, 0, 20)
  65. versionLabel.Position = UDim2.new(0, 0, 0, 70)
  66. versionLabel.Font = Enum.Font.GothamMedium
  67. versionLabel.TextSize = 16
  68. versionLabel.TextColor3 = Color3.fromRGB(210, 210, 210)
  69. versionLabel.Text = "Ultimate Server Scanner"
  70.  
  71. local status = Instance.new("TextLabel")
  72. status.Parent = main
  73. status.BackgroundTransparency = 1
  74. status.Size = UDim2.new(1, 0, 0, 30)
  75. status.Position = UDim2.new(0, 0, 0, 105)
  76. status.Font = Enum.Font.Gotham
  77. status.TextSize = 18
  78. status.TextColor3 = Color3.fromRGB(200, 200, 200)
  79. status.Text = "Loading..."
  80.  
  81. local percent = Instance.new("TextLabel")
  82. percent.Parent = main
  83. percent.BackgroundTransparency = 1
  84. percent.Size = UDim2.new(1, 0, 0, 25)
  85. percent.Position = UDim2.new(0, 0, 0, 135)
  86. percent.Font = Enum.Font.GothamBold
  87. percent.TextSize = 20
  88. percent.TextColor3 = Color3.fromRGB(200, 200, 200)
  89. percent.Text = "0%"
  90.  
  91. local barBack = Instance.new("Frame")
  92. barBack.Parent = main
  93. barBack.Size = UDim2.new(0, 280, 0, 8)
  94. barBack.Position = UDim2.new(0.5, -140, 0, 165)
  95. barBack.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
  96. barBack.BorderSizePixel = 0
  97. Instance.new("UICorner", barBack).CornerRadius = UDim.new(0, 4)
  98.  
  99. local bar = Instance.new("Frame")
  100. bar.Parent = barBack
  101. bar.Size = UDim2.new(0, 0, 1, 0)
  102. bar.BackgroundColor3 = Color3.fromRGB(180, 180, 180)
  103. bar.BorderSizePixel = 0
  104. Instance.new("UICorner", bar).CornerRadius = UDim.new(0, 4)
  105.  
  106. local credit = Instance.new("TextLabel")
  107. credit.Parent = main
  108. credit.BackgroundTransparency = 1
  109. credit.Size = UDim2.new(0, 200, 0, 20)
  110. credit.Position = UDim2.new(1, -210, 1, -30)
  111. credit.Font = Enum.Font.Gotham
  112. credit.TextSize = 16
  113. credit.TextColor3 = Color3.fromRGB(170, 170, 170)
  114. credit.TextXAlignment = Enum.TextXAlignment.Right
  115. credit.Text = "By MaxproGlitcher"
  116.  
  117. local isXmas, isHalloween, isNewYear, isEaster, isValentine = false, false, false, false, false
  118.  
  119. pcall(function()
  120. local date = os.date("*t")
  121. isXmas = date.month == 12 and date.day >= 15 and date.day <= 29
  122. isHalloween = (date.month == 10 and date.day >= 23) or (date.month == 11 and date.day <= 1)
  123. isNewYear = (date.month == 12 and date.day >= 30) or (date.month == 1 and date.day <= 2)
  124. isEaster = (date.month == 3 and date.day >= 31) or (date.month == 4 and date.day <= 15)
  125. isValentine = (date.month == 2 and date.day == 14)
  126. end)
  127.  
  128. local function decorate(startEmoji, endEmoji)
  129. title.Text = startEmoji .. " Server Finder Deluxe " .. endEmoji
  130. title.TextSize = 32
  131. end
  132.  
  133. local function cycle(colors)
  134. local i = 1
  135. task.spawn(function()
  136. while gui.Parent do
  137. local c = colors[i]
  138. title.TextColor3 = c
  139. versionLabel.TextColor3 = c
  140. status.TextColor3 = c
  141. credit.TextColor3 = c
  142. bar.BackgroundColor3 = c
  143. percent.TextColor3 = c
  144. i = i % #colors + 1
  145. task.wait(0.5)
  146. end
  147. end)
  148. end
  149.  
  150. if isXmas then
  151. decorate("🎄", "🎄")
  152. cycle({
  153. Color3.fromRGB(0,255,0),
  154. Color3.fromRGB(255,0,0),
  155. Color3.fromRGB(255,255,255)})
  156. elseif isHalloween then
  157. decorate("🎃", "🎃")
  158. cycle({
  159. Color3.fromRGB(0,0,0),
  160. Color3.fromRGB(255,165,0)})
  161. elseif isNewYear then
  162. decorate("🎉", "🎉")
  163. cycle({
  164. Color3.fromRGB(255,255,0),
  165. Color3.fromRGB(0,0,0)})
  166. elseif isEaster then
  167. decorate("🐰", "🐰")
  168. cycle({
  169. Color3.fromRGB(216,191,216),
  170. Color3.fromRGB(255,182,193),
  171. Color3.fromRGB(193,225,193),
  172. Color3.fromRGB(173,216,230)
  173. })
  174. elseif isValentine then
  175. decorate("💗", "💗")
  176. cycle({
  177. Color3.fromRGB(0,0,0),
  178. Color3.fromRGB(255,85,127)})
  179. end
  180.  
  181. local loading = true
  182. task.spawn(function()
  183. while loading and status.Parent do
  184. for i = 1, 3 do
  185. status.Text = "Loading" .. string.rep(".", i)
  186. task.wait(0.4)
  187. end
  188. status.Text = "Loading"
  189. task.wait(0.4)
  190. end
  191. end)
  192.  
  193. -- Animation
  194. local duration = 2
  195. TweenService:Create(bar, TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
  196. Size = UDim2.new(1, 0, 1, 0)
  197. }):Play()
  198.  
  199. for i = 0, 100 do
  200. percent.Text = i .. "%"
  201. task.wait(duration / 100)
  202. end
  203.  
  204. loading = false
  205. status.Text = "Success"
  206. task.wait(0.30)
  207.  
  208. if blur then
  209. blur:Destroy()
  210. end
  211.  
  212. if gui then
  213. gui:Destroy()
  214. end
  215.  
  216. --------------------------------------------------------------------------------------------------------------------
  217.  
  218. if _G.SFD_LOADED and not _G.SFD_CAN_RELOAD then
  219. -- error("Server Finder Deluxe is already running!", 0)
  220. return
  221. end
  222.  
  223. _G.SFD_LOADED = true
  224. _G.SFD_CAN_RELOAD = false
  225.  
  226. if not game:IsLoaded() then game.Loaded:Wait() end
  227.  
  228. -- Compatibilité getgenv
  229.  
  230. if game:GetService("CoreGui"):FindFirstChild("incognito") then
  231. oldstring = loadstring
  232. getfenv().loadstring = function(code)
  233. local source = code
  234. source = source:gsub("(%a+)%s*([%+%-%*/])=%s*", "%1 = %1 %2 ")
  235. return oldstring(source)
  236. end
  237. end
  238. if not getgenv then
  239. getfenv().getgenv = function(layer)
  240. return getfenv(layer)
  241. end
  242. end
  243.  
  244. getgenv().NextServer = nil
  245. getgenv().HasScannedAll = false
  246.  
  247.  
  248. -- Services
  249. local HttpService = game:GetService("HttpService")
  250. local TeleportService = game:GetService("TeleportService")
  251. local Players = game:GetService("Players")
  252. local LocalPlayer = Players.LocalPlayer
  253. local UserInputService = game:GetService("UserInputService")
  254. local LocalizationService = game:GetService("LocalizationService")
  255. local TweenService = game:GetService("TweenService")
  256. local VRService = game:GetService("VRService")
  257. local CaptureService = game:GetService("CaptureService")
  258.  
  259. local camera = workspace.CurrentCamera or workspace:FindFirstChildOfClass("Camera")
  260. if not camera then
  261. repeat task.wait() camera = workspace.CurrentCamera until camera
  262. end
  263.  
  264. local SCREEN_SIZE = camera.ViewportSize
  265. local platform = UserInputService:GetPlatform()
  266.  
  267. local IsOnMobile = (function() if platform == Enum.Platform.IOS or platform == Enum.Platform.Android or platform == Enum.Platform.AndroidTV or platform == Enum.Platform.Chromecast or platform == Enum.Platform.MetaOS then
  268. return true
  269. end
  270.  
  271. if platform == Enum.Platform.None then
  272. return UserInputService.TouchEnabled and not (UserInputService.KeyboardEnabled or UserInputService.MouseEnabled)
  273. end
  274.  
  275. return false
  276. end)()
  277.  
  278. local IsOnPC = (function() if platform == Enum.Platform.Windows or platform == Enum.Platform.OSX or platform == Enum.Platform.Linux or platform == Enum.Platform.SteamOS or platform == Enum.Platform.UWP or platform == Enum.Platform.DOS or platform == Enum.Platform.BeOS then
  279. return true
  280. end
  281.  
  282. if platform == Enum.Platform.None then
  283. return UserInputService.KeyboardEnabled or UserInputService.MouseEnabled
  284. end
  285.  
  286. return false
  287. end)()
  288.  
  289. local VREnabled = game:GetService("VRService").VREnabled
  290.  
  291. local queueteleport = (syn and syn.queue_on_teleport) or queue_on_teleport or (fluxus and fluxus.queue_on_teleport)
  292.  
  293. local httprequest = (syn and syn.request) or (http and http.request) or http_request or (fluxus and fluxus.request) or request
  294.  
  295.  
  296. --------------------------------------------------------------------------------------------------------------------
  297. local LocalizationService = game:GetService("LocalizationService")
  298. local TweenService = game:GetService("TweenService")
  299.  
  300.  
  301. -- ( Si exploit n'a pas la fonction http le script n'ext pas utilisable )
  302.  
  303. local requestFunc
  304.  
  305. local function detectHttp()
  306. return pcall(function()
  307. if syn and syn.request then
  308. requestFunc = syn.request
  309. elseif http and http.request then
  310. requestFunc = http.request
  311. elseif http_request then
  312. requestFunc = http_request
  313. elseif fluxus and fluxus.request then
  314. requestFunc = fluxus.request
  315. elseif request then
  316. requestFunc = request
  317. end
  318. end)
  319. end
  320.  
  321. -- retry sécurisé (2 tentatives)
  322. local success = false
  323. for _ = 1, 2 do
  324. local ok = detectHttp()
  325. if ok and requestFunc then
  326. success = true
  327. break
  328. end
  329. task.wait(0.05)
  330. end
  331.  
  332. local translations = {
  333. ["fr"] = "Aucune fonction HTTP supportée trouvée ! ⚠️",
  334. ["en"] = "No supported HTTP request function found! ⚠️",
  335. ["es"] = "¡No se encontró ninguna función HTTP compatible! ⚠️",
  336. ["pt"] = "Nenhuma função HTTP suportada encontrada! ⚠️",
  337. ["tr"] = "Desteklenen HTTP isteği işlevi bulunamadı! ⚠️",
  338. ["it"] = "Nessuna funzione HTTP supportata trovata! ⚠️",
  339. ["de"] = "Keine unterstützte HTTP-Anfragefunktion gefunden! ⚠️",
  340. ["ar"] = "لم يتم العثور على أي دالة HTTP مدعومة! ⚠️",
  341. ["ja"] = "サポートされているHTTPリクエスト機能が見つかりません!⚠️",
  342. ["ru"] = "Поддерживаемая функция HTTP-запроса не найдена! ⚠️",
  343. ["zh"] = "未找到受支持的HTTP请求函数!⚠️",
  344. }
  345.  
  346. local function getTranslatedMessage()
  347. local langCode = LocalizationService.RobloxLocaleId:sub(1, 2)
  348. return translations[langCode] or translations["en"]
  349. end
  350.  
  351.  
  352. local NotificationLib = {
  353. _notifications = {},
  354. _theme = {
  355. primaryColor = Color3.fromRGB(30,30,30),
  356. textColor = Color3.fromRGB(255,255,255),
  357. font = Enum.Font.GothamSemibold,
  358. cornerRadius = UDim.new(0,8)
  359. },
  360. _settings = {
  361. duration = 4,
  362. spacing = 12,
  363. fadeTime = 0.28,
  364. slideDistance = 18
  365. },
  366. _icons = { info = "rbxassetid://9405926389" }
  367. }
  368.  
  369. function NotificationLib:_init()
  370. if not self._container then
  371. self._container = Instance.new("ScreenGui")
  372. self._container.Name = "NotificationLibrary"
  373. self._container.ResetOnSpawn = false
  374. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  375. self._container.Parent = game:GetService("CoreGui")
  376. end
  377. end
  378.  
  379. function NotificationLib:_calculatePosition(index)
  380. local spacing = self._settings.spacing
  381. local height = 90
  382. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  383. end
  384.  
  385. function NotificationLib:_animateOut(frame, callback)
  386. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  387. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  388. BackgroundTransparency = 1
  389. })
  390. tween:Play()
  391. tween.Completed:Connect(function()
  392. if frame and frame.Parent then frame:Destroy() end
  393. if callback then callback() end
  394. end)
  395. end
  396.  
  397. function NotificationLib:Notify(opt)
  398. self:_init()
  399. opt = opt or {}
  400. local title = opt.Title or "Notification"
  401. local message = opt.Message or ""
  402. local duration = opt.Duration or self._settings.duration
  403.  
  404. local frame = Instance.new("Frame")
  405. frame.BackgroundColor3 = self._theme.primaryColor
  406. frame.Size = UDim2.new(0,340,0,90)
  407. frame.AnchorPoint = Vector2.new(1,1)
  408. frame.Position = self:_calculatePosition(#self._notifications+1)
  409. frame.Parent = self._container
  410. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  411.  
  412. local icon = Instance.new("ImageLabel", frame)
  413. icon.Image = self._icons.info
  414. icon.Size = UDim2.new(0,28,0,28)
  415. icon.Position = UDim2.new(0,12,0,12)
  416. icon.BackgroundTransparency = 1
  417.  
  418. local titleLabel = Instance.new("TextLabel", frame)
  419. titleLabel.Font = self._theme.font
  420. titleLabel.TextColor3 = self._theme.textColor
  421. titleLabel.TextSize = 16
  422. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  423. titleLabel.Text = title
  424. titleLabel.BackgroundTransparency = 1
  425. titleLabel.Size = UDim2.new(1,-60,0,22)
  426. titleLabel.Position = UDim2.new(0,48,0,10)
  427.  
  428. local msgLabel = Instance.new("TextLabel", frame)
  429. msgLabel.Font = Enum.Font.Gotham
  430. msgLabel.TextColor3 = self._theme.textColor
  431. msgLabel.TextSize = 14
  432. msgLabel.TextWrapped = true
  433. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  434. msgLabel.Text = message
  435. msgLabel.BackgroundTransparency = 1
  436. msgLabel.Size = UDim2.new(1,-60,0,48)
  437. msgLabel.Position = UDim2.new(0,48,0,30)
  438.  
  439. table.insert(self._notifications, frame)
  440.  
  441. task.delay(duration, function()
  442. if frame and frame.Parent then
  443. self:_animateOut(frame,function()
  444. for i,v in ipairs(self._notifications) do
  445. if v==frame then table.remove(self._notifications,i); break end
  446. end
  447. end)
  448. end
  449. end)
  450. end
  451.  
  452. if not success then
  453. warn("HTTP ERROR , No supported HTTP request function found!")
  454.  
  455. -- Si aucune fonction HTTP trouvée : affiche notif et stop
  456.  
  457. NotificationLib:Notify({
  458. Title = "HTTP ERROR",
  459. Message = getTranslatedMessage(),
  460. Duration = 5
  461. })
  462. return
  463. end
  464. --------------------------------------------------------------------------------------------------------------------
  465.  
  466. local screenGui = Instance.new("ScreenGui", game:GetService("CoreGui"))
  467.  
  468. -- Essayer de créer un parent vers un emplacement protégé
  469. pcall(function()
  470. if gethui then
  471. screenGui.Parent = gethui()
  472. elseif syn and syn.protect_gui then
  473. syn.protect_gui(screenGui)
  474. screenGui.Parent = game:GetService("CoreGui")
  475. else
  476. screenGui.Parent = game:GetService("CoreGui")
  477. end
  478. end)
  479.  
  480. if not screenGui.Parent then
  481. screenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
  482. end
  483.  
  484.  
  485. local mainFrame = Instance.new("Frame", screenGui)
  486. mainFrame.Size = UDim2.new(0, 650, 0, 500)
  487. mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
  488. mainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
  489. mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  490. mainFrame.BorderSizePixel = 0
  491.  
  492. -- Détection des Screen
  493.  
  494. if isOnMobile or SCREEN_SIZE.X < 800 then
  495. mainFrame.Size = UDim2.new(0, 800, 0, 600)
  496. else
  497. mainFrame.Size = UDim2.new(0, 650, 0, 500)
  498. end
  499.  
  500. local dragging, dragInput, dragStart, startPos
  501. local function updateDrag(input)
  502. local delta = input.Position - dragStart
  503. local pos = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
  504. startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  505. TweenService:Create(mainFrame, TweenInfo.new(0.15), {Position = pos}):Play()
  506. end
  507.  
  508. mainFrame.InputBegan:Connect(function(input)
  509. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  510. dragging = true
  511. dragStart = input.Position
  512. startPos = mainFrame.Position
  513. input.Changed:Connect(function()
  514. if input.UserInputState == Enum.UserInputState.End then dragging = false end
  515. end)
  516. end
  517. end)
  518.  
  519. mainFrame.InputChanged:Connect(function(input)
  520. if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  521. dragInput = input
  522. end
  523. end)
  524.  
  525. UserInputService.InputChanged:Connect(function(input)
  526. if dragging and input == dragInput then updateDrag(input) end
  527. end)
  528.  
  529. -- Logo Server Finder Deluxe
  530. local logo = Instance.new("ImageLabel")
  531. logo.Name = "BackgroundLogoServeFinderDeluxe"
  532. logo.Parent = mainFrame
  533. logo.Size = UDim2.new(0.8, 0, 0.8, 0)
  534. logo.Position = UDim2.new(0.5, 0, 0.5, 0)
  535. logo.AnchorPoint = Vector2.new(0.5, 0.5)
  536. logo.BackgroundTransparency = 1
  537. logo.ImageTransparency = 0.88
  538. logo.ScaleType = Enum.ScaleType.Fit
  539. logo.ZIndex = 2
  540.  
  541.  
  542. local function loadLogo()
  543. repeat
  544. if mainFrame.Parent then
  545. local success = pcall(function()
  546. logo.Image = "http://www.roblox.com/asset/?id=75503909317175"
  547. end)
  548. if success and logo.Image and logo.Image ~= "" then
  549. break
  550. end
  551. end
  552. task.wait(0.5)
  553. until logo.Image and logo.Image ~= ""
  554. end
  555.  
  556. task.defer(loadLogo)
  557.  
  558.  
  559. --------------------------------------------------------------------------------------------------------------------
  560.  
  561. -- Message Fête events et traduction
  562.  
  563. local TweenService = game:GetService("TweenService")
  564. local LocalizationService = game:GetService("LocalizationService")
  565.  
  566. -- 🎉 Détection des périodes spéciales (protégée par pcall)
  567. local isXmas, isNewYear, isEaster, isHalloween, isValentine = false, false, false, false, false
  568.  
  569. pcall(function()
  570. local date = os.date("*t")
  571. isXmas = date.month == 12 and date.day >= 15 and date.day <= 29
  572. isHalloween = (date.month == 10 and date.day >= 23) or (date.month == 11 and date.day <= 1)
  573. isNewYear = (date.month == 12 and date.day >= 30) or (date.month == 1 and date.day <= 2)
  574. isEaster = (date.month == 3 and date.day >= 31) or (date.month == 4 and date.day <= 15)
  575. isValentine = (date.month == 2 and date.day == 14)
  576. end)
  577.  
  578. -- 🌎 Traductions multilingues par fête
  579. local holidayTexts = {
  580. Christmas = {
  581. ["fr"] = "🎄 Joyeux Noël !",
  582. ["en"] = "🎄 Merry Christmas!",
  583. ["es"] = "🎄 ¡Feliz Navidad!",
  584. ["pt"] = "🎄 Feliz Natal!",
  585. ["tr"] = "🎄 Mutlu Noeller!",
  586. ["it"] = "🎄 Buon Natale!",
  587. ["de"] = "🎄 Frohe Weihnachten!",
  588. ["ar"] = "🎄 عيد ميلاد سعيد!",
  589. ["ja"] = "🎄 メリークリスマス!",
  590. ["ru"] = "🎄 С Рождеством!",
  591. ["zh"] = "🎄 圣诞快乐!"
  592. },
  593. NewYear = {
  594. ["fr"] = "🎉 Bonne année !",
  595. ["en"] = "🎉 Happy New Year!",
  596. ["es"] = "🎉 ¡Feliz Año Nuevo!",
  597. ["pt"] = "🎉 Feliz Ano Novo!",
  598. ["tr"] = "🎉 Mutlu Yıllar!",
  599. ["it"] = "🎉 Buon Anno!",
  600. ["de"] = "🎉 Frohes Neues Jahr!",
  601. ["ar"] = "🎉 سنة جديدة سعيدة!",
  602. ["ja"] = "🎉 明けましておめでとう!",
  603. ["ru"] = "🎉 С Новым годом!",
  604. ["zh"] = "🎉 新年快乐!"
  605. },
  606. Easter = {
  607. ["fr"] = "🐰 Joyeuses Pâques !",
  608. ["en"] = "🐰 Happy Easter!",
  609. ["es"] = "🐰 ¡Feliz Pascua!",
  610. ["pt"] = "🐰 Feliz Páscoa!",
  611. ["tr"] = "🐰 Mutlu Paskalyalar!",
  612. ["it"] = "🐰 Buona Pasqua!",
  613. ["de"] = "🐰 Frohe Ostern!",
  614. ["ar"] = "🐰 عيد فصح سعيد!",
  615. ["ja"] = "🐰 ハッピーイースター!",
  616. ["ru"] = "🐰 С Пасхой!",
  617. ["zh"] = "🐰 复活节快乐!"
  618. },
  619. Halloween = {
  620. ["fr"] = "🎃 Joyeux Halloween !",
  621. ["en"] = "🎃 Happy Halloween!",
  622. ["es"] = "🎃 ¡Feliz Halloween!",
  623. ["pt"] = "🎃 Feliz Dia das Bruxas!",
  624. ["tr"] = "🎃 Mutlu Cadılar Bayramı!",
  625. ["it"] = "🎃 Buon Halloween!",
  626. ["de"] = "🎃 Frohes Halloween!",
  627. ["ar"] = "🎃 عيد هالوين سعيد!",
  628. ["ja"] = "🎃 ハッピーハロウィン!",
  629. ["ru"] = "🎃 С Хэллоуином!",
  630. ["zh"] = "🎃 万圣节快乐!"
  631. },
  632. Valentine = {
  633. ["fr"] = "💖 Bonne Saint-Valentin !",
  634. ["en"] = "💖 Happy Valentine's Day!",
  635. ["es"] = "💖 ¡Feliz Día de San Valentín!",
  636. ["pt"] = "💖 Feliz Dia dos Namorados!",
  637. ["tr"] = "💖 Sevgililer Gününüz Kutlu Olsun!",
  638. ["it"] = "💖 Buon San Valentino!",
  639. ["de"] = "💖 Alles Gute zum Valentinstag!",
  640. ["ar"] = "💖 عيد حب سعيد!",
  641. ["ja"] = "💖 ハッピーバレンタイン!",
  642. ["ru"] = "💖 С Днем Святого Валентина!",
  643. ["zh"] = "💖 情人节快乐!"
  644. },
  645. Welcome = {
  646. ["fr"] = "👋 Bienvenue sur Server Finder Deluxe !",
  647. ["en"] = "👋 Welcome to Server Finder Deluxe!",
  648. ["es"] = "👋 ¡Bienvenido a Server Finder Deluxe!",
  649. ["pt"] = "👋 Bem-vindo ao Server Finder Deluxe!",
  650. ["tr"] = "👋 Server Finder Deluxe'a Hoş Geldiniz!",
  651. ["it"] = "👋 Benvenuto su Server Finder Deluxe!",
  652. ["de"] = "👋 Willkommen bei Server Finder Deluxe!",
  653. ["ar"] = "👋 مرحبًا بك في Server Finder Deluxe!",
  654. ["ja"] = "👋 Server Finder Deluxeへようこそ!",
  655. ["ru"] = "👋 Добро пожаловать в Server Finder Deluxe!",
  656. ["zh"] = "👋 欢迎使用 Server Finder Deluxe!"
  657. }
  658. }
  659.  
  660.  
  661. local function getHolidayMessage(eventKey)
  662. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  663. local eventTable = holidayTexts[eventKey]
  664. return eventTable and (eventTable[langCode] or eventTable["en"]) or "Happy holidays! 🎉"
  665. end
  666.  
  667.  
  668. local NotificationLib = {
  669. _notifications = {},
  670. _theme = {
  671. primaryColor = Color3.fromRGB(30, 30, 30),
  672. textColor = Color3.fromRGB(255, 255, 255),
  673. font = Enum.Font.GothamSemibold,
  674. cornerRadius = UDim.new(0, 8)
  675. },
  676. _settings = {
  677. duration = 4,
  678. spacing = 12,
  679. fadeTime = 0.28,
  680. slideDistance = 18
  681. },
  682. _icons = { info = "rbxassetid://9405926389" }
  683. }
  684.  
  685. function NotificationLib:_init()
  686. if not self._container then
  687. self._container = Instance.new("ScreenGui")
  688. self._container.Name = "NotificationLibrary"
  689. self._container.ResetOnSpawn = false
  690. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  691. self._container.Parent = game:GetService("CoreGui")
  692. end
  693. end
  694.  
  695. function NotificationLib:_calculatePosition(index)
  696. local spacing = self._settings.spacing
  697. local height = 90
  698. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  699. end
  700.  
  701. function NotificationLib:_animateOut(frame, callback)
  702. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  703. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  704. BackgroundTransparency = 1
  705. })
  706. tween:Play()
  707. tween.Completed:Connect(function()
  708. if frame and frame.Parent then frame:Destroy() end
  709. if callback then callback() end
  710. end)
  711. end
  712.  
  713. function NotificationLib:Notify(opt)
  714. self:_init()
  715. opt = opt or {}
  716. local title = opt.Title or "Notification"
  717. local message = opt.Message or ""
  718. local duration = opt.Duration or self._settings.duration
  719.  
  720. local frame = Instance.new("Frame")
  721. frame.BackgroundColor3 = self._theme.primaryColor
  722. frame.Size = UDim2.new(0, 340, 0, 90)
  723. frame.AnchorPoint = Vector2.new(1,1)
  724. frame.Position = self:_calculatePosition(#self._notifications + 1)
  725. frame.Parent = self._container
  726. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  727.  
  728. local icon = Instance.new("ImageLabel", frame)
  729. icon.Image = self._icons.info
  730. icon.Size = UDim2.new(0,28,0,28)
  731. icon.Position = UDim2.new(0,12,0,12)
  732. icon.BackgroundTransparency = 1
  733.  
  734. local titleLabel = Instance.new("TextLabel", frame)
  735. titleLabel.Font = self._theme.font
  736. titleLabel.TextColor3 = self._theme.textColor
  737. titleLabel.TextSize = 16
  738. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  739. titleLabel.Text = title
  740. titleLabel.BackgroundTransparency = 1
  741. titleLabel.Size = UDim2.new(1,-60,0,22)
  742. titleLabel.Position = UDim2.new(0,48,0,10)
  743.  
  744. local msgLabel = Instance.new("TextLabel", frame)
  745. msgLabel.Font = Enum.Font.Gotham
  746. msgLabel.TextColor3 = self._theme.textColor
  747. msgLabel.TextSize = 14
  748. msgLabel.TextWrapped = true
  749. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  750. msgLabel.Text = message
  751. msgLabel.BackgroundTransparency = 1
  752. msgLabel.Size = UDim2.new(1,-60,0,48)
  753. msgLabel.Position = UDim2.new(0,48,0,30)
  754.  
  755. table.insert(self._notifications, frame)
  756.  
  757. task.delay(duration, function()
  758. if frame and frame.Parent then
  759. self:_animateOut(frame, function()
  760. for i,v in ipairs(self._notifications) do
  761. if v == frame then table.remove(self._notifications,i); break end
  762. end
  763. end)
  764. end
  765. end)
  766. end
  767.  
  768. -- 💌 Notification automatique selon la fête détectée
  769. local eventName
  770. local message
  771.  
  772. if isXmas then
  773. eventName = "🎄 Christmas"
  774. message = getHolidayMessage("Christmas")
  775. elseif isNewYear then
  776. eventName = "🎉 New Year"
  777. message = getHolidayMessage("NewYear")
  778. elseif isEaster then
  779. eventName = "🐰 Easter"
  780. message = getHolidayMessage("Easter")
  781. elseif isHalloween then
  782. eventName = "🎃 Halloween"
  783. message = getHolidayMessage("Halloween")
  784. elseif isValentine then
  785. eventName = "💖 Valentine's Day"
  786. message = getHolidayMessage("Valentine")
  787. else
  788. eventName = "👋 Welcome"
  789. message = getHolidayMessage("Welcome")
  790. end
  791.  
  792. task.wait(2)
  793. NotificationLib:Notify({
  794. Title = eventName,
  795. Message = message,
  796. Duration = 6
  797. })
  798.  
  799.  
  800. --------------------------------------------------------------------------------------------------------------------
  801.  
  802. -- protection lors du screen shot le Gui deviendras invisible lors du screen shot
  803.  
  804. pcall(function()
  805. local CaptureService = game:GetService("CaptureService")
  806.  
  807. CaptureService.CaptureBegan:Connect(function()
  808. screenGui.Enabled = false
  809. end)
  810.  
  811. CaptureService.CaptureEnded:Connect(function()
  812. task.delay(0.5, function()
  813. screenGui.Enabled = true
  814. end)
  815. end)
  816. end)
  817.  
  818. --------------------------------------------------------------------------------------------------------------------
  819.  
  820. -- Titre du Gui et la Version
  821.  
  822. local title = Instance.new("TextLabel", mainFrame)
  823. title.Size = UDim2.new(1, 0, 0, 40)
  824. title.Position = UDim2.new(0, 0, 0, 0)
  825. title.BackgroundTransparency = 1
  826. title.Text = "Server Finder Deluxe"
  827. title.Font = Enum.Font.Ubuntu
  828. title.TextSize = 30
  829. title.TextColor3 = Color3.fromRGB(255, 255, 255)
  830.  
  831. local versionLabel = Instance.new("TextLabel", mainFrame)
  832. versionLabel.Size = UDim2.new(0, 150, 0, 25)
  833. versionLabel.Position = UDim2.new(0, 10, 0, 10)
  834. versionLabel.BackgroundTransparency = 1
  835. versionLabel.Text = "v5.5"
  836. versionLabel.Font = Enum.Font.Ubuntu
  837. versionLabel.TextSize = 16
  838. versionLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  839. versionLabel.TextXAlignment = Enum.TextXAlignment.Left
  840.  
  841. --------------------------------------------------------------------------------------------------------------------
  842.  
  843. -- Détection des périodes spéciales
  844.  
  845. local isXmas = false
  846. local isHalloween = false
  847. local isNewYear = false
  848. local isEaster = false
  849. local isValentineDay = false
  850.  
  851. pcall(function()
  852. local date = os.date("*t")
  853. isXmas = date.month == 12 and date.day >= 15 and date.day <= 29
  854. isHalloween = (date.month == 10 and date.day >= 23) or (date.month == 11 and date.day <= 1)
  855. isNewYear = (date.month == 12 and date.day >= 30) or (date.month == 1 and date.day <= 2)
  856. isEaster = (date.month == 3 and date.day >= 31) or (date.month == 4 and date.day <= 15)
  857. isValentineDay = (date.month == 2 and date.day == 14)
  858. end)
  859.  
  860. -- Fonction pour appliquer les effets de texte
  861. local function decorateTitle(startEmoji, endEmoji)
  862. title.Text = startEmoji .. " Server Finder Deluxe " .. endEmoji
  863. title.TextScaled = false
  864. title.TextSize = 25
  865. title.Position = UDim2.new(0, 0, 0, 2)
  866. end
  867.  
  868.  
  869. -- Effet Noël
  870. if isXmas then
  871. decorateTitle("🎄", "🎄")
  872. local cycleColors = {
  873. Color3.fromRGB(0, 255, 0),
  874. Color3.fromRGB(255, 0, 0),
  875. Color3.fromRGB(255, 255, 255)
  876. }
  877. local index = 1
  878. task.spawn(function()
  879. while true do
  880. title.TextColor3 = cycleColors[index]
  881. versionLabel.TextColor3 = cycleColors[index]
  882. index = index % #cycleColors + 1
  883. task.wait(0.5)
  884. end
  885. end)
  886. end
  887.  
  888. -- Effet Halloween
  889. if isHalloween then
  890. decorateTitle("🎃", "🎃")
  891. local cycleColors = {
  892. Color3.fromRGB(0, 0, 0),
  893. Color3.fromRGB(255, 165, 0)
  894. }
  895. local index = 1
  896. task.spawn(function()
  897. while true do
  898. title.TextColor3 = cycleColors[index]
  899. versionLabel.TextColor3 = cycleColors[index]
  900. index = index % #cycleColors + 1
  901. task.wait(0.5)
  902. end
  903. end)
  904. end
  905.  
  906. -- Effet Nouvel An
  907. if isNewYear then
  908. decorateTitle("🎉", "🎉")
  909. local cycleColors = {
  910. Color3.fromRGB(255, 255, 0),
  911. Color3.fromRGB(0, 0, 0)
  912. }
  913. local index = 1
  914. task.spawn(function()
  915. while true do
  916. title.TextColor3 = cycleColors[index]
  917. versionLabel.TextColor3 = cycleColors[index]
  918. index = index % #cycleColors + 1
  919. task.wait(0.5)
  920. end
  921. end)
  922. end
  923.  
  924. -- Effet Pâques
  925. if isEaster then
  926. decorateTitle("🐰", "🐰")
  927. local cycleColors = {
  928. Color3.fromRGB(216, 191, 216),
  929. Color3.fromRGB(255, 182, 193),
  930. Color3.fromRGB(193, 225, 193),
  931. Color3.fromRGB(173, 216, 230)
  932. }
  933. local index = 1
  934. task.spawn(function()
  935. while true do
  936. title.TextColor3 = cycleColors[index]
  937. versionLabel.TextColor3 = cycleColors[index]
  938. index = index % #cycleColors + 1
  939. task.wait(0.5)
  940. end
  941. end)
  942. end
  943.  
  944. -- Effet ValentineDay
  945. if isValentineDay then
  946. decorateTitle("💗", "💗")
  947. local cycleColors = {
  948. Color3.fromRGB(0, 0, 0),
  949. Color3.fromRGB( 255, 85, 127)
  950. }
  951. local index = 1
  952. task.spawn(function()
  953. while true do
  954. title.TextColor3 = cycleColors[index]
  955. versionLabel.TextColor3 = cycleColors[index]
  956. index = index % #cycleColors + 1
  957. task.wait(0.5)
  958. end
  959. end)
  960. end
  961.  
  962.  
  963. -- Si aucune fête, retour à la normale
  964. if not isXmas and not isHalloween and not isNewYear and not isEaster and not isValentineDay then
  965. title.Text = "Server Finder Deluxe"
  966. title.Position = UDim2.new(0, 0, 0, 0)
  967. end
  968.  
  969. --------------------------------------------------------------------------------------------------------------------
  970.  
  971.  
  972.  
  973. local scrollFrame = Instance.new("ScrollingFrame", mainFrame)
  974. scrollFrame.Size = UDim2.new(1, -20, 1, -60)
  975. scrollFrame.Position = UDim2.new(0, 10, 0, 50)
  976. scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
  977. scrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
  978. scrollFrame.ScrollBarThickness = 6
  979. scrollFrame.BackgroundTransparency = 1
  980. scrollFrame.ClipsDescendants = true
  981.  
  982. local layout = Instance.new("UIListLayout", scrollFrame)
  983. layout.SortOrder = Enum.SortOrder.LayoutOrder
  984. layout.Padding = UDim.new(0, 10)
  985. layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
  986.  
  987. local isScrolling = false
  988.  
  989. scrollFrame.InputBegan:Connect(function(input)
  990. if input.UserInputType == Enum.UserInputType.MouseWheel or input.UserInputType == Enum.UserInputType.Touch then
  991. isScrolling = true
  992. mainFrame.Active = false
  993. end
  994. end)
  995.  
  996. scrollFrame.InputEnded:Connect(function(input)
  997. if input.UserInputType == Enum.UserInputType.MouseWheel or input.UserInputType == Enum.UserInputType.Touch then
  998. task.delay(0.1, function()
  999. isScrolling = false
  1000. mainFrame.Active = true
  1001. end)
  1002. end
  1003. end)
  1004.  
  1005. --------------------------------------------------------------------------------------------------------------------
  1006.  
  1007. local posChange = 8
  1008. local serverFrames = {}
  1009.  
  1010. -- Le code qui scann tout les servers publics
  1011.  
  1012. local function GetAllServers(PlaceID)
  1013. getgenv().NextServer = nil
  1014. getgenv().HasScannedAll = false
  1015. local T = {}
  1016. xpcall(function()
  1017. local Site = HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Desc&limit=100'))
  1018. if Site.nextPageCursor and Site.nextPageCursor ~= "null" then
  1019. getgenv().NextServer = HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Desc&limit=100&cursor=' .. Site.nextPageCursor))
  1020. table.insert(T, (getgenv().NextServer).data)
  1021. while not getgenv().HasScannedAll do
  1022. task.wait()
  1023. if (getgenv().NextServer).nextPageCursor and (getgenv().NextServer).nextPageCursor ~= "null" then
  1024. getgenv().NextServer = HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Desc&limit=100&cursor=' .. (getgenv().NextServer).nextPageCursor))
  1025. table.insert(T, (getgenv().NextServer).data)
  1026. else
  1027. getgenv().HasScannedAll = true
  1028. end
  1029. end
  1030. else
  1031. table.insert(T, Site.data)
  1032. end
  1033. end,function()
  1034.  
  1035. end)
  1036. return T
  1037. end
  1038. --------------------------------------------------------------------------------------------------------------------
  1039.  
  1040. -- Frame avec les Pings des connections des servers public et le nombre de players dans les servers publics
  1041.  
  1042. local function CreateServerFrame(server)
  1043. local serverFrame = Instance.new("Frame", scrollFrame)
  1044. serverFrame.Size = UDim2.new(1, 0, 0, 120)
  1045. serverFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
  1046. serverFrame.BorderSizePixel = 0
  1047.  
  1048. -- Textlabel Pour le nombre de joueurs, ping du servers , et le nombre Maximal du servers public.
  1049.  
  1050. local infoLabel = Instance.new("TextLabel", serverFrame)
  1051. infoLabel.Size = UDim2.new(0, 300, 0, 60)
  1052. infoLabel.Position = UDim2.new(0, 10, 0, 10)
  1053. infoLabel.BackgroundTransparency = 1
  1054. infoLabel.TextWrapped = true
  1055. infoLabel.TextXAlignment = Enum.TextXAlignment.Left
  1056. infoLabel.TextYAlignment = Enum.TextYAlignment.Top
  1057. infoLabel.Font = Enum.Font.Ubuntu
  1058. infoLabel.TextSize = 16
  1059. infoLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1060. infoLabel.ZIndex = 3
  1061. local fps = math.floor(1000 / (server.ping or 1))
  1062. infoLabel.Text = "Ping : " .. (server.ping or "N/A") ..
  1063. "\nFPS : " .. fps ..
  1064. "\nPlayers : " .. server.playing .. "/" .. server.maxPlayers
  1065.  
  1066. -- ID du Jeux
  1067.  
  1068. local placeIdLabel = Instance.new("TextLabel", serverFrame)
  1069. placeIdLabel.Size = UDim2.new(0, 300, 0, 20)
  1070. placeIdLabel.Position = UDim2.new(0, 10, 0, 76)
  1071. placeIdLabel.BackgroundTransparency = 1
  1072. placeIdLabel.TextWrapped = true
  1073. placeIdLabel.TextXAlignment = Enum.TextXAlignment.Left
  1074. placeIdLabel.TextYAlignment = Enum.TextYAlignment.Top
  1075. placeIdLabel.Font = Enum.Font.Ubuntu
  1076. placeIdLabel.TextSize = 14
  1077. placeIdLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  1078. placeIdLabel.Text = "Game ID : " .. tostring(game.PlaceId)
  1079. placeIdLabel.ZIndex = 4
  1080.  
  1081. -- ID des Servers Publics
  1082.  
  1083. local idLabel = Instance.new("TextLabel", serverFrame)
  1084. idLabel.Size = UDim2.new(0, 300, 0, 20)
  1085. idLabel.Position = UDim2.new(0, 10, 0, 94)
  1086. idLabel.BackgroundTransparency = 1
  1087. idLabel.TextWrapped = true
  1088. idLabel.TextXAlignment = Enum.TextXAlignment.Left
  1089. idLabel.TextYAlignment = Enum.TextYAlignment.Top
  1090. idLabel.Font = Enum.Font.Ubuntu
  1091. idLabel.TextSize = 14
  1092. idLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  1093. idLabel.Text = "ID : " .. server.id
  1094. idLabel.ZIndex = 4
  1095.  
  1096. -- Les buttons rejoint pour tout les Servers public obtenu
  1097.  
  1098. local joinButton = Instance.new("TextButton", serverFrame)
  1099. joinButton.Size = UDim2.new(0, 100, 0, 40)
  1100. joinButton.Position = UDim2.new(1, -110, 0.5, -20)
  1101. joinButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
  1102. joinButton.Text = "Join"
  1103. joinButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  1104. joinButton.Font = Enum.Font.Ubuntu
  1105. joinButton.TextSize = 18
  1106. joinButton.ZIndex = 4
  1107.  
  1108. joinButton.MouseButton1Click:Connect(function()
  1109. TeleportService:TeleportToPlaceInstance(game.PlaceId, server.id, LocalPlayer)
  1110. end)
  1111.  
  1112. -- Les boutons Copy Server ID
  1113.  
  1114. local copyJoinButton = Instance.new("TextButton", serverFrame)
  1115. copyJoinButton.Size = UDim2.new(0, 100, 0, 30)
  1116. copyJoinButton.Position = UDim2.new(1, -110, 0.5, 25)
  1117. copyJoinButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
  1118. copyJoinButton.Text = "Copy Join"
  1119. copyJoinButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  1120. copyJoinButton.Font = Enum.Font.Ubuntu
  1121. copyJoinButton.TextSize = 16
  1122. copyJoinButton.ZIndex = 4
  1123.  
  1124. copyJoinButton.MouseButton1Click:Connect(function()
  1125. local joinCommand = "Roblox.GameLauncher.joinGameInstance(" .. game.PlaceId .. ', "' .. server.id .. '")'
  1126. setclipboard(joinCommand)
  1127. end)
  1128.  
  1129. table.insert(serverFrames, serverFrame)
  1130. end
  1131.  
  1132. --------------------------------------------------------------------------------------------------------------------
  1133.  
  1134. -- Global Servers
  1135. local allServers = {}
  1136. local fpsCheckInterval = 1
  1137. local minFPS = 21
  1138. local maxPing = 350 -- au-dessus de ça on passe en mode fluide
  1139. local smoothMode = false
  1140.  
  1141. -- FPS Calculateurs
  1142. local RunService = game:GetService("RunService")
  1143. local lastTime = tick()
  1144. local frames = 0
  1145.  
  1146. RunService.RenderStepped:Connect(function()
  1147. frames += 1
  1148. if tick() - lastTime >= fpsCheckInterval then
  1149. local fps = frames / (tick() - lastTime)
  1150. smoothMode = fps < minFPS -- si FPS trop bas, mode fluide
  1151. frames = 0
  1152. lastTime = tick()
  1153. end
  1154. end)
  1155.  
  1156. -- Vérifie si un serveur a un ping trop élevé
  1157. local function hasHighPing(servers)
  1158. if typeof(servers) ~= "table" then return false end
  1159. for _, server in ipairs(servers) do
  1160. if (server.ping or 0) > maxPing then
  1161. return true
  1162. end
  1163. end
  1164. return false
  1165. end
  1166.  
  1167. function updateServerList(servers)
  1168. -- sécurité
  1169. if typeof(servers) ~= "table" then return end
  1170.  
  1171. for _, v in pairs(serverFrames) do
  1172. v:Destroy()
  1173. end
  1174. posChange = 8
  1175. table.clear(serverFrames)
  1176.  
  1177. -- si FPS bas OU pings trop élevés
  1178. if smoothMode or hasHighPing(servers) then
  1179. task.spawn(function()
  1180. for _, server in ipairs(servers) do
  1181. CreateServerFrame(server)
  1182. posChange += 154
  1183. task.wait(0.05)
  1184. end
  1185. end)
  1186. else
  1187. for _, server in ipairs(servers) do
  1188. CreateServerFrame(server)
  1189. posChange += 154
  1190. end
  1191. end
  1192. end
  1193.  
  1194. function refreshServers()
  1195. local servers = GetAllServers(game.PlaceId)
  1196.  
  1197. -- sécurité : vérifie que servers est bien une table et contient quelque chose
  1198. if typeof(servers) == "table" and #servers > 0 then
  1199. allServers = servers[1] or {}
  1200. updateServerList(allServers)
  1201. else
  1202. warn("No server found or API error")
  1203. showErrorTween()
  1204. end
  1205. end
  1206.  
  1207.  
  1208.  
  1209. refreshServers()
  1210.  
  1211. UserInputService.InputBegan:Connect(function(input, gameProcessed)
  1212. if gameProcessed then return end
  1213. if input.KeyCode == Enum.KeyCode.RightControl then
  1214. screenGui:Destroy()
  1215. end
  1216. end)
  1217.  
  1218.  
  1219. --------------------------------------------------------------------------------------------------------------------
  1220.  
  1221. -- Fonction de notification d'erreur
  1222.  
  1223. local TweenService = game:GetService("TweenService")
  1224. local LocalizationService = game:GetService("LocalizationService")
  1225.  
  1226. -- Traductions
  1227. local langText = {
  1228. ["fr"] = "Erreur de chargement. Réessaie.",
  1229. ["en"] = "Error loading. Please try again.",
  1230. ["es"] = "Error al cargar. Inténtalo de nuevo.",
  1231. ["pt"] = "Erro ao carregar. Por favor, tente novamente.",
  1232. ["tr"] = "Yükleme hatası. Lütfen tekrar deneyin.",
  1233. ["it"] = "Errore nel caricamento. Riprova.",
  1234. ["de"] = "Fehler beim Laden. Bitte versuche es erneut.",
  1235. ["ar"] = "حدث خطأ أثناء التحميل. الرجاء المحاولة مرة أخرى.",
  1236. ["ja"] = "読み込みエラーが発生しました。もう一度お試しください。",
  1237. ["ru"] = "Ошибка загрузки. Пожалуйста, попробуйте еще раз.",
  1238. ["zh"] = "加载错误。请重试。"
  1239. }
  1240.  
  1241. local function getTranslatedMessage()
  1242. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  1243. return langText[langCode] or langText["en"]
  1244. end
  1245.  
  1246.  
  1247. local NotificationLib = {
  1248. _notifications = {},
  1249. _theme = {
  1250. primaryColor = Color3.fromRGB(30, 30, 30),
  1251. textColor = Color3.fromRGB(255, 255, 255),
  1252. font = Enum.Font.GothamSemibold,
  1253. cornerRadius = UDim.new(0, 8)
  1254. },
  1255. _settings = {
  1256. duration = 4,
  1257. spacing = 12,
  1258. fadeTime = 0.28,
  1259. slideDistance = 18
  1260. },
  1261. _icons = { info = "rbxassetid://9405926389" }
  1262. }
  1263.  
  1264. function NotificationLib:_init()
  1265. if not self._container then
  1266. self._container = Instance.new("ScreenGui")
  1267. self._container.Name = "NotificationLibrary"
  1268. self._container.ResetOnSpawn = false
  1269. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1270. self._container.Parent = game:GetService("CoreGui")
  1271. end
  1272. end
  1273.  
  1274. function NotificationLib:_calculatePosition(index)
  1275. local spacing = self._settings.spacing
  1276. local height = 90
  1277. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  1278. end
  1279.  
  1280. function NotificationLib:_animateOut(frame, callback)
  1281. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  1282. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  1283. BackgroundTransparency = 1
  1284. })
  1285. tween:Play()
  1286. tween.Completed:Connect(function()
  1287. if frame and frame.Parent then frame:Destroy() end
  1288. if callback then callback() end
  1289. end)
  1290. end
  1291.  
  1292. function NotificationLib:Notify(opt)
  1293. self:_init()
  1294. opt = opt or {}
  1295. local title = opt.Title or "Notification"
  1296. local message = opt.Message or ""
  1297. local duration = opt.Duration or self._settings.duration
  1298.  
  1299. local frame = Instance.new("Frame")
  1300. frame.BackgroundColor3 = self._theme.primaryColor
  1301. frame.Size = UDim2.new(0, 340, 0, 90)
  1302. frame.AnchorPoint = Vector2.new(1,1)
  1303. frame.Position = self:_calculatePosition(#self._notifications + 1)
  1304. frame.Parent = self._container
  1305. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  1306.  
  1307. local icon = Instance.new("ImageLabel", frame)
  1308. icon.Image = self._icons.info
  1309. icon.Size = UDim2.new(0,28,0,28)
  1310. icon.Position = UDim2.new(0,12,0,12)
  1311. icon.BackgroundTransparency = 1
  1312.  
  1313. local titleLabel = Instance.new("TextLabel", frame)
  1314. titleLabel.Font = self._theme.font
  1315. titleLabel.TextColor3 = self._theme.textColor
  1316. titleLabel.TextSize = 16
  1317. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  1318. titleLabel.Text = title
  1319. titleLabel.BackgroundTransparency = 1
  1320. titleLabel.Size = UDim2.new(1,-60,0,22)
  1321. titleLabel.Position = UDim2.new(0,48,0,10)
  1322.  
  1323. local msgLabel = Instance.new("TextLabel", frame)
  1324. msgLabel.Font = Enum.Font.Gotham
  1325. msgLabel.TextColor3 = self._theme.textColor
  1326. msgLabel.TextSize = 14
  1327. msgLabel.TextWrapped = true
  1328. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  1329. msgLabel.Text = message
  1330. msgLabel.BackgroundTransparency = 1
  1331. msgLabel.Size = UDim2.new(1,-60,0,48)
  1332. msgLabel.Position = UDim2.new(0,48,0,30)
  1333.  
  1334. table.insert(self._notifications, frame)
  1335.  
  1336. task.delay(duration, function()
  1337. if frame and frame.Parent then
  1338. self:_animateOut(frame, function()
  1339. for i,v in ipairs(self._notifications) do
  1340. if v == frame then table.remove(self._notifications,i); break end
  1341. end
  1342. end)
  1343. end
  1344. end)
  1345. end
  1346.  
  1347. -- Bouton Refresh
  1348. local function CreateRefreshButton(mainFrame)
  1349. local refreshBtn = Instance.new("ImageButton")
  1350. refreshBtn.Parent = mainFrame
  1351. refreshBtn.AnchorPoint = Vector2.new(0.5,0.5)
  1352. refreshBtn.Size = UDim2.new(0,47,0,47)
  1353. refreshBtn.Position = UDim2.new(0.5,250,0.5,-220)
  1354. refreshBtn.Image = "http://www.roblox.com/asset/?id=126446661859683"
  1355. refreshBtn.BackgroundTransparency = 1
  1356. refreshBtn.ZIndex = 7
  1357.  
  1358. refreshBtn.MouseButton1Click:Connect(function()
  1359. local success, err = pcall(refreshServers)
  1360. if not success then
  1361. NotificationLib:Notify({
  1362. Title = "Error",
  1363. Message = getTranslatedMessage(),
  1364. Duration = 4
  1365. })
  1366. end
  1367. end)
  1368.  
  1369. return refreshBtn
  1370. end
  1371.  
  1372.  
  1373. local refreshBtn = CreateRefreshButton(mainFrame)
  1374.  
  1375. --------------------------------------------------------------------------------------------------------------------
  1376.  
  1377. -- Le button Low Players et Max Players
  1378.  
  1379. local function sortServers(servers, currentSort)
  1380. if typeof(servers) ~= "table" then return {} end
  1381.  
  1382. if currentSort == "lowPlayers" then
  1383. table.sort(servers, function(a, b)
  1384. return (a.playing or 0) < (b.playing or 0)
  1385. end)
  1386. elseif currentSort == "maxPlayers" then
  1387. table.sort(servers, function(a, b)
  1388. return (a.playing or 0) > (b.playing or 0)
  1389. end)
  1390. elseif currentSort == "fastest" then
  1391. table.sort(servers, function(a, b)
  1392. return (a.ping or 9999) < (b.ping or 9999)
  1393. end)
  1394. end
  1395.  
  1396. return servers
  1397. end
  1398.  
  1399.  
  1400.  
  1401. local lowPlayersBtn = Instance.new("ImageButton", mainFrame)
  1402. lowPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1403. lowPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  1404. lowPlayersBtn.Position = UDim2.new(0.5, -183, 0.5, -220)
  1405. lowPlayersBtn.Image = "http://www.roblox.com/asset/?id=78395837711238"
  1406. lowPlayersBtn.BackgroundTransparency = 1
  1407. lowPlayersBtn.ZIndex = 5
  1408.  
  1409. local maxPlayersBtn = Instance.new("ImageButton", mainFrame)
  1410. maxPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1411. maxPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  1412. maxPlayersBtn.Position = UDim2.new(0.5, -264, 0.5, -220)
  1413. maxPlayersBtn.Image = "http://www.roblox.com/asset/?id=117409611207958"
  1414. maxPlayersBtn.BackgroundTransparency = 1
  1415. maxPlayersBtn.ZIndex = 5
  1416.  
  1417. lowPlayersBtn.MouseButton1Click:Connect(function()
  1418. local ok, err = pcall(function()
  1419. local sorted = sortServers(allServers, "lowPlayers")
  1420. updateServerList(sorted)
  1421. end)
  1422.  
  1423. if not ok then
  1424. warn("API error during lowPlayers. Please try again!", err)
  1425. end
  1426. end)
  1427.  
  1428. maxPlayersBtn.MouseButton1Click:Connect(function()
  1429. local ok, err = pcall(function()
  1430. local sorted = sortServers(allServers, "maxPlayers")
  1431. updateServerList(sorted)
  1432. end)
  1433.  
  1434. if not ok then
  1435. warn("API error during MaxPlayers. Please try again!", err)
  1436. end
  1437. end)
  1438. --------------------------------------------------------------------------------------------------------------------
  1439.  
  1440. -- Buttons pour copy le server public ou nous somme live!!!
  1441.  
  1442. local TweenService = game:GetService("TweenService")
  1443. local LocalizationService = game:GetService("LocalizationService")
  1444. local Players = game:GetService("Players")
  1445. local LocalPlayer = Players.LocalPlayer
  1446.  
  1447.  
  1448. local langText = {
  1449. ["fr"] = "L'ID du serveur a été copié avec succès !",
  1450. ["en"] = "Server ID copied successfully!",
  1451. ["es"] = "¡ID del servidor copiado correctamente!",
  1452. ["de"] = "Server-ID erfolgreich kopiert!",
  1453. ["it"] = "ID del server copiato con successo!",
  1454. ["pt"] = "ID do servidor copiado com sucesso!",
  1455. ["ru"] = "ID сервера успешно скопирован!",
  1456. ["zh"] = "服务器ID复制成功!",
  1457. ["tr"] = "Sunucu kimliği başarıyla kopyalandı!",
  1458. ["ja"] = "サーバーIDが正常にコピーされました!",
  1459. ["ar"] = "تم نسخ معرف الخادم بنجاح!",
  1460. }
  1461.  
  1462. local function getTranslatedMessage()
  1463. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  1464. return langText[langCode] or langText["en"]
  1465. end
  1466.  
  1467.  
  1468. local NotificationLib = {
  1469. _notifications = {},
  1470. _theme = {
  1471. primaryColor = Color3.fromRGB(30,30,30),
  1472. textColor = Color3.fromRGB(255,255,255),
  1473. font = Enum.Font.GothamSemibold,
  1474. cornerRadius = UDim.new(0,8)
  1475. },
  1476. _settings = {
  1477. duration = 4,
  1478. spacing = 12,
  1479. fadeTime = 0.28,
  1480. slideDistance = 18
  1481. },
  1482. _icons = { info = "rbxassetid://9405926389" }
  1483. }
  1484.  
  1485. function NotificationLib:_init()
  1486. if not self._container then
  1487. self._container = Instance.new("ScreenGui")
  1488. self._container.Name = "NotificationLibrary"
  1489. self._container.ResetOnSpawn = false
  1490. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1491. self._container.Parent = game:GetService("CoreGui")
  1492. end
  1493. end
  1494.  
  1495. function NotificationLib:_calculatePosition(index)
  1496. local spacing = self._settings.spacing
  1497. local height = 90
  1498. return UDim2.new(1,-24,1,-24-(index-1)*(height+spacing))
  1499. end
  1500.  
  1501. function NotificationLib:_animateOut(frame, callback)
  1502. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  1503. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  1504. BackgroundTransparency = 1
  1505. })
  1506. tween:Play()
  1507. tween.Completed:Connect(function()
  1508. if frame and frame.Parent then frame:Destroy() end
  1509. if callback then callback() end
  1510. end)
  1511. end
  1512.  
  1513. function NotificationLib:Notify(opt)
  1514. self:_init()
  1515. opt = opt or {}
  1516. local title = opt.Title or "Notification"
  1517. local message = opt.Message or ""
  1518. local duration = opt.Duration or self._settings.duration
  1519.  
  1520. local frame = Instance.new("Frame")
  1521. frame.BackgroundColor3 = self._theme.primaryColor
  1522. frame.Size = UDim2.new(0,340,0,90)
  1523. frame.AnchorPoint = Vector2.new(1,1)
  1524. frame.Position = self:_calculatePosition(#self._notifications+1)
  1525. frame.Parent = self._container
  1526. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  1527.  
  1528. local icon = Instance.new("ImageLabel", frame)
  1529. icon.Image = self._icons.info
  1530. icon.Size = UDim2.new(0,28,0,28)
  1531. icon.Position = UDim2.new(0,12,0,12)
  1532. icon.BackgroundTransparency = 1
  1533.  
  1534. local titleLabel = Instance.new("TextLabel", frame)
  1535. titleLabel.Font = self._theme.font
  1536. titleLabel.TextColor3 = self._theme.textColor
  1537. titleLabel.TextSize = 16
  1538. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  1539. titleLabel.Text = title
  1540. titleLabel.BackgroundTransparency = 1
  1541. titleLabel.Size = UDim2.new(1,-60,0,22)
  1542. titleLabel.Position = UDim2.new(0,48,0,10)
  1543.  
  1544. local msgLabel = Instance.new("TextLabel", frame)
  1545. msgLabel.Font = Enum.Font.Gotham
  1546. msgLabel.TextColor3 = self._theme.textColor
  1547. msgLabel.TextSize = 14
  1548. msgLabel.TextWrapped = true
  1549. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  1550. msgLabel.Text = message
  1551. msgLabel.BackgroundTransparency = 1
  1552. msgLabel.Size = UDim2.new(1,-60,0,48)
  1553. msgLabel.Position = UDim2.new(0,48,0,30)
  1554.  
  1555. table.insert(self._notifications, frame)
  1556.  
  1557. task.delay(duration, function()
  1558. if frame and frame.Parent then
  1559. self:_animateOut(frame,function()
  1560. for i,v in ipairs(self._notifications) do
  1561. if v==frame then table.remove(self._notifications,i); break end
  1562. end
  1563. end)
  1564. end
  1565. end)
  1566. end
  1567.  
  1568. -- Bouton CopyGamelive avec notif
  1569. local CopyGamelive = Instance.new("ImageButton", mainFrame)
  1570. CopyGamelive.AnchorPoint = Vector2.new(0.5,0.5)
  1571. CopyGamelive.Size = UDim2.new(0,41,0,41)
  1572. CopyGamelive.Position = UDim2.new(0.5,-227,0.5,-220)
  1573. CopyGamelive.Image = "http://www.roblox.com/asset/?id=122024633828045"
  1574. CopyGamelive.BackgroundTransparency = 1
  1575. CopyGamelive.ZIndex = 6
  1576.  
  1577. CopyGamelive.MouseButton1Click:Connect(function()
  1578. local currentServerId = game.JobId
  1579. local joinCommand = 'Roblox.GameLauncher.joinGameInstance('..game.PlaceId..',"'..currentServerId..'")'
  1580. setclipboard(joinCommand)
  1581.  
  1582. NotificationLib:Notify({
  1583. Title = "Server ID",
  1584. Message = getTranslatedMessage(),
  1585. Duration = 4
  1586. })
  1587. end)
  1588.  
  1589.  
  1590. --------------------------------------------------------------------------------------------------------------------
  1591.  
  1592. -- Le button Close pour fermer le Gui Server Finder Deluxe
  1593.  
  1594. local closeBtn = Instance.new("ImageButton", mainFrame)
  1595. closeBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1596. closeBtn.Size = UDim2.new(0, 40, 0, 40)
  1597. closeBtn.Position = UDim2.new(0.5, 298, 0.5, -220)
  1598. closeBtn.Image = "http://www.roblox.com/asset/?id=138896199949173"
  1599. closeBtn.BackgroundTransparency = 1
  1600. closeBtn.ZIndex = 6
  1601.  
  1602. closeBtn.MouseButton1Click:Connect(function()
  1603. _G.SFD_LOADED = false
  1604. _G.SFD_CAN_RELOAD = true
  1605. screenGui:Destroy()
  1606. end)
  1607.  
  1608. --------------------------------------------------------------------------------------------------------------------
  1609.  
  1610. -- Le Code du button Rejoin pour relancer le jeux dans le même servers publics
  1611.  
  1612. local TweenService = game:GetService("TweenService")
  1613. local TeleportService = game:GetService("TeleportService")
  1614. local Players = game:GetService("Players")
  1615. local LocalizationService = game:GetService("LocalizationService")
  1616. local LocalPlayer = Players.LocalPlayer
  1617.  
  1618.  
  1619. local langText = {
  1620. ["fr"] = "Reconnexion au serveur...",
  1621. ["en"] = "Reconnecting to server...",
  1622. ["es"] = "Reconectando al servidor...",
  1623. ["de"] = "Wiederverbindung zum Server...",
  1624. ["it"] = "Riconnessione al server...",
  1625. ["pt"] = "Reconectando ao servidor...",
  1626. ["ru"] = "Переподключение к серверу...",
  1627. ["zh"] = "正在重新连接服务器...",
  1628. ["tr"] = "Sunucuya yeniden bağlanılıyor...",
  1629. ["ja"] = "サーバーに再接続中...",
  1630. ["ar"] = "إعادة الاتصال بالخادم...",
  1631. }
  1632.  
  1633. local function getTranslatedMessage()
  1634.  
  1635. local tries = 0
  1636. while (not LocalizationService.RobloxLocaleId or #LocalizationService.RobloxLocaleId < 2) and tries < 20 do
  1637. tries = tries + 1
  1638. task.wait(0.05)
  1639. end
  1640. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1, 2)
  1641. return langText[langCode] or langText["en"]
  1642. end
  1643.  
  1644.  
  1645. local startTime = os.clock()
  1646.  
  1647.  
  1648. local NotificationLib = {
  1649. _notifications = {},
  1650. _theme = {
  1651. primaryColor = Color3.fromRGB(30, 30, 30),
  1652. textColor = Color3.fromRGB(255, 255, 255),
  1653. font = Enum.Font.GothamSemibold,
  1654. cornerRadius = UDim.new(0, 8)
  1655. },
  1656. _settings = {
  1657. duration = 4,
  1658. position = "BottomRight",
  1659. maxNotifications = 5,
  1660. spacing = 12,
  1661. fadeTime = 0.28,
  1662. slideDistance = 18
  1663. },
  1664. _icons = {
  1665. info = "rbxassetid://9405926389"
  1666. }
  1667. }
  1668.  
  1669. function NotificationLib:_init()
  1670. if not self._container then
  1671. self._container = Instance.new("ScreenGui")
  1672. self._container.Name = "NotificationLibrary"
  1673. self._container.ResetOnSpawn = false
  1674. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1675. self._container.Parent = game:GetService("CoreGui")
  1676. end
  1677. end
  1678.  
  1679. function NotificationLib:_calculatePosition(index)
  1680. local spacing = self._settings.spacing
  1681. local height = 90
  1682. return UDim2.new(1, -24, 1, -24 - (index - 1) * (height + spacing))
  1683. end
  1684.  
  1685. function NotificationLib:_animateOut(frame, callback)
  1686. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  1687. Position = frame.Position + UDim2.new(0, 0, 0, self._settings.slideDistance),
  1688. BackgroundTransparency = 1
  1689. })
  1690. tween:Play()
  1691. tween.Completed:Connect(function()
  1692. if frame and frame.Parent then frame:Destroy() end
  1693. if callback then callback() end
  1694. end)
  1695. end
  1696.  
  1697. function NotificationLib:Notify(opt)
  1698. self:_init()
  1699. opt = opt or {}
  1700. local title = opt.Title or "Notification"
  1701. local message = opt.Message or ""
  1702. local duration = opt.Duration or self._settings.duration
  1703.  
  1704. local frame = Instance.new("Frame")
  1705. frame.BackgroundColor3 = self._theme.primaryColor
  1706. frame.Size = UDim2.new(0, 340, 0, 90)
  1707. frame.AnchorPoint = Vector2.new(1, 1)
  1708. frame.Position = self:_calculatePosition(#self._notifications + 1)
  1709. frame.Parent = self._container
  1710. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  1711.  
  1712. local icon = Instance.new("ImageLabel", frame)
  1713. icon.Image = self._icons.info
  1714. icon.Size = UDim2.new(0, 28, 0, 28)
  1715. icon.Position = UDim2.new(0, 12, 0, 12)
  1716. icon.BackgroundTransparency = 1
  1717.  
  1718. local titleLabel = Instance.new("TextLabel", frame)
  1719. titleLabel.Font = self._theme.font
  1720. titleLabel.TextColor3 = self._theme.textColor
  1721. titleLabel.TextSize = 16
  1722. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  1723. titleLabel.Text = title
  1724. titleLabel.BackgroundTransparency = 1
  1725. titleLabel.Size = UDim2.new(1, -60, 0, 22)
  1726. titleLabel.Position = UDim2.new(0, 48, 0, 10)
  1727.  
  1728. local msgLabel = Instance.new("TextLabel", frame)
  1729. msgLabel.Font = Enum.Font.Gotham
  1730. msgLabel.TextColor3 = self._theme.textColor
  1731. msgLabel.TextSize = 14
  1732. msgLabel.TextWrapped = true
  1733. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  1734. msgLabel.Text = message
  1735. msgLabel.BackgroundTransparency = 1
  1736. msgLabel.Size = UDim2.new(1, -60, 0, 48)
  1737. msgLabel.Position = UDim2.new(0, 48, 0, 30)
  1738.  
  1739. table.insert(self._notifications, frame)
  1740.  
  1741. task.delay(duration, function()
  1742. if frame and frame.Parent then
  1743. self:_animateOut(frame, function()
  1744. for i, v in ipairs(self._notifications) do
  1745. if v == frame then table.remove(self._notifications, i); break end
  1746. end
  1747. end)
  1748. end
  1749. end)
  1750. end
  1751.  
  1752. task.wait(0.1)
  1753.  
  1754. local SCRIPT_SOURCE_SERVER_FINDER_DELUXE = [=[
  1755.  
  1756. loadstring(game:HttpGet("https://raw.githubusercontent.com/MaxproGlitcher/Server-Finder-Deluxe/refs/heads/main/Finder_Servers_Code.luau"))()
  1757. ]=]
  1758.  
  1759. local RejoinButton = Instance.new("ImageButton")
  1760. RejoinButton.Parent = mainFrame
  1761. RejoinButton.AnchorPoint = Vector2.new(0.5, 0.5)
  1762. RejoinButton.Size = UDim2.new(0, 40, 0, 40)
  1763. RejoinButton.Position = UDim2.new(0.5, 204, 0.5, -220)
  1764. RejoinButton.Image = "rbxassetid://103864549538113"
  1765. RejoinButton.BackgroundTransparency = 1
  1766. RejoinButton.ZIndex = 10
  1767.  
  1768. RejoinButton.MouseButton1Click:Connect(function()
  1769. NotificationLib:Notify({
  1770. Title = string.format("Time used: %.3f s", os.clock() - startTime),
  1771. Message = getTranslatedMessage(),
  1772. Type = "info",
  1773. Duration = 5
  1774. })
  1775.  
  1776. queue_on_teleport(SCRIPT_SOURCE_SERVER_FINDER_DELUXE)
  1777. task.wait(1)
  1778.  
  1779. TeleportService:Teleport(game.PlaceId, LocalPlayer)
  1780. end)
  1781.  
  1782. --------------------------------------------------------------------------------------------------------------------
  1783.  
  1784. -- Button Resize Button
  1785.  
  1786. local resizeButton = Instance.new("ImageButton", mainFrame)
  1787. resizeButton.AnchorPoint = Vector2.new(0.5, 0.5)
  1788. resizeButton.Size = UDim2.new(0, 40, 0, 40)
  1789. resizeButton.Position = UDim2.new(0.5, 157, 0.5, -220)
  1790. resizeButton.Image = "http://www.roblox.com/asset/?id=92176830367195"
  1791. resizeButton.BackgroundTransparency = 1
  1792. resizeButton.ZIndex = 9
  1793.  
  1794. local isSmall = true -- Définir la taille initiale comme petite
  1795.  
  1796. -- Fonction pour basculer entre les tailles
  1797. local function toggleGuiSize()
  1798. if isSmall then
  1799. mainFrame.Size = UDim2.new(0, 650, 0, 500)
  1800. scrollFrame.Size = UDim2.new(1, -20, 1, -60)
  1801. scrollFrame.Position = UDim2.new(0, 10, 0, 50)
  1802.  
  1803. if refreshBtn then
  1804. refreshBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1805. refreshBtn.Size = UDim2.new(0, 47, 0, 47)
  1806. refreshBtn.Position = UDim2.new(0.5, 250, 0.5, -220)
  1807. end
  1808.  
  1809. if closeBtn then
  1810. closeBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1811. closeBtn.Size = UDim2.new(0, 40, 0, 40)
  1812. closeBtn.Position = UDim2.new(0.5, 298, 0.5, -220)
  1813. end
  1814.  
  1815. if resizeButton then
  1816. resizeButton.AnchorPoint = Vector2.new(0.5, 0.5)
  1817. resizeButton.Size = UDim2.new(0, 40, 0, 40)
  1818. resizeButton.Position = UDim2.new(0.5, 157, 0.5, -220)
  1819. end
  1820.  
  1821. if RejoinButton then
  1822. RejoinButton.AnchorPoint = Vector2.new(0.5, 0.5)
  1823. RejoinButton.Size = UDim2.new(0, 40, 0, 40)
  1824. RejoinButton.Position = UDim2.new(0.5, 204, 0.5, -220)
  1825. end
  1826.  
  1827. if lowPlayersBtn then
  1828. lowPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1829. lowPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  1830. lowPlayersBtn.Position = UDim2.new(0.5, -183, 0.5, -220)
  1831. end
  1832.  
  1833. if maxPlayersBtn then
  1834. maxPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1835. maxPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  1836. maxPlayersBtn.Position = UDim2.new(0.5, -264, 0.5, -220)
  1837. end
  1838.  
  1839. if CopyGamelive then
  1840. CopyGamelive.AnchorPoint = Vector2.new(0.5, 0.5)
  1841. CopyGamelive.Size = UDim2.new(0, 41, 0, 41)
  1842. CopyGamelive.Position = UDim2.new(0.5, -227, 0.5, -220)
  1843. end
  1844.  
  1845. else
  1846. mainFrame.Size = UDim2.new(0, 549, 0, 390)
  1847. scrollFrame.Size = UDim2.new(1, -10, 1, -40)
  1848. scrollFrame.Position = UDim2.new(0, 5, 0, 40)
  1849.  
  1850. if refreshBtn then
  1851. refreshBtn.Position = UDim2.new(0.5, 225, 0.5, -175)
  1852. refreshBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1853. refreshBtn.Size = UDim2.new(0, 30, 0, 30)
  1854. end
  1855.  
  1856. if closeBtn then
  1857. closeBtn.Position = UDim2.new(0.5, 255, 0.5, -175)
  1858. closeBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1859. closeBtn.Size = UDim2.new(0, 25, 0, 25)
  1860. end
  1861.  
  1862. if RejoinButton then
  1863. RejoinButton.AnchorPoint = Vector2.new(0.5, 0.5)
  1864. RejoinButton.Size = UDim2.new(0, 25, 0, 25)
  1865. RejoinButton.Position = UDim2.new(0.5, 195, 0.5, -175)
  1866. end
  1867.  
  1868. if maxPlayersBtn then
  1869. maxPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1870. maxPlayersBtn.Size = UDim2.new(0, 25, 0, 25)
  1871. maxPlayersBtn.Position = UDim2.new(0.5, -222, 0.5, -175)
  1872. end
  1873.  
  1874.  
  1875. if lowPlayersBtn then
  1876. lowPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  1877. lowPlayersBtn.Size = UDim2.new(0, 25, 0, 25)
  1878. lowPlayersBtn.Position = UDim2.new(0.5, -173, 0.5, -175)
  1879. end
  1880.  
  1881. if CopyGamelive then
  1882. CopyGamelive.AnchorPoint = Vector2.new(0.5, 0.5)
  1883. CopyGamelive.Size = UDim2.new(0, 25, 0, 25)
  1884. CopyGamelive.Position = UDim2.new(0.5, -199, 0.5, -175)
  1885. end
  1886.  
  1887. if resizeButton then
  1888. resizeButton.AnchorPoint = Vector2.new(0.5, 0.5)
  1889. resizeButton.Size = UDim2.new(0, 25, 0, 25)
  1890. resizeButton.Position = UDim2.new(0.5, 167, 0.5, -175)
  1891. end
  1892. end
  1893. isSmall = not isSmall
  1894. end
  1895.  
  1896. resizeButton.MouseButton1Click:Connect(toggleGuiSize)
  1897.  
  1898. --------------------------------------------------------------------------------------------------------------------
  1899.  
  1900. -- Services MODE PERFORMANCE BOOST
  1901.  
  1902. -- Services
  1903. local Players = game:GetService("Players")
  1904. local Lighting = game:GetService("Lighting")
  1905.  
  1906. -- Sauvegarde des réglages d'origine
  1907. local UserSettings = settings():GetService("RenderSettings")
  1908. local originalSettings = {
  1909. QualityLevel = UserSettings.QualityLevel,
  1910. EditQualityLevel = UserSettings.EditQualityLevel,
  1911. GlobalShadows = Lighting.GlobalShadows
  1912. }
  1913.  
  1914. -- Active le mode performance boost
  1915. local function EnablePerformanceBoost()
  1916. UserSettings.QualityLevel = Enum.QualityLevel.Level01
  1917. UserSettings.EditQualityLevel = Enum.QualityLevel.Level01
  1918.  
  1919. -- Désactive tous les effets visuels post-traitement
  1920. for _, effect in pairs(Lighting:GetChildren()) do
  1921. if effect:IsA("PostEffect") then
  1922. effect.Enabled = false
  1923. end
  1924. end
  1925.  
  1926. -- Désactive les ombres globales
  1927. Lighting.GlobalShadows = false
  1928. end
  1929.  
  1930. -- Restaure les réglages normaux
  1931. local function DisablePerformanceBoost()
  1932. UserSettings.QualityLevel = originalSettings.QualityLevel
  1933. UserSettings.EditQualityLevel = originalSettings.EditQualityLevel
  1934.  
  1935. for _, effect in pairs(Lighting:GetChildren()) do
  1936. if effect:IsA("PostEffect") then
  1937. effect.Enabled = true
  1938. end
  1939. end
  1940.  
  1941. Lighting.GlobalShadows = originalSettings.GlobalShadows
  1942. end
  1943.  
  1944. -- Exemple : activer au lancement
  1945. EnablePerformanceBoost()
  1946.  
  1947. -- Exemple : désactiver quand tu fermes le GUI
  1948. closeBtn.MouseButton1Click:Connect(function()
  1949. DisablePerformanceBoost()
  1950. screenGui.Enabled = false
  1951. end)
  1952.  
  1953.  
  1954. --------------------------------------------------------------------------------------------------------------------
  1955.  
  1956. -- Notification pour me contacter au cas problème pour le Script Server Finder Deluxe
  1957. -- Impression de texte personnalisé pour la console roblox
  1958. -- Impression de Texte Traduits pour pluiseurs langues
  1959. local Modules = {
  1960. Colors = {
  1961. ["Grey"] = "254, 254, 254",
  1962. ["Cyan"] = "33, 161, 163"
  1963. }
  1964. }
  1965.  
  1966. Modules.ChangeColor = function()
  1967. game:GetService("RunService").Heartbeat:Connect(function()
  1968. local console = game:GetService("CoreGui"):FindFirstChild("DevConsoleMaster")
  1969. if console then
  1970. for _, v in pairs(console:GetDescendants()) do
  1971. if v:IsA("TextLabel") then
  1972. v.RichText = true
  1973. end
  1974. end
  1975. end
  1976. end)
  1977. end
  1978.  
  1979. Modules.print = function(color, text, size)
  1980. if not Modules.Colors[color] then
  1981. warn("Color was not found!")
  1982. return
  1983. end
  1984.  
  1985. local Text = '<font color="rgb(' .. Modules.Colors[color] .. ')"'
  1986. if size then
  1987. Text = Text .. ' size="' .. tostring(size) .. '"'
  1988. end
  1989. Text = Text .. '>' .. tostring(text) .. '</font>'
  1990. print(Text)
  1991. end
  1992.  
  1993.  
  1994.  
  1995.  
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment