Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ 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 ]]--
- local RoTotal = {
- ["HttpPost"] = {
- ["Allowed"] = false,
- ["WhitelistedURLs"] = {},
- ["BlacklistedURLs"] = {"repl","http://"}
- },
- ["HttpGet"] = {
- ["Allowed"] = false,
- ["BlacklistedURLs"] = {
- "http://",
- "repl"
- }, -- Keep the http:// as its most replits and projects that steal your information that begin with http://
- ["WhitelistedURLs"] = {
- "MobileKeyboard",
- "https://scriptblox.com"
- -- Add URLs in this if you want to turn HttpGet off but you want to loadstring something.
- }
- },
- ["MarketplaceService"] = {
- ["Robux"] = {
- ["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.
- ["PromptPurchases"] = false, -- Setting this to false prevents scripts from using robux stealing methods, This also is automatically disabled on delta.
- ["PerformPurchases"] = false -- automatically disabled on delta but better to keep it set to false.
- },
- ["ShowCreators"] = true -- When this option is on, if a scammer tries to prompt a purchase it will show their username and user id.
- },
- ["Chat"] = {
- ["SayMessageRequest"] = {
- ["Allowed"] = false,
- ["BlacklistedWords"] = {} -- If you chose to enable SayMessageRequest blacklist some common swear words to prevent yourself from getting chat banned.
- },
- ["SendAsync"] = {
- ["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.
- ["BlacklistedWords"] = {} -- Enter in some words in case you want to allow this, especially swear words.
- }
- },
- ["BasicAnticheat"] = {
- ["Bypass"] = true,
- ["DestroyWhenCalled"] = false -- Whenever an anticheat calls something such as PreloadAsync, if set to true this will delete the client anticheat
- }
- }
- local LocalPlayer = game:GetService("Players").LocalPlayer
- if game:GetService("TextChatService").ChatVersion ~= Enum.ChatVersion.TextChatService then
- function makemessage(message)
- msg = tostring(message)
- game:GetService("StarterGui"):SetCore(
- "ChatMakeSystemMessage",
- {
- Text = msg,
- Color = Color3.fromRGB(255, 89, 98),
- Font = Enum.Font.GothamMedium,
- FontSize = 16
- }
- )
- end
- function makewarn(message)
- msg = tostring(message)
- game:GetService("StarterGui"):SetCore(
- "ChatMakeSystemMessage",
- {
- Text = "[WARN]\n" .. msg,
- Color = Color3.fromHex("#fdfd96"),
- Font = Enum.Font.GothamMedium,
- FontSize = 16
- }
- )
- end
- function makeerror(message)
- msg = tostring(message)
- game:GetService("StarterGui"):SetCore(
- "ChatMakeSystemMessage",
- {
- Text = "[ERROR]\n" .. msg,
- Color = Color3.fromRGB(125, 12, 23),
- Font = Enum.Font.GothamMedium,
- FontSize = 16
- }
- )
- end
- ChatBar = LocalPlayer.PlayerGui.Chat.Frame.ChatBarParentFrame.Frame.BoxFrame.Frame.ChatBar
- ChatMain = LocalPlayer.PlayerScripts.ChatScript.ChatMain
- local s, e = pcall(function()
- SMR = game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest
- end)
- if not s then
- warn("SayMessageRequest was not found! Please send a message in chat so SayMessageRequest can be found.")
- end
- lastText = ""
- ChatBar.Focused:Connect(function()
- repeat lastText = ChatBar.Text task.wait() until not ChatBar.Focused
- end)
- else
- function makemessage(msg)
- msg = tostring(msg)
- if game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral") then
- game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral"):DisplaySystemMessage(msg)
- end
- end
- function makewarn(msg)
- msg = tostring(msg)
- if game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral") then
- game:GetService("TextChatService").TextChannels:FindFirstChild("RBXGeneral"):DisplaySystemMessage(
- "[WARN] " .. msg
- )
- end
- end
- function makeerror(msg)
- makeMessage("[ERROR]\n" .. msg)
- end
- end
- local hookf = assert(hookfunction, "Your executor does not support a required function, Please consider getting a new executor, DO NOT CONSIDER THIS SCRIPT EXECUTED.")
- local keyp = assert(keypress, "Your executor does not support the keypress function.")
- hookf(warn, newcclosure(function(...)
- local c = ""
- for i, v in {...} do c = c .. " " .. tostring(v) end
- makewarn(c)
- end))
- hookf(error, newcclosure(function(...)
- local c = ""
- for i, v in {...} do c = c .. " " .. tostring(v) end
- makeerror(c)
- end))
- makemessage("RoTotal loaded.")
- local old;
- old = hookmetamethod(game,"__namecall",newcclosure(function(Self,...)
- local Args = {...}
- local method = getnamecallmethod()
- if method:lower():sub(1, 6) == "prompt" and not RoTotal.MarketplaceService.PromptPurchases then
- if RoTotal.MarketplaceService.ShowCreators then
- local creator = game:GetService("MarketplaceService"):GetProductInfo(Args[2]).Creator.CreatorTargetId
- e = string.format("/Extra Information\\\nCreator: @%s\nCreator ID: %d", game:GetService("Players"):GetNameFromUserIdAsync(creator), creator)
- end
- return warn(
- string.format(
- "%s called %s (robux stealing method), Attempt denied.\n%s", getcallingscript():GetFullName(), method, e
- )
- )
- elseif method:lower() == ("performpurchase" or "performpurchasev2") and Self == game:GetService("MarketplaceService") then
- local creator = game:GetService("MarketplaceService"):GetProductInfo(Args[2]).Creator.CreatorTargetId
- local f = string.format("/Extra Information\\\nCreator: @%s\nCreator ID: %d", game:GetService("Players"):GetNameFromUserIdAsync(creator), creator)
- if not RoTotal.MarketplaceService.Robux.PerformPurchases then
- return warn(string.format("Script called %s (Force-Buying a product), Product ID: %d Attempt denied.\n%s", method, Args[2], f))
- else
- warn("Script force-bought a product, Attempt successfully as PerformPurchases is set to true\n%s", f)
- end
- elseif method == "GetRobuxBalance" and Self == game:GetService("MarketplaceService") then
- if not RoTotal.MarketplaceService.Robux.GetRobuxBalance then
- return warn(string.format("%s called GetRobuxBalance on %s, Attempt denied.", getcallingscript():GetFullName(), Args[1].Name))
- else
- warn("%s called GetRobuxBalance on user %s, Attempt successful.", getcallingscript():GetFullName(), Args[1].Name)
- end
- end
- if method:sub(1,8) == "HttpPost" and not RoTotal.HttpPost.Allowed then
- WHITE_LISTED = false
- local s = ""
- if type(Args[2]) == "table" then
- for i, v in Args[2] do
- if type(v) == "table" then
- for _, c in v do s = s .. tostring(_)..": " .. tostring(c) .."\n" end
- end
- end
- else
- s = Args[2]
- end
- for i, v in RoTotal.HttpPost.WhitelistedURLs do
- if Args[1]:gsub("https://", ""):find(v:gsub("https://","")) then
- WHITE_LISTED = true
- end
- end
- if not WHITE_LISTED then
- return warn(
- string.format(
- "%s tried to HttpPost to the following URL: %s, Post data:\n%s\nAttempt denied as URL was found not whitelisted",
- getcallingscript():GetFullName(), Args[1], s
- )
- )
- end
- elseif method:sub(1,8) == "HttpPost" and RoTotal.HttpPost.Allowed then
- BLACK_LISTED0 = false
- for i, v in RoTotal.HttpPost.BlacklistedURLs do
- if Args[1]:find(v) then
- BLACK_LISTED0 = true
- end
- end
- local s = "Headers:\n"
- for i, v in Args[3] do
- if type(v) == "table" then
- for _, c in v do s = s .. tostring(_)..": " .. tostring(c) .."\n" end
- end
- end
- if BLACK_LISTED0 then
- 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))
- end
- elseif method:sub(1,7) == "HttpGet" then
- WHITE_LISTED1 = false
- BLACK_LISTED1 = false
- if RoTotal.HttpGet.Allowed then
- for i, v in RoTotal.HttpGet.BlacklistedURLs do
- if Args[1]:gsub("https://",""):find(v:gsub("https://","")) then BLACK_LISTED1 = true
- end
- end
- for i, v in RoTotal.HttpGet.WhitelistedURLs do
- if Args[1]:gsub("https://", ""):find(v:gsub("https://", "")) then WHITE_LISTED1 = true end
- end
- 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]))
- end
- else
- for i, v in RoTotal.HttpGet.WhitelistedURLs do
- if Args[1]:gsub("https://",""):find(v:gsub("https://","")) then WHITE_LISTED1 = true end
- end
- if not WHITE_LISTED1 then
- 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]))
- end
- end
- elseif method == "SendAsync" and Self:IsA("TextChannel") then
- BLACK_LISTED2 = false
- BLACKLISTEDWORD = ""
- if not RoTotal.Chat.SendAsync.Allowed then return warn(
- getcallingscript():GetFullName(), "Tried to call SendAsync with the text",Args[1],"but SendAsync is not allowed, Attempt denied."
- ) end
- if RoTotal.Chat.SendAsync.Allowed then
- for i, v in RoTotal.Chat.SendAsync.BlacklistedWords do
- if Args[1]:find(v) then BLACK_LISTED2 = true BLACKLISTEDWORD = v end
- end
- if BLACK_LISTED2 then
- return warn(
- string.format(
- "%s Tried to SendAsync with the blacklisted word %s!\nAttempt denied.", getcallingscript():GetFullName(), BLACKLISTEDWORD
- )
- )
- end
- end
- elseif Self == SMR and Args[1] ~= lastText then
- BLACK_LISTED3 = false
- if RoTotal.Chat.SayMessageRequest.Allowed then
- for i, v in RoTotal.Chat.SayMessageRequest.BlacklistedWords do
- if Args[1]:find(v) then
- BLACK_LISTED3 = true
- BLACKLISTEDWORD2 = v
- end
- end
- if BLACK_LISTED3 then
- return warn(
- string.format(
- "%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])
- )
- end
- else
- return warn(
- string.format(
- "%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]
- )
- )
- end
- elseif method == 'FireServer' and lastText == Args[1] and getcallingscript() == ChatMain then
- SMR = Self
- warn("SayMessageRequest has been found!\nYou will no longer have to worry about chat bans.")
- elseif method == 'GetClientId' then
- return warn(string.format("%s Tried to get your Hardware-ID attempt denied; Please do not re-execute the last script", getcallingscript():GetFullName()))
- elseif method == "Kick" and Self == game:GetService("Players").LocalPlayer then
- return warn("Script tried to kick LocalPlayer, Attempt denied\nNote: ",Args[1])
- elseif method == "ReportAbuse" and Self:IsA("Player") then
- return warn(string.format("%s tried to ReportAbuse user %s, Attempt denied.", getcallingscript():GetFullName(), Self.Name))
- elseif method == "PreloadAsync" and Self == game:GetService("ContentProvider") then
- if RoTotal.BasicAnticheat.Bypass then
- if RoTotal.BasicAnticheat.DestroyWhenCalled then
- getcallingscript():Destroy()
- end
- return warn("PreloadAsync was called, Attempt denied.")
- elseif method == 'GetTotalMemoryUsageMb' and Self == game:GetService("Stats") and RoTotal.BasicAnticheat.Bypass then if RoTotal.BasicAnticheat.DestroyWhenCalled then getcallingscript():Destroy() end
- local num = math.random(380,500)
- 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.
- end
- return old(Self,...)
- end))
- local r = (syn and syn.request) or (fluxus and fluxus.request) or Request or request
- function extra(str)
- local str2 = str:sub(2, #str):lower()
- return str:sub(1,1)..str2
- end
- hookf(r, function(args)
- if args.Method == "GET" then
- if RoTotal.HttpGet.Allowed then
- for i, v in RoTotal.HttpGet.BlacklistedURLs do
- if args.Url:find(v) then
- return warn(
- string.format(
- "%s called HttpGet with a blacklisted URL (%s), Attempt denied.", getcallingscript():GetFullName(), args.Url))
- end
- end
- else
- local a = false
- for i, v in RoTotal.HttpGet.WhitelistedURLs do
- if args.Url:find(v) then a = true end
- end
- if not a then
- return warn(string.format("%s called HttpGet with a non-whitelisted URL (%s), Attempt denied.", getcallingscript():GetFullName(), args.Url))
- else
- local b;
- local s, e = pcall(function()
- b = game:HttpGet(args.Url)
- end)
- 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)
- end
- end
- elseif args.Method == "POST" then
- return game:HttpPost(args.Url, args.Body, args.Headers)
- elseif args.Method == "HEAD" then
- game:HttpGet(args.Url)
- return
- elseif args.Method == "DELETE" then
- return
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement