MaxproGlitcher

Untitled

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