Advertisement
CatGray

Ro Total Hypernova

Apr 11th, 2024
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.14 KB | None | 0 0
  1. --[[ Ikura I do not Claim The Script or try to take the credit i just put the script in pastebin because it's long Credit to Hypernova ]]--
  2.  
  3. local RoTotal = {
  4. ["HttpPost"] = {
  5. ["Allowed"] = false,
  6. ["WhitelistedURLs"] = {},
  7. ["BlacklistedURLs"] = {"repl","http://"}
  8. },
  9. ["HttpGet"] = {
  10. ["Allowed"] = false,
  11. ["BlacklistedURLs"] = {
  12. "http://",
  13. "repl"
  14. }, -- Keep the http:// as its most replits and projects that steal your information that begin with http://
  15. ["WhitelistedURLs"] = {
  16. "MobileKeyboard",
  17. "https://scriptblox.com"
  18. -- Add URLs in this if you want to turn HttpGet off but you want to loadstring something.
  19. }
  20. },
  21. ["MarketplaceService"] = {
  22. ["Robux"] = {
  23. ["GetRobuxBalance"] = false, -- Setting this to false prevents scripts from being able to use this method to check your robux balance, This method is automatically disabled on delta.
  24. ["PromptPurchases"] = false, -- Setting this to false prevents scripts from using robux stealing methods, This also is automatically disabled on delta.
  25. ["PerformPurchases"] = false -- automatically disabled on delta but better to keep it set to false.
  26. },
  27. ["ShowCreators"] = true -- When this option is on, if a scammer tries to prompt a purchase it will show their username and user id.
  28. },
  29. ["Chat"] = {
  30. ["SayMessageRequest"] = {
  31. ["Allowed"] = false,
  32. ["BlacklistedWords"] = {} -- If you chose to enable SayMessageRequest blacklist some common swear words to prevent yourself from getting chat banned.
  33. },
  34. ["SendAsync"] = {
  35. ["Allowed"] = false, -- SendAsync is a method that sends messages in the new TextChatService chat, Enable this if you think the script you're executing is safe.
  36. ["BlacklistedWords"] = {} -- Enter in some words in case you want to allow this, especially swear words.
  37. }
  38. },
  39. ["BasicAnticheat"] = {
  40. ["Bypass"] = true,
  41. ["DestroyWhenCalled"] = false -- Whenever an anticheat calls something such as PreloadAsync, if set to true this will delete the client anticheat
  42. }
  43. }
  44. local LocalPlayer = game:GetService("Players").LocalPlayer
  45. if game:GetService("TextChatService").ChatVersion ~= Enum.ChatVersion.TextChatService then
  46. function makemessage(message)
  47. msg = tostring(message)
  48. game:GetService("StarterGui"):SetCore(
  49. "ChatMakeSystemMessage",
  50. {
  51. Text = msg,
  52. Color = Color3.fromRGB(255, 89, 98),
  53. Font = Enum.Font.GothamMedium,
  54. FontSize = 16
  55. }
  56. )
  57. end
  58. function makewarn(message)
  59. msg = tostring(message)
  60. game:GetService("StarterGui"):SetCore(
  61. "ChatMakeSystemMessage",
  62. {
  63. Text = "[WARN]\n" .. msg,
  64. Color = Color3.fromHex("#fdfd96"),
  65. Font = Enum.Font.GothamMedium,
  66. FontSize = 16
  67. }
  68. )
  69. end
  70. function makeerror(message)
  71. msg = tostring(message)
  72. game:GetService("StarterGui"):SetCore(
  73. "ChatMakeSystemMessage",
  74. {
  75. Text = "[ERROR]\n" .. msg,
  76. Color = Color3.fromRGB(125, 12, 23),
  77. Font = Enum.Font.GothamMedium,
  78. FontSize = 16
  79. }
  80. )
  81. end
  82. ChatBar = LocalPlayer.PlayerGui.Chat.Frame.ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar
  83. ChatMain = LocalPlayer.PlayerScripts.ChatScript.ChatMain
  84. local s, e = pcall(function()
  85. SMR = game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest
  86. end)
  87. if not s then
  88. warn("SayMessageRequest was not found! Please send a message in chat so SayMessageRequest can be found.")
  89. end
  90. lastText = ""
  91. ChatBar.Focused:Connect(function()
  92. repeat lastText = ChatBar.Text task.wait() until not ChatBar.Focused
  93. end)
  94. else
  95. function makemessage(msg)
  96. msg = tostring(msg)
  97. if game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral") then
  98. game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral"):DisplaySystemMessage(msg)
  99. end
  100. end
  101. function makewarn(msg)
  102. msg = tostring(msg)
  103. if game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral") then
  104. game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral"):DisplaySystemMessage(
  105. "[WARN] " .. msg
  106. )
  107. end
  108. end
  109. function makeerror(msg)
  110. makeMessage("[ERROR]\n" .. msg)
  111. end
  112. end
  113. local hookf = assert(hookfunction, "Your executor does not support a required function, Please consider getting a new executor, DO NOT CONSIDER THIS SCRIPT EXECUTED.")
  114. local keyp = assert(keypress, "Your executor does not support the keypress function.")
  115. hookf(warn, newcclosure(function(...)
  116. local c = ""
  117. for i, v in {...} do c = c .. " " .. tostring(v) end
  118. makewarn(c)
  119. end))
  120. hookf(error, newcclosure(function(...)
  121. local c = ""
  122. for i, v in {...} do c = c .. " " .. tostring(v) end
  123. makeerror(c)
  124. end))
  125. makemessage("RoTotal loaded.")
  126. local old;
  127. old = hookmetamethod(game,"__namecall",newcclosure(function(Self,...)
  128. local Args = {...}
  129. local method = getnamecallmethod()
  130. if method:lower():sub(1, 6) == "prompt" and not RoTotal.MarketplaceService.PromptPurchases then
  131. if RoTotal.MarketplaceService.ShowCreators then
  132. local creator = game:GetService("MarketplaceService"):GetProductInfo(Args[2]).Creator.CreatorTargetId
  133. e = string.format("/Extra Information\\\nCreator: @%s\nCreator ID: %d", game:GetService("Players"):GetNameFromUserIdAsync(creator), creator)
  134. end
  135. return warn(
  136. string.format(
  137. "%s called %s (robux stealing method), Attempt denied.\n%s", getcallingscript():GetFullName(), method, e
  138. )
  139. )
  140. elseif method:lower() == ("performpurchase" or "performpurchasev2") and Self == game:GetService("MarketplaceService") then
  141. local creator = game:GetService("MarketplaceService"):GetProductInfo(Args[2]).Creator.CreatorTargetId
  142. local f = string.format("/Extra Information\\\nCreator: @%s\nCreator ID: %d", game:GetService("Players"):GetNameFromUserIdAsync(creator), creator)
  143. if not RoTotal.MarketplaceService.Robux.PerformPurchases then
  144. return warn(string.format("Script called %s (Force-Buying a product), Product ID: %d Attempt denied.\n%s", method, Args[2], f))
  145. else
  146. warn("Script force-bought a product, Attempt successfully as PerformPurchases is set to true\n%s", f)
  147. end
  148. elseif method == "GetRobuxBalance" and Self == game:GetService("MarketplaceService") then
  149. if not RoTotal.MarketplaceService.Robux.GetRobuxBalance then
  150. return warn(string.format("%s called GetRobuxBalance on %s, Attempt denied.", getcallingscript():GetFullName(), Args[1].Name))
  151. else
  152. warn("%s called GetRobuxBalance on user %s, Attempt successful.", getcallingscript():GetFullName(), Args[1].Name)
  153. end
  154. end
  155. if method:sub(1,8) == "HttpPost" and not RoTotal.HttpPost.Allowed then
  156. WHITE_LISTED = false
  157. local s = ""
  158. if type(Args[2]) == "table" then
  159. for i, v in Args[2] do
  160. if type(v) == "table" then
  161. for _, c in v do s = s .. tostring(_)..": " .. tostring(c) .."\n" end
  162. end
  163. end
  164. else
  165. s = Args[2]
  166. end
  167. for i, v in RoTotal.HttpPost.WhitelistedURLs do
  168. if Args[1]:gsub("https://", ""):find(v:gsub("https://","")) then
  169. WHITE_LISTED = true
  170. end
  171. end
  172. if not WHITE_LISTED then
  173. return warn(
  174. string.format(
  175. "%s tried to HttpPost to the following URL: %s, Post data:\n%s\nAttempt denied as URL was found not whitelisted",
  176. getcallingscript():GetFullName(), Args[1], s
  177. )
  178. )
  179. end
  180. elseif method:sub(1,8) == "HttpPost" and RoTotal.HttpPost.Allowed then
  181. BLACK_LISTED0 = false
  182. for i, v in RoTotal.HttpPost.BlacklistedURLs do
  183. if Args[1]:find(v) then
  184. BLACK_LISTED0 = true
  185. end
  186. end
  187. local s = "Headers:\n"
  188. for i, v in Args[3] do
  189. if type(v) == "table" then
  190. for _, c in v do s = s .. tostring(_)..": " .. tostring(c) .."\n" end
  191. end
  192. end
  193. if BLACK_LISTED0 then
  194. return warn(string.format("%s called HttpPost with URL %s but the URL was found blacklisted, Post data:\n%s\n%s", getcallingscript():GetFullName(), Args[1], Args[2], s))
  195. end
  196. elseif method:sub(1,7) == "HttpGet" then
  197. WHITE_LISTED1 = false
  198. BLACK_LISTED1 = false
  199. if RoTotal.HttpGet.Allowed then
  200. for i, v in RoTotal.HttpGet.BlacklistedURLs do
  201. if Args[1]:gsub("https://",""):find(v:gsub("https://","")) then BLACK_LISTED1 = true
  202. end
  203. end
  204. for i, v in RoTotal.HttpGet.WhitelistedURLs do
  205. if Args[1]:gsub("https://", ""):find(v:gsub("https://", "")) then WHITE_LISTED1 = true end
  206. end
  207. if BLACK_LISTED1 or not WHITE_LISTED1 then return warn(string.format("%s Tried to send a HttpGet request to the URL %s, URL was found in the blacklisted urls table.", getcallingscript():GetFullName(), Args[1]))
  208. end
  209. else
  210. for i, v in RoTotal.HttpGet.WhitelistedURLs do
  211. if Args[1]:gsub("https://",""):find(v:gsub("https://","")) then WHITE_LISTED1 = true end
  212. end
  213. if not WHITE_LISTED1 then
  214. return warn(string.format("%s Tried to send an HttpGet request to the URL %s, But the URL was not found in the whitelisted URLs table, the attempt was denied.", getcallingscript():GetFullName(), Args[1]))
  215. end
  216. end
  217. elseif method == "SendAsync" and Self:IsA("TextChannel") then
  218. BLACK_LISTED2 = false
  219. BLACKLISTEDWORD = ""
  220. if not RoTotal.Chat.SendAsync.Allowed then return warn(
  221. getcallingscript():GetFullName(), "Tried to call SendAsync with the text",Args[1],"but SendAsync is not allowed, Attempt denied."
  222. ) end
  223. if RoTotal.Chat.SendAsync.Allowed then
  224. for i, v in RoTotal.Chat.SendAsync.BlacklistedWords do
  225. if Args[1]:find(v) then BLACK_LISTED2 = true BLACKLISTEDWORD = v end
  226. end
  227. if BLACK_LISTED2 then
  228. return warn(
  229. string.format(
  230. "%s Tried to SendAsync with the blacklisted word %s!\nAttempt denied.", getcallingscript():GetFullName(), BLACKLISTEDWORD
  231. )
  232. )
  233. end
  234. end
  235. elseif Self == SMR and Args[1] ~= lastText then
  236. BLACK_LISTED3 = false
  237. if RoTotal.Chat.SayMessageRequest.Allowed then
  238. for i, v in RoTotal.Chat.SayMessageRequest.BlacklistedWords do
  239. if Args[1]:find(v) then
  240. BLACK_LISTED3 = true
  241. BLACKLISTEDWORD2 = v
  242. end
  243. end
  244. if BLACK_LISTED3 then
  245. return warn(
  246. string.format(
  247. "%s Fired SayMessageRequest with a blacklisted message (%s), the blacklisted word that blocked the message was '%s'\nChannel: %s.", getcallingscript():GetFullName(), Args[1], BLACKLISTEDWORD2, Args[2])
  248. )
  249. end
  250. else
  251. return warn(
  252. string.format(
  253. "%s Tried to fire SayMessageRequest with the message %s, in channel %s.\nIf you think this message would not get you banned go ahead and allow SayMessageRequest.Allowed, Otherwise keep it off and add this message to the BlacklistedWords table.", getcallingscript():GetFullName(), Args[1], Args[2]
  254. )
  255. )
  256. end
  257. elseif method == 'FireServer' and lastText == Args[1] and getcallingscript() == ChatMain then
  258. SMR = Self
  259. warn("SayMessageRequest has been found!\nYou will no longer have to worry about chat bans.")
  260. elseif method == 'GetClientId' then
  261. return warn(string.format("%s Tried to get your Hardware-ID attempt denied; Please do not re-execute the last script", getcallingscript():GetFullName()))
  262. elseif method == "Kick" and Self == game:GetService("Players").LocalPlayer then
  263. return warn("Script tried to kick LocalPlayer, Attempt denied\nNote: ",Args[1])
  264. elseif method == "ReportAbuse" and Self:IsA("Player") then
  265. return warn(string.format("%s tried to ReportAbuse user %s, Attempt denied.", getcallingscript():GetFullName(), Self.Name))
  266. elseif method == "PreloadAsync" and Self == game:GetService("ContentProvider") then
  267. if RoTotal.BasicAnticheat.Bypass then
  268. if RoTotal.BasicAnticheat.DestroyWhenCalled then
  269. getcallingscript():Destroy()
  270. end
  271. return warn("PreloadAsync was called, Attempt denied.")
  272. elseif method == 'GetTotalMemoryUsageMb' and Self == game:GetService("Stats") and RoTotal.BasicAnticheat.Bypass then if RoTotal.BasicAnticheat.DestroyWhenCalled then getcallingscript():Destroy() end
  273. local num = math.random(380,500)
  274. warn("A script called GetTotalMemoryUsageMb, (Anticheat) returned " .. tostring(num) .. "megabytes") return num end -- Used to check how many megabytes the game is using, if its alot then user is exploiting, We return a number from 380 to 500 to make sure the game does not know because thats the average roblox regular client usage.
  275. end
  276. return old(Self,...)
  277. end))
  278. local r = (syn and syn.request) or (fluxus and fluxus.request) or Request or request
  279. function extra(str)
  280. local str2 = str:sub(2, #str):lower()
  281. return str:sub(1,1)..str2
  282. end
  283. hookf(r, function(args)
  284. if args.Method == "GET" then
  285. if RoTotal.HttpGet.Allowed then
  286. for i, v in RoTotal.HttpGet.BlacklistedURLs do
  287. if args.Url:find(v) then
  288. return warn(
  289. string.format(
  290. "%s called HttpGet with a blacklisted URL (%s), Attempt denied.", getcallingscript():GetFullName(), args.Url))
  291. end
  292. end
  293. else
  294. local a = false
  295. for i, v in RoTotal.HttpGet.WhitelistedURLs do
  296. if args.Url:find(v) then a = true end
  297. end
  298. if not a then
  299. return warn(string.format("%s called HttpGet with a non-whitelisted URL (%s), Attempt denied.", getcallingscript():GetFullName(), args.Url))
  300. else
  301. local b;
  302. local s, e = pcall(function()
  303. b = game:HttpGet(args.Url)
  304. end)
  305. return {Body = b, Success = s, Cookies={}, Headers={["Content-Length"] = #b, ["Content-Type"]="text/html"}} -- Return a table of nothing as the headers and cookies for protection. (totally not because i dont know what to do)
  306. end
  307. end
  308. elseif args.Method == "POST" then
  309. return game:HttpPost(args.Url, args.Body, args.Headers)
  310. elseif args.Method == "HEAD" then
  311. game:HttpGet(args.Url)
  312. return
  313. elseif args.Method == "DELETE" then
  314. return
  315. end
  316. end)
  317.  
  318.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement