MaxproGlitcher

Server Finder Deluxe Official Back Up!!!

Jul 28th, 2026 (edited)
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 104.62 KB | None | 0 0
  1. --[[By MaxproGlitcher Discord:maxproglitcher
  2.  
  3. -- This is the real Back Up One from Server Finder Deluxe
  4.  
  5. -- Site Web official: https://github.com/MaxproGlitcher/Server-Finder-Deluxe
  6.  
  7. -- Server Finder Deluxe is original Script software created and developed by MaxproGlitcher.
  8.  
  9. -- Copying, modifying, redistributing, reselling, republishing, or any other use of all or part of this project without prior written
  10.  
  11. -- permission is strictly prohibited.
  12.  
  13. -- This software is protected by applicable copyright laws. Any unauthorized use may result in the removal of the affected content as
  14.  
  15. -- well as appropriate legal action.
  16.  
  17. -- Server Finder Deluxe® – Developed by MaxproGlitcher.
  18.  
  19. -- © 2026 MaxproGlitcher. All rights reserved.
  20.  
  21. -- Official version Back Up only.
  22.  
  23. _____ ________.__ .__ __ .__
  24. / \ _____ ___ ________________ ____ / _____/| | |__|/ |_ ____ | |__ ___________
  25. / \ / \\__ \ \ \/ /\____ \_ __ \/ _ \/ \ ___| | | \ __\/ ___\| | \_/ __ \_ __ \
  26. / Y \/ __ \_> < | |_> > | \( <_> ) \_\ \ |_| || | \ \___| Y \ ___/| | \/
  27. \____|__ (____ /__/\_ \| __/|__| \____/ \______ /____/__||__| \___ >___| /\___ >__|
  28. \/ \/ \/|__| \/ \/ \/ \/
  29.  
  30.  
  31. --------------------------------------------------------------------------------------------------------------------
  32.  
  33.  
  34. _____ ______ _ _ _____ _
  35. / ____| | ____(_) | | | __ \ | |
  36. | (___ ___ _ ____ _____ _ __ | |__ _ _ __ __| | ___ _ __ | | | | ___| |_ ___ _____
  37. \___ \ / _ \ '__\ \ / / _ \ '__| | __| | | '_ \ / _` |/ _ \ '__| | | | |/ _ \ | | | \ \/ / _ \
  38. ____) | __/ | \ V / __/ | | | | | | | | (_| | __/ | | |__| | __/ | |_| |> < __/
  39. |_____/ \___|_| \_/ \___|_| |_| |_|_| |_|\__,_|\___|_| |_____/ \___|_|\__,_/_/\_\___|
  40.  
  41.  
  42. ]]
  43. --------------------------------------------------------------------------------------------------------------------
  44. if not game:IsLoaded() then
  45. game.Loaded:Wait()
  46. end
  47.  
  48. -- ════════════════════════════════════════
  49. -- (Chargement/Décoration)
  50. -- ════════════════════════════════════════
  51.  
  52. local TweenService = game:GetService("TweenService")
  53. local Lighting = game:GetService("Lighting")
  54. local CoreGui = game:GetService("CoreGui")
  55. local LocalizationService = game:GetService("LocalizationService")
  56.  
  57. local gui = Instance.new("ScreenGui", game.CoreGui)
  58. gui.Parent = CoreGui
  59. gui.IgnoreGuiInset = true
  60. gui.ResetOnSpawn = false
  61.  
  62. local blur = Instance.new("BlurEffect")
  63. blur.Parent = Lighting
  64. blur.Size = 12
  65.  
  66.  
  67. local main = Instance.new("Frame")
  68. main.Parent = gui
  69. main.Size = UDim2.new(0, 420, 0, 410)
  70. main.Position = UDim2.new(0.5, -210, 0.5, -205)
  71. main.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  72. main.BorderSizePixel = 0
  73. Instance.new("UICorner", main).CornerRadius = UDim.new(0, 12)
  74.  
  75. local title = Instance.new("TextLabel")
  76. title.Parent = main
  77. title.BackgroundTransparency = 1
  78. title.Size = UDim2.new(1, 0, 0, 50)
  79. title.Position = UDim2.new(0, 0, 0, 10)
  80. title.Font = Enum.Font.GothamBlack
  81. title.TextSize = 40
  82. title.TextColor3 = Color3.fromRGB(240, 240, 240)
  83. title.Text = "Server Finder Deluxe"
  84.  
  85. local versionLabel = Instance.new("TextLabel")
  86. versionLabel.Parent = main
  87. versionLabel.BackgroundTransparency = 1
  88. versionLabel.Size = UDim2.new(1, 0, 0, 20)
  89. versionLabel.Position = UDim2.new(0, 0, 0, 70)
  90. versionLabel.Font = Enum.Font.GothamMedium
  91. versionLabel.TextSize = 16
  92. versionLabel.TextColor3 = Color3.fromRGB(210, 210, 210)
  93. versionLabel.Text = "Ultimate Server Scanner"
  94.  
  95. local status = Instance.new("TextLabel")
  96. status.Parent = main
  97. status.BackgroundTransparency = 1
  98. status.Size = UDim2.new(1, 0, 0, 30)
  99. status.Position = UDim2.new(0, 0, 0, 105)
  100. status.Font = Enum.Font.Gotham
  101. status.TextSize = 18
  102. status.TextColor3 = Color3.fromRGB(200, 200, 200)
  103. status.Text = "Loading..."
  104.  
  105. local percent = Instance.new("TextLabel")
  106. percent.Parent = main
  107. percent.BackgroundTransparency = 1
  108. percent.Size = UDim2.new(1, 0, 0, 25)
  109. percent.Position = UDim2.new(0, 0, 0, 135)
  110. percent.Font = Enum.Font.GothamBold
  111. percent.TextSize = 20
  112. percent.TextColor3 = Color3.fromRGB(200, 200, 200)
  113. percent.Text = "0%"
  114.  
  115. local barBack = Instance.new("Frame")
  116. barBack.Parent = main
  117. barBack.Size = UDim2.new(0, 280, 0, 8)
  118. barBack.Position = UDim2.new(0.5, -140, 0, 165)
  119. barBack.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
  120. barBack.BorderSizePixel = 0
  121. Instance.new("UICorner", barBack).CornerRadius = UDim.new(0, 4)
  122.  
  123. local bar = Instance.new("Frame")
  124. bar.Parent = barBack
  125. bar.Size = UDim2.new(0, 0, 1, 0)
  126. bar.BackgroundColor3 = Color3.fromRGB(180, 180, 180)
  127. bar.BorderSizePixel = 0
  128. Instance.new("UICorner", bar).CornerRadius = UDim.new(0, 4)
  129.  
  130. local CopyGithubSFD = Instance.new("TextButton")
  131. CopyGithubSFD.Parent = barBack
  132. CopyGithubSFD.Size = UDim2.new(0, 120, 0, 25)
  133. CopyGithubSFD.Position = UDim2.new(0.5, -60, -3, -30)
  134. CopyGithubSFD.BackgroundColor3 = barBack.BackgroundColor3
  135. CopyGithubSFD.BorderSizePixel = 0
  136. CopyGithubSFD.Text = "Copy GitHub"
  137. CopyGithubSFD.Font = Enum.Font.GothamBold
  138. CopyGithubSFD.TextSize = 14
  139. CopyGithubSFD.TextColor3 = Color3.fromRGB(220, 220, 220)
  140. Instance.new("UICorner", CopyGithubSFD).CornerRadius = UDim.new(0, 6)
  141.  
  142. local githubLink = "https://github.com/MaxproGlitcher/Server-Finder-Deluxe"
  143.  
  144. CopyGithubSFD.MouseButton1Click:Connect(function()
  145. pcall(function()
  146. if setclipboard then
  147. setclipboard(githubLink)
  148. elseif toclipboard then
  149. toclipboard(githubLink)
  150. else
  151. warn("Your Exploit don't supported this function check!!!")
  152. end
  153. end)
  154. end)
  155.  
  156. ---------------------------------------------------------------------------
  157. -- 🌟 SECTION NOUVELLE : SYSTÈME DE TRADUCTION & TEXTE DE SÉCURITÉ
  158. ---------------------------------------------------------------------------
  159. local infoLabel = Instance.new("TextLabel")
  160. infoLabel.Parent = main
  161. infoLabel.BackgroundTransparency = 1
  162. infoLabel.Size = UDim2.new(0, 360, 0, 160)
  163. infoLabel.Position = UDim2.new(0.5, -180, 0, 190)
  164. infoLabel.Font = Enum.Font.GothamMedium
  165. infoLabel.TextSize = 12
  166. infoLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
  167. infoLabel.TextXAlignment = Enum.TextXAlignment.Center
  168. infoLabel.TextYAlignment = Enum.TextYAlignment.Top
  169. infoLabel.TextWrapped = true
  170.  
  171.  
  172. local translations = {
  173. ["fr"] = "Server Finder Deluxe ne prend aucune information sur votre compte (pas de trackers d'activité ou de dépenses Robux, etc.) et ne contient aucun script malveillant. Ce projet est open source pour vous prouver qu'il est sûr à utiliser.\n\nServer Finder Deluxe se réserve le droit de DMCA si vous utilisez notre nom pour vendre ou diffuser une version malveillante sur le marché des scripts.\n\nSinon, bonne utilisation Guys ! Merci d'utiliser Server Finder Deluxe !!!",
  174. ["en"] = "Server Finder Deluxe takes zero information from your account (no trackers on what you play, what you pay with your robux, etc.) and contains no malicious scripts. This project is open source to prove it is safe to use.\n\nServer Finder Deluxe reserves the right to DMCA if you use the name Server Finder Deluxe to sell or distribute a malicious version on the script market.\n\nOtherwise, happy tracking guys! Thanks for using Server Finder Deluxe !!!",
  175. ["es"] = "Server Finder Deluxe no toma ninguna información de su cuenta (sin rastreadores de lo que juega o gasta con sus robux, etc.) y no contiene scripts maliciosos. Este proyecto es de código abierto para demostrar que es seguro.\n\nServer Finder Deluxe se reserva el derecho de DMCA si usa el nombre Server Finder Deluxe para vender o distribuir una versión maliciosa en el mercado de scripts.\n\n¡Disfrútenlo chicos! ¡Gracias por usar Server Finder Deluxe!",
  176. ["pt"] = "O Server Finder Deluxe não coleta nenhuma informação da sua conta (sem rastreadores do que você joga ou gasta com seus robux, etc.) e não contém scripts maliciosos. Este projeto é de código aberto para provar que é seguro.\n\nServer Finder Deluxe reserva-se o direito de DMCA se você usar o nome Server Finder Deluxe para vender ou distribuir uma versão maliciosa no mercado de scripts.\n\nAproveitem, pessoal! Obrigado por usar o Server Finder Deluxe!",
  177. ["tr"] = "Server Finder Deluxe hesabınızdan hiçbir bilgi almaz (ne oynadığınız, robux ile ne ödediğiniz vb. takip edilmez) ve kötü amaçlı yazılım içermez. Bu proje, güvenli olduğunu kanıtlamak için açık kaynaktır.\n\nServer Finder Deluxe ismini script piyasasında kötü amaçlı bir sürüm satmak veya dağıtmak için kullanırsanız, Server Finder Deluxe DMCA hakkını saklı tutar.\n\nBunun dışında, iyi kullanımlar millet! Server Finder Deluxe kullandığınız için teşekkürler !!!",
  178. ["it"] = "Server Finder Deluxe non prende alcuna informazione dal tuo account (nessun tracker su cosa giochi, cosa paghi con i tuoi robux, ecc.) e non contiene script dannosi. Questo progetto è open source per dimostrare che è sicuro da usare.\n\nServer Finder Deluxe si riserva il diritto di DMCA se utilizzi il nome Server Finder Deluxe per vendere o distribuire una versione dannosa sul mercato degli script.\n\nPer il resto, buon utilizzo ragazzi! Grazie per aver usato Server Finder Deluxe !!!",
  179. ["de"] = "Server Finder Deluxe sammelt keinerlei Informationen von Ihrem Konto (keine Tracker für Spiele oder Robux-Ausgaben usw.) und enthält keine schädlichen Skripte. Dieses Projekt ist Open-Source, um zu beweisen, dass es sicher ist.\n\nServer Finder Deluxe behält sich das Recht auf DMCA vor, wenn Sie den Namen Server Finder Deluxe verwenden, um eine schädliche Version auf dem Skriptmarkt zu verkaufen oder zu verbreiten.\n\nViel Spaß, Leute! Vielen Dank für die Nutzung von Server Finder Deluxe!",
  180. ["ar"] = "لا يأخذ Server Finder Deluxe أي معلومات من حسابك (لا توجد أدوات تتبع لما تلعبه، أو ما تدفعه مقابل الـ Robux الخاص بك، وما إلى ذلك) ولا يحتوي على أي برمجيات خبيثة. هذا المشروع مفتوح المصدر لإثبات أنه آمن للاستخدام.\n\nيحتفظ Server Finder Deluxe بالحق في تقديم شكوى DMCA إذا استخدمت اسم Server Finder Deluxe لبيع أو توزيع نسخة خبيثة في سوق السكربتات.\n\nبخلاف ذلك، استمتعوا بالاستخدام يا شباب! شكرًا لاستخدامكم Server Finder Deluxe !!!",
  181. ["ja"] = "Server Finder Deluxeは、アカウントからいかなる情報(何をプレイしているか、Robuxで何を支払ったかのトラッカーなど)も取得せず、悪意のあるスクリプトも含んでいません。このプロジェクトは、安全に使用できることを証明するためにオープンソース化されています。\n\nスクリプト市場で悪意のあるバージョンを販売または配布するためにServer Finder Deluxeの名前を使用した場合、Server Finder DeluxeはDMCAの権利を留保します。\n\nそれでは、皆さん楽しんで使ってください!Server Finder Deluxeをご利用いただきありがとうございます!!!",
  182. ["ru"] = "Server Finder Deluxe не собирает информацию о вашей учетной записи (нет трекеров активности, расходов Robux и т. д.) и не содержит вредоносных скриптов. Этот проект является открытым исходным кодом, чтобы доказать его безопасность.\n\nServer Finder Deluxe оставляет за собой право на подачу жалобы DMCA, если вы используете название Server Finder Deluxe для продажи или распространения вредоносной версии на рынке скриптов.\n\nВ остальном, приятного использования, ребята! Спасибо за использование Server Finder Deluxe !!!",
  183. ["zh"] = "Server Finder Deluxe 不会从 your 账户中获取任何信息(没有关于您玩什么、用 Robux 支付什么的追踪器等),并且不包含任何恶意脚本。该项目是开源的,以证明其可以安全使用。\n\n如果您使用 Server Finder Deluxe 的名称在脚本市场上销售或分发恶意版本,Server Finder Deluxe 保留追究 DMCA 版权投诉的权利。\n\n除此之外,祝大家使用愉快!感谢您使用 Server Finder Deluxe !!!"
  184. }
  185.  
  186.  
  187. local userLanguage = "en"
  188. pcall(function()
  189. local locale = LocalizationService.RobloxLocaleId:sub(1, 2):lower()
  190. if translations[locale] then
  191. userLanguage = locale
  192. end
  193. end)
  194.  
  195. infoLabel.Text = translations[userLanguage]
  196.  
  197.  
  198.  
  199. local credit = Instance.new("TextLabel")
  200. credit.Parent = main
  201. credit.BackgroundTransparency = 1
  202. credit.Size = UDim2.new(0, 200, 0, 20)
  203. credit.Position = UDim2.new(1, -210, 1, -25)
  204. credit.Font = Enum.Font.Gotham
  205. credit.TextSize = 14
  206. credit.TextColor3 = Color3.fromRGB(170, 170, 170)
  207. credit.TextXAlignment = Enum.TextXAlignment.Right
  208. credit.Text = "By MaxproGlitcher"
  209.  
  210. local discord = Instance.new("TextLabel")
  211. discord.Parent = main
  212. discord.BackgroundTransparency = 1
  213. discord.Size = UDim2.new(0, 220, 0, 20)
  214. discord.Position = UDim2.new(0, 10, 1, -25)
  215. discord.Font = Enum.Font.Gotham
  216. discord.TextSize = 14
  217. discord.TextColor3 = Color3.fromRGB(170, 170, 170)
  218. discord.TextXAlignment = Enum.TextXAlignment.Left
  219. discord.Text = "Discord : maxproglitcher"
  220.  
  221. local function GetEasterDate(year)
  222. local A = math.floor(year/100)
  223. local B = math.floor((13+8*A)/25)
  224. local C = (15-B+A-math.floor(A/4))%30
  225. local D = (4+A-math.floor(A/4))%7
  226. local E = (19*(year%19)+C)%30
  227. local F = (2*(year%4)+4*(year%7)+6*E+D)%7
  228. local G = 22 + E + F
  229.  
  230. if E == 29 and F == 6 then
  231. return 4, 19
  232. elseif E == 28 and F == 6 then
  233. return 4, 18
  234. elseif G > 31 then
  235. return 4, G-31
  236. else
  237. return 3, G
  238. end
  239. end
  240.  
  241. local isXmas, isHalloween, isNewYear, isEaster, isValentine = false, false, false, false, false
  242.  
  243. local success, err = pcall(function()
  244. local date = os.date("*t")
  245. local emonth, eday = GetEasterDate(date.year)
  246. isXmas = date.month == 12 and date.day >= 15 and date.day <= 29
  247. isHalloween = (date.month == 10 and date.day >= 23) or (date.month == 11 and date.day <= 1)
  248. isNewYear = (date.month == 12 and date.day >= 30) or (date.month == 1 and date.day <= 2)
  249. isValentine = (date.month == 2 and date.day == 14)
  250. isEaster = (date.month == emonth and date.day == eday)
  251. end)
  252.  
  253. if not success then
  254. warn("Date system error for loading gui:", err)
  255. end
  256.  
  257. local function decorate(startEmoji, endEmoji)
  258. title.Text = startEmoji .. " Server Finder Deluxe " .. endEmoji
  259. title.TextSize = 32
  260. end
  261.  
  262. local function cycle(colors)
  263. local i = 1
  264.  
  265. task.spawn(function()
  266. while gui and gui.Parent do
  267. local success, err = pcall(function()
  268. local c = colors[i]
  269.  
  270. title.TextColor3 = c
  271. versionLabel.TextColor3 = c
  272. status.TextColor3 = c
  273. credit.TextColor3 = c
  274. percent.TextColor3 = c
  275. bar.BackgroundColor3 = c
  276. infoLabel.TextColor3 = c -- Fait aussi changer le texte explicatif de couleur selon l'événement !
  277.  
  278. if CopyGithubSFD then
  279. CopyGithubSFD.TextColor3 = c
  280. CopyGithubSFD.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
  281. end
  282.  
  283. if discord then
  284. discord.TextColor3 = c
  285. end
  286.  
  287. i = i % #colors + 1
  288. end)
  289.  
  290. if not success then
  291. warn("Cycle color error:", err)
  292. end
  293.  
  294. task.wait(0.5)
  295. end
  296. end)
  297. end
  298.  
  299. if isXmas then
  300. decorate("🎄", "🎄")
  301. cycle({
  302. Color3.fromRGB(0,255,0),
  303. Color3.fromRGB(255,0,0),
  304. Color3.fromRGB(255,255,255)})
  305. elseif isHalloween then
  306. decorate("🎃", "🎃")
  307. cycle({
  308. Color3.fromRGB(0,0,0),
  309. Color3.fromRGB(255,165,0)})
  310. elseif isNewYear then
  311. decorate("🎉", "🎉")
  312. cycle({
  313. Color3.fromRGB(255,255,0),
  314. Color3.fromRGB(0,0,0)})
  315. elseif isEaster then
  316. decorate("🐰", "🐰")
  317. cycle({
  318. Color3.fromRGB(216,191,216),
  319. Color3.fromRGB(255,182,193),
  320. Color3.fromRGB(193,225,193),
  321. Color3.fromRGB(173,216,230)
  322. })
  323. elseif isValentine then
  324. decorate("💗", "💗")
  325. cycle({
  326. Color3.fromRGB(0,0,0),
  327. Color3.fromRGB(255,85,127)})
  328. end
  329.  
  330. local loading = true
  331.  
  332. pcall(function()
  333. task.spawn(function()
  334. while loading and status and status.Parent do
  335. for i = 1, 3 do
  336. if not loading then break end
  337. status.Text = "Loading" .. string.rep(".", i)
  338. task.wait(0.4)
  339. end
  340. if not loading then break end
  341. status.Text = "Loading"
  342. task.wait(0.4)
  343. end
  344. end)
  345. end)
  346.  
  347. pcall(function()
  348. local duration = 2
  349. TweenService:Create(
  350. bar,
  351. TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
  352. { Size = UDim2.new(1, 0, 1, 0) }
  353. ):Play()
  354.  
  355. for i = 0, 100 do
  356. if not percent or not percent.Parent then break end
  357. percent.Text = i .. "%"
  358. task.wait(duration / 100)
  359. end
  360. end)
  361.  
  362. loading = false
  363. status.Text = "Success"
  364.  
  365. task.wait(0.30)
  366.  
  367. if blur then
  368. blur:Destroy()
  369. end
  370.  
  371. if gui then
  372. gui:Destroy()
  373. end
  374.  
  375. --------------------------------------------------------------------------------------------------------------------
  376.  
  377. if _G.SFD_LOADED and not _G.SFD_CAN_RELOAD then
  378. -- error("Server Finder Deluxe is already running!", 0)
  379. return
  380. end
  381.  
  382. _G.SFD_LOADED = true
  383. _G.SFD_CAN_RELOAD = false
  384.  
  385. if not game:IsLoaded() then game.Loaded:Wait() end
  386.  
  387.  
  388. -- ════════════════════════════════════════
  389. -- (Compatibilité getgenv)
  390. -- ════════════════════════════════════════
  391.  
  392. pcall(function()
  393. if game:GetService("CoreGui"):FindFirstChild("incognito") then
  394. local oldstring = loadstring
  395. getfenv().loadstring = function(code)
  396. local source = code
  397. source = source:gsub("(%a+)%s*([%+%-%*/])=%s*", "%1 = %1 %2 ")
  398. return oldstring(source)
  399. end
  400. end
  401.  
  402. if not getgenv then
  403. getfenv().getgenv = function(layer)
  404. return getfenv(layer)
  405. end
  406. end
  407. end)
  408.  
  409. getgenv().NextServer = nil
  410. getgenv().HasScannedAll = false
  411.  
  412. -- ════════════════════════════════════════
  413. -- (Service/Info)
  414. -- ════════════════════════════════════════
  415.  
  416. local HttpService = game:GetService("HttpService")
  417. local TeleportService = game:GetService("TeleportService")
  418. local Players = game:GetService("Players")
  419. local LocalPlayer = Players.LocalPlayer
  420. local CoreGui = game:GetService("CoreGui")
  421. local GuiService = game:GetService("GuiService")
  422. local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
  423. local RobloxGui = CoreGui:WaitForChild("RobloxGui")
  424. local UserInputService = game:GetService("UserInputService")
  425. local RunService = game:GetService("RunService")
  426. local LocalizationService = game:GetService("LocalizationService")
  427. local TweenService = game:GetService("TweenService")
  428. local VRService = game:GetService("VRService")
  429. local CaptureService = game:GetService("CaptureService")
  430. local SoundService = game:GetService("SoundService")
  431. local clipBoard = setclipboard or toclipboard or set_clipboard or (Clipboard and Clipboard.set)
  432. local setthreadidentity = setthreadidentity or (syn and syn.set_thread_identity) or syn_context_set or setthreadcontext
  433.  
  434. local function v8(v6)
  435. local v7 = false
  436. pcall(function()
  437. if not setclipboard then
  438. if syn and syn.set_clipboard then
  439. syn.set_clipboard(v6)
  440. v7 = true
  441. end
  442. else
  443. setclipboard(v6)
  444. v7 = true
  445. end
  446. end)
  447. return v7
  448. end
  449.  
  450. -- ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
  451. -- (Service File / Détection combatibilité des appareilles disponible pour exercution du script / Caméra / Service Téléport)
  452. -- ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
  453.  
  454. writefile = writefile or getgenv().writefile
  455. makefolder = makefolder or getgenv().makefolder
  456. readfile = readfile or getgenv().readfile
  457. delfolder = delfolder or getgenv().delfolder
  458. delfile = delfile or getgenv().delfile
  459. listfiles = listfiles or getgenv().listfiles
  460. isfolder = isfolder or getgenv().isfolder
  461. isfile = isfile or getgenv().isfile
  462.  
  463.  
  464. local camera = workspace.CurrentCamera or workspace:FindFirstChildOfClass("Camera")
  465. if not camera then
  466. repeat task.wait() camera = workspace.CurrentCamera until camera
  467. end
  468.  
  469. local SCREEN_SIZE = camera.ViewportSize
  470. local platform = UserInputService:GetPlatform()
  471.  
  472. 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
  473. return true
  474. end
  475.  
  476. if platform == Enum.Platform.None then
  477. return UserInputService.TouchEnabled and not (UserInputService.KeyboardEnabled or UserInputService.MouseEnabled)
  478. end
  479.  
  480. return false
  481. end)()
  482.  
  483. 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
  484. return true
  485. end
  486.  
  487. if platform == Enum.Platform.None then
  488. return UserInputService.KeyboardEnabled or UserInputService.MouseEnabled
  489. end
  490.  
  491. return false
  492. end)()
  493.  
  494. local VREnabled = game:GetService("VRService").VREnabled
  495.  
  496. local Syn = getfenv().syn
  497.  
  498. local fenv=getfenv()
  499. local HttpService_JSONEncode = game:GetService("HttpService"):JSONEncode({
  500. test = 1,
  501. })
  502. local HttpService_JSONDecode = game:GetService("HttpService"):JSONDecode("{\"test\":1}")
  503. local HttpService_GenerateGUID = game:GetService("HttpService"):GenerateGUID(false)
  504. local HttpService_UrlEncode = game:GetService("HttpService"):UrlEncode("test value")
  505. local New = Instance.new("Part", nil)
  506.  
  507. local queueteleport = (syn and syn.queue_on_teleport) or queue_on_teleport or (fluxus and fluxus.queue_on_teleport)
  508.  
  509. local httprequest = (syn and syn.request) or (http and http.request) or http_request or (fluxus and fluxus.request) or request
  510.  
  511. --------------------------------------------------------------------------------------------------------------------
  512.  
  513. -- ══════════════════════════════════════════════════
  514. -- (Détection HTTP Function / Détection GetGenv)
  515. -- ══════════════════════════════════════════════════
  516.  
  517. local LocalizationService = game:GetService("LocalizationService")
  518. local TweenService = game:GetService("TweenService")
  519.  
  520.  
  521. local hasGetGenv = false
  522.  
  523. pcall(function()
  524. if typeof(getgenv) == "function" then
  525. hasGetGenv = true
  526. end
  527. end)
  528.  
  529.  
  530. local requestFunc
  531. local httpSuccess = false
  532.  
  533. pcall(function()
  534. if syn and syn.request then
  535. requestFunc = syn.request
  536. elseif http and http.request then
  537. requestFunc = http.request
  538. elseif http_request then
  539. requestFunc = http_request
  540. elseif fluxus and fluxus.request then
  541. requestFunc = fluxus.request
  542. elseif request then
  543. requestFunc = request
  544. end
  545. end)
  546.  
  547. if requestFunc then
  548. httpSuccess = true
  549. end
  550.  
  551.  
  552. local translations = {
  553. fr = {
  554. getgenv = "La fonction getgenv est introuvable ! ⚠️",
  555. http = "Aucune fonction HTTP supportée trouvée ! ⚠️"
  556. },
  557. en = {
  558. getgenv = "getgenv function not found! ⚠️",
  559. http = "No supported HTTP request function found! ⚠️"
  560. },
  561. es = {
  562. getgenv = "¡Función getgenv no encontrada! ⚠️",
  563. http = "¡No se encontró ninguna función HTTP compatible! ⚠️"
  564. },
  565. pt = {
  566. getgenv = "Função getgenv não encontrada! ⚠️",
  567. http = "Nenhuma função HTTP suportada encontrada! ⚠️"
  568. },
  569. tr = {
  570. getgenv = "getgenv işlevi bulunamadı! ⚠️",
  571. http = "Desteklenen HTTP isteği işlevi bulunamadı! ⚠️"
  572. },
  573. it = {
  574. getgenv = "Funzione getgenv non trovata! ⚠️",
  575. http = "Nessuna funzione HTTP supportata trovata! ⚠️"
  576. },
  577. de = {
  578. getgenv = "getgenv-Funktion nicht gefunden! ⚠️",
  579. http = "Keine unterstützte HTTP-Anfragefunktion gefunden! ⚠️"
  580. },
  581. ar = {
  582. getgenv = "لم يتم العثور على دالة getgenv! ⚠️",
  583. http = "لم يتم العثور على أي دالة HTTP مدعومة! ⚠️"
  584. },
  585. ja = {
  586. getgenv = "getgenv 関数が見つかりません!⚠️",
  587. http = "サポートされているHTTPリクエスト機能が見つかりません!⚠️"
  588. },
  589. ru = {
  590. getgenv = "Функция getgenv не найдена! ⚠️",
  591. http = "Поддерживаемая функция HTTP-запроса не найдена! ⚠️"
  592. },
  593. zh = {
  594. getgenv = "未找到 getgenv 函数!⚠️",
  595. http = "未找到受支持的HTTP请求函数!⚠️"
  596. }
  597. }
  598.  
  599. local function getTranslatedMessage()
  600. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  601. return langText[langCode] or langText["en"]
  602. end
  603.  
  604.  
  605. local NotificationLib = {
  606. _notifications = {},
  607. _theme = {
  608. primaryColor = Color3.fromRGB(30,30,30),
  609. textColor = Color3.fromRGB(255,255,255),
  610. font = Enum.Font.GothamSemibold,
  611. cornerRadius = UDim.new(0,8)
  612. },
  613. _settings = {
  614. duration = 4,
  615. spacing = 12,
  616. fadeTime = 0.28,
  617. slideDistance = 18
  618. },
  619. _icons = { info = "rbxassetid://9405926389" }
  620. }
  621.  
  622. function NotificationLib:_init()
  623. if not self._container then
  624. self._container = Instance.new("ScreenGui")
  625. self._container.Name = "NotificationLibrary"
  626. self._container.ResetOnSpawn = false
  627. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  628. self._container.Parent = game:GetService("CoreGui")
  629. end
  630. end
  631.  
  632. function NotificationLib:_calculatePosition(i)
  633. return UDim2.new(1, -24, 1, -24 - (i-1)*(90 + self._settings.spacing))
  634. end
  635.  
  636. function NotificationLib:_animateOut(frame)
  637. local tween = TweenService:Create(
  638. frame,
  639. TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad),
  640. {
  641. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  642. BackgroundTransparency = 1
  643. }
  644. )
  645. tween:Play()
  646. tween.Completed:Connect(function()
  647. if frame.Parent then frame:Destroy() end
  648. end)
  649. end
  650.  
  651. function NotificationLib:Notify(opt)
  652. self:_init()
  653. opt = opt or {}
  654.  
  655. local frame = Instance.new("Frame")
  656. frame.Size = UDim2.new(0,340,0,90)
  657. frame.AnchorPoint = Vector2.new(1,1)
  658. frame.Position = self:_calculatePosition(#self._notifications + 1)
  659. frame.BackgroundColor3 = self._theme.primaryColor
  660. frame.Parent = self._container
  661. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  662.  
  663. local title = Instance.new("TextLabel", frame)
  664. title.Text = opt.Title or "Notification"
  665. title.Font = self._theme.font
  666. title.TextColor3 = self._theme.textColor
  667. title.TextSize = 16
  668. title.TextXAlignment = Enum.TextXAlignment.Left
  669. title.BackgroundTransparency = 1
  670. title.Size = UDim2.new(1,-60,0,22)
  671. title.Position = UDim2.new(0,48,0,10)
  672.  
  673. local msg = Instance.new("TextLabel", frame)
  674. msg.Text = opt.Message or ""
  675. msg.Font = Enum.Font.Gotham
  676. msg.TextColor3 = self._theme.textColor
  677. msg.TextSize = 14
  678. msg.TextWrapped = true
  679. msg.TextXAlignment = Enum.TextXAlignment.Left
  680. msg.BackgroundTransparency = 1
  681. msg.Size = UDim2.new(1,-60,0,48)
  682. msg.Position = UDim2.new(0,48,0,30)
  683.  
  684. table.insert(self._notifications, frame)
  685.  
  686. task.delay(opt.Duration or self._settings.duration, function()
  687. self:_animateOut(frame)
  688. end)
  689. end
  690.  
  691.  
  692.  
  693. if not hasGetGenv then
  694. warn("[EXPLOIT WARNING] getgenv function not found")
  695. NotificationLib:Notify({
  696. Title = "EXPLOIT WARNING",
  697. Message = getMessage("getgenv"),
  698. Duration = 5
  699. })
  700. end
  701.  
  702. if not httpSuccess then
  703. warn("[HTTP WARNING] No supported HTTP request function found")
  704. NotificationLib:Notify({
  705. Title = "HTTP WARNING",
  706. Message = getMessage("http"),
  707. Duration = 5
  708. })
  709. end
  710.  
  711.  
  712. _G.MISSING_GETGENV = not hasGetGenv
  713. _G.MISSING_HTTP = not httpSuccess
  714.  
  715. --------------------------------------------------------------------------------------------------------------------
  716.  
  717. -- ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
  718. -- (Protection Gui /Main Frame/Protection Logo / Détection Mouse and Touch /Resize Gui)
  719. -- ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
  720.  
  721. local screenGui = Instance.new("ScreenGui", game:GetService("CoreGui"))
  722.  
  723. -- Essayer de créer un parent vers un emplacement protégé
  724. pcall(function()
  725. if get_hidden_gui then
  726. screenGui.Parent = get_hidden_gui()
  727.  
  728. elseif gethui then
  729. screenGui.Parent = gethui()
  730.  
  731. elseif not is_sirhurt_closure and syn and syn.protect_gui then
  732. syn.protect_gui(screenGui)
  733. screenGui.Parent = game:GetService("CoreGui")
  734.  
  735. else
  736. screenGui.Parent = game:GetService("CoreGui")
  737. end
  738. end)
  739.  
  740. if not screenGui.Parent then
  741. screenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
  742. end
  743.  
  744. local mainFrame = Instance.new("Frame", screenGui)
  745. mainFrame.Name = "SFD_ProtectGui" .. tostring(math.random(100, 999))
  746. mainFrame.Size = UDim2.new(0, 650, 0, 500)
  747. mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
  748. mainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
  749. mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  750. mainFrame.BorderSizePixel = 0
  751. mainFrame.ZIndex = 5 -- On donne une base solide
  752.  
  753. local corner = Instance.new("UICorner")
  754. corner.Parent = mainFrame
  755.  
  756. -- Détection des Screen
  757.  
  758. if isOnMobile or SCREEN_SIZE.X < 800 then
  759. mainFrame.Size = UDim2.new(0, 800, 0, 600)
  760. else
  761. mainFrame.Size = UDim2.new(0, 650, 0, 500)
  762. end
  763.  
  764. local dragging, dragInput, dragStart, startPos
  765. local function updateDrag(input)
  766. local delta = input.Position - dragStart
  767. local pos = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
  768. startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  769. TweenService:Create(mainFrame, TweenInfo.new(0.15), {Position = pos}):Play()
  770. end
  771.  
  772. mainFrame.InputBegan:Connect(function(input)
  773. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  774. dragging = true
  775. dragStart = input.Position
  776. startPos = mainFrame.Position
  777. input.Changed:Connect(function()
  778. if input.UserInputState == Enum.UserInputState.End then dragging = false end
  779. end)
  780. end
  781. end)
  782.  
  783. mainFrame.InputChanged:Connect(function(input)
  784. if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  785. dragInput = input
  786. end
  787. end)
  788.  
  789. UserInputService.InputChanged:Connect(function(input)
  790. if dragging and input == dragInput then updateDrag(input) end
  791. end)
  792.  
  793. --------------------------------------------------------------------------------------------------------------------
  794.  
  795. -- ════════════════════════════════════════
  796. -- (Logo Server Finder Deluxe / plus Events April Day)
  797. -- ════════════════════════════════════════
  798. local TweenService = game:GetService("TweenService")
  799.  
  800. local dir = "Server Finder Deluxe"
  801. local file = dir.."/sfd_logo.png"
  802. local link = "https://raw.githubusercontent.com/MaxproGlitcher/Server-Finder-Deluxe/main/Logo%20m%C3%A9tallique%20de%20Server%20Finder%20Deluxe.png"
  803.  
  804. if not isfolder(dir) then
  805. makefolder(dir)
  806. end
  807.  
  808. local logo = Instance.new("ImageLabel")
  809. logo.Name = "_SFD_Logo_"
  810.  
  811. logo.Parent = mainFrame
  812. logo.Size = UDim2.new(0.8, 0, 0.8, 0)
  813. logo.AnchorPoint = Vector2.new(0.5, 0.5)
  814. logo.Position = UDim2.new(0.5, 0, 0.5, 0)
  815. logo.BackgroundTransparency = 1
  816. logo.ImageTransparency = 0.88
  817. logo.ScaleType = Enum.ScaleType.Fit
  818. logo.ZIndex = 20
  819.  
  820.  
  821. local TweenService = game:GetService("TweenService")
  822.  
  823. local function isAprilFools()
  824. local d = os.date("*t")
  825. return d.day == 1 and d.month == 4
  826. end
  827.  
  828.  
  829. local function spinLogo()
  830. while logo and logo.Parent do
  831. local tween = TweenService:Create(
  832. logo,
  833. TweenInfo.new(2, Enum.EasingStyle.Linear),
  834. {Rotation = logo.Rotation + 360}
  835. )
  836. tween:Play()
  837. tween.Completed:Wait()
  838. end
  839. end
  840.  
  841.  
  842. local function isValidAsset(asset)
  843. if not asset or asset == "" then
  844. return false
  845. end
  846. return string.find(asset, "rbxasset") ~= nil
  847. end
  848.  
  849.  
  850. local function downloadLogo()
  851. local ok, data = pcall(function()
  852. return game:HttpGet(link)
  853. end)
  854.  
  855. if ok and data then
  856. if not isfolder(dir) then
  857. makefolder(dir)
  858. end
  859. writefile(file, data)
  860. end
  861. end
  862.  
  863.  
  864. local function getLogoAsset()
  865. if not isfile(file) then
  866. downloadLogo()
  867. task.wait(0.3)
  868. end
  869.  
  870. local success, asset = pcall(function()
  871. return getcustomasset(file)
  872. end)
  873.  
  874. if not success or not isValidAsset(asset) then
  875. warn("Logo invalide → re-download")
  876.  
  877. if isfolder(dir) then
  878. delfolder(dir)
  879. task.wait()
  880. end
  881. makefolder(dir)
  882.  
  883. downloadLogo()
  884. task.wait(0.3)
  885.  
  886. local retry, newAsset = pcall(function()
  887. return getcustomasset(file)
  888. end)
  889.  
  890. if retry and isValidAsset(newAsset) then
  891. return newAsset
  892. end
  893.  
  894. return nil
  895. end
  896.  
  897. return asset
  898. end
  899.  
  900.  
  901. local function loadLogo()
  902. local myAsset = getLogoAsset()
  903. if not myAsset then return end
  904.  
  905. logo.Image = myAsset
  906. logo.Visible = true
  907.  
  908.  
  909. if isAprilFools() then
  910. task.spawn(spinLogo)
  911. end
  912.  
  913.  
  914. task.spawn(function()
  915. while task.wait(0.5) do
  916. if not mainFrame or not mainFrame.Parent then break end
  917.  
  918. if not logo.Image or logo.Image == "" then
  919. local newAsset = getLogoAsset()
  920. if newAsset then
  921. logo.Image = newAsset
  922. end
  923. end
  924.  
  925. logo.Visible = true
  926. logo.ZIndex = 20
  927.  
  928. if not isAprilFools() then
  929. logo.ImageTransparency = 0.88
  930. logo.Position = UDim2.new(0.5, 0, 0.5, 0)
  931. logo.Rotation = 0
  932. end
  933. end
  934. end)
  935. end
  936.  
  937. task.defer(loadLogo)
  938.  
  939.  
  940.  
  941. --------------------------------------------------------------------------------------------------------------------
  942.  
  943. -- ════════════════════════════════════════
  944. -- (Message de bienvenu / plus décoration)
  945. -- ════════════════════════════════════════
  946.  
  947. local TweenService = game:GetService("TweenService")
  948. local LocalizationService = game:GetService("LocalizationService")
  949. local Players = game:GetService("Players")
  950. local LocalPlayer = Players.LocalPlayer
  951.  
  952. local function GetEasterDate(year)
  953. local A = math.floor(year/100)
  954. local B = math.floor((13+8*A)/25)
  955. local C = (15-B+A-math.floor(A/4))%30
  956. local D = (4+A-math.floor(A/4))%7
  957. local E = (19*(year%19)+C)%30
  958. local F = (2*(year%4)+4*(year%7)+6*E+D)%7
  959. local G = 22 + E + F
  960.  
  961. if E == 29 and F == 6 then
  962. return 4, 19
  963. elseif E == 28 and F == 6 then
  964. return 4, 18
  965. elseif G > 31 then
  966. return 4, G-31
  967. else
  968. return 3, G
  969. end
  970. end
  971.  
  972. local isXmas, isNewYear, isEaster, isHalloween, isValentine = false, false, false, false, false
  973.  
  974. local success, err = pcall(function()
  975. local date = os.date("*t")
  976. local emonth, eday = GetEasterDate(date.year)
  977. isXmas = date.month == 12 and date.day >= 15 and date.day <= 29
  978. isHalloween = (date.month == 10 and date.day >= 23) or (date.month == 11 and date.day <= 1)
  979. isNewYear = (date.month == 12 and date.day >= 30) or (date.month == 1 and date.day <= 2)
  980. isValentine = (date.month == 2 and date.day == 14)
  981. isEaster = (date.month == emonth and date.day == eday)
  982. end)
  983.  
  984. if not success then
  985. warn("Date system error for the welcome message:", err)
  986. end
  987.  
  988. local holidayTexts = {
  989. Christmas = {
  990. ["fr"] = "🎄 Joyeux Noël !",
  991. ["en"] = "🎄 Merry Christmas!",
  992. ["es"] = "🎄 ¡Feliz Navidad!",
  993. ["pt"] = "🎄 Feliz Natal!",
  994. ["tr"] = "🎄 Mutlu Noeller!",
  995. ["it"] = "🎄 Buon Natale!",
  996. ["de"] = "🎄 Frohe Weihnachten!",
  997. ["ar"] = "🎄 عيد ميلاد سعيد!",
  998. ["ja"] = "🎄 メリークリスマス!",
  999. ["ru"] = "🎄 С Рождеством!",
  1000. ["zh"] = "🎄 圣诞快乐!"
  1001. },
  1002. NewYear = {
  1003. ["fr"] = "🎉 Bonne année !",
  1004. ["en"] = "🎉 Happy New Year!",
  1005. ["es"] = "🎉 ¡Feliz Año Nuevo!",
  1006. ["pt"] = "🎉 Feliz Ano Novo!",
  1007. ["tr"] = "🎉 Mutlu Yıllar!",
  1008. ["it"] = "🎉 Buon Anno!",
  1009. ["de"] = "🎉 Frohes Neues Jahr!",
  1010. ["ar"] = "🎉 سنة جديدة سعيدة!",
  1011. ["ja"] = "🎉 明けましておめでとう!",
  1012. ["ru"] = "🎉 С Новым годом!",
  1013. ["zh"] = "🎉 新年快乐!"
  1014. },
  1015. Easter = {
  1016. ["fr"] = "🐰 Joyeuses Pâques !",
  1017. ["en"] = "🐰 Happy Easter!",
  1018. ["es"] = "🐰 ¡Feliz Pascua!",
  1019. ["pt"] = "🐰 Feliz Páscoa!",
  1020. ["tr"] = "🐰 Mutlu Paskalyalar!",
  1021. ["it"] = "🐰 Buona Pasqua!",
  1022. ["de"] = "🐰 Frohe Ostern!",
  1023. ["ar"] = "🐰 عيد فصح سعيد!",
  1024. ["ja"] = "🐰 ハッピーイースター!",
  1025. ["ru"] = "🐰 С Пасхой!",
  1026. ["zh"] = "🐰 复活节快乐!"
  1027. },
  1028. Halloween = {
  1029. ["fr"] = "🎃 Joyeux Halloween !",
  1030. ["en"] = "🎃 Happy Halloween!",
  1031. ["es"] = "🎃 ¡Feliz Halloween!",
  1032. ["pt"] = "🎃 Feliz Dia das Bruxas!",
  1033. ["tr"] = "🎃 Mutlu Cadılar Bayramı!",
  1034. ["it"] = "🎃 Buon Halloween!",
  1035. ["de"] = "🎃 Frohes Halloween!",
  1036. ["ar"] = "🎃 عيد هالوين سعيد!",
  1037. ["ja"] = "🎃 ハッピーハロウィン!",
  1038. ["ru"] = "🎃 С Хэллоуином!",
  1039. ["zh"] = "🎃 万圣节快乐!"
  1040. },
  1041. Valentine = {
  1042. ["fr"] = "💖 Bonne Saint-Valentin !",
  1043. ["en"] = "💖 Happy Valentine's Day!",
  1044. ["es"] = "💖 ¡Feliz Día de San Valentín!",
  1045. ["pt"] = "💖 Feliz Dia dos Namorados!",
  1046. ["tr"] = "💖 Sevgililer Gününüz Kutlu Olsun!",
  1047. ["it"] = "💖 Buon San Valentino!",
  1048. ["de"] = "💖 Alles Gute zum Valentinstag!",
  1049. ["ar"] = "💖 عيد حب سعيد!",
  1050. ["ja"] = "💖 ハッピーバレンタイン!",
  1051. ["ru"] = "💖 С Днем Святого Валентина!",
  1052. ["zh"] = "💖 情人节快乐!"
  1053. },
  1054. Welcome = {
  1055. ["fr"] = "👋 Bienvenue sur Server Finder Deluxe !",
  1056. ["en"] = "👋 Welcome to Server Finder Deluxe!",
  1057. ["es"] = "👋 ¡Bienvenido a Server Finder Deluxe!",
  1058. ["pt"] = "👋 Bem-vindo ao Server Finder Deluxe!",
  1059. ["tr"] = "👋 Server Finder Deluxe'a Hoş Geldiniz!",
  1060. ["it"] = "👋 Benvenuto su Server Finder Deluxe!",
  1061. ["de"] = "👋 Willkommen bei Server Finder Deluxe!",
  1062. ["ar"] = "👋 مرحبًا بك في Server Finder Deluxe!",
  1063. ["ja"] = "👋 Server Finder Deluxeへようこそ!",
  1064. ["ru"] = "👋 Добро пожаловать в Server Finder Deluxe!",
  1065. ["zh"] = "👋 欢迎使用 Server Finder Deluxe!"
  1066. }
  1067. }
  1068.  
  1069.  
  1070. local function getHolidayMessage(eventKey)
  1071. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  1072. local eventTable = holidayTexts[eventKey]
  1073. return eventTable and (eventTable[langCode] or eventTable["en"]) or "Happy holidays! 🎉"
  1074. end
  1075.  
  1076.  
  1077. local NotificationLib = {
  1078. _notifications = {},
  1079. _theme = {
  1080. primaryColor = Color3.fromRGB(30, 30, 30),
  1081. textColor = Color3.fromRGB(255, 255, 255),
  1082. font = Enum.Font.GothamSemibold,
  1083. cornerRadius = UDim.new(0, 8)
  1084. },
  1085. _settings = {
  1086. duration = 4,
  1087. spacing = 12,
  1088. fadeTime = 0.28,
  1089. slideDistance = 18
  1090. },
  1091. _icons = { info = "rbxassetid://9405926389" }
  1092. }
  1093.  
  1094. function NotificationLib:_init()
  1095. if not self._container then
  1096. self._container = Instance.new("ScreenGui")
  1097. self._container.Name = "NotificationLibrary"
  1098. self._container.ResetOnSpawn = false
  1099. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1100. self._container.Parent = game:GetService("CoreGui")
  1101. end
  1102. end
  1103.  
  1104. function NotificationLib:_calculatePosition(index)
  1105. local spacing = self._settings.spacing
  1106. local height = 90
  1107. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  1108. end
  1109.  
  1110. function NotificationLib:_animateOut(frame, callback)
  1111. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  1112. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  1113. BackgroundTransparency = 1
  1114. })
  1115. tween:Play()
  1116. tween.Completed:Connect(function()
  1117. if frame and frame.Parent then frame:Destroy() end
  1118. if callback then callback() end
  1119. end)
  1120. end
  1121.  
  1122. function NotificationLib:Notify(opt)
  1123. self:_init()
  1124. opt = opt or {}
  1125. local title = opt.Title or "Notification"
  1126. local message = opt.Message or ""
  1127. local duration = opt.Duration or self._settings.duration
  1128.  
  1129. local frame = Instance.new("Frame")
  1130. frame.BackgroundColor3 = self._theme.primaryColor
  1131. frame.Size = UDim2.new(0, 340, 0, 90)
  1132. frame.AnchorPoint = Vector2.new(1,1)
  1133. frame.Position = self:_calculatePosition(#self._notifications + 1)
  1134. frame.Parent = self._container
  1135. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  1136.  
  1137. local icon = Instance.new("ImageLabel", frame)
  1138. icon.Image = self._icons.info
  1139. icon.Size = UDim2.new(0,28,0,28)
  1140. icon.Position = UDim2.new(0,12,0,12)
  1141. icon.BackgroundTransparency = 1
  1142.  
  1143. local titleLabel = Instance.new("TextLabel", frame)
  1144. titleLabel.Font = self._theme.font
  1145. titleLabel.TextColor3 = self._theme.textColor
  1146. titleLabel.TextSize = 16
  1147. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  1148. titleLabel.Text = title
  1149. titleLabel.BackgroundTransparency = 1
  1150. titleLabel.Size = UDim2.new(1,-60,0,22)
  1151. titleLabel.Position = UDim2.new(0,48,0,10)
  1152.  
  1153. local msgLabel = Instance.new("TextLabel", frame)
  1154. msgLabel.Font = Enum.Font.Gotham
  1155. msgLabel.TextColor3 = self._theme.textColor
  1156. msgLabel.TextSize = 14
  1157. msgLabel.TextWrapped = true
  1158. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  1159. msgLabel.Text = message
  1160. msgLabel.BackgroundTransparency = 1
  1161. msgLabel.Size = UDim2.new(1,-60,0,48)
  1162. msgLabel.Position = UDim2.new(0,48,0,30)
  1163.  
  1164. table.insert(self._notifications, frame)
  1165.  
  1166. task.delay(duration, function()
  1167. if frame and frame.Parent then
  1168. self:_animateOut(frame, function()
  1169. for i,v in ipairs(self._notifications) do
  1170. if v == frame then table.remove(self._notifications,i); break end
  1171. end
  1172. end)
  1173. end
  1174. end)
  1175. end
  1176.  
  1177.  
  1178. local eventName
  1179. local message
  1180.  
  1181. if isXmas then
  1182. eventName = "🎄 Christmas"
  1183. message = getHolidayMessage("Christmas")
  1184. elseif isNewYear then
  1185. eventName = "🎉 New Year"
  1186. message = getHolidayMessage("NewYear")
  1187. elseif isEaster then
  1188. eventName = "🐰 Easter"
  1189. message = getHolidayMessage("Easter")
  1190. elseif isHalloween then
  1191. eventName = "🎃 Halloween"
  1192. message = getHolidayMessage("Halloween")
  1193. elseif isValentine then
  1194. eventName = "💖 Valentine's Day"
  1195. message = getHolidayMessage("Valentine")
  1196. else
  1197. eventName = "👋 Welcome"
  1198. message = getHolidayMessage("Welcome")
  1199. end
  1200.  
  1201. task.wait(2)
  1202. NotificationLib:Notify({
  1203. Title = eventName,
  1204. Message = message,
  1205. Duration = 6
  1206. })
  1207.  
  1208. task.wait(6)
  1209.  
  1210. --------------------------------------------------------------------------------------------------------------------
  1211.  
  1212. -- ════════════════════════════════════════
  1213. -- (IdentifyExecutor)
  1214. -- ════════════════════════════════════════
  1215.  
  1216. local TweenService = game:GetService("TweenService")
  1217. local LocalizationService = game:GetService("LocalizationService")
  1218. local Players = game:GetService("Players")
  1219. local LocalPlayer = Players.LocalPlayer
  1220.  
  1221. local NotificationLib = {
  1222. _notifications = {},
  1223. _theme = {
  1224. primaryColor = Color3.fromRGB(30, 30, 30),
  1225. textColor = Color3.fromRGB(255, 255, 255),
  1226. font = Enum.Font.GothamSemibold,
  1227. cornerRadius = UDim.new(0, 8)
  1228. },
  1229. _settings = {
  1230. duration = 4,
  1231. spacing = 12,
  1232. fadeTime = 0.28,
  1233. slideDistance = 18
  1234. },
  1235. _icons = { info = "rbxassetid://9405926389" }
  1236. }
  1237.  
  1238. function NotificationLib:_init()
  1239. if not self._container then
  1240. self._container = Instance.new("ScreenGui")
  1241. self._container.Name = "NotificationLibrary"
  1242. self._container.ResetOnSpawn = false
  1243. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1244. self._container.Parent = game:GetService("CoreGui")
  1245. end
  1246. end
  1247.  
  1248. function NotificationLib:_calculatePosition(index)
  1249. local spacing = self._settings.spacing
  1250. local height = 90
  1251. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  1252. end
  1253.  
  1254. function NotificationLib:_animateOut(frame, callback)
  1255. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  1256. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  1257. BackgroundTransparency = 1
  1258. })
  1259. tween:Play()
  1260. tween.Completed:Connect(function()
  1261. if frame and frame.Parent then frame:Destroy() end
  1262. if callback then callback() end
  1263. end)
  1264. end
  1265.  
  1266. function NotificationLib:Notify(opt)
  1267. self:_init()
  1268. opt = opt or {}
  1269. local title = opt.Title or "Notification"
  1270. local message = opt.Message or ""
  1271. local duration = opt.Duration or self._settings.duration
  1272.  
  1273. local frame = Instance.new("Frame")
  1274. frame.BackgroundColor3 = self._theme.primaryColor
  1275. frame.Size = UDim2.new(0, 340, 0, 90)
  1276. frame.AnchorPoint = Vector2.new(1,1)
  1277. frame.Position = self:_calculatePosition(#self._notifications + 1)
  1278. frame.Parent = self._container
  1279. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  1280.  
  1281. local icon = Instance.new("ImageLabel", frame)
  1282. icon.Image = self._icons.info
  1283. icon.Size = UDim2.new(0,28,0,28)
  1284. icon.Position = UDim2.new(0,12,0,12)
  1285. icon.BackgroundTransparency = 1
  1286.  
  1287. local titleLabel = Instance.new("TextLabel", frame)
  1288. titleLabel.Font = self._theme.font
  1289. titleLabel.TextColor3 = self._theme.textColor
  1290. titleLabel.TextSize = 16
  1291. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  1292. titleLabel.Text = title
  1293. titleLabel.BackgroundTransparency = 1
  1294. titleLabel.Size = UDim2.new(1,-60,0,22)
  1295. titleLabel.Position = UDim2.new(0,48,0,10)
  1296.  
  1297. local msgLabel = Instance.new("TextLabel", frame)
  1298. msgLabel.Font = Enum.Font.Gotham
  1299. msgLabel.TextColor3 = self._theme.textColor
  1300. msgLabel.TextSize = 14
  1301. msgLabel.TextWrapped = true
  1302. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  1303. msgLabel.Text = message
  1304. msgLabel.BackgroundTransparency = 1
  1305. msgLabel.Size = UDim2.new(1,-60,0,48)
  1306. msgLabel.Position = UDim2.new(0,48,0,30)
  1307.  
  1308. table.insert(self._notifications, frame)
  1309.  
  1310. task.delay(duration, function()
  1311. if frame and frame.Parent then
  1312. self:_animateOut(frame, function()
  1313. for i,v in ipairs(self._notifications) do
  1314. if v == frame then table.remove(self._notifications,i); break end
  1315. end
  1316. end)
  1317. end
  1318. end)
  1319. end
  1320.  
  1321. task.spawn(function()
  1322. local success, result = pcall(function()
  1323. return identifyexecutor()
  1324. end)
  1325.  
  1326. local exploitName = "Unknown"
  1327.  
  1328. if success and result and result ~= "" then
  1329. exploitName = tostring(result)
  1330. end
  1331.  
  1332. NotificationLib:Notify({
  1333. Title = "Exploit Detected",
  1334. Message = "Exploit detected: " .. exploitName,
  1335. Duration = 6
  1336. })
  1337. end)
  1338.  
  1339. --------------------------------------------------------------------------------------------------------------------
  1340.  
  1341. -- ════════════════════════════════════════
  1342. -- (Tracker Game)
  1343. -- ════════════════════════════════════════
  1344.  
  1345. local TweenService = game:GetService("TweenService")
  1346. local TeleportService = game:GetService("TeleportService")
  1347. local Players = game:GetService("Players")
  1348. local LocalizationService = game:GetService("LocalizationService")
  1349. local LocalPlayer = Players.LocalPlayer
  1350.  
  1351.  
  1352. local langText = {
  1353. ["fr"] = "Tracker Game 📡 : ",
  1354. ["en"] = "Tracker Game 📡: ",
  1355. ["es"] = "Juego rastreado 📡: ",
  1356. ["pt"] = "Jogo rastreado 📡: ",
  1357. ["tr"] = "İzlenen oyun 📡: ",
  1358. ["it"] = "Gioco tracciato 📡: ",
  1359. ["de"] = "Verfolgtes Spiel 📡: ",
  1360. ["ar"] = "اللعبة المتتبعة 📡: ",
  1361. ["ja"] = "トラッカーゲーム📡:",
  1362. ["ru"] = "Отслеживаемая игра 📡: ",
  1363. ["zh"] = "追踪游戏 📡:"
  1364. }
  1365.  
  1366. local function getLang()
  1367. local code = LocalizationService.RobloxLocaleId
  1368. if type(code) ~= "string" then
  1369. return "en"
  1370. end
  1371. return string.lower(code):sub(1,2)
  1372. end
  1373.  
  1374. local function getTranslatedPrefix()
  1375. local lang = getLang()
  1376. return langText[lang] or langText["en"]
  1377. end
  1378.  
  1379. local NotificationLib = {
  1380. _notifications = {},
  1381. _theme = {
  1382. primaryColor = Color3.fromRGB(30, 30, 30),
  1383. textColor = Color3.fromRGB(255, 255, 255),
  1384. font = Enum.Font.GothamSemibold,
  1385. cornerRadius = UDim.new(0, 8)
  1386. },
  1387. _settings = {
  1388. duration = 4,
  1389. spacing = 12,
  1390. fadeTime = 0.28,
  1391. slideDistance = 18
  1392. },
  1393. _icons = { info = "rbxassetid://9405926389" }
  1394. }
  1395.  
  1396. function NotificationLib:_init()
  1397. if not self._container then
  1398. self._container = Instance.new("ScreenGui")
  1399. self._container.Name = "NotificationLibrary"
  1400. self._container.ResetOnSpawn = false
  1401. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1402. self._container.Parent = game:GetService("CoreGui")
  1403. end
  1404. end
  1405.  
  1406. function NotificationLib:_calculatePosition(index)
  1407. local spacing = self._settings.spacing
  1408. local height = 90
  1409. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  1410. end
  1411.  
  1412. function NotificationLib:_animateOut(frame, callback)
  1413. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  1414. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  1415. BackgroundTransparency = 1
  1416. })
  1417. tween:Play()
  1418. tween.Completed:Connect(function()
  1419. if frame and frame.Parent then frame:Destroy() end
  1420. if callback then callback() end
  1421. end)
  1422. end
  1423.  
  1424. function NotificationLib:Notify(opt)
  1425. self:_init()
  1426. opt = opt or {}
  1427. local title = opt.Title or "Notification"
  1428. local message = opt.Message or ""
  1429. local duration = opt.Duration or self._settings.duration
  1430.  
  1431. local frame = Instance.new("Frame")
  1432. frame.BackgroundColor3 = self._theme.primaryColor
  1433. frame.Size = UDim2.new(0, 340, 0, 90)
  1434. frame.AnchorPoint = Vector2.new(1,1)
  1435. frame.Position = self:_calculatePosition(#self._notifications + 1)
  1436. frame.Parent = self._container
  1437. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  1438.  
  1439. local icon = Instance.new("ImageLabel", frame)
  1440. icon.Image = self._icons.info
  1441. icon.Size = UDim2.new(0,28,0,28)
  1442. icon.Position = UDim2.new(0,12,0,12)
  1443. icon.BackgroundTransparency = 1
  1444.  
  1445. local titleLabel = Instance.new("TextLabel", frame)
  1446. titleLabel.Font = self._theme.font
  1447. titleLabel.TextColor3 = self._theme.textColor
  1448. titleLabel.TextSize = 16
  1449. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  1450. titleLabel.Text = title
  1451. titleLabel.BackgroundTransparency = 1
  1452. titleLabel.Size = UDim2.new(1,-60,0,22)
  1453. titleLabel.Position = UDim2.new(0,48,0,10)
  1454.  
  1455. local msgLabel = Instance.new("TextLabel", frame)
  1456. msgLabel.Font = Enum.Font.Gotham
  1457. msgLabel.TextColor3 = self._theme.textColor
  1458. msgLabel.TextSize = 14
  1459. msgLabel.TextWrapped = true
  1460. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  1461. msgLabel.Text = message
  1462. msgLabel.BackgroundTransparency = 1
  1463. msgLabel.Size = UDim2.new(1,-60,0,48)
  1464. msgLabel.Position = UDim2.new(0,48,0,30)
  1465.  
  1466. table.insert(self._notifications, frame)
  1467.  
  1468. task.delay(duration, function()
  1469. if frame and frame.Parent then
  1470. self:_animateOut(frame, function()
  1471. for i,v in ipairs(self._notifications) do
  1472. if v == frame then table.remove(self._notifications,i); break end
  1473. end
  1474. end)
  1475. end
  1476. end)
  1477. end
  1478.  
  1479. local MarketplaceService = game:GetService("MarketplaceService")
  1480.  
  1481. local function getGameName()
  1482. local success, result = pcall(function()
  1483. return MarketplaceService:GetProductInfo(game.PlaceId)
  1484. end)
  1485.  
  1486. if success and result and result.Name then
  1487. return result.Name
  1488. end
  1489.  
  1490. return "Unknown Game"
  1491. end
  1492.  
  1493. task.defer(function()
  1494. local success, err = pcall(function()
  1495. local prefix = getTranslatedPrefix()
  1496. local gameName = getGameName()
  1497.  
  1498. NotificationLib:Notify({
  1499. Title = "System",
  1500. Message = prefix .. gameName,
  1501. Duration = 5
  1502. })
  1503. end)
  1504.  
  1505. if not success then
  1506. warn("Tracker error:", err)
  1507. end
  1508. end)
  1509. --------------------------------------------------------------------------------------------------------------------
  1510.  
  1511. -- ════════════════════════════════════════════════════════════════════════════════
  1512. -- (protection lors du screen shot le Gui deviendras invisible lors du screen shot)
  1513. -- ════════════════════════════════════════════════════════════════════════════════
  1514.  
  1515. pcall(function()
  1516. local CaptureService = game:GetService("CaptureService")
  1517.  
  1518. CaptureService.CaptureBegan:Connect(function()
  1519. screenGui.Enabled = false
  1520. end)
  1521.  
  1522. CaptureService.CaptureEnded:Connect(function()
  1523. task.delay(0.5, function()
  1524. screenGui.Enabled = true
  1525. end)
  1526. end)
  1527. end)
  1528.  
  1529. --------------------------------------------------------------------------------------------------------------------
  1530.  
  1531. -- ════════════════════════════════════════
  1532. -- (Titre du Gui et la Version)
  1533. -- ════════════════════════════════════════
  1534.  
  1535. local title = Instance.new("TextLabel", mainFrame)
  1536. title.Size = UDim2.new(1, 0, 0, 40)
  1537. title.Position = UDim2.new(0, 5, 0, 0)
  1538. title.BackgroundTransparency = 1
  1539. title.Text = "Server Finder Deluxe"
  1540. title.Font = Enum.Font.Ubuntu
  1541. title.TextSize = 30
  1542. title.TextColor3 = Color3.fromRGB(255, 255, 255)
  1543. title.ZIndex = 12
  1544.  
  1545.  
  1546. local versionLabel = Instance.new("TextLabel", mainFrame)
  1547. versionLabel.Size = UDim2.new(0, 150, 0, 25)
  1548. versionLabel.Position = UDim2.new(0, 10, 0, 8)
  1549. versionLabel.BackgroundTransparency = 1
  1550. versionLabel.Text = "v7.3"
  1551. versionLabel.Font = Enum.Font.Ubuntu
  1552. versionLabel.TextSize = 16
  1553. versionLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  1554. versionLabel.TextXAlignment = Enum.TextXAlignment.Left
  1555. versionLabel.ZIndex = 16
  1556.  
  1557. --------------------------------------------------------------------------------------------------------------------
  1558.  
  1559. -- ════════════════════════════════════════
  1560. -- (Décoration pour le Nom du Gui)
  1561. -- ════════════════════════════════════════
  1562.  
  1563. local function GetEasterDate(year)
  1564. local A = math.floor(year/100)
  1565. local B = math.floor((13+8*A)/25)
  1566. local C = (15-B+A-math.floor(A/4))%30
  1567. local D = (4+A-math.floor(A/4))%7
  1568. local E = (19*(year%19)+C)%30
  1569. local F = (2*(year%4)+4*(year%7)+6*E+D)%7
  1570. local G = 22 + E + F
  1571.  
  1572. if E == 29 and F == 6 then
  1573. return 4, 19
  1574. elseif E == 28 and F == 6 then
  1575. return 4, 18
  1576. elseif G > 31 then
  1577. return 4, G-31
  1578. else
  1579. return 3, G
  1580. end
  1581. end
  1582.  
  1583. local isXmas, isNewYear, isEaster, isHalloween, isValentine = false, false, false, false, false
  1584.  
  1585. local success, err = pcall(function()
  1586. local date = os.date("*t")
  1587. local emonth, eday = GetEasterDate(date.year)
  1588. isXmas = date.month == 12 and date.day >= 15 and date.day <= 29
  1589. isHalloween = (date.month == 10 and date.day >= 23) or (date.month == 11 and date.day <= 1)
  1590. isNewYear = (date.month == 12 and date.day >= 30) or (date.month == 1 and date.day <= 2)
  1591. isValentineDay = (date.month == 2 and date.day == 14)
  1592. isEaster = (date.month == emonth and date.day == eday)
  1593. end)
  1594.  
  1595. if not success then
  1596. warn("Date system error for writing Server Finder Deluxe:", err)
  1597. end
  1598.  
  1599. local function decorateTitle(startEmoji, endEmoji)
  1600. title.Text = startEmoji .. " Server Finder Deluxe " .. endEmoji
  1601. title.TextScaled = false
  1602. title.TextSize = 25
  1603. title.Position = UDim2.new(0, 0, 0, 2)
  1604. end
  1605.  
  1606.  
  1607. if isXmas then
  1608. decorateTitle("🎄", "🎄")
  1609. local cycleColors = {
  1610. Color3.fromRGB(0, 255, 0),
  1611. Color3.fromRGB(255, 0, 0),
  1612. Color3.fromRGB(255, 255, 255)
  1613. }
  1614. local index = 1
  1615. task.spawn(function()
  1616. while true do
  1617. title.TextColor3 = cycleColors[index]
  1618. versionLabel.TextColor3 = cycleColors[index]
  1619. index = index % #cycleColors + 1
  1620. task.wait(0.5)
  1621. end
  1622. end)
  1623. end
  1624.  
  1625. -- Effet Halloween
  1626. if isHalloween then
  1627. decorateTitle("🎃", "🎃")
  1628. local cycleColors = {
  1629. Color3.fromRGB(0, 0, 0),
  1630. Color3.fromRGB(255, 165, 0)
  1631. }
  1632. local index = 1
  1633. task.spawn(function()
  1634. while true do
  1635. title.TextColor3 = cycleColors[index]
  1636. versionLabel.TextColor3 = cycleColors[index]
  1637. index = index % #cycleColors + 1
  1638. task.wait(0.5)
  1639. end
  1640. end)
  1641. end
  1642.  
  1643.  
  1644. if isNewYear then
  1645. decorateTitle("🎉", "🎉")
  1646. local cycleColors = {
  1647. Color3.fromRGB(255, 255, 0),
  1648. Color3.fromRGB(0, 0, 0)
  1649. }
  1650. local index = 1
  1651. task.spawn(function()
  1652. while true do
  1653. title.TextColor3 = cycleColors[index]
  1654. versionLabel.TextColor3 = cycleColors[index]
  1655. index = index % #cycleColors + 1
  1656. task.wait(0.5)
  1657. end
  1658. end)
  1659. end
  1660.  
  1661.  
  1662. if isEaster then
  1663. decorateTitle("🐰", "🐰")
  1664. local cycleColors = {
  1665. Color3.fromRGB(216, 191, 216),
  1666. Color3.fromRGB(255, 182, 193),
  1667. Color3.fromRGB(193, 225, 193),
  1668. Color3.fromRGB(173, 216, 230)
  1669. }
  1670. local index = 1
  1671. task.spawn(function()
  1672. while true do
  1673. title.TextColor3 = cycleColors[index]
  1674. versionLabel.TextColor3 = cycleColors[index]
  1675. index = index % #cycleColors + 1
  1676. task.wait(0.5)
  1677. end
  1678. end)
  1679. end
  1680.  
  1681.  
  1682. if isValentineDay then
  1683. decorateTitle("💗", "💗")
  1684. local cycleColors = {
  1685. Color3.fromRGB(0, 0, 0),
  1686. Color3.fromRGB( 255, 85, 127)
  1687. }
  1688. local index = 1
  1689. task.spawn(function()
  1690. while true do
  1691. title.TextColor3 = cycleColors[index]
  1692. versionLabel.TextColor3 = cycleColors[index]
  1693. index = index % #cycleColors + 1
  1694. task.wait(0.5)
  1695. end
  1696. end)
  1697. end
  1698.  
  1699.  
  1700.  
  1701. if not isXmas and not isHalloween and not isNewYear and not isEaster and not isValentineDay then
  1702. title.Text = "Server Finder Deluxe"
  1703. title.Position = UDim2.new(0, 0, 0, 0)
  1704. end
  1705.  
  1706. --------------------------------------------------------------------------------------------------------------------
  1707.  
  1708. -- ════════════════════════════════════════
  1709. -- (Scroll Frame)
  1710. -- ════════════════════════════════════════
  1711.  
  1712. local scrollFrame = Instance.new("ScrollingFrame", mainFrame)
  1713. scrollFrame.Size = UDim2.new(1, -20, 1, -60)
  1714. scrollFrame.Position = UDim2.new(0, 10, 0, 50)
  1715. scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
  1716. scrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
  1717. scrollFrame.ScrollBarThickness = 6
  1718. scrollFrame.BackgroundTransparency = 1
  1719. scrollFrame.ClipsDescendants = true
  1720. scrollFrame.ZIndex = 11
  1721.  
  1722. local layout = Instance.new("UIListLayout", scrollFrame)
  1723. layout.SortOrder = Enum.SortOrder.LayoutOrder
  1724. layout.Padding = UDim.new(0, 10)
  1725. layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
  1726.  
  1727. local isScrolling = false
  1728.  
  1729. scrollFrame.InputBegan:Connect(function(input)
  1730. if input.UserInputType == Enum.UserInputType.MouseWheel or input.UserInputType == Enum.UserInputType.Touch then
  1731. isScrolling = true
  1732. mainFrame.Active = false
  1733. end
  1734. end)
  1735.  
  1736. scrollFrame.InputEnded:Connect(function(input)
  1737. if input.UserInputType == Enum.UserInputType.MouseWheel or input.UserInputType == Enum.UserInputType.Touch then
  1738. task.delay(0.1, function()
  1739. isScrolling = false
  1740. mainFrame.Active = true
  1741. end)
  1742. end
  1743. end)
  1744.  
  1745. --------------------------------------------------------------------------------------------------------------------
  1746.  
  1747. -- ════════════════════════════════════════════
  1748. -- (Le code qui scann tout les servers publics)
  1749. -- ════════════════════════════════════════════
  1750.  
  1751. local posChange = 8
  1752. local serverFrames = {}
  1753.  
  1754. -- Le code qui scann tout les servers publics
  1755.  
  1756. local function GetAllServers(PlaceID)
  1757. getgenv().NextServer = nil
  1758. getgenv().HasScannedAll = false
  1759. local T = {}
  1760. xpcall(function()
  1761. local Site = HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Desc&limit=100'))
  1762. if Site.nextPageCursor and Site.nextPageCursor ~= "null" then
  1763. getgenv().NextServer = HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Desc&limit=100&cursor=' .. Site.nextPageCursor))
  1764. table.insert(T, (getgenv().NextServer).data)
  1765. while not getgenv().HasScannedAll do
  1766. task.wait()
  1767. if (getgenv().NextServer).nextPageCursor and (getgenv().NextServer).nextPageCursor ~= "null" then
  1768. getgenv().NextServer = HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Desc&limit=100&cursor=' .. (getgenv().NextServer).nextPageCursor))
  1769. table.insert(T, (getgenv().NextServer).data)
  1770. else
  1771. getgenv().HasScannedAll = true
  1772. end
  1773. end
  1774. else
  1775. table.insert(T, Site.data)
  1776. end
  1777. end,function()
  1778.  
  1779. end)
  1780. return T
  1781. end
  1782. --------------------------------------------------------------------------------------------------------------------
  1783.  
  1784. -- ════════════════════════════════════════
  1785. -- (Players/PING/FPS/ID/Server Quality/Heure)
  1786. -- ════════════════════════════════════════
  1787.  
  1788.  
  1789. local function formatTime()
  1790. local success, result = pcall(function()
  1791. local dt = DateTime.now():ToLocalTime()
  1792. local hour = dt.Hour
  1793. local ampm = "AM"
  1794.  
  1795. if hour >= 12 then
  1796. ampm = "PM"
  1797. end
  1798.  
  1799. hour = hour % 12
  1800. if hour == 0 then
  1801. hour = 12
  1802. end
  1803.  
  1804. return string.format("%02d:%02d %s", hour, dt.Minute, ampm)
  1805. end)
  1806.  
  1807. if success then
  1808. return result
  1809. else
  1810. warn("formatTime failed: unable to get the local time.")
  1811. return "N/A"
  1812. end
  1813. end
  1814.  
  1815.  
  1816.  
  1817. local function CreateServerFrame(server)
  1818. local serverFrame = Instance.new("Frame", scrollFrame)
  1819. serverFrame.Size = UDim2.new(1, 0, 0, 120)
  1820. serverFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
  1821. serverFrame.BorderSizePixel = 0
  1822. serverFrame.ZIndex = 11
  1823.  
  1824. server.timeObtained = server.timeObtained or formatTime()
  1825.  
  1826. -- TextLabel pour le nombre de joueurs, ping et FPS
  1827. local infoLabel = Instance.new("TextLabel", serverFrame)
  1828. infoLabel.Size = UDim2.new(0, 300, 0, 60)
  1829. infoLabel.Position = UDim2.new(0, 10, 0, 10)
  1830. infoLabel.BackgroundTransparency = 1
  1831. infoLabel.TextWrapped = true
  1832. infoLabel.TextXAlignment = Enum.TextXAlignment.Left
  1833. infoLabel.TextYAlignment = Enum.TextYAlignment.Top
  1834. infoLabel.Font = Enum.Font.Ubuntu
  1835. infoLabel.TextSize = 16
  1836. infoLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1837. infoLabel.ZIndex = 12
  1838.  
  1839. local ping = server.ping or 0
  1840. local players = server.playing or 0
  1841. local maxPlayers = server.maxPlayers or 0
  1842. local fps = ping > 0 and math.floor(1000 / ping) or 0
  1843.  
  1844. -- Estimation qualité serveur
  1845. local quality, qualityColor
  1846. pcall(function()
  1847. quality = "Good"
  1848. qualityColor = Color3.fromRGB(0, 255, 0)
  1849.  
  1850. if ping > 250 or players >= maxPlayers then
  1851. quality = "Bad"
  1852. qualityColor = Color3.fromRGB(255, 60, 60)
  1853. elseif ping > 150 then
  1854. quality = "Medium"
  1855. qualityColor = Color3.fromRGB(255, 170, 0)
  1856. end
  1857. end)
  1858.  
  1859.  
  1860. infoLabel.Text =
  1861. "Ping : " .. (ping > 0 and ping or "N/A") ..
  1862. "\nFPS : " .. fps ..
  1863. "\nPlayers : " .. players .. "/" .. maxPlayers ..
  1864. "\nServer Quality : " .. quality
  1865.  
  1866. infoLabel.TextColor3 = qualityColor
  1867.  
  1868. -- ID du jeu
  1869. local placeIdLabel = Instance.new("TextLabel", serverFrame)
  1870. placeIdLabel.Size = UDim2.new(0, 300, 0, 20)
  1871. placeIdLabel.Position = UDim2.new(0, 10, 0, 76)
  1872. placeIdLabel.BackgroundTransparency = 1
  1873. placeIdLabel.TextWrapped = true
  1874. placeIdLabel.TextXAlignment = Enum.TextXAlignment.Left
  1875. placeIdLabel.TextYAlignment = Enum.TextYAlignment.Top
  1876. placeIdLabel.Font = Enum.Font.Ubuntu
  1877. placeIdLabel.TextSize = 14
  1878. placeIdLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  1879. placeIdLabel.Text = "Game ID : " .. tostring(game.PlaceId)
  1880. placeIdLabel.ZIndex = 12
  1881.  
  1882. -- ID du serveur public
  1883. local idLabel = Instance.new("TextLabel", serverFrame)
  1884. idLabel.Size = UDim2.new(0, 300, 0, 20)
  1885. idLabel.Position = UDim2.new(0, 10, 0, 94)
  1886. idLabel.BackgroundTransparency = 1
  1887. idLabel.TextWrapped = true
  1888. idLabel.TextXAlignment = Enum.TextXAlignment.Left
  1889. idLabel.TextYAlignment = Enum.TextYAlignment.Top
  1890. idLabel.Font = Enum.Font.Ubuntu
  1891. idLabel.TextSize = 14
  1892. idLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  1893. idLabel.Text = "ID : " .. server.id
  1894. idLabel.ZIndex = 12
  1895.  
  1896. -- Bouton Join
  1897. local joinButton = Instance.new("TextButton", serverFrame)
  1898. joinButton.Size = UDim2.new(0, 100, 0, 40)
  1899. joinButton.Position = UDim2.new(1, -110, 0.5, -20)
  1900. joinButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
  1901. joinButton.Text = "Join"
  1902. joinButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  1903. joinButton.Font = Enum.Font.Ubuntu
  1904. joinButton.TextSize = 18
  1905. joinButton.ZIndex = 12
  1906.  
  1907. local clickSound = Instance.new("Sound", joinButton)
  1908. clickSound.SoundId = "rbxassetid://9120093264"
  1909. clickSound.Volume = 1
  1910. clickSound.PlayOnRemove = false
  1911.  
  1912. joinButton.MouseButton1Click:Connect(function()
  1913. local soundOk, soundErr = pcall(function()
  1914. clickSound:Play()
  1915. end)
  1916. if not soundOk then
  1917. warn("Failed to play click sound Join:", soundErr)
  1918. end
  1919.  
  1920. local ok, err = pcall(function()
  1921. TeleportService:TeleportToPlaceInstance(game.PlaceId, server.id, LocalPlayer)
  1922. end)
  1923. if not ok then
  1924. warn("An error occurred on the join button. Please try again.", err)
  1925. end
  1926. end)
  1927.  
  1928. server.timeObtained = server.timeObtained or formatTime()
  1929.  
  1930. -- Heure des Servers Roblox
  1931. local timeLabel = Instance.new("TextLabel", serverFrame)
  1932. timeLabel.Size = UDim2.new(0, 100, 0, 20)
  1933. timeLabel.Position = UDim2.new(1, -110, 0.5, -50) -- 👈 au-dessus du Join
  1934. timeLabel.BackgroundTransparency = 1
  1935. timeLabel.TextXAlignment = Enum.TextXAlignment.Center
  1936. timeLabel.Font = Enum.Font.Ubuntu
  1937. timeLabel.TextSize = 14
  1938. timeLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
  1939. timeLabel.ZIndex = 12
  1940. timeLabel.Text = server.timeObtained
  1941.  
  1942. -- Copie JoinButton
  1943. local copyJoinButton = Instance.new("TextButton", serverFrame)
  1944. copyJoinButton.Size = UDim2.new(0, 100, 0, 30)
  1945. copyJoinButton.Position = UDim2.new(1, -110, 0.5, 25)
  1946. copyJoinButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
  1947. copyJoinButton.Text = "Copy Join"
  1948. copyJoinButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  1949. copyJoinButton.Font = Enum.Font.Ubuntu
  1950. copyJoinButton.TextSize = 16
  1951. copyJoinButton.ZIndex = 12
  1952.  
  1953. local clickSoundCopy = Instance.new("Sound", copyJoinButton)
  1954. clickSoundCopy.SoundId = "rbxassetid://9120093264"
  1955. clickSoundCopy.Volume = 1
  1956. clickSoundCopy.PlayOnRemove = false
  1957.  
  1958. copyJoinButton.MouseButton1Click:Connect(function()
  1959. local soundOk, soundErr = pcall(function()
  1960. clickSoundCopy:Play()
  1961. end)
  1962. if not soundOk then
  1963. warn("Failed to play click sound CopyJoin:", soundErr)
  1964. end
  1965.  
  1966. local ok, err = pcall(function()
  1967. local joinCommand = 'Roblox.GameLauncher.joinGameInstance(' .. game.PlaceId .. ', "' .. server.id .. '")'
  1968. setclipboard(joinCommand)
  1969. end)
  1970. if not ok then
  1971. warn("An error occurred on the copy join button. Please try again.", err)
  1972. end
  1973. end)
  1974.  
  1975. table.insert(serverFrames, serverFrame)
  1976. end
  1977.  
  1978. --------------------------------------------------------------------------------------------------------------------
  1979.  
  1980. -- ════════════════════════════════════════
  1981. -- (Global/Servers/FPS/PING)
  1982. -- ════════════════════════════════════════
  1983.  
  1984. local allServers = {}
  1985. local fpsCheckInterval = 1
  1986. local minFPS = 21
  1987. local maxPing = 350 -- au-dessus de ça on passe en mode fluide
  1988. local smoothMode = false
  1989.  
  1990. -- FPS Calculateurs
  1991. local RunService = game:GetService("RunService")
  1992. local lastTime = tick()
  1993. local frames = 0
  1994.  
  1995. RunService.RenderStepped:Connect(function()
  1996. frames += 1
  1997. if tick() - lastTime >= fpsCheckInterval then
  1998. local fps = frames / (tick() - lastTime)
  1999. smoothMode = fps < minFPS -- si FPS trop bas, mode fluide
  2000. frames = 0
  2001. lastTime = tick()
  2002. end
  2003. end)
  2004.  
  2005. -- Vérifie si un serveur a un ping trop élevé
  2006. local function hasHighPing(servers)
  2007. if typeof(servers) ~= "table" then return false end
  2008. for _, server in ipairs(servers) do
  2009. if (server.ping or 0) > maxPing then
  2010. return true
  2011. end
  2012. end
  2013. return false
  2014. end
  2015.  
  2016. function updateServerList(servers)
  2017. local ok, err = pcall(function()
  2018. -- sécurité
  2019. if typeof(servers) ~= "table" then return end
  2020.  
  2021. for _, v in pairs(serverFrames) do
  2022. v:Destroy()
  2023. end
  2024. posChange = 8
  2025. table.clear(serverFrames)
  2026.  
  2027. -- si FPS bas OU pings trop élevés
  2028. if smoothMode or hasHighPing(servers) then
  2029. task.spawn(function()
  2030. for _, server in ipairs(servers) do
  2031. CreateServerFrame(server)
  2032. posChange += 154
  2033. task.wait(0.05)
  2034. end
  2035. end)
  2036. else
  2037. for _, server in ipairs(servers) do
  2038. CreateServerFrame(server)
  2039. posChange += 154
  2040. end
  2041. end
  2042. end)
  2043.  
  2044. if not ok then
  2045. warn("Error in updateServerList.", err)
  2046. end
  2047. end
  2048.  
  2049.  
  2050. function refreshServers()
  2051. local ok, servers = pcall(GetAllServers, game.PlaceId)
  2052.  
  2053. if typeof(servers) == "table" and #servers > 0 then
  2054. local allServersFlat = {}
  2055. for _, batch in ipairs(servers) do
  2056. for _, s in ipairs(batch) do
  2057. table.insert(allServersFlat, s)
  2058. end
  2059. end
  2060. allServers = allServersFlat
  2061. updateServerList(allServers)
  2062. else
  2063. warn("No server found or API error.")
  2064. showErrorTween()
  2065. end
  2066. end
  2067.  
  2068.  
  2069. refreshServers()
  2070.  
  2071. UserInputService.InputBegan:Connect(function(input, gameProcessed)
  2072. if gameProcessed then return end
  2073. if input.KeyCode == Enum.KeyCode.RightControl then
  2074. screenGui:Destroy()
  2075. end
  2076. end)
  2077.  
  2078.  
  2079. --------------------------------------------------------------------------------------------------------------------
  2080.  
  2081. -- ════════════════════════════════════════
  2082. -- (Button/Refresh)
  2083. -- ════════════════════════════════════════
  2084.  
  2085. local TweenService = game:GetService("TweenService")
  2086. local LocalizationService = game:GetService("LocalizationService")
  2087. local Players = game:GetService("Players")
  2088. local LocalPlayer = Players.LocalPlayer
  2089.  
  2090.  
  2091. local langText = {
  2092. ["fr"] = "Erreur de chargement. Réessaie.",
  2093. ["en"] = "Error loading. Please try again.",
  2094. ["es"] = "Error al cargar. Inténtalo de nuevo.",
  2095. ["pt"] = "Erro ao carregar. Por favor, tente novamente.",
  2096. ["tr"] = "Yükleme hatası. Lütfen tekrar deneyin.",
  2097. ["it"] = "Errore nel caricamento. Riprova.",
  2098. ["de"] = "Fehler beim Laden. Bitte versuche es erneut.",
  2099. ["ar"] = "حدث خطأ أثناء التحميل. الرجاء المحاولة مرة أخرى.",
  2100. ["ja"] = "読み込みエラーが発生しました。もう一度お試しください。",
  2101. ["ru"] = "Ошибка загрузки. Пожалуйста, попробуйте еще раз.",
  2102. ["zh"] = "加载错误。请重试。"
  2103. }
  2104.  
  2105. local function getTranslatedMessage()
  2106. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  2107. return langText[langCode] or langText["en"]
  2108. end
  2109.  
  2110.  
  2111. local NotificationLib = {
  2112. _notifications = {},
  2113. _theme = {
  2114. primaryColor = Color3.fromRGB(30, 30, 30),
  2115. textColor = Color3.fromRGB(255, 255, 255),
  2116. font = Enum.Font.GothamSemibold,
  2117. cornerRadius = UDim.new(0, 8)
  2118. },
  2119. _settings = {
  2120. duration = 4,
  2121. spacing = 12,
  2122. fadeTime = 0.28,
  2123. slideDistance = 18
  2124. },
  2125. _icons = { info = "rbxassetid://9405926389" }
  2126. }
  2127.  
  2128. function NotificationLib:_init()
  2129. if not self._container then
  2130. self._container = Instance.new("ScreenGui")
  2131. self._container.Name = "NotificationLibrary"
  2132. self._container.ResetOnSpawn = false
  2133. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  2134. self._container.Parent = game:GetService("CoreGui")
  2135. end
  2136. end
  2137.  
  2138. function NotificationLib:_calculatePosition(index)
  2139. local spacing = self._settings.spacing
  2140. local height = 90
  2141. return UDim2.new(1, -24, 1, -24 - (index-1)*(height+spacing))
  2142. end
  2143.  
  2144. function NotificationLib:_animateOut(frame, callback)
  2145. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  2146. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  2147. BackgroundTransparency = 1
  2148. })
  2149. tween:Play()
  2150. tween.Completed:Connect(function()
  2151. if frame and frame.Parent then frame:Destroy() end
  2152. if callback then callback() end
  2153. end)
  2154. end
  2155.  
  2156. function NotificationLib:Notify(opt)
  2157. self:_init()
  2158. opt = opt or {}
  2159. local title = opt.Title or "Notification"
  2160. local message = opt.Message or ""
  2161. local duration = opt.Duration or self._settings.duration
  2162.  
  2163. local frame = Instance.new("Frame")
  2164. frame.BackgroundColor3 = self._theme.primaryColor
  2165. frame.Size = UDim2.new(0, 340, 0, 90)
  2166. frame.AnchorPoint = Vector2.new(1,1)
  2167. frame.Position = self:_calculatePosition(#self._notifications + 1)
  2168. frame.Parent = self._container
  2169. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  2170.  
  2171. local icon = Instance.new("ImageLabel", frame)
  2172. icon.Image = self._icons.info
  2173. icon.Size = UDim2.new(0,28,0,28)
  2174. icon.Position = UDim2.new(0,12,0,12)
  2175. icon.BackgroundTransparency = 1
  2176.  
  2177. local titleLabel = Instance.new("TextLabel", frame)
  2178. titleLabel.Font = self._theme.font
  2179. titleLabel.TextColor3 = self._theme.textColor
  2180. titleLabel.TextSize = 16
  2181. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  2182. titleLabel.Text = title
  2183. titleLabel.BackgroundTransparency = 1
  2184. titleLabel.Size = UDim2.new(1,-60,0,22)
  2185. titleLabel.Position = UDim2.new(0,48,0,10)
  2186.  
  2187. local msgLabel = Instance.new("TextLabel", frame)
  2188. msgLabel.Font = Enum.Font.Gotham
  2189. msgLabel.TextColor3 = self._theme.textColor
  2190. msgLabel.TextSize = 14
  2191. msgLabel.TextWrapped = true
  2192. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  2193. msgLabel.Text = message
  2194. msgLabel.BackgroundTransparency = 1
  2195. msgLabel.Size = UDim2.new(1,-60,0,48)
  2196. msgLabel.Position = UDim2.new(0,48,0,30)
  2197.  
  2198. table.insert(self._notifications, frame)
  2199.  
  2200. task.delay(duration, function()
  2201. if frame and frame.Parent then
  2202. self:_animateOut(frame, function()
  2203. for i,v in ipairs(self._notifications) do
  2204. if v == frame then table.remove(self._notifications,i); break end
  2205. end
  2206. end)
  2207. end
  2208. end)
  2209. end
  2210.  
  2211.  
  2212. local function CreateRefreshButton(mainFrame)
  2213. local refreshBtn = Instance.new("ImageButton")
  2214. refreshBtn.Parent = mainFrame
  2215. refreshBtn.AnchorPoint = Vector2.new(0.5,0.5)
  2216. refreshBtn.Size = UDim2.new(0,47,0,47)
  2217. refreshBtn.Position = UDim2.new(0.5,250,0.5,-220)
  2218. refreshBtn.Image = "http://www.roblox.com/asset/?id=126446661859683"
  2219. refreshBtn.BackgroundTransparency = 1
  2220. refreshBtn.ZIndex = 7
  2221.  
  2222. local clickSound = Instance.new("Sound", refreshBtn)
  2223. clickSound.SoundId = "rbxassetid://9120093264"
  2224. clickSound.Volume = 1
  2225. clickSound.PlayOnRemove = false
  2226.  
  2227. refreshBtn.MouseButton1Click:Connect(function()
  2228.  
  2229. local soundOk, soundErr = pcall(function()
  2230. clickSound:Play()
  2231. end)
  2232. if not soundOk then
  2233. warn("Failed to play click sound refresh:", soundErr)
  2234. end
  2235.  
  2236. local success, err = pcall(refreshServers)
  2237. if not success then
  2238. NotificationLib:Notify({
  2239. Title = "Error",
  2240. Message = getTranslatedMessage(),
  2241. Duration = 4
  2242. })
  2243. end
  2244. end)
  2245.  
  2246. return refreshBtn
  2247. end
  2248.  
  2249.  
  2250. local refreshBtn = CreateRefreshButton(mainFrame)
  2251.  
  2252. --------------------------------------------------------------------------------------------------------------------
  2253.  
  2254. -- ════════════════════════════════════════
  2255. -- (Button/LowPlayers/MaxPlayers)
  2256. -- ════════════════════════════════════════
  2257.  
  2258.  
  2259. local function sortServers(servers, currentSort)
  2260. if typeof(servers) ~= "table" then return {} end
  2261.  
  2262. if currentSort == "lowPlayers" then
  2263. table.sort(servers, function(a, b)
  2264. return (a.playing or 0) < (b.playing or 0)
  2265. end)
  2266. elseif currentSort == "maxPlayers" then
  2267. table.sort(servers, function(a, b)
  2268. return (a.playing or 0) > (b.playing or 0)
  2269. end)
  2270. elseif currentSort == "fastest" then
  2271. table.sort(servers, function(a, b)
  2272. return (a.ping or 9999) < (b.ping or 9999)
  2273. end)
  2274. end
  2275.  
  2276. return servers
  2277. end
  2278.  
  2279.  
  2280. local lowPlayersBtn = Instance.new("ImageButton", mainFrame)
  2281. lowPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2282. lowPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  2283. lowPlayersBtn.Position = UDim2.new(0.5, -183, 0.5, -220)
  2284. lowPlayersBtn.Image = "http://www.roblox.com/asset/?id=78395837711238"
  2285. lowPlayersBtn.BackgroundTransparency = 1
  2286. lowPlayersBtn.ZIndex = 12
  2287.  
  2288. local maxPlayersBtn = Instance.new("ImageButton", mainFrame)
  2289. maxPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2290. maxPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  2291. maxPlayersBtn.Position = UDim2.new(0.5, -264, 0.5, -220)
  2292. maxPlayersBtn.Image = "http://www.roblox.com/asset/?id=117409611207958"
  2293. maxPlayersBtn.BackgroundTransparency = 1
  2294. maxPlayersBtn.ZIndex = 12
  2295.  
  2296.  
  2297. local clickSoundLow = Instance.new("Sound", lowPlayersBtn)
  2298. clickSoundLow.SoundId = "rbxassetid://9120093264"
  2299. clickSoundLow.Volume = 1
  2300. clickSoundLow.PlayOnRemove = false
  2301.  
  2302. local clickSoundMax = Instance.new("Sound", maxPlayersBtn)
  2303. clickSoundMax.SoundId = "rbxassetid://9120093264"
  2304. clickSoundMax.Volume = 1
  2305. clickSoundMax.PlayOnRemove = false
  2306.  
  2307.  
  2308. lowPlayersBtn.MouseButton1Click:Connect(function()
  2309. local soundOk, soundErr = pcall(function()
  2310. clickSoundLow:Play()
  2311. end)
  2312. if not soundOk then
  2313. warn("Failed to play click sound lowPlayers:", soundErr)
  2314. end
  2315.  
  2316. local ok, err = pcall(function()
  2317. local sorted = sortServers(allServers, "lowPlayers")
  2318. updateServerList(sorted)
  2319. end)
  2320. if not ok then
  2321. warn("API error during lowPlayers. Please try again.", err)
  2322. end
  2323. end)
  2324.  
  2325. maxPlayersBtn.MouseButton1Click:Connect(function()
  2326. local soundOk, soundErr = pcall(function()
  2327. clickSoundMax:Play()
  2328. end)
  2329. if not soundOk then
  2330. warn("Failed to play click sound maxPlayers:", soundErr)
  2331. end
  2332.  
  2333. local ok, err = pcall(function()
  2334. local sorted = sortServers(allServers, "maxPlayers")
  2335. updateServerList(sorted)
  2336. end)
  2337. if not ok then
  2338. warn("API error during MaxPlayers. Please try again.", err)
  2339. end
  2340. end)
  2341.  
  2342. --------------------------------------------------------------------------------------------------------------------
  2343.  
  2344. -- ════════════════════════════════════════
  2345. -- (Button/Copie Servers ID)
  2346. -- ════════════════════════════════════════
  2347.  
  2348. local TweenService = game:GetService("TweenService")
  2349. local LocalizationService = game:GetService("LocalizationService")
  2350. local Players = game:GetService("Players")
  2351. local LocalPlayer = Players.LocalPlayer
  2352.  
  2353.  
  2354. local langText = {
  2355. ["fr"] = "L'ID du serveur a été copié avec succès !",
  2356. ["en"] = "Server ID copied successfully!",
  2357. ["es"] = "¡ID del servidor copiado correctamente!",
  2358. ["de"] = "Server-ID erfolgreich kopiert!",
  2359. ["it"] = "ID del server copiato con successo!",
  2360. ["pt"] = "ID do servidor copiado com sucesso!",
  2361. ["ru"] = "ID сервера успешно скопирован!",
  2362. ["zh"] = "服务器ID复制成功!",
  2363. ["tr"] = "Sunucu kimliği başarıyla kopyalandı!",
  2364. ["ja"] = "サーバーIDが正常にコピーされました!",
  2365. ["ar"] = "تم نسخ معرف الخادم بنجاح!",
  2366. }
  2367.  
  2368. local function getTranslatedMessage()
  2369. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1,2)
  2370. return langText[langCode] or langText["en"]
  2371. end
  2372.  
  2373.  
  2374. local NotificationLib = {
  2375. _notifications = {},
  2376. _theme = {
  2377. primaryColor = Color3.fromRGB(30,30,30),
  2378. textColor = Color3.fromRGB(255,255,255),
  2379. font = Enum.Font.GothamSemibold,
  2380. cornerRadius = UDim.new(0,8)
  2381. },
  2382. _settings = {
  2383. duration = 4,
  2384. spacing = 12,
  2385. fadeTime = 0.28,
  2386. slideDistance = 18
  2387. },
  2388. _icons = { info = "rbxassetid://9405926389" }
  2389. }
  2390.  
  2391. function NotificationLib:_init()
  2392. if not self._container then
  2393. self._container = Instance.new("ScreenGui")
  2394. self._container.Name = "NotificationLibrary"
  2395. self._container.ResetOnSpawn = false
  2396. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  2397. self._container.Parent = game:GetService("CoreGui")
  2398. end
  2399. end
  2400.  
  2401. function NotificationLib:_calculatePosition(index)
  2402. local spacing = self._settings.spacing
  2403. local height = 90
  2404. return UDim2.new(1,-24,1,-24-(index-1)*(height+spacing))
  2405. end
  2406.  
  2407. function NotificationLib:_animateOut(frame, callback)
  2408. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  2409. Position = frame.Position + UDim2.new(0,0,0,self._settings.slideDistance),
  2410. BackgroundTransparency = 1
  2411. })
  2412. tween:Play()
  2413. tween.Completed:Connect(function()
  2414. if frame and frame.Parent then frame:Destroy() end
  2415. if callback then callback() end
  2416. end)
  2417. end
  2418.  
  2419. function NotificationLib:Notify(opt)
  2420. self:_init()
  2421. opt = opt or {}
  2422. local title = opt.Title or "Notification"
  2423. local message = opt.Message or ""
  2424. local duration = opt.Duration or self._settings.duration
  2425.  
  2426. local frame = Instance.new("Frame")
  2427. frame.BackgroundColor3 = self._theme.primaryColor
  2428. frame.Size = UDim2.new(0,340,0,90)
  2429. frame.AnchorPoint = Vector2.new(1,1)
  2430. frame.Position = self:_calculatePosition(#self._notifications+1)
  2431. frame.Parent = self._container
  2432. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  2433.  
  2434. local icon = Instance.new("ImageLabel", frame)
  2435. icon.Image = self._icons.info
  2436. icon.Size = UDim2.new(0,28,0,28)
  2437. icon.Position = UDim2.new(0,12,0,12)
  2438. icon.BackgroundTransparency = 1
  2439.  
  2440. local titleLabel = Instance.new("TextLabel", frame)
  2441. titleLabel.Font = self._theme.font
  2442. titleLabel.TextColor3 = self._theme.textColor
  2443. titleLabel.TextSize = 16
  2444. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  2445. titleLabel.Text = title
  2446. titleLabel.BackgroundTransparency = 1
  2447. titleLabel.Size = UDim2.new(1,-60,0,22)
  2448. titleLabel.Position = UDim2.new(0,48,0,10)
  2449.  
  2450. local msgLabel = Instance.new("TextLabel", frame)
  2451. msgLabel.Font = Enum.Font.Gotham
  2452. msgLabel.TextColor3 = self._theme.textColor
  2453. msgLabel.TextSize = 14
  2454. msgLabel.TextWrapped = true
  2455. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  2456. msgLabel.Text = message
  2457. msgLabel.BackgroundTransparency = 1
  2458. msgLabel.Size = UDim2.new(1,-60,0,48)
  2459. msgLabel.Position = UDim2.new(0,48,0,30)
  2460.  
  2461. table.insert(self._notifications, frame)
  2462.  
  2463. task.delay(duration, function()
  2464. if frame and frame.Parent then
  2465. self:_animateOut(frame,function()
  2466. for i,v in ipairs(self._notifications) do
  2467. if v==frame then table.remove(self._notifications,i); break end
  2468. end
  2469. end)
  2470. end
  2471. end)
  2472. end
  2473.  
  2474.  
  2475. local CopyGamelive = Instance.new("ImageButton", mainFrame)
  2476. CopyGamelive.AnchorPoint = Vector2.new(0.5, 0.5)
  2477. CopyGamelive.Size = UDim2.new(0, 41, 0, 41)
  2478. CopyGamelive.Position = UDim2.new(0.5, -227, 0.5, -220)
  2479. CopyGamelive.Image = "http://www.roblox.com/asset/?id=122024633828045"
  2480. CopyGamelive.BackgroundTransparency = 1
  2481. CopyGamelive.ZIndex = 6
  2482.  
  2483. local clickSoundCopyLive = Instance.new("Sound", CopyGamelive)
  2484. clickSoundCopyLive.SoundId = "rbxassetid://9120093264"
  2485. clickSoundCopyLive.Volume = 1
  2486. clickSoundCopyLive.PlayOnRemove = false
  2487.  
  2488. CopyGamelive.MouseButton1Click:Connect(function()
  2489.  
  2490. local soundOk, soundErr = pcall(function()
  2491. clickSoundCopyLive:Play()
  2492. end)
  2493. if not soundOk then
  2494. warn("Failed to play click sound CopyGamelive:", soundErr)
  2495. end
  2496.  
  2497. local success, err = pcall(function()
  2498. local currentServerId = game.JobId
  2499. local joinCommand = 'Roblox.GameLauncher.joinGameInstance(' .. game.PlaceId .. ',"' .. currentServerId .. '")'
  2500. setclipboard(joinCommand)
  2501.  
  2502. NotificationLib:Notify({
  2503. Title = "Server ID",
  2504. Message = getTranslatedMessage(),
  2505. Duration = 4
  2506. })
  2507. end)
  2508. if not success then
  2509. warn("An error occurred on the copy server button. Please try again", err)
  2510. end
  2511. end)
  2512.  
  2513.  
  2514. --------------------------------------------------------------------------------------------------------------------
  2515.  
  2516. -- ════════════════════════════════════════
  2517. -- (Button/Close)
  2518. -- ════════════════════════════════════════
  2519.  
  2520. local closeBtn = Instance.new("ImageButton", mainFrame)
  2521. closeBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2522. closeBtn.Size = UDim2.new(0, 40, 0, 40)
  2523. closeBtn.Position = UDim2.new(0.5, 298, 0.5, -220)
  2524. closeBtn.Image = "http://www.roblox.com/asset/?id=138896199949173"
  2525. closeBtn.BackgroundTransparency = 1
  2526. closeBtn.ZIndex = 6
  2527.  
  2528. local clickSoundClose = Instance.new("Sound")
  2529. clickSoundClose.SoundId = "rbxassetid://9120093264"
  2530. clickSoundClose.Volume = 1
  2531. clickSoundClose.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui") -- Mettre le son dans PlayerGui
  2532.  
  2533. closeBtn.MouseButton1Click:Connect(function()
  2534. local soundOk, soundErr = pcall(function()
  2535. clickSoundClose:Play()
  2536. end)
  2537. if not soundOk then
  2538. warn("Failed to play click sound closeBtn:", soundErr)
  2539. end
  2540.  
  2541.  
  2542. task.delay(0.1, function()
  2543. pcall(function()
  2544. _G.SFD_LOADED = false
  2545. _G.SFD_CAN_RELOAD = true
  2546. if screenGui then
  2547. screenGui:Destroy()
  2548. end
  2549. end)
  2550. end)
  2551. end)
  2552.  
  2553.  
  2554.  
  2555. --------------------------------------------------------------------------------------------------------------------
  2556.  
  2557. -- ════════════════════════════════════════
  2558. -- (Button/Rejoin)
  2559. -- ════════════════════════════════════════
  2560.  
  2561. local TweenService = game:GetService("TweenService")
  2562. local TeleportService = game:GetService("TeleportService")
  2563. local Players = game:GetService("Players")
  2564. local LocalizationService = game:GetService("LocalizationService")
  2565. local LocalPlayer = Players.LocalPlayer
  2566.  
  2567.  
  2568. local langText = {
  2569. ["fr"] = "Reconnexion au serveur...",
  2570. ["en"] = "Reconnecting to server...",
  2571. ["es"] = "Reconectando al servidor...",
  2572. ["de"] = "Wiederverbindung zum Server...",
  2573. ["it"] = "Riconnessione al server...",
  2574. ["pt"] = "Reconectando ao servidor...",
  2575. ["ru"] = "Переподключение к серверу...",
  2576. ["zh"] = "正在重新连接服务器...",
  2577. ["tr"] = "Sunucuya yeniden bağlanılıyor...",
  2578. ["ja"] = "サーバーに再接続中...",
  2579. ["ar"] = "إعادة الاتصال بالخادم...",
  2580. }
  2581.  
  2582. local function getTranslatedMessage()
  2583.  
  2584. local tries = 0
  2585. while (not LocalizationService.RobloxLocaleId or #LocalizationService.RobloxLocaleId < 2) and tries < 20 do
  2586. tries = tries + 1
  2587. task.wait(0.05)
  2588. end
  2589. local langCode = (LocalizationService.RobloxLocaleId or "en"):sub(1, 2)
  2590. return langText[langCode] or langText["en"]
  2591. end
  2592.  
  2593.  
  2594. local startTime = os.clock()
  2595.  
  2596.  
  2597. local NotificationLib = {
  2598. _notifications = {},
  2599. _theme = {
  2600. primaryColor = Color3.fromRGB(30, 30, 30),
  2601. textColor = Color3.fromRGB(255, 255, 255),
  2602. font = Enum.Font.GothamSemibold,
  2603. cornerRadius = UDim.new(0, 8)
  2604. },
  2605. _settings = {
  2606. duration = 4,
  2607. position = "BottomRight",
  2608. maxNotifications = 5,
  2609. spacing = 12,
  2610. fadeTime = 0.28,
  2611. slideDistance = 18
  2612. },
  2613. _icons = {
  2614. info = "rbxassetid://9405926389"
  2615. }
  2616. }
  2617.  
  2618. function NotificationLib:_init()
  2619. if not self._container then
  2620. self._container = Instance.new("ScreenGui")
  2621. self._container.Name = "NotificationLibrary"
  2622. self._container.ResetOnSpawn = false
  2623. self._container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  2624. self._container.Parent = game:GetService("CoreGui")
  2625. end
  2626. end
  2627.  
  2628. function NotificationLib:_calculatePosition(index)
  2629. local spacing = self._settings.spacing
  2630. local height = 90
  2631. return UDim2.new(1, -24, 1, -24 - (index - 1) * (height + spacing))
  2632. end
  2633.  
  2634. function NotificationLib:_animateOut(frame, callback)
  2635. local tween = TweenService:Create(frame, TweenInfo.new(self._settings.fadeTime, Enum.EasingStyle.Quad), {
  2636. Position = frame.Position + UDim2.new(0, 0, 0, self._settings.slideDistance),
  2637. BackgroundTransparency = 1
  2638. })
  2639. tween:Play()
  2640. tween.Completed:Connect(function()
  2641. if frame and frame.Parent then frame:Destroy() end
  2642. if callback then callback() end
  2643. end)
  2644. end
  2645.  
  2646. function NotificationLib:Notify(opt)
  2647. self:_init()
  2648. opt = opt or {}
  2649. local title = opt.Title or "Notification"
  2650. local message = opt.Message or ""
  2651. local duration = opt.Duration or self._settings.duration
  2652.  
  2653. local frame = Instance.new("Frame")
  2654. frame.BackgroundColor3 = self._theme.primaryColor
  2655. frame.Size = UDim2.new(0, 340, 0, 90)
  2656. frame.AnchorPoint = Vector2.new(1, 1)
  2657. frame.Position = self:_calculatePosition(#self._notifications + 1)
  2658. frame.Parent = self._container
  2659. Instance.new("UICorner", frame).CornerRadius = self._theme.cornerRadius
  2660.  
  2661. local icon = Instance.new("ImageLabel", frame)
  2662. icon.Image = self._icons.info
  2663. icon.Size = UDim2.new(0, 28, 0, 28)
  2664. icon.Position = UDim2.new(0, 12, 0, 12)
  2665. icon.BackgroundTransparency = 1
  2666.  
  2667. local titleLabel = Instance.new("TextLabel", frame)
  2668. titleLabel.Font = self._theme.font
  2669. titleLabel.TextColor3 = self._theme.textColor
  2670. titleLabel.TextSize = 16
  2671. titleLabel.TextXAlignment = Enum.TextXAlignment.Left
  2672. titleLabel.Text = title
  2673. titleLabel.BackgroundTransparency = 1
  2674. titleLabel.Size = UDim2.new(1, -60, 0, 22)
  2675. titleLabel.Position = UDim2.new(0, 48, 0, 10)
  2676.  
  2677. local msgLabel = Instance.new("TextLabel", frame)
  2678. msgLabel.Font = Enum.Font.Gotham
  2679. msgLabel.TextColor3 = self._theme.textColor
  2680. msgLabel.TextSize = 14
  2681. msgLabel.TextWrapped = true
  2682. msgLabel.TextXAlignment = Enum.TextXAlignment.Left
  2683. msgLabel.Text = message
  2684. msgLabel.BackgroundTransparency = 1
  2685. msgLabel.Size = UDim2.new(1, -60, 0, 48)
  2686. msgLabel.Position = UDim2.new(0, 48, 0, 30)
  2687.  
  2688. table.insert(self._notifications, frame)
  2689.  
  2690. task.delay(duration, function()
  2691. if frame and frame.Parent then
  2692. self:_animateOut(frame, function()
  2693. for i, v in ipairs(self._notifications) do
  2694. if v == frame then table.remove(self._notifications, i); break end
  2695. end
  2696. end)
  2697. end
  2698. end)
  2699. end
  2700.  
  2701. task.wait(0.1)
  2702.  
  2703. local SCRIPT_SOURCE_SERVER_FINDER_DELUXE = [=[
  2704. loadstring(game:HttpGet("https://raw.githubusercontent.com/MaxproGlitcher/Server-Finder-Deluxe/refs/heads/main/Finder_Servers_Code.luau"))()
  2705. ]=]
  2706.  
  2707. local RejoinButton = Instance.new("ImageButton")
  2708. RejoinButton.Parent = mainFrame
  2709. RejoinButton.AnchorPoint = Vector2.new(0.5, 0.5)
  2710. RejoinButton.Size = UDim2.new(0, 40, 0, 40)
  2711. RejoinButton.Position = UDim2.new(0.5, 204, 0.5, -220)
  2712. RejoinButton.Image = "rbxassetid://103864549538113"
  2713. RejoinButton.BackgroundTransparency = 1
  2714. RejoinButton.ZIndex = 12
  2715.  
  2716.  
  2717. local clickSoundRejoin = Instance.new("Sound", RejoinButton)
  2718. clickSoundRejoin.SoundId = "rbxassetid://9120093264"
  2719. clickSoundRejoin.Volume = 1
  2720. clickSoundRejoin.PlayOnRemove = false
  2721.  
  2722. RejoinButton.MouseButton1Click:Connect(function()
  2723.  
  2724. local soundOk, soundErr = pcall(function()
  2725. clickSoundRejoin:Play()
  2726. end)
  2727. if not soundOk then
  2728. warn("Failed to play click sound RejoinButton:", soundErr)
  2729. end
  2730.  
  2731.  
  2732. local success, err = pcall(function()
  2733. NotificationLib:Notify({
  2734. Title = string.format("Time used: %.3f s", os.clock() - startTime),
  2735. Message = getTranslatedMessage(),
  2736. Type = "info",
  2737. Duration = 5
  2738. })
  2739.  
  2740. queue_on_teleport(SCRIPT_SOURCE_SERVER_FINDER_DELUXE)
  2741. task.wait(1)
  2742.  
  2743. TeleportService:Teleport(game.PlaceId, LocalPlayer)
  2744. end)
  2745.  
  2746. if not success then
  2747. warn("An error occurred on the button rejoint button servers. Please try again", err)
  2748. end
  2749. end)
  2750.  
  2751.  
  2752. --------------------------------------------------------------------------------------------------------------------
  2753.  
  2754. -- ════════════════════════════════════════
  2755. -- (Resize Button/Code)
  2756. -- ════════════════════════════════════════
  2757.  
  2758.  
  2759. local resizeButton = Instance.new("ImageButton", mainFrame)
  2760. resizeButton.AnchorPoint = Vector2.new(0.5, 0.5)
  2761. resizeButton.Size = UDim2.new(0, 40, 0, 40)
  2762. resizeButton.Position = UDim2.new(0.5, 157, 0.5, -220)
  2763. resizeButton.Image = "http://www.roblox.com/asset/?id=92176830367195"
  2764. resizeButton.BackgroundTransparency = 1
  2765. resizeButton.ZIndex = 12
  2766.  
  2767. local isSmall = true -- Définir la taille initiale comme petite
  2768.  
  2769. local clickSoundResize = Instance.new("Sound", resizeButton)
  2770. clickSoundResize.SoundId = "rbxassetid://9120093264"
  2771. clickSoundResize.Volume = 1
  2772. clickSoundResize.PlayOnRemove = false
  2773.  
  2774.  
  2775. local function toggleGuiSize()
  2776.  
  2777. local soundOk, soundErr = pcall(function()
  2778. clickSoundResize:Play()
  2779. end)
  2780. if not soundOk then
  2781. warn("Failed to play click sound resizeButton:", soundErr)
  2782. end
  2783.  
  2784. if isSmall then
  2785. mainFrame.Size = UDim2.new(0, 650, 0, 500)
  2786. scrollFrame.Size = UDim2.new(1, -20, 1, -60)
  2787. scrollFrame.Position = UDim2.new(0, 10, 0, 50)
  2788.  
  2789. if refreshBtn then
  2790. refreshBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2791. refreshBtn.Size = UDim2.new(0, 47, 0, 47)
  2792. refreshBtn.Position = UDim2.new(0.5, 250, 0.5, -220)
  2793. end
  2794.  
  2795. if closeBtn then
  2796. closeBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2797. closeBtn.Size = UDim2.new(0, 40, 0, 40)
  2798. closeBtn.Position = UDim2.new(0.5, 298, 0.5, -220)
  2799. end
  2800.  
  2801. if resizeButton then
  2802. resizeButton.AnchorPoint = Vector2.new(0.5, 0.5)
  2803. resizeButton.Size = UDim2.new(0, 40, 0, 40)
  2804. resizeButton.Position = UDim2.new(0.5, 157, 0.5, -220)
  2805. end
  2806.  
  2807. if RejoinButton then
  2808. RejoinButton.AnchorPoint = Vector2.new(0.5, 0.5)
  2809. RejoinButton.Size = UDim2.new(0, 40, 0, 40)
  2810. RejoinButton.Position = UDim2.new(0.5, 204, 0.5, -220)
  2811. end
  2812.  
  2813. if lowPlayersBtn then
  2814. lowPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2815. lowPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  2816. lowPlayersBtn.Position = UDim2.new(0.5, -183, 0.5, -220)
  2817. end
  2818.  
  2819. if maxPlayersBtn then
  2820. maxPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2821. maxPlayersBtn.Size = UDim2.new(0, 40, 0, 40)
  2822. maxPlayersBtn.Position = UDim2.new(0.5, -264, 0.5, -220)
  2823. end
  2824.  
  2825. if CopyGamelive then
  2826. CopyGamelive.AnchorPoint = Vector2.new(0.5, 0.5)
  2827. CopyGamelive.Size = UDim2.new(0, 41, 0, 41)
  2828. CopyGamelive.Position = UDim2.new(0.5, -227, 0.5, -220)
  2829. end
  2830.  
  2831. else
  2832. mainFrame.Size = UDim2.new(0, 549, 0, 390)
  2833. scrollFrame.Size = UDim2.new(1, -10, 1, -40)
  2834. scrollFrame.Position = UDim2.new(0, 5, 0, 40)
  2835.  
  2836. if refreshBtn then
  2837. refreshBtn.Position = UDim2.new(0.5, 225, 0.5, -175)
  2838. refreshBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2839. refreshBtn.Size = UDim2.new(0, 30, 0, 30)
  2840. end
  2841.  
  2842. if closeBtn then
  2843. closeBtn.Position = UDim2.new(0.5, 255, 0.5, -175)
  2844. closeBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2845. closeBtn.Size = UDim2.new(0, 25, 0, 25)
  2846. end
  2847.  
  2848. if RejoinButton then
  2849. RejoinButton.AnchorPoint = Vector2.new(0.5, 0.5)
  2850. RejoinButton.Size = UDim2.new(0, 25, 0, 25)
  2851. RejoinButton.Position = UDim2.new(0.5, 195, 0.5, -175)
  2852. end
  2853.  
  2854. if maxPlayersBtn then
  2855. maxPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2856. maxPlayersBtn.Size = UDim2.new(0, 25, 0, 25)
  2857. maxPlayersBtn.Position = UDim2.new(0.5, -222, 0.5, -175)
  2858. end
  2859.  
  2860.  
  2861. if lowPlayersBtn then
  2862. lowPlayersBtn.AnchorPoint = Vector2.new(0.5, 0.5)
  2863. lowPlayersBtn.Size = UDim2.new(0, 25, 0, 25)
  2864. lowPlayersBtn.Position = UDim2.new(0.5, -173, 0.5, -175)
  2865. end
  2866.  
  2867. if CopyGamelive then
  2868. CopyGamelive.AnchorPoint = Vector2.new(0.5, 0.5)
  2869. CopyGamelive.Size = UDim2.new(0, 25, 0, 25)
  2870. CopyGamelive.Position = UDim2.new(0.5, -199, 0.5, -175)
  2871. end
  2872.  
  2873. if resizeButton then
  2874. resizeButton.AnchorPoint = Vector2.new(0.5, 0.5)
  2875. resizeButton.Size = UDim2.new(0, 25, 0, 25)
  2876. resizeButton.Position = UDim2.new(0.5, 167, 0.5, -175)
  2877. end
  2878. end
  2879. isSmall = not isSmall
  2880. end
  2881.  
  2882. resizeButton.MouseButton1Click:Connect(toggleGuiSize)
  2883.  
  2884. --------------------------------------------------------------------------------------------------------------------
  2885.  
  2886. -- ════════════════════════════════════════
  2887. -- (Services MODE PERFORMANCE BOOST)
  2888. -- ════════════════════════════════════════
  2889.  
  2890. local Players = game:GetService("Players")
  2891. local Lighting = game:GetService("Lighting")
  2892.  
  2893. -- Sauvegarde des réglages d'origine
  2894. local UserSettings = settings():GetService("RenderSettings")
  2895. local originalSettings = {
  2896. QualityLevel = UserSettings.QualityLevel,
  2897. EditQualityLevel = UserSettings.EditQualityLevel,
  2898. GlobalShadows = Lighting.GlobalShadows
  2899. }
  2900.  
  2901. -- Active le mode performance boost
  2902. local function EnablePerformanceBoost()
  2903. UserSettings.QualityLevel = Enum.QualityLevel.Level01
  2904. UserSettings.EditQualityLevel = Enum.QualityLevel.Level01
  2905.  
  2906. -- Désactive tous les effets visuels post-traitement
  2907. for _, effect in pairs(Lighting:GetChildren()) do
  2908. if effect:IsA("PostEffect") then
  2909. effect.Enabled = false
  2910. end
  2911. end
  2912.  
  2913. -- Désactive les ombres globales
  2914. Lighting.GlobalShadows = false
  2915. end
  2916.  
  2917. -- Restaure les réglages normaux
  2918. local function DisablePerformanceBoost()
  2919. UserSettings.QualityLevel = originalSettings.QualityLevel
  2920. UserSettings.EditQualityLevel = originalSettings.EditQualityLevel
  2921.  
  2922. for _, effect in pairs(Lighting:GetChildren()) do
  2923. if effect:IsA("PostEffect") then
  2924. effect.Enabled = true
  2925. end
  2926. end
  2927.  
  2928. Lighting.GlobalShadows = originalSettings.GlobalShadows
  2929. end
  2930.  
  2931. -- Exemple : activer au lancement
  2932. EnablePerformanceBoost()
  2933.  
  2934. -- Exemple : désactiver quand tu fermes le GUI
  2935. closeBtn.MouseButton1Click:Connect(function()
  2936. DisablePerformanceBoost()
  2937. screenGui.Enabled = false
  2938. end)
  2939.  
  2940.  
  2941. --------------------------------------------------------------------------------------------------------------------
  2942.  
  2943. -- ════════════════════════════════════════
  2944. -- (Notification pour me contacter au cas problème pour le Script Server Finder Deluxe)
  2945. -- (Impression de texte personnalisé pour la console roblox)
  2946. -- (Impression de Texte Traduits pour pluiseurs langues)
  2947. -- ════════════════════════════════════════
  2948.  
  2949. pcall(function()
  2950. local Modules = {
  2951. Colors = {
  2952. ["Grey"] = "254, 254, 254",
  2953. ["Cyan"] = "33, 161, 163"
  2954. }
  2955. }
  2956.  
  2957. Modules.ChangeColor = function()
  2958. game:GetService("RunService").Heartbeat:Connect(function()
  2959. local console = game:GetService("CoreGui"):FindFirstChild("DevConsoleMaster")
  2960. if console then
  2961. for _, v in pairs(console:GetDescendants()) do
  2962. if v:IsA("TextLabel") then
  2963. v.RichText = true
  2964. end
  2965. end
  2966. end
  2967. end)
  2968. end
  2969.  
  2970. Modules.print = function(color, text, size)
  2971. if not Modules.Colors[color] then
  2972. warn("Color was not found!")
  2973. return
  2974. end
  2975.  
  2976. local Text = '<font color="rgb(' .. Modules.Colors[color] .. ')"'
  2977. if size then
  2978. Text = Text .. ' size="' .. tostring(size) .. '"'
  2979. end
  2980. Text = Text .. '>' .. tostring(text) .. '</font>'
  2981. print(Text)
  2982. end
  2983.  
  2984. local version = "7.3"
  2985.  
  2986. local translations = {
  2987. ["fr"] = {
  2988. line = "-------------------------------------------------------------------------------------",
  2989. executed = "Script Server Finder Deluxe lancé !!!",
  2990. contact = "Si vous avez un problème avec le script, contactez maxproglitcher sur Discord.",
  2991. },
  2992. ["en"] = {
  2993. line = "-------------------------------------------------------------------------------------",
  2994. executed = "Script Server Finder Deluxe is executed !!!",
  2995. contact = "If you have a problem with the script, contact maxproglitcher on Discord.",
  2996. },
  2997. ["es"] = {
  2998. line = "-------------------------------------------------------------------------------------",
  2999. executed = "¡Script Server Finder Deluxe ejecutado!",
  3000. contact = "Si tienes un problema con el script, contacta a maxproglitcher en Discord.",
  3001. },
  3002. ["de"] = {
  3003. line = "-------------------------------------------------------------------------------------",
  3004. executed = "Script Server Finder Deluxe wurde ausgeführt!",
  3005. contact = "Bei Problemen mit dem Skript kontaktiere maxproglitcher auf Discord.",
  3006. },
  3007. ["it"] = {
  3008. line = "-------------------------------------------------------------------------------------",
  3009. executed = "Script Server Finder Deluxe eseguito!",
  3010. contact = "Se hai problemi con lo script, contatta maxproglitcher su Discord.",
  3011. },
  3012. ["pt"] = {
  3013. line = "-------------------------------------------------------------------------------------",
  3014. executed = "Script Server Finder Deluxe executado!",
  3015. contact = "Se você tiver problemas com o script, contate maxproglitcher no Discord.",
  3016. },
  3017. ["ru"] = {
  3018. line = "-------------------------------------------------------------------------------------",
  3019. executed = "Скрипт Server Finder Deluxe запущен!",
  3020. contact = "Если у вас есть проблемы со скриптом, свяжитесь с maxproglitcher в Discord.",
  3021. },
  3022. ["zh"] = {
  3023. line = "-------------------------------------------------------------------------------------",
  3024. executed = "脚本 Server Finder Deluxe 已执行!",
  3025. contact = "如果您遇到脚本问题,请在 Discord 上联系 maxproglitcher。",
  3026. },
  3027. ["tr"] = {
  3028. line = "-------------------------------------------------------------------------------------",
  3029. executed = "Script Server Finder Deluxe çalıştırıldı!",
  3030. contact = "Script ile ilgili bir sorun yaşarsanız, Discord üzerinden maxproglitcher ile iletişime geçin.",
  3031. },
  3032. ["ja"] = {
  3033. line = "-------------------------------------------------------------------------------------",
  3034. executed = "スクリプト Server Finder Deluxe を実行しました!",
  3035. contact = "スクリプトに問題がある場合は、Discord で maxproglitcher に連絡してください。",
  3036. },
  3037. ["ar"] = {
  3038. line = "-------------------------------------------------------------------------------------",
  3039. executed = "تم تنفيذ سكربت Server Finder Deluxe!",
  3040. contact = "إذا واجهت مشكلة في السكربت، تواصل مع maxproglitcher على ديسكورد.",
  3041. }
  3042. }
  3043.  
  3044. -- Utilisation correcte de RobloxLocaleId côté client
  3045. local langCode = game:GetService("LocalizationService").RobloxLocaleId:lower():match("^([a-z][a-z])") or "en"
  3046. local msg = translations[langCode] or translations["en"]
  3047.  
  3048. Modules.ChangeColor()
  3049. Modules.print("Grey", msg.line, 20)
  3050. Modules.print("Grey", msg.executed, 20)
  3051. Modules.print("Grey", "Version "..version, 20)
  3052. Modules.print("Grey", msg.line, 20)
  3053. Modules.print("Grey", msg.contact, 20)
  3054. Modules.print("Grey", msg.line, 20)
  3055. end)
  3056. --------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment