MaxproGlitcher

Server Finder Deluxe Test 2 Interface Redesign

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