MaxproGlitcher

Untitled

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