
Key Required VerifiedUniversal
do
getreg().whitelist_key = 'cracked';
getreg().ID = 'lol';
local base64_custom = {};
do
-- character table string
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
local enc_const1 = 1.899346804; --cringe
local enc_const2 = 8; --to make c work together with the operations
-- encoding
base64_custom.enc = function(data)
return ((data:gsub('.', function(x)
local r,b='',(x:byte() * enc_const1);
for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end
return r;
end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
if (#x < 6) then return '' end
local c=0
for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end
return b:sub(c+1,c+1)
end)..({ '', '==', '=' })[#data%3+1])
end
-- decoding
base64_custom.dec = function(data)
data = string.gsub(data, '[^'..b..'=]', '')
return (data:gsub('.', function(x)
if (x == '=') then return '' end
local r,f='',(b:find(x)-1)
for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
return r;
end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
if (#x ~= 8) then return '' end
local c=0
for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(enc_const2-i) or 0) end
return string.char((c/enc_const1) + 1);
end));
end;
end;
do
local BLOXBURG_VERSION = '952';
local CONSTANT_UUID = 'fe55a2a8-1c84-423c-9cc2-15b4215fb2cb';
local responses = {
['https://bloxburg.sexy/version.php'] = BLOXBURG_VERSION;
['https://sor.cool/whitelist/bemeingtimesex.lua'] = CONSTANT_UUID;
['https://bloxburg.sexy/getinvite.php'] = 'https://bloxburg.sexy/discord/joinDiscord';
['https://bloxburg.sexy/neighborhoods/getCode.php'] = '';
};
local replaceclosure = getfenv()[base64_custom.dec('2L/Uzbi8v7zN0tre2L8=')];
local httpService = game:GetService('HttpService');
replaceclosure(syn.request, newcclosure(function(t)
local tur = t.Url;
if (tur == 'https://sor.cool/whitelist/bemeingtimesex.lua') then
return { Body = CONSTANT_UUID, StatusCode = 200 };
elseif (tur == 'https://sor.cool/whitelist/sanity.lua') then
return { Body = tostring(os.time()):sub(1, -4), StatusCode = 200 };
else
local key, id, data = tur:match('^http[s]?://sor%.cool/whitelist/checkauthentication%.lua%??[%w+%?=]-[%?&]Key=([_%w%%]-)&ID=(%w+)&Data=([%w%+/=]*)');
if (key) then
data = base64_custom.dec(data);
local nt = 0;
local t = tostring(os.time()):sub(1, -4);
do
local pstart = 3.7;
nt = t * 1.5335;
nt = (nt + ((nt / 2) / (nt / 0.5)));
nt = math.ceil(nt * 1.5 * tonumber(pstart));
nt = tonumber(nt) + 5219;
nt = nt + tonumber(data); --append data
end;
return { Body = httpService:JSONEncode{
signature = t;
data = base64_custom.enc(tostring(nt));
}, StatusCode = 200 };
end;
end;
end));
replaceclosure(game.HttpGet, newcclosure(function(self, url, is_async)
return responses[url];
end));
end;
end;
-- //Check Exploit\\
repeat wait() until game:IsLoaded()
local beta = false
local private = false
local function getexploit()
local exploit =
(syn and not is_sirhurt_closure and not pebc_execute and "Synapse") or
("Unsupported")
return exploit
end
if getexploit() == "Unsupported" then
game.Players.LocalPlayer:Kick("[Void] Exploit not supported! Please use Synapse.")
end
local exploit = getexploit()
--[[
Release:
Synapse: 27
Krnl: 32
Obfuscated:
Synapse: 55
Krnl: 30
Unobfuscated:
Synapse: 42
Krnl: 18
]]
--[[local krnlCheck = 32
local synapseCheck = 27
num = 0
for i,v in pairs(getgc()) do
if type(v) == "function" and islclosure(v) and getfenv(v).script and not getfenv(v).script.Parent then
a = (debug.getinfo(v).source)
if (string.find(a,"@")) then
num = num + 1
end
end
end
if (exploit == "Synapse" and num > synapseCheck) or (exploit == "Krnl" and num > krnlCheck) then
print(num)
game.Players.LocalPlayer:Kick("[Void] Don't execute anything before the script.")
wait(3)
while true do end
end]]
--// Variables
if not shared.ran then
shared.ran = true
else
a = false
repeat wait() until a
end
local host = 'https://sor.cool/whitelist'
local Key = getreg().whitelist_key or "retardalert"
local ID = getreg().ID or "retardalert"
if(Key == "") then
Key = "retardalert"
end
if(ID == "") then
ID = "retardalert"
end
local request = (exploit == "Synapse" and syn.request) or (exploit == "ProtoSmasher" and http_request) or (exploit == "Krnl" and request)
local TweenService = game:GetService("TweenService")
local HttpService = game:GetService("HttpService")
local LocalPlayer = game:GetService("Players").LocalPlayer
local start = tick()
local starttime = os.time()
local checks = {}
local checked = {}
local cracked = false
local jmpkey = math.random(1,10000000)
local jmpcheck4 = math.random(1,10000000)
local jmpcheck2 = nil
local jmpdepend = math.random(1,4)
local jmpcheck1 = nil
local jmpcheck3 = nil
local function Create(object, properties)
local Object = Instance.new(object)
for i, v in pairs(properties) do
Object[i] = v
end
return Object
end
--// Functions
function noSpace(str)
local normalisedString = string.gsub(str, "%s+", '%%20')
return normalisedString
end
function randomString(length)
local res = ""
for i = 1, length do
res = res .. string.char(math.random(97, 122))
end
return res
end
local function grabTime(v1)
if v1 < 1 then
while true do end
end
time11 = tostring(os.time())
timee = time11:sub(1, -4)
local a = timee
local a = a * 1.5335
timeee = a + ((a / 2) / (a / 0.5))
timeee = math.ceil((timeee * 1.5 * tonumber(v1)))
timeee = tonumber(timeee) + 5219
if timeee < 100 then
while true do end
end
return timeee
end
function grabData()
return math.cos(math.ldexp(grabTime(3.3) * 6,5) + math.random(1,100000) + 3) + 2
end
function get(Url)
local res = request({
Url = (Url);
Method = 'GET';
})
if not (res["StatusCode"]) then
while true do end
elseif res["StatusCode"] ~= 200 then
while wait() do end
wait(0.6)
wait(2)
while true do end
while wait() do end
end
return res["Body"]
end
local function report(report_id,addinfo)
print(addinfo)
if cracked == true then
while wait() do end
end
if(addinfo == "" or not addinfo) then
addinfo = "None"
else
addinfo = noSpace(addinfo)
end
local res = request(
{
Url = host .. "/logs.lua?info=" .. (report_id or "nil") .. "&ID=" .. (ID or "nil") .. "&private="..(tostring(private) or false).."&addinfo=" .. (addinfo or "None"),
Method = "POST",
}
)
game:GetService("Players").LocalPlayer:Kick("Detected crack attempt. (" .. report_id .. ")")
repeat wait() until res
cracked = true
wait(0.3)
while true do end
a = false
repeat wait() until a == true
end
local function reportOutput(type,text)
if(text == "" or not text) then
text = "None"
else
text = noSpace(text)
end
local res = request(
{
Url = host .. "/api/logs/send?channel=" .. 'output' .. "&info=" .. type .. "&key=" .. Key .. "&text=" .. text,
Method = "POST"
}
)
end
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -- You will need this for encoding/decoding
local Base64 = {}
function Base64.Encode(data)
data = tostring(data)
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
return ((data:gsub('.', function(x)
local r,b='',x:byte()*(1.899346804)
for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end
return r;
end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
if (#x < 6) then return '' end
local c=0
for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end
return b:sub(c+1,c+1)
end)..({ '', '==', '=' })[#data%3+1])
end
-- decoding
function Base64.Decode(data)
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
data = string.gsub(data, '[^'..b..'=]', '')
return (data:gsub('.', function(x)
if (x == '=') then return '' end
local r,f='',(b:find(x)-1)
for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
return r;
end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
if (#x ~= 8) then return '' end
local c=0
for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
return string.char((c/1.899346804 + 1))
end))
end
local function base(s)
return s:lower() == s and ('a'):byte() or ('A'):byte()
end
function cipher(str)
return (str:gsub("%a", function(s)
local base = base(s)
return string.char(((s:byte() - base + 13) % 26) + base)
end));
end
function decipher(str)
return (str:gsub("%a", function(s)
local base = base(s)
return string.char(((s:byte() - base - 13) % 26) + base)
end));
end
function encrypt(str)
local encrypted = ""
string.gsub(cipher(str), ".", function(char) encrypted = encrypted .. string.format("%02X", string.byte(char)) end)
return cipher(encrypted)
end
function decrypt(encrypted)
local decrypted = ""
string.gsub(decipher(encrypted), "..", function(hexbyte) decrypted = decrypted .. string.char(tonumber(hexbyte, 16)) end)
return decipher(decrypted);
end
function grabVerification()
local mathrandom = 3
verifyy = math.random()
local test = mathrandom * verifyy
local L = test * verifyy / 2
return L
end
function checkVerify(check, crash)
local found
for i,v in ipairs(checks) do
if(v == check) then
found = true
end
end
if(found ~= true) then
if(crash == true) then
report(1) -- Verification Check Failed
end
return false
else
found = false
for i,v in pairs(checked) do
if v == check then
found = true
end
end
if found == false then
table.insert(checked, check)
end
return true
end
end
function EndVerify()
local a = 0
local b = 0
for i,v in pairs(checks) do
a = a + 1
end
for i,v in pairs(checked) do
b = b + 1
end
if(a ~= 3 or b ~= 3) then
report(2) -- Verification End Failed
end
if not(b == a) then
report(2) -- Verification End Failed
end
end
function Verify(check, verification)
if(checkVerify(check, false)) then
report(3) -- Verification Failed
end
local function func()
local verificationstring = 2
local verificationstring = verificationstring + 3 - 2
local veriffy = verifyy
local noob = verificationstring * veriffy
local diot = noob * veriffy / 2
return diot
end
local verificationstring = func()
if(verification ~= verificationstring) then
report(3) -- Verification Failed
return false
else
table.insert(checks, check)
return true
end
end
-- //Anti EQ\\
function eq(a,b)
if type(a) ~= type(b) then
report(8, "EQ1, " .. a .. " " .. b) -- EQ Failed
return false
end
a = tostring(a)
b = tostring(b)
c = false
if(string.len(a) ~= string.len(b)) then
report(8, "EQ2, " .. a .. " " .. b) -- EQ Failed
return false
end
str = 'abc'
a1 = ''
a2 = 0
a3 = {}
string.gsub(a, ".", function(char)
a1 = a1 .. string.format("%02X", string.byte(char))
table.insert(a3,string.format("%02X", string.byte(char)))
end)
b1 = ''
b2 = 0
b3 = {}
string.gsub(b, ".", function(char)
b1 = b1 .. string.format("%02X", string.byte(char))
table.insert(b3,string.format("%02X", string.byte(char)))
end)
for i,v in pairs(a3) do
a2 = a2 + 1
end
for i,v in pairs(b3) do
b2 = b2 + 1
end
if a2 ~= b2 then
report(8, "EQ3, " .. a .. " " .. b) -- EQ Failed
return false
end
for i=1,a:len() do
if a3[i] ~= b3[i] then
report(8, "EQ4, " .. a .. " " .. b) -- EQ Failed
return false
end
end
for i=1,math.random(1,4) do
local depend = math.random(1,5)
if depend == 1 then
a = a:rep(2)
b = b:rep(2)
for i=1,a:len() do
if a ~= b then
report(8, "EQ5, " .. a .. " " .. b) -- EQ Failed
return false
else
c = true
end
end
return c
elseif(depend == 2) then
if a:reverse() ~= a:reverse() then
report(8, "EQ6, " .. a .. " " .. b) -- EQ Failed
return false
elseif(b:reverse() ~= b:reverse()) then
report(8, "EQ7, " .. a .. " " .. b) -- EQ Failed
return false
elseif(b:reverse() == a:reverse()) then
wtfjmptext = (('a'):rep(jmpdepend*10))
return true
elseif(a:reverse() == b:reverse()) then
report(8, "EQ8, " .. a .. " " .. b) -- EQ Failed
return false
else
report(8, "EQ9, " .. a .. " " .. b) -- EQ Failed
return false
end
elseif(depend == 3) then
if(a:len() ~= b:len()) then
report(8, "EQ10, " .. a .. " " .. b) -- EQ Failed
return false
elseif(a:len() ~= a:len()) then
report(8, "EQ11, " .. a .. " " .. b) -- EQ Failed
return false
elseif(b:len() ~= b:len()) then
report(8, "EQ12, " .. a .. " " .. b) -- EQ Failed
return false
elseif(b:len() == a:len()) then
wtfjmptext = (('a'):rep(jmpdepend*10))
return true
elseif(a:len() == b:len()) then
report(8, "EQ13, " .. a .. " " .. b) -- EQ Failed
return false
end
elseif(depend == 4) then
if not(a:find(b)) then
report(8, "EQ14, " .. a .. " " .. b) -- EQ Failed
return false
elseif not (b:find(a)) then
report(8, "EQ15, " .. a .. " " .. b) -- EQ Failed
return false
elseif not (b:find(b)) then
report(8, "EQ16, " .. a .. " " .. b) -- EQ Failed
return false
elseif not (a:find(a)) then
report(8, "EQ17, " .. a .. " " .. b) -- EQ Failed
return false
elseif (a:find(b)) then
wtfjmptext = (('a'):rep(jmpdepend*10))
return true
elseif (b:find(a)) then
report(8, "EQ18, " .. a .. " " .. b) -- EQ Failed
return false
end
elseif(depend == 5) then
local a = a:reverse()
local b = b:reverse()
local a = a:len()
local b = b:len()
if not (a == b) then
report(8, "EQ19, " .. a .. " " .. b) -- EQ Failed
return false
elseif not (a == a) then
report(8, "EQ20, " .. a .. " " .. b) -- EQ Failed
return false
elseif not (b == b) then
report(8, "EQ21, " .. a .. " " .. b) -- EQ Failed
return false
elseif not (a ~= b) then
wtfjmptext = (('a'):rep(jmpdepend*10))
return true
elseif not (b ~= a) then
report(8, "EQ22, " .. a .. " " .. b) -- EQ Failed
return false
else
report(8, "EQ23, " .. a .. " " .. b) -- EQ Failed
return false
end
end
end
end
--// Anti-HttpSpy
game:HttpGet(host.."/bemeingtimesex.lua")
request({
Url = host .. "/bemeingtimesex.lua";
Method = "GET";
})
for i,v in next, game:GetService("LogService"):GetLogHistory() do
if v.message:find('bemeingtimesex') or v.message:find('fe55a2a8-1c84-423c-9cc2-15b4215fb2cb') then
report(5, "HTTP")
end
end
--/ /Anti-Hookfunctions
print'ah1'
local body = get(host .. '/sanity.lua')
expectedBody = tostring(os.time())
expectedBody = expectedBody:sub(1, -4)
print'san1'
repeat wait() until body ~= ''
if tonumber(body) ~= tonumber(expectedBody) then
local a = false
repeat wait() until a == true
end
local function getfunc()
return function() end
end
spawn(function()
while wait() do
if (exploit == "synapse" and not isreadonly(syn)) then
report(5, "IRO (syn)")
end
end
end)
if os.time() <= 1597707055 then
report(5, "OT-1")
end
spawn(function()
while wait(1) do
local depend = math.random(1,4)
if depend == 1 then
loadstring([[function f()
return function()
local check1 = '0125b3d8-eb8a-4d91-866b-53767cc7a040'
return 'ab5a303e-d34c-4ee6-958b-1ee36bbf566f'
end
end]])()
local const = debug.getconstants(f())
if exploit == "Synapse" then
table.remove(const, #const)
end
if #const ~= 2 then
report(5, "CC1D1 "..#const)
end
local expected = {'0125b3d8-eb8a-4d91-866b-53767cc7a040', 'ab5a303e-d34c-4ee6-958b-1ee36bbf566f'}
for i,v in next, const do
if expected[i] ~= v then
report(5, "CC2D1")
end
end
if f()() ~= 'ab5a303e-d34c-4ee6-958b-1ee36bbf566f' then
report(5, "CC3D1")
end
elseif depend == 2 then
loadstring([[function g()
return function()
local check2 = 'cb7a1663-dd68-436d-bf5c-5f2aff62c9e3'
return 'f081c7b4-f74c-459e-b28c-530b6a7b6776'
end
end]])()
local const = debug.getconstants(g())
if exploit == "Synapse" then
table.remove(const, #const)
end
if #const ~= 2 then
report(5, "CC1D2 "..#const)
end
local expected = {'cb7a1663-dd68-436d-bf5c-5f2aff62c9e3', 'f081c7b4-f74c-459e-b28c-530b6a7b6776'}
for i,v in next, const do
if expected[i] ~= v then
report(5, "CC2D2")
end
end
if g()() ~= 'f081c7b4-f74c-459e-b28c-530b6a7b6776' then
report(5, "CC3D2")
end
end
if depend == 3 then
loadstring([[ function h()
return function()
local check3 = 'b1466ed1-8be9-4742-9f8d-29836d734c7e'
return '9898bce5-0e3c-4681-8265-e941dacf395a'
end
end]])()
local const = debug.getconstants(h())
if exploit == "Synapse" then
table.remove(const, #const)
end
if #const ~= 2 then
report(5, "CC1D3 "..#const)
end
local expected = {'b1466ed1-8be9-4742-9f8d-29836d734c7e', '9898bce5-0e3c-4681-8265-e941dacf395a'}
for i,v in next, const do
if expected[i] ~= v then
report(5, "CC2D3")
end
end
if h()() ~= '9898bce5-0e3c-4681-8265-e941dacf395a' then
report(5, "CC3D3")
end
elseif depend == 4 then
loadstring([[function i()
return function()
local check4 = 'cb32ec14-8c8b-47fa-8dc7-f2c853799891'
return '61495818-13ed-4ac2-a4ab-15b0f230c56c'
end
end]])()
local const = debug.getconstants(i())
if exploit == "Synapse" then
table.remove(const, #const)
end
if #const ~= 2 then
report(5, "CC1D4 "..#const)
end
local expected = {'cb32ec14-8c8b-47fa-8dc7-f2c853799891', '61495818-13ed-4ac2-a4ab-15b0f230c56c'}
for i,v in next, const do
if expected[i] ~= v then
report(5, "CC2D4")
end
end
if i()() ~= '61495818-13ed-4ac2-a4ab-15b0f230c56c' then
report(5, "CC3D4")
end
end
end
end)
spawn(function()
while wait() do
if not islclosure(getfunc()) then
report(5,"ISL")
end
end
end)
spawn(function()
while wait(1) do
local depend = math.random(1,2)
if depend == 1 then
var = "aghd2y"
varType = type(var)
if(varType ~= "string") then
report(5,"TYPE")
end
else
var = 123125654
varType = type(var)
if(varType ~= "number") then
report(5,"TYPE")
end
end
end
end)
--[[
Un-Oobfuscated:
Synapse: 10
KRNL: 10
Obfuscated:
Synapse: 6
KRNL: 6
]]
local Amount = 0
local Attempts = 0
local uuidcount = 0
local function checkgc()
return "sex"
end
function search(tt)
for i,v in next, tt do
if type(v) == "function" and islclosure(v) then
local Constant = debug.getconstants(v)
for k, x in next, Constant do
Attempts = Attempts + 1
if x == "hookfunction" or x == "replaceclosure" or x == "setreadonly" or x == "getrawmetatable" then
Amount = Amount + 1
end
end
end
end
end
search(getgc())
search(getreg())
if Attempts < 1000 or Amount ~= 14 then
report(4,"SE2 " .. Attempts .. " " .. Amount)
else
Verify(2,grabVerification())
end
checkgc()
if not table.find(getgc(), checkgc) then
report(5,"GC")
end
spawn(function()
Bool = false
check = 0
local OldT
while check < 5 do
wait(2)
local NewT = os.time()
if NewT == OldT then
report(5,"OT-2 ("..NewT.." "..OldT..")")
end
OldT = NewT
wait()
local TempDate = os.date("!*t",NewT)
local TempDate2 = os.date("!*t",NewT+60)
local OldMin = TempDate.min
local NewMin = TempDate2.min
if OldMin == 59 then
if NewMin ~= 0 and (NewMin ~= 0) then
report(5,"OT-3")
end
elseif NewMin ~= OldMin+1 and (NewMin ~= OldMin+1) then
report(5,"OT-4")
end
wait()
check = check + 1
end
end)
spawn(function()
check2 = 0
while check2 < 5 do
wait(1)
if (os.time() == starttime) then
report(5,"OT-5") -- HookFunction
end
check2 = check2 + 1
wait(2)
end
end)
local hook5 = 0
local Bool = true
hookTime = tostring(os.time())
hookTime = hookTime:sub(1, -4)
hookTime = tonumber(hookTime) * 1.5335
hookTime = hookTime + ((hookTime / 2) / (hookTime / 0.5))
hookTime = math.ceil((hookTime * 1.5 * 1.72/ 10000))
hookTime = tonumber(hookTime)
spawn(function()
while wait(1) do
if not (hookTime > tonumber(630)) then
report(5,"OT-6")
end
end
end)
local hook1 = 0
spawn(function()
while wait(1) do
if hook1 > 492374 then
hook1 = hookTime
end
hook1 = hook1 + hookTime
local a = math.random()
local b = math.random(hook1,hook1)
if(a == b) then
report(5,"MR-1")
end
if not (b == hook1) then
report(5,"MR-2")
end
end
end)
local hook7 = 0
spawn(function()
while wait(1) do
if hook7 > 492374 then
hook7 = hookTime
end
hook7 = hook7 + hookTime
local a = tonumber(math.random())
local b = tonumber(math.random(hook7,hook7))
if(a == b) then
report(5,"TN-1")
end
if not (b == hook7) then
report(5,"TN-2")
end
end
end)
local hook2 = 0
spawn(function()
while wait(1) do
if hook2 > 492374 then
hook2 = hookTime
end
hook2 = hook2 + hookTime
local a = tostring(math.random())
local b = tostring(math.random(hook2,hook2))
if(a == b) then
report(5,"TS-1")
end
if not (tonumber(b) == hook2) then
report(5,"TS-2")
end
end
end)
local hook3 = 0
spawn(function()
while wait(1) do
local a = string.char(math.random(51,72))
local b = string.char(math.random(40,50))
if(a == b) then
report(5,"SC-1")
end
end
end)
local hook4 = 0
spawn(function()
while wait(1) do
if hook4 > 492374 then
hook4 = hookTime
end
hook4 = hook4 + hookTime
local string = tostring(math.random(4,7))
local s = string:sub(1, -1)
local string2 = tostring(math.random(hook4,hook4))
local s2 = string2:sub(1, -1)
if(s == s2) then
report(5,"SS-1")
end
if not (tonumber(s2) == hook4) then
report(5,"SS-2")
end
end
end)
local hook6 = 0
spawn(function()
while wait(1) do
test = math.random(3,6)
wait(test)
if(start == os.time()) then
report(5,"OT-7")
end
end
end)
local hook8 = 0
spawn(function()
while wait(1) do
if hook8 > 492374 then
hook8 = hookTime
end
hook8 = hook8 + hookTime
local a = math.ceil(math.random())
local b = math.ceil(math.random(hook8,hook8))
if(a == b) then
report(5,"MC-1")
end
if not (b == hook8) then
report(5,"MC-2")
end
end
end)
local hook9 = 0
spawn(function()
while wait(1) do
if hook9 > 492374 then
hook9 = hookTime
end
hook9 = hook9 + hookTime
local a = string.char(math.random(51,72))
local b = string.char(math.random(40,50))
local c = tonumber(string.byte(a))
local d = tonumber(string.byte(b))
if(c == d) then
report(5,"SB-1")
end
end
end)
local hook10 = 0
spawn(function()
while wait(1) do
local a = string.char(math.random(51,72))
local b = string.char(math.random(40,50))
local c = a:lower()
local d = b:lower()
if(c == d) then
report(5,"SL-1")
end
end
end)
local hook11 = 0
spawn(function()
while wait(1) do
local a = {}
local aa,b,c = math.random(),math.random(),math.random()
table.insert(a,aa)
table.insert(a,b)
table.insert(a,c)
local d = 0
for i,v in pairs(a) do
d = d + 1
end
for i=1,d do
if not (a[i]) then
report(5,"TI-1")
else
if not (a[i] == aa or a[i] == b or a[i] == c) then
report(5,"TI-2")
end
end
end
end
end)
local hook12 = 0
spawn(function()
while wait(1) do
if hook12 > 492374 then
hook12 = hookTime
end
hook12 = hook12 + hookTime
local a = math.ceil(math.random(1,5))
local b = tonumber(string.format("%d",math.random(hook12,hook12)))
if(a == b) then
report(5,"SF-1")
end
if not (b == hook12) then
report(5,"SF-2")
end
end
end)
local hook13 = 0
local hook13T = {}
spawn(function()
while wait(1) do
if hook13 > 492374 then
hook13 = hookTime
end
hook13 = hook13 + hookTime
table.insert(hook13T,hook13)
if not table.find(hook13T,hook13) then
report(5,"TF-1")
end
end
end)
local hook14 = 0
spawn(function()
while wait(1) do
if hook14 > 492374 then
hook14 = hookTime
end
hook14 = hook14 + hookTime
local a = tostring(hook14):sub(1,-1)
if a ~= tostring(hook14) then
report(5,"sub")
end
end
end)
local hook15 = 0
spawn(function()
while wait(1) do
if hook15 > 492374 then
hook15 = hookTime
end
hook15 = hook15 + hookTime
local a = Base64.Encode(tostring(math.random(hook8,hook8)))
if(a == hook15) then
report(5,"ENC-1")
end
if(tonumber(Base64.Decode(a)) ~= hook15) then
report(5,"DEC-1")
end
end
end)
hookTime2 = tostring(os.time())
hookTime2 = hookTime2:sub(1, -4)
hookTime2 = hookTime2 * 1.5335
hookTime2 = hookTime2 + ((hookTime2 / 2) / (hookTime2 / 0.5))
hookTime2 = math.ceil((hookTime2 * 1.5 * 1.72/ 10000))
hookTime2 = tonumber(hookTime2)
if not (hookTime2 == hookTime) then
report(5,"OT-8")
end
--// Anti-JMP
function jmp(var)
local table = {}
setreadonly(table,var)
if isreadonly(table) then
return true
else
report(6,"SRO")
return false
end
end
folder = Create("Folder",{Parent=game.CoreGui,Name='bigmantings'})
local wtf_is_this_table = {
{aaaaaaaaaa=function() jmpkeyy = jmpkey return {val=true,jmpkey=jmpkey,
func1=function(jkey,depend)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend) or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
jmpcheck1 = true
--replace with grabTime with data
return 123123
end,
func2=function(jkey,depend,prev,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend) or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if prev ~= 123123 or #tostring(prev) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck) ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck2 = true
return 'change this to time3'
end,
func3=function(jkey,depend,func1res,func2res,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend) or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if func2res ~= 'change this to time3' or #tostring(func2res) ~= #tostring('change this to time3') then
report(6,'wtf is this jmp func')
end
if func1res ~= 123123 or #tostring(func1res) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck) ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck3 = true
--eq func2res with time3 and checkauth resu
return {check4=jmpcheck4,check5=57934852,jmp3=function(bool)if bool ~= false then report(6,'wtf is this jmp') else return true end end,jtuseh = game:GetService("TweenService"),fihsefuhh = game:GetService("Players").LocalPlayer,fhiac=game:GetService("UserInputService"),ojh2oa=game:GetService("Players").LocalPlayer:GetMouse()}
end
}end},
{aaaaaaaaaaaaaaaaaaaa=function() jmpkeyy = jmpkey return {val=true,jmpkey=jmpkey,
func1=function(jkey,depend)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+1 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
jmpcheck1 = true
--replace with grabTime with data
return 123123
end,
func2=function(jkey,depend,prev,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+1 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if prev ~= 123123 or #tostring(prev) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck)+1 ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck2 = true
return 'change this to time3'
end,
func3=function(jkey,depend,func1res,func2res,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+1 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if func2res ~= 'change this to time3' or #tostring(func2res) ~= #tostring('change this to time3') then
report(6,'wtf is this jmp func')
end
if func1res ~= 123123 or #tostring(func1res) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck)+1 ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck3 = true
--eq func2res with time3 and checkauth resu
return {check4=jmpcheck4,check5=57934852,jmp3=function(bool)if bool ~= false then report(6,'wtf is this jmp') else return true end end,jtuseh = game:GetService("TweenService"),fihsefuhh = game:GetService("Players").LocalPlayer,fhiac=game:GetService("UserInputService"),ojh2oa=game:GetService("Players").LocalPlayer:GetMouse()}
end
}end},
{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=function() jmpkeyy = jmpkey return {val=true,jmpkey=jmpkey,
func1=function(jkey,depend)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+2 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
jmpcheck1 = true
--replace with grabTime with data
return 123123
end,
func2=function(jkey,depend,prev,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+2 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if prev ~= 123123 or #tostring(prev) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck)+2 ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck2 = true
return 'change this to time3'
end,
func3=function(jkey,depend,func1res,func2res,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+2 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if func2res ~= 'change this to time3' or #tostring(func2res) ~= #tostring('change this to time3') then
report(6,'wtf is this jmp func')
end
if func1res ~= 123123 or #tostring(func1res) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck)+2 ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck3 = true
--eq func2res with time3 and checkauth resu
return {check4=jmpcheck4,check5=57934852,jmp3=function(bool)if bool ~= false then report(6,'wtf is this jmp') else return true end end,jtuseh = game:GetService("TweenService"),fihsefuhh = game:GetService("Players").LocalPlayer,fhiac=game:GetService("UserInputService"),ojh2oa=game:GetService("Players").LocalPlayer:GetMouse()}
end
}end},
{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=function() jmpkeyy = jmpkey return {val=true,jmpkey=jmpkey,
func1=function(jkey,depend)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+3 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
jmpcheck1 = true
--replace with grabTime with data
return 123123
end,
func2=function(jkey,depend,prev,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+3 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if prev ~= 123123 or #tostring(prev) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck)+3 ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck2 = true
return 'change this to time3'
end,
func3=function(jkey,depend,func1res,func2res,vcheck)
if jkey ~= jmpkeyy then
report(6,'wtf is this jmp func')
end
if depend ~= jmpdepend or depend ~= #tostring(depend)+3 or #tostring(depend) ~= #tostring(jmpdepend) then
report(6,'wtf is this jmp func')
end
--replace with grabTime with data
if func2res ~= 'change this to time3' or #tostring(func2res) ~= #tostring('change this to time3') then
report(6,'wtf is this jmp func')
end
if func1res ~= 123123 or #tostring(func1res) ~= #tostring(123123) then
report(6,'wtf is this jmp func')
end
if vcheck ~= 4 or #tostring(vcheck) ~= 1 or #tostring(vcheck)+3 ~= (depend) then
report(6,'wtf is this jmp func')
end
jmpcheck3 = true
--eq func2res with time3 and checkauth resu
return {check4=jmpcheck4,check5=57934852,jmp3=function(bool)if bool ~= false then report(6,'wtf is this jmp') else return true end end,jtuseh = game:GetService("TweenService"),fihsefuhh = game:GetService("Players").LocalPlayer,fhiac=game:GetService("UserInputService"),ojh2oa=game:GetService("Players").LocalPlayer:GetMouse()}
end
}end},
}
function wtf_is_this_jmp(str)
StringValue = Create("StringValue",{Parent=folder,Value=str,Name="JMP"})
ffs = folder:FindFirstChild("JMP")
if ffs == StringValue then
if folder:FindFirstChildWhichIsA("StringValue") == StringValue then
if ffs.Value == str then
if (#ffs.Value == 10 and jmpdepend == 1) or (#ffs.Value == 20 and jmpdepend == 2) or (#ffs.Value == 30 and jmpdepend == 3) or (#ffs.Value == 40 and jmpdepend == 4) then
d = wtf_is_this_table[jmpdepend][ffs.Value]()
StringValue:Destroy()
jmpkey=nil
return d
else
report(6,'wtf is this jmp')
return false
end
else
report(6,'wtf is this jmp')
return false
end
else
report(6,'wtf is this jmp')
return false
end
else
report(6,'wtf is this jmp')
return false
end
end
--// Other Checks
--// Check Whitelist
local body = get(host .. '/sanity.lua')
expectedBody = tostring(os.time())
expectedBody = expectedBody:sub(1, -4)
print('san2')
repeat wait() until body ~= ''
if not (tonumber(body) == tonumber(expectedBody)) then
local a = false
repeat wait() until a == true
end
bool = true
WBool1 = false
WBool2 = false
data = grabData()
if beta == true then
res1 = get(host .. '/checkauthentication.lua?beta=true&Key='..Key..'&ID='..getreg().ID..'&Data='..Base64.Encode(tostring(data)))
elseif private == true then
res1 = get(host .. '/checkauthentication.lua?private=true&Key='..Key..'&ID='..getreg().ID..'&Data='..Base64.Encode(tostring(data)))
else
res1 = get(host .. '/checkauthentication.lua?Key='..Key..'&ID='..getreg().ID..'&Data='..Base64.Encode(tostring(data)))
end
local time3 = grabTime(3.7)+data
resTime = tostring(os.time())
resTime = resTime:sub(1, -4)
if res1 == '' then
bool = false
repeat wait() until bool
elseif res1 == 'Beta Script Disabled' then
bool = false
repeat wait() until bool
elseif res1 == 'Script Disabled' then
bool = false
repeat wait() until bool
elseif res1 == "Invalid ID" then
bool = false
repeat wait() until bool
elseif res1 == "Invalid Key" then
bool = false
repeat wait() until bool
elseif res1 == 'Invalid HWID' then
bool = false
repeat wait() until bool
end
res1 = HttpService:JSONDecode(res1)
if resTime ~= res1.signature then
data = grabData()
if beta == true then
res1 = get(host .. '/checkauthentication.lua?beta&Key='..Key..'&ID='..getreg().ID..'&Data='..Base64.Encode(tostring(data)))
elseif private == true then
res1 = get(host .. '/checkauthentication.lua?private=true&Key='..Key..'&ID='..getreg().ID..'&Data='..Base64.Encode(tostring(data)))
else
res1 = get(host .. '/checkauthentication.lua?Key='..Key..'&ID='..getreg().ID..'&Data='..Base64.Encode(tostring(data)))
end
time3 = grabTime(3.7)+data
res1 = HttpService:JSONDecode(res1)
end
time3 = tostring(time3)
Verify(time3,grabVerification())
WBool1 = true
Verify(1,grabVerification())
wtfjmptext = ('a'):rep(5)
if eq(time3,tostring(Base64.Decode(res1.data)),true) then
WBool2 = true
checkVerify(1,true)
checkVerify(2,true)
checkVerify(tostring(Base64.Decode(tostring(res1.data))),true)
jmp(WBool1)
jmp(WBool2)
a = wtf_is_this_jmp(('a'):rep(jmpdepend*10))
b = a.func1(a.jmpkey,jmpdepend)
c = a.func2(a.jmpkey,jmpdepend,b,4)
d = a.func3(a.jmpkey,jmpdepend,b,c,4)
time = tostring(tick() - start)
time = time:sub(1, -12)
time = time .. "s"
warn("[VOID] Authenticated in " .. time)
local a = EndVerify()
local TweenService = d.jtuseh
local UserInputService = d.fhiac
local Players = game:GetService("Players")
local player = d.fihsefuhh
local Mouse = d.ojh2oa
local RunService = game:GetService("RunService")
local TextService = game:GetService("TextService")
local PathfindingService = game:GetService("PathfindingService")
local Http = game:GetService("HttpService")
local TeleportService = game:GetService("TeleportService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local library = {}
local floor = math.floor
local clamp = math.clamp
local ceil = math.ceil
local pi = math.pi
local atan2 = math.atan2
local rad = math.rad
local huge = math.huge
if not getgenv().PSEnabled then
getgenv().PSEnabled = false
end
if not getgenv().PSOutput then
getgenv().PSOutput = "File"
end
if not getgenv().PSFileName then
getgenv().PSFileName = "codes"
end
if not getgenv().PSWebhook then
getgenv().PSWebhook = ""
end
local function upload_code(Webhook, code)
local resp = syn.request({
Url = Webhook;
Method = "POST",
Headers = {
["Content-Type"] = "application/json"
},
Body = game:GetService("HttpService"):JSONEncode({
username = "Neighborhood Finder",
embeds = {{
title = "New Neighborhood Found";
fields = {
{
name = "Code";
value = code
}
}
}}
})
})
end
local function CodeFarm(Output, FileName, Webhook)
repeat wait() until game:IsLoaded()
repeat wait() until player.PlayerGui:FindFirstChild("MainGUI") and player.PlayerGui.MainGUI:FindFirstChild("IsLoaded")
syn.queue_on_teleport([[
getgenv().PSEnabled = ]]..tostring(getgenv().PSEnabled)..[[
getgenv().PSOutput = ']]..tostring(getgenv().PSOutput)..[['
getgenv().PSFileName = ']]..tostring(getgenv().PSFileName)..[['
getgenv().PSWebhook = ']]..tostring(getgenv().PSWebhook)..[['
shared.whitelist_key = ']]..shared.whitelist_key..[[';
local content = game:HttpGet("https://sor.cool/whitelist/getfile.lua?ID=]]..getreg().ID..[[&type=script")
assert(loadstring(content))()
]])
local startindex = 10000
local function TeleportToRandomServer()
local data
repeat
data = game:HttpGet("https://bloxburg.sexy/getRobloxServer.php?startIndex="..tostring(startindex))
startindex = startindex + 1
wait()
until data ~= "" and data ~= "None"
TeleportService:TeleportToPlaceInstance(185655149, data)
end
if Output == "File" and not isfile(FileName..".txt") then
writefile(FileName..".txt", "")
end
player.OnTeleport:connect(function(state)
if state == Enum.TeleportState.Failed then
TeleportToRandomServer()
end
end)
for i,v in next, ReplicatedStorage.Stats:GetChildren() do
if v.Name ~= player.Name then
local PrivateServer = v.PrivateServer
if PrivateServer.RenewTime.Value > os.time() and PrivateServer.JoinPermission.Value == 0 then
if Output == "File" then
appendfile(FileName..".txt", v.Name.."\n")
elseif Output == "Webhook" then
upload_code(Webhook, v.Name)
end
end
end
end
TeleportToRandomServer()
end
if PSEnabled == true then
CodeFarm(PSOutput, PSFileName, PSWebhook)
return
end
local function tweenObject(object, data, time)
local tweenInfo = TweenInfo.new(time, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
local tween = TweenService:Create(object, tweenInfo, data)
tween:Play()
return tween
end
function library:Window(TitleWhite, TitleBlue)
if game.CoreGui:FindFirstChild("BloxburgUi") then
game.CoreGui:FindFirstChild("BloxburgUi"):Destroy()
end
local BloxburgUi = Instance.new("ScreenGui")
local MainUIFrame = Instance.new("ImageLabel")
local Cool = Instance.new("ImageLabel")
local BloxburgCool = Instance.new("Frame")
local TabsHolder = Instance.new("ImageLabel")
local UIListLayout = Instance.new("UIListLayout")
local UIPadding = Instance.new("UIPadding")
local BloxburgTitle1 = Instance.new("Frame")
local BloxburgTitle = Instance.new("TextLabel")
local BloxburgHubTitle = Instance.new("TextLabel")
BloxburgUi.Name = "BloxburgUi"
BloxburgUi.Parent = game:GetService("CoreGui")
BloxburgUi.DisplayOrder = 1
MainUIFrame.Name = "MainUIFrame"
MainUIFrame.Parent = BloxburgUi
MainUIFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MainUIFrame.BackgroundTransparency = 1.000
MainUIFrame.Position = UDim2.new(0.252025217, 0, 0.226720661, 0)
MainUIFrame.Size = UDim2.new(0, 551, 0, 404)
MainUIFrame.Image = "rbxassetid://3570695787"
MainUIFrame.ImageColor3 = Color3.fromRGB(22, 22, 22)
MainUIFrame.ScaleType = Enum.ScaleType.Slice
MainUIFrame.SliceCenter = Rect.new(100, 100, 100, 100)
MainUIFrame.SliceScale = 0.050
Cool.Name = "Cool"
Cool.Parent = MainUIFrame
Cool.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Cool.BackgroundTransparency = 1.000
Cool.Position = UDim2.new(0.06, 0, 0.04, 0)
Cool.Size = UDim2.new(0, 65, 0, 65)
Cool.ZIndex = 2
Cool.Image = "rbxassetid://166652117"
BloxburgCool.Name = "BloxburgCool"
BloxburgCool.Parent = MainUIFrame
BloxburgCool.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
BloxburgCool.BorderSizePixel = 0
BloxburgCool.Size = UDim2.new(0, 125, 0, 97)
TabsHolder.Name = "TabsHolder"
TabsHolder.Parent = MainUIFrame
TabsHolder.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TabsHolder.BackgroundTransparency = 1.000
TabsHolder.Position = UDim2.new(0, 0, 0.240099013, 0)
TabsHolder.Size = UDim2.new(0, 125, 0, 307)
TabsHolder.Image = "rbxassetid://3570695787"
TabsHolder.ImageColor3 = Color3.fromRGB(24, 24, 24)
TabsHolder.ScaleType = Enum.ScaleType.Slice
TabsHolder.SliceCenter = Rect.new(100, 100, 100, 100)
TabsHolder.SliceScale = 0.050
BloxburgTitle1.Name = "BloxburgTitle"
BloxburgTitle1.Parent = MainUIFrame
BloxburgTitle1.BackgroundColor3 = Color3.fromRGB(19, 19, 19)
BloxburgTitle1.BorderSizePixel = 0
BloxburgTitle1.Position = UDim2.new(0.226860255, 0, 0, 0)
BloxburgTitle1.Size = UDim2.new(0, 426, 0, 35)
BloxburgTitle.Name = "BloxburgTitle"
BloxburgTitle.Parent = BloxburgTitle1
BloxburgTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
BloxburgTitle.BackgroundTransparency = 1.000
BloxburgTitle.BorderColor3 = Color3.fromRGB(27, 42, 53)
BloxburgTitle.Position = UDim2.new(0.0140845068, 0, 0, 0)
BloxburgTitle.Size = UDim2.new(0, 420, 0, 35)
BloxburgTitle.Font = Enum.Font.GothamBold
BloxburgTitle.Text = TitleWhite
BloxburgTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
BloxburgTitle.TextSize = 15.000
BloxburgTitle.TextXAlignment = Enum.TextXAlignment.Left
BloxburgHubTitle.Name = "BloxburgHubTitle"
BloxburgHubTitle.Parent = BloxburgTitle
BloxburgHubTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
BloxburgHubTitle.BackgroundTransparency = 1.000
BloxburgHubTitle.Position = UDim2.new(0.165, 0, 0, 0)
BloxburgHubTitle.Size = UDim2.new(0, 372, 0, 35)
BloxburgHubTitle.Font = Enum.Font.GothamBold
BloxburgHubTitle.Text = TitleBlue
BloxburgHubTitle.TextColor3 = Color3.fromRGB(84, 116, 224)
BloxburgHubTitle.TextSize = 15.000
BloxburgHubTitle.TextXAlignment = Enum.TextXAlignment.Left
UIListLayout.Parent = TabsHolder
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIPadding.Parent = TabsHolder
local MainUITabPickedHolder = Instance.new("Frame")
MainUITabPickedHolder.Name = "MainUITabPickedHolder"
MainUITabPickedHolder.Parent = MainUIFrame
MainUITabPickedHolder.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MainUITabPickedHolder.BackgroundTransparency = 1.000
MainUITabPickedHolder.Position = UDim2.new(0.226860255, 0, 0.0866336599, 0)
MainUITabPickedHolder.Size = UDim2.new(0, 426, 0, 369)
local connections = {}
MainUIFrame.InputBegan:connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
local InitialPos = input.Position
local InitialFramePos = MainUIFrame.Position
connections.MouseMoved = UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - InitialPos
tweenObject(MainUIFrame, {
Position = UDim2.new(InitialFramePos.X.Scale, InitialFramePos.X.Offset + delta.X, InitialFramePos.Y.Scale, InitialFramePos.Y.Offset + delta.Y)
}, 0.1)
end
end)
MainUIFrame.InputEnded:connect(function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton1 then
connections.MouseMoved:Disconnect()
end
end)
end
end)
local opened = true
UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.RightControl then
if opened == true then
if MainUIFrame.Parent ~= nil then
MainUIFrame.ClipsDescendants = true
MainUIFrame:TweenSize(UDim2.new(0, 0, 0, 404), Enum.EasingDirection.In, Enum.EasingStyle.Linear, 0.5, true)
opened = false
wait(0.5)
end
elseif opened == false then
if MainUIFrame.Parent ~= nil then
MainUIFrame:TweenSize(UDim2.new(0, 551, 0, 404), Enum.EasingDirection.Out, Enum.EasingStyle.Linear, 0.5, true)
opened = true
wait(0.5)
MainUIFrame.ClipsDescendants = false
end
end
end
end)
local window = {}
function window:Notification(Type, content, callback)
if Type == "Message" then
local NotificationMain = Instance.new("ImageLabel")
local NotificationDropShadow = Instance.new("ImageLabel")
local NotificationTitleHodler = Instance.new("Frame")
local NotificationTitle = Instance.new("TextLabel")
local NotificationCool = Instance.new("ImageLabel")
local NotificationText = Instance.new("TextLabel")
local NotificationOkay = Instance.new("TextButton")
NotificationMain.Name = "NotificationMain"
NotificationMain.Parent = BloxburgUi
NotificationMain.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationMain.BackgroundTransparency = 1.000
NotificationMain.Position = UDim2.new(-0.3, 0, 0.775, 0)
tweenObject(NotificationMain, {
Position = UDim2.new(0.015, 0, 0.775, 0)
}, 0.5)
NotificationMain.Size = UDim2.new(0, 268, 0, 124)
NotificationMain.Image = "rbxassetid://3570695787"
NotificationMain.ImageColor3 = Color3.fromRGB(22, 22, 22)
NotificationMain.ScaleType = Enum.ScaleType.Slice
NotificationMain.SliceCenter = Rect.new(100, 100, 100, 100)
NotificationMain.SliceScale = 0.050
NotificationDropShadow.Name = "NotificationDropShadow"
NotificationDropShadow.Parent = NotificationMain
NotificationDropShadow.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationDropShadow.BackgroundTransparency = 1.000
NotificationDropShadow.Position = UDim2.new(-0.315028518, 0, -0.540322602, 0)
NotificationDropShadow.Size = UDim2.new(0, 442, 0, 258)
NotificationDropShadow.ZIndex = -1
NotificationDropShadow.Image = "rbxassetid://5089202498"
NotificationTitleHodler.Name = "NotificationTitleHodler"
NotificationTitleHodler.Parent = NotificationMain
NotificationTitleHodler.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
NotificationTitleHodler.BorderSizePixel = 0
NotificationTitleHodler.Size = UDim2.new(0, 268, 0, 31)
NotificationTitle.Name = "NotificationTitle"
NotificationTitle.Parent = NotificationTitleHodler
NotificationTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationTitle.BackgroundTransparency = 1.000
NotificationTitle.Position = UDim2.new(0.0261194035, 0, 0, 0)
NotificationTitle.Size = UDim2.new(0, 261, 0, 31)
NotificationTitle.Font = Enum.Font.GothamSemibold
NotificationTitle.Text = "Notification"
NotificationTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
NotificationTitle.TextSize = 14.000
NotificationTitle.TextXAlignment = Enum.TextXAlignment.Left
NotificationCool.Name = "NotificationCool"
NotificationCool.Parent = NotificationTitleHodler
NotificationCool.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationCool.BackgroundTransparency = 1.000
NotificationCool.Position = UDim2.new(0.914178967, 0, 0.225806445, 0)
NotificationCool.Size = UDim2.new(0, 17, 0, 17)
NotificationCool.Image = "rbxgameasset://Images/w"
NotificationText.Name = "NotificationText"
NotificationText.Parent = NotificationMain
NotificationText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationText.BackgroundTransparency = 1.000
NotificationText.Position = UDim2.new(-0.0037313432, 0, 0.25, 0)
NotificationText.Size = UDim2.new(0, 268, 0, 66)
NotificationText.ZIndex = 2
NotificationText.Font = Enum.Font.GothamSemibold
NotificationText.Text = content.Text
NotificationText.TextColor3 = Color3.fromRGB(233, 233, 233)
NotificationText.TextSize = 14.000
NotificationOkay.Name = "NotificationOkay"
NotificationOkay.Parent = NotificationMain
NotificationOkay.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
NotificationOkay.BorderSizePixel = 0
NotificationOkay.Position = UDim2.new(0.0223880596, 0, 0.782258093, 0)
NotificationOkay.Size = UDim2.new(0, 256, 0, 21)
NotificationOkay.Font = Enum.Font.GothamSemibold
NotificationOkay.Text = content.ConfirmText
NotificationOkay.TextColor3 = Color3.fromRGB(233, 233, 233)
NotificationOkay.TextSize = 13.000
NotificationOkay.MouseButton1Click:connect(function()
tweenObject(NotificationMain, {
Position = UDim2.new(-0.3, 0, 0.775, 0)
}, 0.5)
wait(0.5)
NotificationMain:Destroy()
end)
elseif Type == "Error" then
local ErrorMain = Instance.new("ImageLabel")
local ErrorDropShadow = Instance.new("ImageLabel")
local ErrorTitleHolder = Instance.new("Frame")
local ErrorTitle = Instance.new("TextLabel")
local ErrorBad = Instance.new("ImageLabel")
local ErrorText = Instance.new("TextLabel")
local ErrorOkay = Instance.new("TextButton")
ErrorMain.Name = "ErrorMain"
ErrorMain.Parent = BloxburgUi
ErrorMain.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ErrorMain.BackgroundTransparency = 1.000
ErrorMain.Position = UDim2.new(-0.3, 0, 0.775, 0)
tweenObject(ErrorMain, {
Position = UDim2.new(0.015, 0, 0.775, 0)
}, 0.5)
ErrorMain.Size = UDim2.new(0, 268, 0, 124)
ErrorMain.Image = "rbxassetid://3570695787"
ErrorMain.ImageColor3 = Color3.fromRGB(22, 22, 22)
ErrorMain.ScaleType = Enum.ScaleType.Slice
ErrorMain.SliceCenter = Rect.new(100, 100, 100, 100)
ErrorMain.SliceScale = 0.050
ErrorDropShadow.Name = "ErrorDropShadow"
ErrorDropShadow.Parent = ErrorMain
ErrorDropShadow.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ErrorDropShadow.BackgroundTransparency = 1.000
ErrorDropShadow.Position = UDim2.new(-0.315028518, 0, -0.540322602, 0)
ErrorDropShadow.Size = UDim2.new(0, 442, 0, 258)
ErrorDropShadow.ZIndex = -1
ErrorDropShadow.Image = "rbxassetid://5089202498"
ErrorTitleHolder.Name = "ErrorTitleHolder"
ErrorTitleHolder.Parent = ErrorMain
ErrorTitleHolder.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
ErrorTitleHolder.BorderSizePixel = 0
ErrorTitleHolder.Size = UDim2.new(0, 268, 0, 31)
ErrorTitle.Name = "ErrorTitle"
ErrorTitle.Parent = ErrorTitleHolder
ErrorTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ErrorTitle.BackgroundTransparency = 1.000
ErrorTitle.Position = UDim2.new(0.0261194035, 0, 0, 0)
ErrorTitle.Size = UDim2.new(0, 261, 0, 31)
ErrorTitle.Font = Enum.Font.GothamSemibold
ErrorTitle.Text = "ERROR"
ErrorTitle.TextColor3 = Color3.fromRGB(233, 58, 53)
ErrorTitle.TextSize = 14.000
ErrorTitle.TextXAlignment = Enum.TextXAlignment.Left
ErrorBad.Name = "ErrorBad"
ErrorBad.Parent = ErrorTitleHolder
ErrorBad.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ErrorBad.BackgroundTransparency = 1.000
ErrorBad.Position = UDim2.new(0.914178848, 0, 0.225806445, 0)
ErrorBad.Size = UDim2.new(0, 17, 0, 17)
ErrorBad.Image = "rbxgameasset://Images/d"
ErrorBad.ImageColor3 = Color3.fromRGB(233, 58, 53)
ErrorText.Name = "ErrorText"
ErrorText.Parent = ErrorMain
ErrorText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ErrorText.BackgroundTransparency = 1.000
ErrorText.Position = UDim2.new(-0.0037313432, 0, 0.25, 0)
ErrorText.Size = UDim2.new(0, 268, 0, 66)
ErrorText.ZIndex = 2
ErrorText.Font = Enum.Font.GothamSemibold
ErrorText.Text = content.Text
ErrorText.TextColor3 = Color3.fromRGB(233, 233, 233)
ErrorText.TextSize = 14.000
ErrorOkay.Name = "ErrorOkay"
ErrorOkay.Parent = ErrorMain
ErrorOkay.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
ErrorOkay.BorderSizePixel = 0
ErrorOkay.Position = UDim2.new(0.0223880596, 0, 0.782258093, 0)
ErrorOkay.Size = UDim2.new(0, 256, 0, 21)
ErrorOkay.Font = Enum.Font.GothamSemibold
ErrorOkay.Text = content.ConfirmText
ErrorOkay.TextColor3 = Color3.fromRGB(233, 233, 233)
ErrorOkay.TextSize = 13.000
ErrorOkay.MouseButton1Click:connect(function()
tweenObject(ErrorMain, {
Position = UDim2.new(-0.3, 0, 0.775, 0)
}, 0.5)
wait(0.5)
ErrorMain:Destroy()
end)
elseif Type == "Confirm" then
local NotificationMain = Instance.new("ImageLabel")
local NotificationDropShadow = Instance.new("ImageLabel")
local NotificationTitleHodler = Instance.new("Frame")
local NotificationTitle = Instance.new("TextLabel")
local NotificationCool = Instance.new("ImageLabel")
local NotificationText = Instance.new("TextLabel")
local NotificationYes = Instance.new("TextButton")
local NotificationNo = Instance.new("TextButton")
NotificationMain.Name = "NotificationMain"
NotificationMain.Parent = BloxburgUi
NotificationMain.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationMain.BackgroundTransparency = 1.000
NotificationMain.Position = UDim2.new(-0.3, 0, 0.775, 0)
NotificationMain.Size = UDim2.new(0, 268, 0, 124)
NotificationMain.Image = "rbxassetid://3570695787"
NotificationMain.ImageColor3 = Color3.fromRGB(22, 22, 22)
NotificationMain.ScaleType = Enum.ScaleType.Slice
NotificationMain.SliceCenter = Rect.new(100, 100, 100, 100)
NotificationMain.SliceScale = 0.050
tweenObject(NotificationMain, {
Position = UDim2.new(0.015, 0, 0.775, 0)
}, 0.5)
NotificationDropShadow.Name = "NotificationDropShadow"
NotificationDropShadow.Parent = NotificationMain
NotificationDropShadow.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationDropShadow.BackgroundTransparency = 1.000
NotificationDropShadow.Position = UDim2.new(-0.315028518, 0, -0.540322602, 0)
NotificationDropShadow.Size = UDim2.new(0, 442, 0, 258)
NotificationDropShadow.ZIndex = -1
NotificationDropShadow.Image = "rbxassetid://5089202498"
NotificationTitleHodler.Name = "NotificationTitleHodler"
NotificationTitleHodler.Parent = NotificationMain
NotificationTitleHodler.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
NotificationTitleHodler.BorderSizePixel = 0
NotificationTitleHodler.Size = UDim2.new(0, 268, 0, 31)
NotificationTitle.Name = "NotificationTitle"
NotificationTitle.Parent = NotificationTitleHodler
NotificationTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationTitle.BackgroundTransparency = 1.000
NotificationTitle.Position = UDim2.new(0.0261194035, 0, 0, 0)
NotificationTitle.Size = UDim2.new(0, 261, 0, 31)
NotificationTitle.Font = Enum.Font.GothamSemibold
NotificationTitle.Text = "Confirm"
NotificationTitle.TextColor3 = Color3.fromRGB(88, 170, 205)
NotificationTitle.TextSize = 14.000
NotificationTitle.TextXAlignment = Enum.TextXAlignment.Left
NotificationCool.Name = "NotificationCool"
NotificationCool.Parent = NotificationTitleHodler
NotificationCool.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationCool.BackgroundTransparency = 1.000
NotificationCool.Position = UDim2.new(0.914178967, 0, 0.225806445, 0)
NotificationCool.Size = UDim2.new(0, 17, 0, 17)
NotificationCool.Image = "rbxgameasset://Images/w"
NotificationText.Name = "NotificationText"
NotificationText.Parent = NotificationMain
NotificationText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
NotificationText.BackgroundTransparency = 1.000
NotificationText.Position = UDim2.new(-0.0037313432, 0, 0.25, 0)
NotificationText.Size = UDim2.new(0, 268, 0, 66)
NotificationText.ZIndex = 2
NotificationText.Font = Enum.Font.GothamSemibold
NotificationText.Text = content.Text
NotificationText.TextColor3 = Color3.fromRGB(233, 233, 233)
NotificationText.TextSize = 14.000
NotificationYes.Name = "NotificationYes"
NotificationYes.Parent = NotificationMain
NotificationYes.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
NotificationYes.BorderSizePixel = 0
NotificationYes.Position = UDim2.new(0.0223880596, 0, 0.782258093, 0)
NotificationYes.Size = UDim2.new(0, 128, 0, 21)
NotificationYes.Font = Enum.Font.GothamSemibold
NotificationYes.Text = "Yes"
NotificationYes.TextColor3 = Color3.fromRGB(0, 255, 0)
NotificationYes.TextSize = 13.000
NotificationNo.Name = "NotificationNo"
NotificationNo.Parent = NotificationMain
NotificationNo.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
NotificationNo.BorderSizePixel = 0
NotificationNo.Position = UDim2.new(0.5, 0, 0.782258093, 0)
NotificationNo.Size = UDim2.new(0, 128, 0, 21)
NotificationNo.Font = Enum.Font.GothamSemibold
NotificationNo.Text = "No"
NotificationNo.TextColor3 = Color3.fromRGB(233, 0, 0)
NotificationNo.TextSize = 13.000
NotificationYes.MouseButton1Click:Connect(function()
tweenObject(NotificationMain, {
Position = UDim2.new(-0.3, 0, 0.775, 0)
}, 0.5)
wait(0.5)
NotificationMain:Destroy()
NotificationMain = nil
if callback then
callback(true)
end
end)
NotificationNo.MouseButton1Click:Connect(function()
tweenObject(NotificationMain, {
Position = UDim2.new(-0.3, 0, 0.775, 0)
}, 0.5)
wait(0.5)
NotificationMain:Destroy()
NotificationMain = nil
if callback then
callback(false)
end
end)
end
end
local activeTab = nil
local activeTabFrame = nil
function window:Tab(name)
local TabSelected = Instance.new("TextButton")
local TabTOpFrame = Instance.new("Frame")
local TabBottomFrame = Instance.new("Frame")
local MainUITabPicked = Instance.new("ScrollingFrame")
TabSelected.Name = "TabSelected"
TabSelected.Parent = TabsHolder
TabSelected.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
TabSelected.BorderSizePixel = 0
TabSelected.Size = UDim2.new(0, 125, 0, 30)
TabSelected.AutoButtonColor = false
TabSelected.Font = Enum.Font.GothamSemibold
TabSelected.Text = name
TabSelected.TextColor3 = Color3.fromRGB(66, 66, 66)
TabSelected.TextSize = 13.000
TabTOpFrame.Name = "TabTOpFrame"
TabTOpFrame.Parent = TabSelected
TabTOpFrame.BackgroundColor3 = Color3.fromRGB(84, 116, 224)
TabTOpFrame.BorderColor3 = Color3.fromRGB(84, 116, 224)
TabTOpFrame.BorderSizePixel = 0
TabTOpFrame.Size = UDim2.new(0, 125, 0, 1)
TabTOpFrame.BackgroundTransparency = 1
TabBottomFrame.Name = "TabBottomFrame"
TabBottomFrame.Parent = TabSelected
TabBottomFrame.BackgroundColor3 = Color3.fromRGB(84, 116, 224)
TabBottomFrame.BorderColor3 = Color3.fromRGB(84, 116, 224)
TabBottomFrame.BorderSizePixel = 0
TabBottomFrame.Position = UDim2.new(0, 0, 0.966666639, 0)
TabBottomFrame.Size = UDim2.new(0, 125, 0, 1)
TabBottomFrame.BackgroundTransparency = 1
local UIListLayout_2 = Instance.new("UIListLayout")
local UIPadding_2 = Instance.new("UIPadding")
MainUITabPicked.Name = "MainUITabPicked"
MainUITabPicked.Parent = MainUITabPickedHolder
MainUITabPicked.CanvasSize = UDim2.new(0, 0, 0, 0)
MainUITabPicked.Active = true
MainUITabPicked.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MainUITabPicked.BackgroundTransparency = 1.000
MainUITabPicked.Size = UDim2.new(0, 426, 0, 369)
MainUITabPicked.ScrollBarThickness = 2
MainUITabPicked.Visible = false
UIListLayout_2.Parent = MainUITabPicked
UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout_2.Padding = UDim.new(0, 8)
UIPadding_2.Parent = MainUITabPicked
UIPadding_2.PaddingLeft = UDim.new(0, 8)
UIPadding_2.PaddingTop = UDim.new(0, 8)
if activeTab == nil then
MainUITabPicked.Visible = true
activeTabFrame = MainUITabPicked
tweenObject(TabSelected, {
BackgroundColor3 = Color3.fromRGB(17, 17, 30)
}, 0.5)
tweenObject(TabSelected, {
TextColor3 = Color3.fromRGB(84, 116, 224)
}, 0.5)
activeTab = TabSelected
tweenObject(TabBottomFrame, {
BackgroundTransparency = 0
}, 0.5)
tweenObject(TabTOpFrame, {
BackgroundTransparency = 0
}, 0.5)
end
TabSelected.MouseButton1Click:Connect(function()
tweenObject(activeTab.TabBottomFrame, {
BackgroundTransparency = 1
}, 0.5)
tweenObject(activeTab.TabTOpFrame, {
BackgroundTransparency = 1
}, 0.5)
tweenObject(activeTab, {
BackgroundColor3 = Color3.fromRGB(24, 24, 24)
}, 0.5)
tweenObject(activeTab, {
TextColor3 = Color3.fromRGB(66, 66, 66)
}, 0.5)
activeTabFrame.Visible = false
activeTab = TabSelected
activeTabFrame = MainUITabPicked
MainUITabPicked.Visible = true
tweenObject(TabSelected, {
BackgroundColor3 = Color3.fromRGB(17, 17, 30)
}, 0.5)
tweenObject(TabSelected, {
TextColor3 = Color3.fromRGB(84, 116, 224)
}, 0.5)
tweenObject(TabBottomFrame, {
BackgroundTransparency = 0
}, 0.5)
tweenObject(TabTOpFrame, {
BackgroundTransparency = 0
}, 0.5)
end)
local tab = {}
local tabSize = 39
local function ResizeTab()
MainUITabPicked.CanvasSize = UDim2.new(0, 0, 0, tabSize)
end
function tab:Section(name)
local SectionBack = Instance.new("ImageLabel")
local SectionTitleBack = Instance.new("Frame")
local SectionTitle = Instance.new("TextLabel")
local SectionFrame = Instance.new("Frame")
local UIListLayout_3 = Instance.new("UIListLayout")
local UIPadding_3 = Instance.new("UIPadding")
local UIListLayout_4 = Instance.new("UIListLayout")
SectionBack.Name = "Section Back"
SectionBack.Parent = MainUITabPicked
SectionBack.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SectionBack.BackgroundTransparency = 1.000
SectionBack.Position = UDim2.new(0.018779343, 0, -0.978319764, 0)
SectionBack.Size = UDim2.new(0, 403, 0, 31)
SectionBack.Image = "rbxassetid://3570695787"
SectionBack.ImageColor3 = Color3.fromRGB(15, 15, 15)
SectionBack.ScaleType = Enum.ScaleType.Slice
SectionBack.SliceCenter = Rect.new(100, 100, 100, 100)
SectionBack.SliceScale = 0.050
UIListLayout_4.Parent = SectionBack
UIListLayout_4.SortOrder = Enum.SortOrder.LayoutOrder
SectionTitleBack.Name = "SectionTitleBack"
SectionTitleBack.Parent = SectionBack
SectionTitleBack.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
SectionTitleBack.BorderSizePixel = 0
SectionTitleBack.Size = UDim2.new(0, 403, 0, 31)
SectionTitle.Name = "SectionTitle"
SectionTitle.Parent = SectionTitleBack
SectionTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SectionTitle.BackgroundTransparency = 1.000
SectionTitle.Position = UDim2.new(0.0148883378, 0, 0, 0)
SectionTitle.Size = UDim2.new(0, 397, 0, 31)
SectionTitle.Font = Enum.Font.GothamSemibold
SectionTitle.Text = name
SectionTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
SectionTitle.TextSize = 14.000
SectionTitle.TextXAlignment = Enum.TextXAlignment.Left
SectionFrame.Name = "SectionFrame"
SectionFrame.Parent = SectionBack
SectionFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SectionFrame.BackgroundTransparency = 1.000
SectionFrame.BorderSizePixel = 0
SectionFrame.Position = UDim2.new(0, 0, 0.0775000006, 0)
SectionFrame.Size = UDim2.new(0, 403, 0, 0)
UIListLayout_3.Parent = SectionFrame
UIListLayout_3.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout_3.Padding = UDim.new(0, 8)
UIPadding_3.Parent = SectionFrame
UIPadding_3.PaddingLeft = UDim.new(0, 8)
UIPadding_3.PaddingTop = UDim.new(0, 8)
--tabSize = tabSize +
tabSize = tabSize + 41
ResizeTab()
local sectionSize = 39
local function ResizeSection()
SectionBack.Size = UDim2.new(0, 403, 0, sectionSize)
SectionFrame.Size = UDim2.new(0, 403, 0, sectionSize - 31)
end
local section = {}
function section:Label(name)
sectionSize = sectionSize + 39
tabSize = tabSize + 39
ResizeTab()
ResizeSection()
local LabelBack = Instance.new("Frame")
local LabelTitle = Instance.new("TextLabel")
LabelBack.Name = "LabelBack"
LabelBack.Parent = SectionFrame
LabelBack.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
LabelBack.BorderSizePixel = 0
LabelBack.Position = UDim2.new(0.018779343, 0, 0.233062327, 0)
LabelBack.Size = UDim2.new(0, 390, 0, 31)
LabelTitle.Name = "LabelTitle"
LabelTitle.Parent = LabelBack
LabelTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
LabelTitle.BackgroundTransparency = 1.000
LabelTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
LabelTitle.Size = UDim2.new(0, 400, 0, 31)
LabelTitle.Font = Enum.Font.GothamSemibold
LabelTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
LabelTitle.TextSize = 13.000
LabelTitle.Text = name
LabelTitle.TextXAlignment = Enum.TextXAlignment.Left
local label = {}
function label:Update(name)
LabelTitle.Text = name
end
return label
end
function section:Slider(name, options, callback)
sectionSize = sectionSize + 63
tabSize = tabSize + 63
ResizeTab()
ResizeSection()
local Sliderback = Instance.new("Frame")
local SliderTitle = Instance.new("TextLabel")
local SliderBarBack = Instance.new("ImageButton")
local Sliderhandle = Instance.new("ImageLabel")
local SliderValueBack = Instance.new("ImageLabel")
local SliderValue = Instance.new("TextBox")
local TextButton = Instance.new("TextButton")
local TextButton_2 = Instance.new("TextButton")
Sliderback.Name = "Sliderback"
Sliderback.Parent = SectionFrame
Sliderback.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
Sliderback.BorderSizePixel = 0
Sliderback.Position = UDim2.new(0.018779343, 0, 0.233062327, 0)
Sliderback.Size = UDim2.new(0, 390, 0, 55)
TextButton.Parent = Sliderback
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 1
TextButton.Position = UDim2.new(0.675, 0, 0.0181818306, 0)
TextButton.Size = UDim2.new(0, 35, 0, 35)
TextButton.Font = Enum.Font.Gotham
TextButton.Text = "-"
TextButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton.TextSize = 14.000
TextButton_2.Parent = Sliderback
TextButton_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton_2.BackgroundTransparency = 1
TextButton_2.Position = UDim2.new(0.92, 0, 9.31322575e-09, 0)
TextButton_2.Size = UDim2.new(0, 35, 0, 35)
TextButton_2.Font = Enum.Font.Gotham
TextButton_2.Text = "+"
TextButton_2.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton_2.TextSize = 14.000
SliderTitle.Name = "SliderTitle"
SliderTitle.Parent = Sliderback
SliderTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderTitle.BackgroundTransparency = 1.000
SliderTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
SliderTitle.Size = UDim2.new(0, 400, 0, 31)
SliderTitle.Font = Enum.Font.GothamSemibold
SliderTitle.Text = name
SliderTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
SliderTitle.TextSize = 13.000
SliderTitle.TextXAlignment = Enum.TextXAlignment.Left
SliderBarBack.Name = "SliderBarBack"
SliderBarBack.Parent = Sliderback
SliderBarBack.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderBarBack.BackgroundTransparency = 1.000
SliderBarBack.Position = UDim2.new(0.0147783253, 0, 0.76363641, 0)
SliderBarBack.Size = UDim2.new(0, 380, 0, 6)
SliderBarBack.Image = "rbxassetid://3570695787"
SliderBarBack.ImageColor3 = Color3.fromRGB(77, 77, 77)
SliderBarBack.ScaleType = Enum.ScaleType.Slice
SliderBarBack.SliceCenter = Rect.new(100, 100, 100, 100)
SliderBarBack.SliceScale = 0.050
Sliderhandle.Name = "Sliderhandle"
Sliderhandle.Parent = SliderBarBack
Sliderhandle.BackgroundColor3 = Color3.fromRGB(84, 116, 224)
Sliderhandle.BackgroundTransparency = 1.000
Sliderhandle.Size = UDim2.new(0, 0, 0, 6)
Sliderhandle.Image = "rbxassetid://3570695787"
Sliderhandle.ImageColor3 = Color3.fromRGB(84, 116, 224)
Sliderhandle.ScaleType = Enum.ScaleType.Slice
Sliderhandle.SliceCenter = Rect.new(100, 100, 100, 100)
Sliderhandle.SliceScale = 0.050
SliderValueBack.Name = "SliderValueBack"
SliderValueBack.Parent = Sliderback
SliderValueBack.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderValueBack.BackgroundTransparency = 1.000
SliderValueBack.Position = UDim2.new(0.78, 0, 0.109090909, 0)
SliderValueBack.Size = UDim2.new(0, 50, 0, 25)
SliderValueBack.Image = "rbxassetid://3570695787"
SliderValueBack.ImageColor3 = Color3.fromRGB(14, 14, 14)
SliderValueBack.ScaleType = Enum.ScaleType.Slice
SliderValueBack.SliceCenter = Rect.new(100, 100, 100, 100)
SliderValueBack.SliceScale = 0.050
SliderValue.Name = "SliderValue"
SliderValue.Parent = SliderValueBack
SliderValue.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderValue.BackgroundTransparency = 1.000
SliderValue.Size = UDim2.new(0, 50, 0, 25)
SliderValue.Font = Enum.Font.GothamSemibold
SliderValue.Text = options.default or options.min < 0 and options.max > 0 and "0" or tostring(options.min)
SliderValue.TextColor3 = Color3.fromRGB(233, 233, 233)
SliderValue.TextSize = 13.000
if options.default then
value = clamp(options.default, options.min, options.max)
local percent = 1 - ((options.max - value) / (options.max - options.min))
tweenObject(Sliderhandle, {
Size = UDim2.new(0, percent * 380, 0, 6)
}, 0.1)
manual = true
SliderValue.Text = tostring(value)
manual = false
end
local value = options.default or options.min;
local connections = {}
local manual = false
TextButton.MouseButton1Click:Connect(function()
value = clamp(value - 1, options.min, options.max)
local percent = 1 - ((options.max - value) / (options.max - options.min))
tweenObject(Sliderhandle, {
Size = UDim2.new(0, percent * 380, 0, 6)
}, 0.1)
manual = true
SliderValue.Text = tostring(value)
manual = false
if callback then
callback(value)
end
end)
TextButton_2.MouseButton1Click:Connect(function()
value = clamp(value + 1, options.min, options.max)
local percent = 1 - ((options.max - value) / (options.max - options.min))
tweenObject(Sliderhandle, {
Size = UDim2.new(0, percent * 380, 0, 6)
}, 0.1)
manual = true
SliderValue.Text = tostring(value)
manual = false
if callback then
callback(value)
end
end)
SliderValue:GetPropertyChangedSignal("Text"):Connect(function()
if not manual then
if tonumber(SliderValue.Text) ~= nil then
value = clamp(tonumber(SliderValue.Text), options.min, options.max)
local percent = 1 - ((options.max - value) / (options.max - options.min))
tweenObject(Sliderhandle, {
Size = UDim2.new(0, percent * 380, 0, 6)
}, 0.1)
local con
con = SliderValue.FocusLost:Connect(function()
con:Disconnect()
if callback then
callback(value)
end
end)
end
end
end)
SliderBarBack.MouseButton1Down:Connect(function()
value = floor((((tonumber(options.max) - tonumber(options.min)) / 380) * Sliderhandle.AbsoluteSize.X) + tonumber(options.min) + 0.5) or 0
SliderValue.Text = value
tweenObject(Sliderhandle, {
Size = UDim2.new(0, clamp(Mouse.X - Sliderhandle.AbsolutePosition.X, 0, 380), 0, 6)
}, 0.1)
tweenObject(Sliderhandle, {
ImageColor3 = Color3.fromRGB(255, 255, 255)
}, 0.2)
if callback then
callback(value)
end
connections.MoveConnection = Mouse.Move:Connect(function()
value = floor((((tonumber(options.max) - tonumber(options.min)) / 380) * Sliderhandle.AbsoluteSize.X) + tonumber(options.min) + 0.5) or 0
SliderValue.Text = value
tweenObject(Sliderhandle, {
Size = UDim2.new(0, clamp(Mouse.X - Sliderhandle.AbsolutePosition.X, 0, 380), 0, 6)
}, 0.1)
tweenObject(Sliderhandle, {
ImageColor3 = Color3.fromRGB(255, 255, 255)
}, 0.2)
if callback then
callback(value)
end
end)
connections.ReleaseConnection = UserInputService.InputEnded:Connect(function(mouse)
if mouse.UserInputType == Enum.UserInputType.MouseButton1 then
value = floor((((tonumber(options.max) - tonumber(options.min)) / 380) * Sliderhandle.AbsoluteSize.X) + tonumber(options.min) + 0.5) or 0
SliderValue.Text = value
tweenObject(Sliderhandle, {
Size = UDim2.new(0, clamp(Mouse.X - Sliderhandle.AbsolutePosition.X, 0, 380), 0, 6)
}, 0.1)
tweenObject(Sliderhandle, {
ImageColor3 = Color3.fromRGB(84, 116, 224)
}, 0.2)
connections.MoveConnection:Disconnect()
connections.ReleaseConnection:Disconnect()
if callback then
callback(value)
end
end
end)
end)
local slider = {}
function slider:Update(val)
value = clamp(val, options.min, options.max)
local percent = 1 - ((options.max - value) / (options.max - options.min))
tweenObject(Sliderhandle, {
Size = UDim2.new(0, percent * 380, 0, 6)
}, 0.1)
if callback then
callback(value)
end
end
return slider
end
function section:Box(name, callback)
sectionSize = sectionSize + 39
tabSize = tabSize + 39
ResizeTab()
ResizeSection()
local TextBoxMain = Instance.new("Frame")
local TextBoxTitle = Instance.new("TextLabel")
local TextBox = Instance.new("TextBox")
local TextBox_Roundify_5px = Instance.new("ImageLabel")
TextBoxMain.Name = "TextBoxMain"
TextBoxMain.Parent = SectionFrame
TextBoxMain.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
TextBoxMain.BorderColor3 = Color3.fromRGB(27, 42, 53)
TextBoxMain.BorderSizePixel = 0
TextBoxMain.Position = UDim2.new(0.018779343, 0, 0.615176141, 0)
TextBoxMain.Size = UDim2.new(0, 390, 0, 31)
TextBoxTitle.Name = "TextBoxTitle"
TextBoxTitle.Parent = TextBoxMain
TextBoxTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextBoxTitle.BackgroundTransparency = 1.000
TextBoxTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
TextBoxTitle.Size = UDim2.new(0, 400, 0, 31)
TextBoxTitle.Font = Enum.Font.GothamSemibold
TextBoxTitle.Text = name
TextBoxTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
TextBoxTitle.TextSize = 13.000
TextBoxTitle.TextXAlignment = Enum.TextXAlignment.Left
TextBox.Parent = TextBoxMain
TextBox.BackgroundColor3 = Color3.fromRGB(13, 13, 13)
TextBox.BackgroundTransparency = 1.000
TextBox.BorderSizePixel = 0
TextBox.Position = UDim2.new(0.270329684, 0, 0.193548381, 0)
TextBox.Size = UDim2.new(0, 284, 0, 18)
TextBox.ZIndex = 2
TextBox.Font = Enum.Font.GothamSemibold
TextBox.PlaceholderColor3 = Color3.fromRGB(66, 66, 66)
TextBox.PlaceholderText = name
TextBox.Text = ""
TextBox.TextColor3 = Color3.fromRGB(233, 233, 233)
TextBox.TextSize = 13.000
TextBox_Roundify_5px.Name = "TextBox_Roundify_5px"
TextBox_Roundify_5px.Parent = TextBox
TextBox_Roundify_5px.Active = true
TextBox_Roundify_5px.AnchorPoint = Vector2.new(0.5, 0.5)
TextBox_Roundify_5px.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextBox_Roundify_5px.BackgroundTransparency = 1.000
TextBox_Roundify_5px.Position = UDim2.new(0.5, 0, 0.5, 0)
TextBox_Roundify_5px.Selectable = true
TextBox_Roundify_5px.Size = UDim2.new(1, 0, 1, 0)
TextBox_Roundify_5px.Image = "rbxassetid://3570695787"
TextBox_Roundify_5px.ImageColor3 = Color3.fromRGB(13, 13, 13)
TextBox_Roundify_5px.ScaleType = Enum.ScaleType.Slice
TextBox_Roundify_5px.SliceCenter = Rect.new(100, 100, 100, 100)
TextBox_Roundify_5px.SliceScale = 0.040
local LastSize = -1
TextBox:GetPropertyChangedSignal("Text"):connect(function()
local Size = TextService:GetTextSize(TextBox.Text, TextBox.TextSize + 1, TextBox.Font, TextBoxMain.AbsoluteSize)
local Length = string.len(TextBox.Text)
if Size.X > 284 then
LastSize = Length
TextBox.TextScaled = true
elseif Size.X <= 284 and Length < LastSize then
TextBox.TextScaled = false
TextBox.TextSize = 13
end
end)
TextBox.FocusLost:Connect(function()
if callback then
callback(TextBox.Text)
end
end)
local box = {}
function box:Update(val)
TextBox.Text = val
if callback then
callback(val)
end
end
return box
end
function section:Picker(name, options, callback)
sectionSize = sectionSize + 70
tabSize = tabSize + 70
ResizeTab()
ResizeSection()
local PickerBack = Instance.new("Frame")
local PickerTitle = Instance.new("TextLabel")
local OptionsHolder = Instance.new("ImageLabel")
local UIListLayout = Instance.new("UIListLayout")
PickerBack.Name = "PickerBack"
PickerBack.Parent = SectionFrame
PickerBack.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
PickerBack.BorderSizePixel = 0
PickerBack.Position = UDim2.new(0.018779343, 0, 0.420054197, 0)
PickerBack.Size = UDim2.new(0, 390, 0, 62)
PickerTitle.Name = "PickerTitle"
PickerTitle.Parent = PickerBack
PickerTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PickerTitle.BackgroundTransparency = 1.000
PickerTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
PickerTitle.Size = UDim2.new(0, 400, 0, 31)
PickerTitle.Font = Enum.Font.GothamSemibold
PickerTitle.Text = name
PickerTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
PickerTitle.TextSize = 13.000
PickerTitle.TextXAlignment = Enum.TextXAlignment.Left
OptionsHolder.Name = "OptionsHolder"
OptionsHolder.Parent = PickerBack
OptionsHolder.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
OptionsHolder.BackgroundTransparency = 1.000
OptionsHolder.Position = UDim2.new(0.0147783328, 0, 0.5, 0)
OptionsHolder.Size = UDim2.new(0, 384, 0, 24)
OptionsHolder.Image = "rbxassetid://3570695787"
OptionsHolder.ImageColor3 = Color3.fromRGB(14, 14, 14)
OptionsHolder.ScaleType = Enum.ScaleType.Slice
OptionsHolder.SliceCenter = Rect.new(100, 100, 100, 100)
OptionsHolder.SliceScale = 0.050
UIListLayout.Parent = OptionsHolder
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
local activeButton = nil
for i, v in next, options do
local OptionDeselected = Instance.new("TextButton")
OptionDeselected.Name = "OptionDeselected"
OptionDeselected.Parent = OptionsHolder
OptionDeselected.BackgroundColor3 = Color3.fromRGB(14, 14, 14)
OptionDeselected.BorderSizePixel = 0
OptionDeselected.Size = UDim2.new(0, 77, 0, 24)
OptionDeselected.AutoButtonColor = false
OptionDeselected.Font = Enum.Font.GothamSemibold
OptionDeselected.Text = v
OptionDeselected.TextColor3 = Color3.fromRGB(66, 66, 66)
OptionDeselected.TextSize = 13.000
if activeButton == nil then
activeButton = OptionDeselected
OptionDeselected.TextColor3 = Color3.fromRGB(84, 116, 224)
if callback then
callback(v)
end
end
OptionDeselected.MouseButton1Click:Connect(function()
if activeButton == OptionDeselected then
return
end
if activeButton then
tweenObject(activeButton, {
TextColor3 = Color3.fromRGB(66, 66, 66)
}, 0.2)
end
tweenObject(OptionDeselected, {
TextColor3 = Color3.fromRGB(84, 116, 224)
}, 0.2)
activeButton = OptionDeselected
if callback then
callback(v)
end
end)
end
local picker = {}
function picker:Update(value)
for i, v in next, OptionsHolder:GetChildren() do
if v.Text == value then
if activeButton == v then
return
end
if activeButton then
tweenObject(activeButton, {
TextColor3 = Color3.fromRGB(66, 66, 66)
}, 0.2)
end
tweenObject(v, {
TextColor3 = Color3.fromRGB(84, 116, 224)
}, 0.2)
activeButton = v
if callback then
callback(v.Text)
end
return
end
end
end
return picker
end
function section:Toggle(name, callback)
sectionSize = sectionSize + 39
tabSize = tabSize + 39
ResizeTab()
ResizeSection()
local ToggleBackButton = Instance.new("TextButton")
local ToggleTitle = Instance.new("TextLabel")
local ToggleIndicator = Instance.new("ImageLabel")
ToggleBackButton.Name = "ToggleBackButton"
ToggleBackButton.Parent = SectionFrame
ToggleBackButton.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
ToggleBackButton.BorderSizePixel = 0
ToggleBackButton.Size = UDim2.new(0, 390, 0, 31)
ToggleBackButton.AutoButtonColor = false
ToggleBackButton.Font = Enum.Font.SourceSans
ToggleBackButton.Text = ""
ToggleBackButton.TextColor3 = Color3.fromRGB(0, 0, 0)
ToggleBackButton.TextSize = 14.000
ToggleTitle.Name = "ToggleTitle"
ToggleTitle.Parent = ToggleBackButton
ToggleTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ToggleTitle.BackgroundTransparency = 1.000
ToggleTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
ToggleTitle.Size = UDim2.new(0, 400, 0, 31)
ToggleTitle.Font = Enum.Font.GothamSemibold
ToggleTitle.Text = name
ToggleTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
ToggleTitle.TextSize = 13.000
ToggleTitle.TextXAlignment = Enum.TextXAlignment.Left
ToggleIndicator.Name = "ToggleIndicator"
ToggleIndicator.Parent = ToggleBackButton
ToggleIndicator.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ToggleIndicator.BackgroundTransparency = 1.000
ToggleIndicator.Position = UDim2.new(0.933396459, 0, 0.161290318, 0)
ToggleIndicator.Size = UDim2.new(0, 20, 0, 20)
ToggleIndicator.Image = "rbxassetid://3570695787"
ToggleIndicator.ImageColor3 = Color3.fromRGB(0, 0, 0)
ToggleIndicator.ScaleType = Enum.ScaleType.Slice
ToggleIndicator.SliceCenter = Rect.new(100, 100, 100, 100)
ToggleIndicator.SliceScale = 0.050
ToggleBackButton.MouseButton1Click:Connect(function()--better color pls
if ToggleIndicator.ImageColor3 == Color3.fromRGB(84, 116, 224) then
tweenObject(ToggleIndicator, {
ImageColor3 = Color3.fromRGB(0, 0, 0)
}, 0.1)
if callback then
callback(false)
end
elseif ToggleIndicator.ImageColor3 == Color3.fromRGB(0, 0, 0) then
tweenObject(ToggleIndicator, {
ImageColor3 = Color3.fromRGB(84, 116, 224)
}, 0.1)
if callback then
callback(true)
end
end
end)
local toggle = {}
function toggle:Update(bool)
if ToggleIndicator.ImageColor3 == Color3.fromRGB(84, 116, 224) and bool == false then
tweenObject(ToggleIndicator, {
ImageColor3 = Color3.fromRGB(0, 0, 0)
}, 0.1)
if callback then
callback(false)
end
elseif ToggleIndicator.ImageColor3 == Color3.fromRGB(0, 0, 0) and bool == true then
tweenObject(ToggleIndicator, {
ImageColor3 = Color3.fromRGB(84, 116, 224)
}, 0.1)
if callback then
callback(true)
end
end
end
return toggle
end
function section:Button(name, callback)
sectionSize = sectionSize + 39
tabSize = tabSize + 39
ResizeTab()
ResizeSection()
local Button = Instance.new("TextButton")
local ButtonTitle = Instance.new("TextLabel")
local ButtonCool = Instance.new("ImageLabel")
Button.Name = "Button"
Button.Parent = SectionFrame
Button.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
Button.BorderSizePixel = 0
Button.ClipsDescendants = true
Button.Position = UDim2.new(0.018779343, 0, 0.0216802172, 0)
Button.Size = UDim2.new(0, 390, 0, 31)
Button.AutoButtonColor = false
Button.Font = Enum.Font.SourceSans
Button.Text = ""
Button.TextColor3 = Color3.fromRGB(0, 0, 0)
Button.TextSize = 14.000
ButtonTitle.Name = "ButtonTitle"
ButtonTitle.Parent = Button
ButtonTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ButtonTitle.BackgroundTransparency = 1.000
ButtonTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
ButtonTitle.Size = UDim2.new(0, 400, 0, 31)
ButtonTitle.Font = Enum.Font.GothamBold
ButtonTitle.Text = name
ButtonTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
ButtonTitle.TextSize = 13.000
ButtonTitle.TextXAlignment = Enum.TextXAlignment.Center
ButtonCool.Name = "ButtonCool"
ButtonCool.Parent = ButtonTitle
ButtonCool.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ButtonCool.BackgroundTransparency = 1.000
ButtonCool.Position = UDim2.new(0.899178982, 0, 0.225806445, 0)
ButtonCool.Size = UDim2.new(0, 17, 0, 17)
ButtonCool.Image = "rbxgameasset://Images/w"
Button.MouseEnter:Connect(function()
tweenObject(Button, {
BackgroundColor3 = Color3.fromRGB(64, 64, 64)
}, 0.3)
end)
Button.MouseLeave:Connect(function()
tweenObject(Button, {
BackgroundColor3 = Color3.fromRGB(24, 24, 24)
}, 0.3)
end)
Button.MouseButton1Click:Connect(function()
coroutine.resume(coroutine.create(function()
local Circle = Instance.new("ImageLabel")
Circle.Name = "Circle"
Circle.Parent = Button
Circle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Circle.BackgroundTransparency = 1
Circle.ZIndex = 10
Circle.Image = "rbxassetid://266543268"
Circle.ImageColor3 = Color3.fromRGB(255, 255, 255)
Circle.ImageTransparency = 0.900
Button.ClipsDescendants = true
Circle.Position = UDim2.new(0, Mouse.X - Circle.AbsolutePosition.X, 0, Mouse.Y - Circle.AbsolutePosition.Y)
Circle:TweenSizeAndPosition(UDim2.new(0, Button.AbsoluteSize.X * 1.5, 0, Button.AbsoluteSize.X * 1.5), UDim2.new(0.5, -Button.AbsoluteSize.X * 1.5 / 2, 0.5, -Button.AbsoluteSize.X * 1.5 / 2), "Out", "Quad", 0.75, false, nil)
tweenObject(Circle, {
ImageTransparency = 1
}, 0.75)
wait(0.75)
Circle:Destroy()
end))
if callback then
callback()
end
end)
end
function section:Keybind(name, options, callback)
sectionSize = sectionSize + 39
tabSize = tabSize + 39
ResizeTab()
ResizeSection()
local KeybindButton = Instance.new("TextButton")
local KeybindTitle = Instance.new("TextLabel")
local KeybindValueback = Instance.new("ImageLabel")
local KeybindValue = Instance.new("TextLabel")
KeybindButton.Name = "KeybindButton"
KeybindButton.Parent = SectionFrame
KeybindButton.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
KeybindButton.BorderSizePixel = 0
KeybindButton.ClipsDescendants = true
KeybindButton.Size = UDim2.new(0, 390, 0, 31)
KeybindButton.AutoButtonColor = false
KeybindButton.Font = Enum.Font.SourceSans
KeybindButton.Text = ""
KeybindButton.TextColor3 = Color3.fromRGB(0, 0, 0)
KeybindButton.TextSize = 14.000
KeybindTitle.Name = "KeybindTitle"
KeybindTitle.Parent = KeybindButton
KeybindTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
KeybindTitle.BackgroundTransparency = 1.000
KeybindTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
KeybindTitle.Size = UDim2.new(0, 400, 0, 31)
KeybindTitle.Font = Enum.Font.GothamSemibold
KeybindTitle.Text = "Keybind"
KeybindTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
KeybindTitle.TextSize = 13.000
KeybindTitle.TextXAlignment = Enum.TextXAlignment.Left
KeybindValueback.Name = "KeybindValueback"
KeybindValueback.Parent = KeybindButton
KeybindValueback.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
KeybindValueback.BackgroundTransparency = 1.000
KeybindValueback.Position = UDim2.new(0.862068951, 0, 0.109090909, 0)
KeybindValueback.Size = UDim2.new(0, 50, 0, 25)
KeybindValueback.Image = "rbxassetid://3570695787"
KeybindValueback.ImageColor3 = Color3.fromRGB(14, 14, 14)
KeybindValueback.ScaleType = Enum.ScaleType.Slice
KeybindValueback.SliceCenter = Rect.new(100, 100, 100, 100)
KeybindValueback.SliceScale = 0.050
KeybindValue.Name = "KeybindValue"
KeybindValue.Parent = KeybindValueback
KeybindValue.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
KeybindValue.BackgroundTransparency = 1.000
KeybindValue.Size = UDim2.new(0, 50, 0, 25)
KeybindValue.Font = Enum.Font.GothamSemibold
KeybindValue.Text = ". . ."
KeybindValue.TextColor3 = Color3.fromRGB(233, 233, 233)
KeybindValue.TextSize = 13.000
local pressConnection
KeybindButton.MouseButton1Click:Connect(function()
if pressConnection then
pressConnection:Disconnect()
end
KeybindValue.Text = ". . ."
pressConnection = UserInputService.InputBegan:Connect(function(input)
pressConnection:Disconnect()
KeybindValue.Text = string.split(tostring(input.KeyCode), ".")[3]
if callback then
callback(input.KeyCode)
end
end)
end)
end
function section:SearchBox(name, options, callback)
sectionSize = sectionSize + 39
tabSize = tabSize + 39
ResizeTab()
ResizeSection()
local TextBoxMain = Instance.new("Frame")
local TextBoxTitle = Instance.new("TextLabel")
local TextBox = Instance.new("TextBox")
--local TextBox_Roundify_5px = Instance.new("ImageLabel")
TextBoxMain.Name = "TextBoxMain"
TextBoxMain.Parent = SectionFrame
TextBoxMain.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
TextBoxMain.BorderColor3 = Color3.fromRGB(27, 42, 53)
TextBoxMain.BorderSizePixel = 0
TextBoxMain.Position = UDim2.new(0.018779343, 0, 0.615176141, 0)
TextBoxMain.Size = UDim2.new(0, 390, 0, 31)
TextBoxTitle.Name = "TextBoxTitle"
TextBoxTitle.Parent = TextBoxMain
TextBoxTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextBoxTitle.BackgroundTransparency = 1.000
TextBoxTitle.Position = UDim2.new(0.0147783253, 0, 0, 0)
TextBoxTitle.Size = UDim2.new(0, 400, 0, 31)
TextBoxTitle.Font = Enum.Font.GothamSemibold
TextBoxTitle.Text = name
TextBoxTitle.TextColor3 = Color3.fromRGB(233, 233, 233)
TextBoxTitle.TextSize = 13.000
TextBoxTitle.TextXAlignment = Enum.TextXAlignment.Left
TextBox.Parent = TextBoxMain
TextBox.BackgroundColor3 = Color3.fromRGB(13, 13, 13)
TextBox.BackgroundTransparency = 0
TextBox.BorderSizePixel = 0
TextBox.Position = UDim2.new(0.270329684, 0, 0.193548381, 0)
TextBox.Size = UDim2.new(0, 284, 0, 18)
TextBox.ZIndex = 2
TextBox.Font = Enum.Font.GothamSemibold
TextBox.PlaceholderColor3 = Color3.fromRGB(66, 66, 66)
TextBox.PlaceholderText = name
TextBox.Text = ""
TextBox.TextColor3 = Color3.fromRGB(233, 233, 233)
TextBox.TextSize = 13.000
local SearchBoxBack = Instance.new("ImageLabel")
local ScrollingFrame = Instance.new("ScrollingFrame")
local UIListLayout = Instance.new("UIListLayout")
local Title = Instance.new("TextLabel")
local Frame = Instance.new("Frame")
SearchBoxBack.Name = "SearchBoxBack"
SearchBoxBack.Parent = MainUITabPickedHolder
SearchBoxBack.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SearchBoxBack.BackgroundTransparency = 1.000
SearchBoxBack.Position = UDim2.new(0, 0, 0, 0)
SearchBoxBack.Size = UDim2.new(0, 210, 0, 36)
SearchBoxBack.Image = "rbxassetid://3570695787"
SearchBoxBack.ImageColor3 = Color3.fromRGB(22, 22, 22)
SearchBoxBack.ImageTransparency = 1
SearchBoxBack.ScaleType = Enum.ScaleType.Slice
SearchBoxBack.SliceCenter = Rect.new(100, 100, 100, 100)
SearchBoxBack.SliceScale = 0.050
SearchBoxBack.Visible = false
SearchBoxBack.ZIndex = -4
ScrollingFrame.Parent = SearchBoxBack
ScrollingFrame.Active = true
ScrollingFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ScrollingFrame.BackgroundTransparency = 1.000
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.Position = UDim2.new(0, 0, 0, 31)
ScrollingFrame.Size = UDim2.new(0, 210, 1, -32)
ScrollingFrame.BottomImage = ""
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame.ScrollBarThickness = 2
ScrollingFrame.TopImage = ""
ScrollingFrame.ZIndex = -4
UIListLayout.Parent = ScrollingFrame
UIListLayout.SortOrder = Enum.SortOrder.Name
Title.Name = "Title"
Title.Parent = SearchBoxBack
Title.BackgroundColor3 = Color3.fromRGB(22, 22, 22)
Title.BackgroundTransparency = 0
Title.Size = UDim2.new(0, 210, 0, 31)
Title.Font = Enum.Font.GothamSemibold
Title.Text = name
Title.BorderSizePixel = 0
Title.TextColor3 = Color3.fromRGB(233, 233, 233)
Title.TextSize = 13.000
Title.ZIndex = -4
Frame.Parent = SearchBoxBack
Frame.BackgroundColor3 = Color3.fromRGB(84, 116, 224)
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0, 0, 0, 31)
Frame.Size = UDim2.new(0, 210, 0, 1)
Frame.ZIndex = -4
local buttons = {}
local isDone = false
local function updateVisibles()
local si = 33
for i, v in next, buttons do
if v.Visible == true then
si = si + 30
end
end
if si >= 183 then
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, si - 33)
SearchBoxBack.Size = UDim2.new(0, 210, 0, 183)
else
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
SearchBoxBack.Size = UDim2.new(0, 210, 0, si)
end
end
local function searchboxon()
if isDone == false then
if SearchBoxBack.Position == UDim2.new(0, 0, 0, 0) then
SearchBoxBack.Visible = true
tweenObject(SearchBoxBack, {
Position = UDim2.new(1.05, 0, 0, 0)
}, 0.4)
end
if #buttons == 0 then
for i, v in next, options do
local TextButton = Instance.new("TextButton")
TextButton.Parent = ScrollingFrame
TextButton.BackgroundColor3 = Color3.fromRGB(22, 22, 22)
TextButton.BorderSizePixel = 0
TextButton.AutoButtonColor = false
TextButton.Position = UDim2.new(-0.0153846154, 0, 0, 0)
TextButton.Size = UDim2.new(0, 215, 0, 30)
TextButton.Font = Enum.Font.GothamSemibold
TextButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton.TextSize = 14.000
TextButton.Text = v
TextButton.ZIndex = -4
TextButton.Visible = false
table.insert(buttons, TextButton)
TextButton.MouseEnter:Connect(function()
tweenObject(TextButton, {
BackgroundColor3 = Color3.fromRGB(77, 77, 77)
}, 0.2)
end)
TextButton.MouseLeave:Connect(function()
tweenObject(TextButton, {
BackgroundColor3 = Color3.fromRGB(22, 22, 22)
}, 0.2)
end)
TextButton.MouseButton1Click:Connect(function()
isDone = true
TextBox.Text = v
if callback then
callback(v)
end
local tw = tweenObject(SearchBoxBack, {
Position = UDim2.new(0, 0, 0, 0)
}, 0.4)
tw.Completed:wait()
SearchBoxBack.Visible = false
for i, v in next, buttons do
v:Destroy()
buttons[i] = nil
end
isDone = false
end)
end
end
updateVisibles()
for i, v in pairs(buttons) do
if string.sub(string.lower(v.Text), 1, string.len(TextBox.Text)) == string.lower(TextBox.Text) then
if v.Visible == false then
spawn(function()
v.Visible = true
updateVisibles()
tweenObject(v, {
TextTransparency = 0
}, 0.2)
tweenObject(v, {
BackgroundTransparency = 0
}, 0.2)
end)
end
else
if v.Visible == true then
spawn(function()
local tw = tweenObject(v, {
TextTransparency = 1
}, 0.2)
tweenObject(v, {
BackgroundTransparency = 0
}, 0.2)
tw.Completed:wait(0.1)
v.Visible = false
updateVisibles()
end)
end
end
end
end
end
TextBox.Focused:Connect(searchboxon)
TextBox.FocusLost:Connect(function()
wait(0.5)
isDone = true
local tw = tweenObject(SearchBoxBack, {
Position = UDim2.new(0, 0, 0, 0)
}, 0.4)
tw.Completed:wait()
SearchBoxBack.Visible = false
for i, v in next, buttons do
v:Destroy()
buttons[i] = nil
end
isDone = false
end)
TextBox:GetPropertyChangedSignal("Text"):Connect(searchboxon)
local searchbox = {}
function searchbox:Update(val)
if table.find(options, val) then
TextBox.Text = val
end
end
return searchbox
end
return section
end
return tab
end
return window
end
local function DisableConnection(signal)
for i, v in next, getconnections(signal) do
v:Disable()
end
end
local function FireConnection(signal)
for i, v in next, getconnections(signal) do
v:Fire()
end
end
DisableConnection(player.Idled)
DisableConnection(game:GetService("ScriptContext").Error)
local DataManager = ReplicatedStorage.Modules.DataManager
local Hashes = {}
local Remotes = {}
for i, v in next, getupvalues(rawget(require(DataManager), "FireServer")) do
if type(v) == "function" then
for k, x in next, getupvalues(v) do
if type(x) == "table" then
for a, b in next, x do
if typeof(b) == "Instance" then
Hashes = x
break
end
end
end
end
end
end
local remoteAdded
for i,v in next, getreg() do
if type(v) == "function" and islclosure(v) and getinfo(v).name == "remoteAdded" then
remoteAdded = v
end
end
for i, v in next, getupvalues(remoteAdded) do
if type(v) == "function" then
for k, x in next, getupvalues(v) do
if type(x) == "table" then
for a, b in next, x do
local remote = Hashes[a]
if remote then
Remotes[b:sub(1, 2) == "F_" and b:sub(3) or b] = remote
end
end
end
end
end
end
local function Call(remote, args)
remote = Remotes[remote]
if remote:IsA("RemoteEvent") then
return remote:FireServer(args)
elseif remote:IsA("RemoteFunction") then
return remote:InvokeServer(args)
end
end
local function GetItemPosition(Position, GroundCFrame)
return GroundCFrame:PointToObjectSpace(Position)
end
local function GetLoadPosition(Position, GroundCFrame)
return GroundCFrame:PointToWorldSpace(Position)
end
local function GetItemCFrame(CFrame, GroundCFrame)
return GroundCFrame:ToObjectSpace(CFrame)
end
local function GetLoadCFrame(CFrame, GroundCFrame)
return GroundCFrame:ToWorldSpace(CFrame)
end
local function PositionToArray(Position)
return {
[1] = Position.X,
[2] = Position.Y,
[3] = Position.Z
}
end
local function ArrayToPosition(Array)
return Vector3.new(Array[1], Array[2], Array[3])
end
local function CFrameToArray(CFrame)
local Array = {}
for i, v in next, {CFrame:components()} do
Array[i] = v
end
return Array
end
local function ArrayToCFrame(Array)
return CFrame.new(unpack(Array))
end
local ModulesFolder, ScriptsFolder = ReplicatedStorage.Modules, player.PlayerGui.MainGUI.Scripts
local Modules = {
ObjectManager = require(ModulesFolder.ObjectManager);
MaterialData = require(ModulesFolder.Data.MaterialData);
WallHandler = require(ModulesFolder.WallHandler);
ElevatorHandler = require(ModulesFolder.ElevatorHandler);
FenceHandler = require(ModulesFolder.FenceHandler);
ItemData = require(ModulesFolder.ItemManager.ItemData);
ItemManager = require(ModulesFolder.ItemManager);
RoofHandler = require(ModulesFolder.RoofHandler);
PlacementHandler = require(ScriptsFolder.BuildInterface.PlacementHandler);
Polygon = require(ModulesFolder.Utilities.Polygon);
Hotbar = require(ScriptsFolder.Hotbar);
GUIHandler = require(ScriptsFolder.GUIHandler);
JobData = require(ModulesFolder.Data.JobData);
TranslationHandler = require(ScriptsFolder.TranslationHandler);
FoodHandler = require(ModulesFolder.FoodHandler);
VehicleData = require(ModulesFolder.VehicleHandler.VehicleData);
}
local JobManager = ScriptsFolder.JobManager
local JobModules = {
["Hairdresser"] = require(JobManager.StylezHairdresser);
["Delivery Person"] = require(JobManager.PizzaPlanetDelivery);
["Burger Cashier"] = require(JobManager.BloxyBurgersCashier);
["Pizza Baker"] = require(JobManager.PizzaPlanetBaker);
["Fisherman"] = require(JobManager.HutFisherman);
["Miner"] = require(JobManager.CaveMiner);
["Woodcutter"] = require(JobManager.LumberWoodcutter);
["Market Cashier"] = require(JobManager.SupermarketCashier);
["Janitor"] = require(JobManager.CleanJanitor);
["Stocker"] = require(JobManager.SupermarketStocker);
["Ice Cream Seller"] = require(JobManager.BensIceCreamSeller);
["Mechanic"] = require(JobManager.MikesMechanic);
}
local JobActions = {
EndShift = function(Job)
JobModules[Job]:EndShift()
end;
IsWorking = function()
return require(JobManager):IsWorking()
end;
StartShift = function(Job)
if not require(JobManager):IsWorking() then
JobModules[Job]:StartShift()
end
end;
}
local function Pathfind(pos)
local path = PathfindingService:CreatePath()
path:ComputeAsync(player.Character.HumanoidRootPart.Position, pos)
if #path:GetWaypoints() == 0 then
player.Character.Humanoid:MoveTo(pos)
repeat
wait()
until (player.Character.HumanoidRootPart.Position - pos).magnitude <= 5
player.Character.Humanoid:MoveTo(player.Character.HumanoidRootPart.Position)
else
for i, v in next, path:GetWaypoints() do
player.Character.Humanoid:MoveTo(v.Position)
if v.Action == Enum.PathWaypointAction.Jump then
player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
player.Character.Humanoid.MoveToFinished:wait()
end
end
end
local function GetRelativeComponents(vec)
if player.Character.PrimaryPart then
local newCF = CFrame.new(player.Character.PrimaryPart.Position, vec)
local x, y, z, r00, r01, r02, r10, r11, r12, r20, r21, r22 = newCF:components()
return {
r00,
r01,
r02,
r10,
r11,
r12,
r20,
r21,
r22
}
end
end
local currentPlayerTween = nil
local function CoolTween(target, speed)
if player.Character:FindFirstChild("HumanoidRootPart") then
local dist = (player.Character.HumanoidRootPart.Position - target.p).magnitude
currentPlayerTween = game:GetService("TweenService"):Create(player.Character.HumanoidRootPart, TweenInfo.new(dist / speed, Enum.EasingStyle.Linear), {
CFrame = target
})
currentPlayerTween:Play()
currentPlayerTween.Completed:wait()
currentPlayerTween = nil
end
end
local Materials = Modules.MaterialData.Materials
local MSGID = BrickColor.new("Medium stone grey").Number
local PlasticID = Materials.Plastic.ID
local function Detail(obj, objType, data, side)
local args
if obj then
if objType == "Wall" then
args = {
Object = obj,
UseMaterials = true,
Data = {
{},
{},
{},
{}
},
Side = side
}
if data["Color"] == MSGID and data["Material"] == PlasticID then
return
end
args["Data"][1] = {
data["Color"],
data["Material"]
}
elseif objType == "Object" then
args = {
Object = obj,
UseMaterials = true,
}
args["Data"] = data
for i = 1, 4 do
if args["Data"][i] == nil then
args["Data"][i] = {}
end
end
end
Call("ColorObject", args)
end
end
local function ParseColorGroup(gr, asd)
local newT = {}
if type(gr) == "table" then
for i, v in next, gr do
if v[1] and v[2] then
newT[i] = {}
if v[1] ~= nil and v[2] ~= nil then
newT[i][1] = v[1]
newT[i][2] = v[2]
end
end
end
elseif asd then
newT[1] = {}
if gr == nil then
gr = MSGID
end
newT[1][1] = gr
newT[1][2] = asd
end
return newT
end
local function IsOf(Name, Type)
if Modules.ItemData[Type][Name] then
return true
else
return false
end
end
local function GetColorGroups(obj)
if obj.Name == "Wall" then
local leftColor = nil
local rightColor = nil
local leftMat = nil
local rightMat = nil
for i, v in next, obj:GetChildren() do
if v.Name == "LPart" then
if v.BrickColor.Number ~= MSGID then
leftColor = v.BrickColor.Number
end
if v:FindFirstChild("MaterialID") then
leftMat = v.MaterialID.Value
if leftMat == PlasticID then
leftMat = nil
end
else
leftMat = Materials[v.Material.Name].ID
if leftMat == PlasticID then
leftMat = nil
end
end
elseif v.Name == "RPart" then
if v.BrickColor.Number ~= MSGID then
rightColor = v.BrickColor.Number
end
if v:FindFirstChild("MaterialID") then
rightMat = v.MaterialID.Value
if rightMat == PlasticID then
rightMat = nil
end
else
rightMat = Materials[v.Material.Name].ID
if rightMat == PlasticID then
rightMat = nil
end
end
end
end
return leftColor, leftMat, rightColor, rightMat
else
local Data = Modules.ObjectManager:GetAppearanceData(obj)
for i, v in next, Data do
if #Data[i] == 0 then
Data[i] = nil
else
if Data[i][1] == MSGID and Data[i][2] == PlasticID then
Data[i][1] = nil
Data[i][2] = nil
Data[i] = nil
end
end
end
return Data
end
end;
local SaveSettings = {
Target = nil;
TargetName = nil;
}
local function SavePlot(Plot)
local Ground = Plot.Ground
local House = Plot.House
local Data = {}
local External = {}
local GlobalId = 0
local WallHandler = Modules.WallHandler
local function RecursiveScan(Object, Id)
if External[tostring(Id)] == nil then
External[tostring(Id)] = {}
end
if Object:FindFirstChild("ItemHolder") then
for i, v in next, Object.ItemHolder:GetChildren() do
local Item = {}
Item.Name = v.Name
if v:IsA("Model") then
Item.CFrame = CFrameToArray(GetItemCFrame(v.PrimaryPart.CFrame, Ground.CFrame))
else
Item.CFrame = CFrameToArray(GetItemCFrame(v.CFrame, Ground.CFrame))
end
Item.Color = GetColorGroups(v)
if v:FindFirstChild("SideValue") then
if IsOf(v.Name, "Curtains") then
Item.Side = v.SideValue.Value == 1
else
Item.Side = (v.SideValue.Value == 1) ~= true;
end
end
if v:FindFirstChild("ObjectData") then
if v.ObjectData:FindFirstChild("Image") then
Item.Image = v.ObjectData.Image.Value
end
if v.ObjectData:FindFirstChild("Height") then
Item.Height = v.ObjectData.Height.Value
end
end
if v:FindFirstChild("RailingSegment") then
Item.Segment = v.RailingSegment.Value.Name
Item.Pos = PositionToArray(GetItemPosition(Object.Position, Ground.CFrame))
end
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
table.insert(External[tostring(Id)], Item)
end
else
local Item = {}
Item.Name = v.Name
if Object:IsA("Model") then
Item.CFrame = CFrameToArray(GetItemCFrame(Object.PrimaryPart.CFrame, Ground.CFrame))
else
Item.CFrame = CFrameToArray(GetItemCFrame(Object.CFrame, Ground.CFrame))
end
Item.Color = GetColorGroups(Object)
if Object:FindFirstChild("SideValue") then
if IsOf(Object.Name, "Curtains") then
Item.Side = Object.SideValue.Value == 1
else
Item.Side = (Object.SideValue.Value == 1) ~= true;
end
end
if Object:FindFirstChild("ObjectData") then
if Object.ObjectData:FindFirstChild("Image") then
Item.Image = Object.ObjectData.Image.Value
end
if Object.ObjectData:FindFirstChild("Height") then
Item.Height = Object.ObjectData.Height.Value
end
end
if Object:FindFirstChild("RailingSegment") then
Item.Segment = Object.RailingSegment.Value.Name
Item.Pos = PositionToArray(GetItemPosition(Model.Position, Ground.CFrame))
end
if Object:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(Object, GlobalId)
end
table.insert(External[tostring(Id)], Item)
end
end
for _, BuildType in next, House:GetChildren() do
for i, v in next, BuildType:GetChildren() do
local Item = {}
if v.Name ~= "Poles" then
Item.Type = BuildType.Name
if BuildType.Name == "Walls" then
local To, From = WallHandler:GetWallEdges(v)
if From ~= nil and To ~= nil then
local NewFrom, NewTo = GetItemPosition(From, Ground.CFrame), GetItemPosition(To, Ground.CFrame)
local LC, LM, RC, RM = GetColorGroups(v)
Item.From = PositionToArray(NewFrom);
Item.To = PositionToArray(NewTo);
Item.LC = LC
Item.LM = LM
Item.RC = RC
Item.RM = RM
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
end
elseif BuildType.Name == "Roof" or BuildType.Name == "Floor" then
Item.Name = v.Name
Item.Points = {}
Item.Color = GetColorGroups(v)
for i, v in next, v.PointData:GetChildren() do
table.insert(Item.Points, PositionToArray(v.Value))
end
if v:FindFirstChild("PropertyData") then
if v.PropertyData:FindFirstChild("Height") then
Item.Height = v.PropertyData.Height.Value
end
else
Item.Name = nil
end
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
elseif BuildType.Name == "Pools" then
Item.Name = v.Name
Item.Center = CFrameToArray(GetItemCFrame(v.HitBox.CFrame, Ground.CFrame))
Item.X = v.HitBox.Size.X
Item.Y = v.HitBox.Size.Z
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
elseif BuildType.Name == "Paths" then
local From, To = v.BPole.Value.Parent.Position, v.FPole.Value.Parent.Position
if From ~= nil and To ~= nil then
local NewFrom, NewTo = GetItemPosition(From, Ground.CFrame), GetItemPosition(To, Ground.CFrame)
Item.From = PositionToArray(NewFrom);
Item.To = PositionToArray(NewTo);
Item.Color = v.SizeBox.BrickColor.Number
Item.Material = (v:FindFirstChild("MaterialID") and v:FindFirstChild("MaterialID").Value) or nil
if Item.Material == PlasticID then
Item.Material = nil
end
if Item.Color == MSGID then
Item.Color = nil
end
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
end
elseif BuildType.Name == "Objects" or BuildType.Name == "Counters" then
Item.Name = v.Name
Item.CFrame = CFrameToArray(GetItemCFrame(v.CFrame, Ground.CFrame))
Item.Color = GetColorGroups(v)
if v:FindFirstChild("ObjectData") then
if v.ObjectData:FindFirstChild("Image") then
Item.Image = v.ObjectData.Image.Value
end
if v.ObjectData:FindFirstChild("Height") then
Item.Height = v.ObjectData.Height.Value
end
end
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
elseif BuildType.Name == "Fences" then
local From, To = Modules.FenceHandler:GetEdges(v)
local NewFrom, NewTo = GetItemPosition(From.p, Ground.CFrame), GetItemPosition(To.p, Ground.CFrame)
Item.Name = v.Name
Item.From = PositionToArray(NewFrom)
Item.To = PositionToArray(NewTo)
Item.Color = GetColorGroups(v)
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
elseif BuildType.Name == "Basements" then
Item.Name = v.Name
Item.Center = CFrameToArray(GetItemCFrame(v.HitBox.CFrame + Vector3.new(0, 12, 0), Ground.CFrame))
Item.X = v.HitBox.Size.X
Item.Y = v.HitBox.Size.Z
if v:FindFirstChild("ItemHolder") then
GlobalId = GlobalId + 1
Item.Id = GlobalId
RecursiveScan(v, GlobalId)
end
end
table.insert(Data, Item)
end
end
end
local TargetName = SaveSettings.TargetName
local Houses = ReplicatedStorage.Stats[TargetName].Houses
local CurrentHouse = Houses:GetChildren()[Houses.Value]
local Value = {
TotalValue = CurrentHouse.TotalValue.Value,
BlockbuxValue = CurrentHouse.BSValue.Value
}
return {
Data = Data,
External = External,
Value = Value
}
end
local BuildSettings = {
FastBuild = false;
SlowBuild = false;
Time = 0;
UseBux = false;
UseCar = false;
MaxBux = 0;
MaxCost = 200000;
}
local function LoadPlot(Data)
local Stats = ReplicatedStorage.Stats[player.Name]
local Plot = Stats.IsBuilding.Value
local PlotOwner = Plot.Name:gsub("Plot_", "")
if Plot == nil then
return "not in build mode"
end
local Ground = Plot.Ground
local Input = Http:JSONDecode(Data)
if Input.Value.TotalValue > Stats.Money.Value then
local resp = Modules.GUIHandler:ConfirmBox("You do not have enough money to complete this build ("..tostring(Stats.Money.Value).."/"..tostring(Input.Value.TotalValue).."). Continue?", "Insufficient Funds")
if resp == false then return end
end
if BuildSettings.UseBux and Input.Value.BlockbuxValue > Stats.Blockbux.Value then
local resp = Modules.GUIHandler:ConfirmBox("You do not have enough blockbux to complete this build ("..tostring(Stats.Blockbux.Value).."/"..tostring(Input.Value.BlockbuxValue).."). Continue?", "Insufficient Funds")
if resp == false then return end
end
local function Has(plr, item)
ReplicatedStorage.Stats[plr].Inventory:FindFirstChild(item)
end
local function CostsBux(Item)
for i, v in next, Modules.ItemData do
if v[Item] then
local BSPrice = v[Item].BSPrice
return BSPrice and true, BSPrice or false
end
end
end
local function GetPrice(Item)
for i, v in next, Modules.ItemData do
if v[Item] then
return v[Item].Price
end
end
end
local Hidden = {}
local IsLocked, IsHidden = Modules.ItemManager.IsLocked, Modules.ItemManager.IsHidden
for i, v in next, Modules.ItemData do
for k, x in next, v do
if IsLocked(nil, x, player) or IsHidden(nil, x, player) then
Hidden[k] = k
end
end
end
local hasStop = false
local Amount = 0
local function Build(Type, Args)
Amount = Amount + 1
local name = Args.Name or Args.ItemType
local costs, price = CostsBux(name)
local ItemPrice = GetPrice(name)
if Hidden[name] then
return
end
if name then
if ItemPrice and ItemPrice > BuildSettings.MaxCost then
return
end
if IsOf(name, "Vehicles") then
if not BuildSettings.UseCar then
return
end
end
if costs then
if Has(PlotOwner, name) then
Args["Moved"] = "Inventory"
else
if BuildSettings.UseBux then
if price > BuildSettings.MaxBux then
return
end
else
return
end
end
end
end
if Amount % 4 == 0 then
wait(3)
end
local call = Call("Place" .. Type, Args)
if call == nil and hasStop == false then
hasStop = true
end
return call
end
local function FixOrientation(orientation)
return orientation + Ground.Orientation.Y
end
local function cframeRotation(CF)
local lv = CF.lookVector
local rot = -atan2(lv.z, lv.x) - pi * 0.5
return rot < 0 and 2 * pi + rot or rot
end
--Init
for i in next, Input.Data do
if Input.Data[i].From then
Input.Data[i].From = GetLoadPosition(ArrayToPosition(Input.Data[i].From), Ground.CFrame)
end
if Input.Data[i].To then
Input.Data[i].To = GetLoadPosition(ArrayToPosition(Input.Data[i].To), Ground.CFrame)
end
if Input.Data[i].Position then
Input.Data[i].Position = GetLoadPosition(ArrayToPosition(Input.Data[i].Position), Ground.CFrame)
end
if Input.Data[i].CFrame then
Input.Data[i].CFrame = GetLoadCFrame(ArrayToCFrame(Input.Data[i].CFrame), Ground.CFrame)
Input.Data[i].Position = Input.Data[i].CFrame.p
Input.Data[i].Rotation = cframeRotation(Input.Data[i].CFrame)
Input.Data[i].CFrame = nil
end
if Input.Data[i].Center then
Input.Data[i].Center = ArrayToCFrame(Input.Data[i].Center)
end
if Input.Data[i].Points then
for k, v in next, Input.Data[i].Points do
Input.Data[i].Points[k] = GetLoadPosition(ArrayToPosition(Input.Data[i].Points[k]), Ground.CFrame)
end
end
end
for i in next, Input.External do
for i2 in next, Input.External[i] do
if Input.External[i][i2].From then
Input.External[i][i2].From = GetLoadPosition(ArrayToPosition(Input.External[i][i2].From), Ground.CFrame)
end
if Input.External[i][i2].To then
Input.External[i][i2].To = GetLoadPosition(ArrayToPosition(Input.External[i][i2].To), Ground.CFrame)
end
if Input.External[i][i2].CFrame then
Input.External[i][i2].CFrame = GetLoadCFrame(ArrayToCFrame(Input.External[i][i2].CFrame), Ground.CFrame)
Input.External[i][i2].Position = Input.External[i][i2].CFrame.p
Input.External[i][i2].Rotation = cframeRotation(Input.External[i][i2].CFrame)
Input.External[i][i2].CFrame = nil
end
if Input.External[i][i2].Rotation then
Input.External[i][i2].Rotation = rad(FixOrientation(Input.External[i][i2].Rotation))
end
end
end
local Heartbeat = game.RunService.Heartbeat
local function MakeObjects(Target, Id)
for i, v in next, Input.External[tostring(Id)] do
local Args = {
Name = v.Name;
Side = v.Side;
TargetModel = Target;
Rot = v.Rotation;
Pos = v.Position;
}
if v.Height then
Args.TypeData = {
Height = v.Height
}
end
local Object = nil
if v.Segment then
Args = {
ItemType = v.Name;
From = v.Position;
Segment = Target.ObjectModel.Railings[v.Segment]
}
Object = Build("Fence", Args)
else
Object = Build("Object", Args)
end
if Object then
if v.Color then
Detail(Object, "Object", ParseColorGroup(v.Color))
end
if v.Image then
Call("SetPicture", {
Object = Object,
ID = v.Image
})
end
if v.Id then
MakeObjects(Object, v.Id)
end
end
end
end
local ScreenGui = Instance.new("ScreenGui")
local All = Instance.new("Frame")
local Progress = Instance.new("Frame")
local Label = Instance.new("TextLabel")
ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
All.Name = "All"
All.Parent = ScreenGui
All.BackgroundColor3 = Color3.fromRGB(28, 218, 255)
All.BorderSizePixel = 0
All.Position = UDim2.new(0.249786139, 0, 0.88429755, 0)
All.Size = UDim2.new(0.5, 0, 0.0500000007, 0)
Progress.Name = "Progress"
Progress.Parent = All
Progress.BackgroundColor3 = Color3.fromRGB(137, 208, 255)
Progress.BorderSizePixel = 0
Progress.Size = UDim2.new(0, 0, 1, 0)
Label.Name = "Label"
Label.Parent = All
Label.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Label.BackgroundTransparency = 1.000
Label.Position = UDim2.new(0.400342166, 0, 0, 0)
Label.Size = UDim2.new(0.197177067, 0, 1, 0)
Label.Font = Enum.Font.Gotham
Label.Text = "0% (0/0)"
Label.TextColor3 = Color3.fromRGB(0, 0, 0)
Label.TextSize = 14.000
local TotalCount = #Input.Data
for i, v in next, Input.Data do
local function BuildItem()
local C = i/TotalCount
local Percent = floor(C * 100)
Label.Text = string.format("%s (%d / %d)", Percent.."%", i, TotalCount)
Progress.Size = UDim2.new(C, 0, 1, 0)
if v.Type == "Walls" then
local Item = Build("Wall", {
From = v.From;
To = v.To;
})
if Item ~= nil then
Detail(Item, "Wall", {
Color = v.RC or MSGID;
Material = v.RM or PlasticID
}, "R")
Detail(Item, "Wall", {
Color = v.LC or MSGID;
Material = v.LM or PlasticID
}, "L")
if v.Id then
MakeObjects(Item, v.Id)
end
end
elseif v.Type == "Floor" then
local Args = {
Points = v.Points
}
local Item = Build("Floor", Args)
if Item ~= nil then
if v.Color then
Detail(Item, "Object", ParseColorGroup(v.Color))
end
if v.Id then
MakeObjects(Item, v.Id)
end
end
elseif v.Type == "Roof" then
local Item = Build("Roof", {
Settings = {
Height = v.Height;
Type = v.Name;
IsPreview = true;
RotateNum = 0;
};
Points = v.Points;
Start = v.Points[#v.Points];
})
if Item ~= nil then
if v.Color then
Detail(Item, "Object", ParseColorGroup(v.Color))
end
if v.Id then
MakeObjects(Item, v.Id)
end
end
elseif v.Type == "Pools" then
local Item = Build("Pool", {
ItemType = v.Name;
Center = v.Center;
Size = Vector2.new(v.X, v.Y)
})
if Item ~= nil then
if v.Color then
Detail(Item, "Object", ParseColorGroup(v.Color))
end
if v.Id then
MakeObjects(Item, v.Id)
end
end
elseif v.Type == "Paths" then
local Item = Build("Path", {
From = v.From;
To = v.To
})
if Item ~= nil then
if v.Color then
Detail(Item, "Object", ParseColorGroup(v.Color, v.Material))
end
if v.Id then
MakeObjects(Item, v.Id)
end
end
elseif v.Type == "Objects" or v.Type == "Counters" then
local Args = {
Name = v.Name;
Side = v.Side;
TargetModel = Ground;
Rot = v.Rotation;
Pos = v.Position;
}
if v.Height then
Args.TypeData = {
Height = v.Height
}
end
local Object = nil
if v.Segment then
Args = {
ItemType = v.Name;
From = v.Position;
Segment = Target.ObjectModel.Railings[v.Segment]
}
Object = Build("Fence", Args)
else
Object = Build("Object", Args)
end
local Type = v.Segment and "Fence" or "Object"
if Object then
if v.Color then
Detail(Object, "Object", ParseColorGroup(v.Color))
end
if v.Image then
Call("SetPicture", {
Object = Object,
ID = v.Image
})
end
if v.Id then
MakeObjects(Object, v.Id)
end
end
elseif v.Type == "Fences" then
local Item = Build("Fence", {
From = v.From;
To = v.To;
ItemType = v.Name;
})
if Item ~= nil then
if v.Color then
Detail(Item, "Object", ParseColorGroup(v.Color))
end
if v.Id then
MakeObjects(Item, v.Id)
end
end
elseif v.Type == "Basements" then
local Item = Build("Basement", {
Center = v.Center;
Size = Vector2.new(v.X, v.Y);
})
if Item ~= nil then
if v.Color then
Detail(Item, "Object", ParseColorGroup(v.Color))
end
if v.Id then
MakeObjects(Item, v.Id)
end
end
end
end
BuildItem()
if BuildSettings.Time > 0 then
wait(BuildSettings.Time)
end
end
ScreenGui:Destroy()
end
local Objects = {}
for i, v in next, ReplicatedStorage.ItemModels:GetChildren() do
for i2, v2 in next, v:GetChildren() do
Objects[v2.Name] = v2
end
end
for i, v in next, ReplicatedStorage.ItemModels:GetChildren() do
for i2, v2 in next, v:GetChildren() do
Objects[v2.Name] = v2
end
end
local function LoadPreview(Data)
local Data = game:HttpGet("https://bloxburg.sexy/builds/fromId.php?Id=" .. Data)
local success = pcall(function()
Http:JSONDecode(Data)
end)
if success then
local Plot = ReplicatedStorage.Stats[player.Name].IsBuilding.Value
local Ground = Plot.Ground
local function FixOrientation(orientation)
return orientation + Ground.Orientation.Y
end
local rad = math.rad
local Input = Http:JSONDecode(Data)
for i in next, Input.Data do
if Input.Data[i].From then
Input.Data[i].From = GetLoadPosition(ArrayToPosition(Input.Data[i].From), Ground.CFrame)
end
if Input.Data[i].To then
Input.Data[i].To = GetLoadPosition(ArrayToPosition(Input.Data[i].To), Ground.CFrame)
end
if Input.Data[i].Position then
Input.Data[i].Position = GetLoadPosition(ArrayToPosition(Input.Data[i].Position), Ground.CFrame)
end
if Input.Data[i].CFrame then
Input.Data[i].CFrame = GetLoadCFrame(ArrayToCFrame(Input.Data[i].CFrame), Ground.CFrame)
end
if Input.Data[i].Rotation then
Input.Data[i].Rotation = rad(FixOrientation(Input.Data[i].Rotation))
end
if Input.Data[i].Center then
Input.Data[i].Center = ArrayToCFrame(Input.Data[i].Center)
end
if Input.Data[i].Points then
for k, v in next, Input.Data[i].Points do
Input.Data[i].Points[k] = GetLoadPosition(ArrayToPosition(Input.Data[i].Points[k]), Ground.CFrame)
end
end
end
for i in next, Input.External do
for i2 in next, Input.External[i] do
if Input.External[i][i2].From then
Input.External[i][i2].From = GetLoadPosition(ArrayToPosition(Input.External[i][i2].From), Ground.CFrame)
end
if Input.External[i][i2].To then
Input.External[i][i2].To = GetLoadPosition(ArrayToPosition(Input.External[i][i2].To), Ground.CFrame)
end
if Input.External[i][i2].Position then
Input.External[i][i2].Position = GetLoadPosition(ArrayToPosition(Input.External[i][i2].Position), Ground.CFrame)
end
if Input.External[i][i2].Rotation then
Input.External[i][i2].Rotation = rad(FixOrientation(Input.External[i][i2].Rotation))
end
if Input.External[i][i2].CFrame then
Input.External[i][i2].CFrame = GetLoadCFrame(ArrayToCFrame(Input.External[i][i2].CFrame), Ground.CFrame)
end
end
end
local Preview = workspace:FindFirstChild("BuildPreviewer")
if Preview == nil then
Preview = Instance.new("Model", workspace)
Preview.Name = "BuildPreviewer"
else
Preview:ClearAllChildren()
end
local function NewGhost(properties)
local Item = Instance.new("Part", Preview)
Item.Anchored = true
Item.CanCollide = false
Item.Transparency = 0.5
Item.Material = "Plastic"
for i, v in next, properties do
Item[i] = v
end
return Item
end
local function PreviewExternal(Object, Id)
for i, v in next, Input.External[tostring(Id)] do
local Clone = Objects[v.Name]:Clone()
Clone.Parent = Object
for i, v in next, Clone:GetDescendants() do
if v:IsA("BasePart") then
v.CanCollide = false
if v.Transparency < 1 then
v.Transparency = 0.5
end
end
end
if v.CFrame ~= nil then
Clone:SetPrimaryPartCFrame(v.CFrame)
end
if v.Image then
if Clone:FindFirstChild("Canvas") then
Clone.Canvas.Decal.Texture = "rbxassetid://"..v.Image
Clone.Canvas.Decal.Transparency = 0.5
end
end
if v.Height then
local _, Size = Clone:GetBoundingBox()
local Y = Size.Y
for e = 1, v.Height - 1 do
local Clone2 = Clone:Clone()
Clone2.Position = Clone.Position + Vector3.new(0, Y * e, 0)
Clone2.Parent = Clone.Parent
end
end
if v.Color then
for _ = 1, 4 do
if Clone:FindFirstChild("ColorGroup" .. tostring(_)) and v.Color[_] ~= nil then
local ColorGroup = Clone:FindFirstChild("ColorGroup" .. tostring(_))
if ColorGroup:FindFirstChild("Object") then
local Target = ColorGroup.Object.Value
if Target:IsA("BasePart") then
Target.BrickColor = BrickColor.new(v.Color[_][1])
end
end
end
end
end
if v.Id then
PreviewExternal(Clone, v.Id)
end
end
end
for i, v in next, Input.Data do
--spawn(function()
if v.Type == "Walls" then
local distance = (v.From - v.To).magnitude
local WallModel = Instance.new("Model", Preview)
if v.RC or v.LC then
local Item = NewGhost({
CFrame = (CFrame.new(v.From, v.To) - Vector3.new(0.125, 0, 0)) * CFrame.new(0, 0, - distance / 2);
Size = Vector3.new(0.25, 12, distance);
TopSurface = "Smooth"
})
Item.Parent = WallModel
Item.Transparency = 0.5
local Item2 = NewGhost({
CFrame = (CFrame.new(v.From, v.To) + Vector3.new(0.125, 0, 0)) * CFrame.new(0, 0, - distance / 2);
Size = Vector3.new(0.25, 12, distance);
TopSurface = "Smooth"
})
Item2.Parent = WallModel
Item2.Transparency = 0.5
if v.RC then
Item.BrickColor = BrickColor.new(v.RC)
end
if v.LC then
Item2.BrickColor = BrickColor.new(v.LC)
end
else
local Item = NewGhost({
CFrame = CFrame.new(v.From, v.To) * CFrame.new(0, 0, - distance / 2);
Size = Vector3.new(0.5, 12, distance);
TopSurface = "Smooth"
})
Item.Parent = WallModel
end
if v.Id then
PreviewExternal(WallModel, v.Id)
end
elseif v.Type == "Roof" then
local Item = Modules.RoofHandler:CreateRoof(Plot, v.Points, {
Height = v.Height,
Type = v.Name,
IsPreview = false,
RotateNum = 0
})
for i2, v2 in next, Item.Model:GetDescendants() do
if v2 and v2:IsA("BasePart") then
v2.CanCollide = false
if v2.Transparency < 1 then
v2.Transparency = 0.5
end
if v.Color then
v2.BrickColor = BrickColor.new(v.Color[1][1])
end
end
end
Item.Model.Parent = Preview
if v.Id then
PreviewExternal(Item.Model, v.Id)
end
elseif v.Type == "Fences" then
local Success, Info = Modules.FenceHandler:CreateFence(Plot, v.Name, v.From, v.To)
if Success == true then
local Model = Info:GetModel()
Model.Parent = Preview
for i2, v2 in next, Model:GetDescendants() do
if v2 and v2:IsA("BasePart") then
v2.CanCollide = false
if v2.Transparency < 1 then
v2.Transparency = 0.5
end
end
end
end
if v.Id then
PreviewExternal(Clone, v.Id)
end
elseif v.Type == "Floor" then
local Outline = Modules.Polygon:fromPoints(v.Points)
local Item
if v.Color then
Item = Outline:Fill(function(a, b)
a.Transparency = 0.5;
a.Size = Vector3.new(0.25, a.Size.Y, a.Size.Z);
a.CFrame = a.CFrame;
a.Parent = b;
a.CanCollide = false
a.BrickColor = BrickColor.new(v.Color[1][1])
end, Preview)
Item.Parent = Preview
else
Item = Outline:Fill(function(a, b)
a.Transparency = 0.5;
a.Size = Vector3.new(0.25, a.Size.Y, a.Size.Z);
a.CFrame = a.CFrame;
a.Parent = b;
a.CanCollide = false
end, Preview)
Item.Parent = Preview
end
if v.Id then
PreviewExternal(Item, v.Id)
end
elseif v.Type == "Pools" then
local Item = NewGhost({
CFrame = GetLoadCFrame(v.Center, Ground.CFrame);
Size = Vector3.new(v.X, 1, v.Y);
Material = "Water";
BrickColor = BrickColor.new("Pastel Blue")
})
if v.Id then
PreviewExternal(Item, v.Id)
end
elseif v.Type == "Paths" then
local Corner1 = NewGhost({
Size = Vector3.new(0.05, 4.5, 4.5);
Shape = "Cylinder";
Position = v.From;
Rotation = Vector3.new(0, 0, 90);
})
local Corner2 = NewGhost({
Size = Vector3.new(0.05, 4.5, 4.5);
Shape = "Cylinder";
Position = v.To;
Rotation = Vector3.new(0, 0, 90);
})
local distance = (v.From - v.To).magnitude
local Item = NewGhost({
CFrame = CFrame.new(v.From, v.To) * CFrame.new(0, 0, - distance / 2);
Size = Vector3.new(4.5, 0.05, distance);
TopSurface = "Smooth"
})
if v.Color then
Corner1.BrickColor = BrickColor.new(v.Color)
Corner2.BrickColor = BrickColor.new(v.Color)
Item.BrickColor = BrickColor.new(v.Color)
end
if v.Id then
PreviewExternal(Item, v.Id)
end
elseif v.Type == "Basements" then
local Item = NewGhost({
CFrame = GetLoadCFrame(v.Center, Ground.CFrame);
Size = Vector3.new(v.X, 2, v.Y);
BrickColor = BrickColor.new("Black")
})
if v.Id then
PreviewExternal(Item, v.Id)
end
elseif v.Type == "Objects" then
local Clone = Objects[v.Name]:Clone()
Clone.Parent = Preview
for i, v in next, Clone:GetDescendants() do
if v:IsA("BasePart") then
v.CanCollide = false
if v.Transparency < 1 then
v.Transparency = 0.5
end
end
end
if v.CFrame ~= nil then
Clone:SetPrimaryPartCFrame(v.CFrame)
end
if v.Height then
Modules.ElevatorHandler:UpdateElevatorHeight(Clone, v.Height, true)
end
if v.Image then
if Clone:FindFirstChild("Canvas") then
Clone.Canvas.Decal.Texture = "rbxassetid://"..v.Image
Clone.Canvas.Decal.Transparency = 0.5
end
end
if v.Color then
for _ = 1, 4 do
if Clone:FindFirstChild("ColorGroup" .. tostring(_)) and v.Color[_] ~= nil then
local ColorGroup = Clone:FindFirstChild("ColorGroup" .. tostring(_))
if ColorGroup:FindFirstChild("Object") then
local Target = ColorGroup.Object.Value
if Target:IsA("BasePart") then
Target.BrickColor = BrickColor.new(v.Color[_][1])
end
end
end
end
end
if v.Id then
PreviewExternal(Clone, v.Id)
end
end
--end)
end
if player.PlayerGui.MainGUI:FindFirstChild("BuildMenu") and player.PlayerGui.MainGUI.BuildMenu:FindFirstChild("Build") then
FireConnection(player.PlayerGui.MainGUI.BuildMenu.Build.MouseButton1Click)
end
end
end
local function BulldozePlot(Plot)
for i, v in next, Plot.House:GetChildren() do
for k, x in next, v:GetChildren() do
if x.Name ~= "Poles" then
Call("BulldozePlot", {
Exclude = {}
})
end
end
end
end
local PlayerList, PlayerHouses = {}, {}
local function PlayerAdded(plr)
table.insert(PlayerList, plr.Name)
table.insert(PlayerHouses, plr.Name.."'s house")
end
local function PlayerRemoving(plr)
table.remove(PlayerList, table.find(PlayerList, plr.Name))
table.remove(PlayerHouses, table.find(PlayerHouses, plr.Name.."'s house"))
end
Players.PlayerAdded:Connect(PlayerAdded)
Players.PlayerRemoving:Connect(PlayerRemoving)
for i, v in next, Players:GetPlayers() do
PlayerAdded(v)
end
local Window = library:Window("Bloxburg", "Epic Thing")
local Tabs = {
AutoBuild = Window:Tab("Auto Build");
Autofarm = Window:Tab("Autofarm");
Misc = Window:Tab("Misc");
AutoMood = Window:Tab("Auto Mood");
Trolling = Window:Tab("Trolling");
Vehicle = Window:Tab("Vehicle");
PrivateServerFarm = Window:Tab("Code Farm");
StatViewer = Window:Tab("Stat Viewer");
ServerInvite = Window:Tab("Discord Server");
}
local Sections = {
AutoBuild = {
Save = Tabs.AutoBuild:Section("Save");
Build = Tabs.AutoBuild:Section("Build");
BuildSettings = Tabs.AutoBuild:Section("Settings");
};
Autofarm = {
Main = Tabs.Autofarm:Section("Main");
Settings = Tabs.Autofarm:Section("Settings");
Stats = Tabs.Autofarm:Section("Stats");
};
Misc = {
Random = Tabs.Misc:Section("Random");
AutoDrive = Tabs.Misc:Section("Auto Drive");
Sky = Tabs.Misc:Section("Sky");
FakeMessage = Tabs.Misc:Section("Fake Message");
FakePaycheck = Tabs.Misc:Section("Fake Paycheck");
Skills = Tabs.Misc:Section("Skills");
};
AutoMood = {
Automatic = Tabs.AutoMood:Section("Automatic");
Manual = Tabs.AutoMood:Section("Manual");
AutoCook = Tabs.AutoMood:Section("Auto Cook");
};
Trolling = {
Server = Tabs.Trolling:Section("Server");
};
Vehicle = {
Mods = Tabs.Vehicle:Section("Modifications (re-enter vehicle to apply)");
};
PrivateServerFarm = {
Main = Tabs.PrivateServerFarm:Section("Main");
Settings = Tabs.PrivateServerFarm:Section("Settings");
};
ServerInvite = {
Invite = Tabs.ServerInvite:Section("Invite");
};
StatViewer = {
Viewer = Tabs.StatViewer:Section("Stat Viewer")
}
}
if game:HttpGet("https://bloxburg.sexy/version.php") ~= tostring(ReplicatedStorage.Version.Value) then
Window:Notification("Error", {
Text = "Bloxburg has updated\nthe script may not work\nand/or be vulnurable";
ConfirmText = "Okay";
})
end
Sections.ServerInvite.Invite:Button("Copy Server Invite", function()
setclipboard(game:HttpGet("https://bloxburg.sexy/getinvite.php"))
end)
Sections.PrivateServerFarm.Main:Toggle("Enabled", function(value)
getgenv().PSEnabled = value
if value == true then
syn.queue_on_teleport([[
getgenv().PSEnabled = ]]..tostring(getgenv().PSEnabled)..[[
getgenv().PSOutput = ']]..tostring(getgenv().PSOutput)..[['
getgenv().PSFileName = ']]..tostring(getgenv().PSFileName)..[['
getgenv().PSWebhook = ']]..tostring(getgenv().PSWebhook)..[['
shared.whitelist_key = ']]..shared.whitelist_key..[[';
local content = game:HttpGet("https://sor.cool/whitelist/getfile.lua?ID=]]..getreg().ID..[[&type=script")
assert(loadstring(content))()
]])
TeleportService:Teleport(185655149)
end
end)
Sections.PrivateServerFarm.Main:Button("Scan Server For Codes", function()
local Output = getgenv().PSOutput
local Amount = 0
if Output == "File" and not isfile(PSFileName..".txt") then
writefile(PSFileName..".txt", "")
end
for i,v in next, ReplicatedStorage.Stats:GetChildren() do
if v.Name ~= player.Name then
local PrivateServer = v.PrivateServer
if PrivateServer.RenewTime.Value > os.time() and PrivateServer.JoinPermission.Value == 0 then
Amount = Amount + 1
if Output == "File" then
appendfile(PSFileName..".txt", v.Name.."\n")
elseif Output == "Webhook" then
upload_code(v.Name)
end
end
end
end
Window:Notification("Message", {
Text = "Success!\n"..tostring(Amount).." Codes Were Found";
ConfirmText = "Okay";
})
end)
local function GetVehicleSpawn()
local Objects = workspace.Plots["Plot_"..player.Name].House.Objects
for i,v in next, Objects:GetChildren() do
if v:FindFirstChild("ObjectData") and v:FindFirstChild("ObjectModel") then
if v.ObjectData:FindFirstChild("Spawned") and v.ObjectModel:FindFirstChild("Stand") then
if typeof(v.ObjectData.Spawned.Value) == "Instance" and v.ObjectData.Spawned.Value.Name:sub(1, 8) == "Vehicle_" then
return v
end
end
end
end
for i,v in next, Objects:GetChildren() do
if v:FindFirstChild("ObjectData") and v:FindFirstChild("ObjectModel") then
if v.ObjectData:FindFirstChild("Spawned") and v.ObjectModel:FindFirstChild("Stand") then
if v.ObjectModel:FindFirstChild("Vehicle") then
return v
end
end
end
end
end
Sections.PrivateServerFarm.Settings:Picker("Output Location", {"File", "Webhook"}, function(value)
getgenv().PSOutput = value
end)
Sections.PrivateServerFarm.Settings:Box("File Name", function(value)
getgenv().PSFileName = value
end)
Sections.PrivateServerFarm.Settings:Box("Webhook Url", function(value)
getgenv().PSWebhook = value
end)
Sections.Vehicle.Mods:Slider("Forward Speed", {min = 0, max = 100}, function(value)
for i,v in next, Modules.VehicleData do
v.ForwardSpeed = value
end
end)
Sections.Vehicle.Mods:Slider("Reverse Speed", {min = 0, max = 100}, function(value)
for i,v in next, Modules.VehicleData do
v.ReverseSpeed = value
end
end)
Sections.Vehicle.Mods:Slider("Turn Speed", {min = 0, max = 100}, function(value)
for i,v in next, Modules.VehicleData do
v.TurnSpeed = value
end
end)
Sections.Vehicle.Mods:Slider("Spring", {min = 0, max = 50}, function(value)
for i,v in next, Modules.VehicleData do
v.SpringLength = value
end
end)
Sections.Trolling.Server:Button("Crash Server", function()
local Vehicle = GetVehicleSpawn()
if Vehicle then
require(player.PlayerGui.MainGUI.Scripts.Hotbar):ToPlot()
repeat
wait()
until player.PlayerGui.MainGUI:FindFirstChild("LoadingFrame_ToPlot")
repeat
wait()
until not player.PlayerGui.MainGUI:FindFirstChild("LoadingFrame_ToPlot")
wait(3)
CoolTween(Vehicle.ObjectModel.Stand.CFrame, 25)
while RunService.RenderStepped:Wait() do
Remotes.Interact:FireServer({
Target = Vehicle,
Path = "3"
})
Remotes.Interact:FireServer({
Target = Vehicle,
Path = "1"
})
end
else
Window:Notification("Error", {
Text = "There Must Be a Vehicle Spawner On Your Plot";
ConfirmText = "Okay";
})
end
end)
Sections.Trolling.Server:Button("Destroy Car (driver seat only)", function()
for i, v in next, player.Character:GetChildren() do
if v.Name:sub(0, 8) == "Vehicle_" then
v.Chassi:Destroy()
end
end
end)
Sections.AutoBuild.Save:SearchBox("Target player", PlayerList, function(target)
local Plot = workspace.Plots:FindFirstChild("Plot_" .. target)
if Plot then
SaveSettings.TargetName = target
SaveSettings.Target = Plot
else
Window:Notification("Error", {
Text = "Target's Plot Does Not Exist";
ConfirmText = "Okay";
})
end
end)
Sections.AutoBuild.Save:Button("Save Build", function()
local Target = SaveSettings.Target
local TargetName = SaveSettings.TargetName
local BuildData = SavePlot(Target)
local PlotData = Http:JSONEncode(BuildData)
if Target then
if not Target:FindFirstChild("LODModel") then
if not isfolder("bloxburg") then
makefolder("bloxburg")
end
local Output = SaveSettings.Output
local name = TargetName .. ".bet"
--if Output == "Cloud" then
local response = syn.request({
Url = "https://bloxburg.sexy/builds/upload";
Method = "POST";
Headers = {
["Content-Type"] = "application/json"
};
Body = PlotData
})
local ValueVariables = BuildData.Value
if response.Body:find("status") and response.Body:find("output") then
local parsed_response = Http:JSONDecode(response.Body)
if parsed_response.status == "success" then
setclipboard(parsed_response.output)
Window:Notification("Message", {
Text = "Build ID Copied to clipboard\nTotal Value: " .. tostring(ValueVariables.TotalValue) .. "\nBlockbux Value: " .. tostring(ValueVariables.BlockbuxValue);
ConfirmText = "Okay";
})
else
writefile("bloxburg/".. name, PlotData)
Window:Notification("Error", {
Text = parsed_response.status .. "\nSaved build as file \n" .. name .. "\nTotal Value: " .. tostring(ValueVariables.TotalValue) .. "\nBlockbux Value: " .. tostring(ValueVariables.BlockbuxValue);
ConfirmText = "Okay";
})
end
else
writefile("bloxburg/".. name, PlotData)
Window:Notification("Error", {
Text = "Error occured\nSaved build as file \n" .. name .. "\nTotal Value: " .. tostring(ValueVariables.TotalValue) .. "\nBlockbux Value: " .. tostring(ValueVariables.BlockbuxValue);
ConfirmText = "Okay";
})
end
else
Window:Notification("Error", {
Text = "Target Plot is Not Rendered";
ConfirmText = "Okay";
})
end
else
Window:Notification("Error", {
Text = "Target Not Selected";
ConfirmText = "Okay";
})
end
end)
Sections.AutoBuild.Build:Box("Build ID", function(id)
BuildSettings.Id = id
end)
Sections.AutoBuild.Build:Button("Show Preview", function()
local id = BuildSettings.Id
if id then
LoadPreview(id)
else
Window:Notification("Error", {
Text = "Target Not Selected";
ConfirmText = "Okay";
})
end
end)
Sections.AutoBuild.Build:Button("Destroy Preview", function()
local Preview = workspace:FindFirstChild("BuildPreviewer")
if Preview and #Preview:GetChildren() > 0 then
Preview:ClearAllChildren()
else
Window:Notification("Error", {
Text = "Preview Doesn't Exist";
ConfirmText = "Okay";
})
end
end)
Sections.AutoBuild.Build:Button("Start Building", function()
local id = BuildSettings.Id
if id then
local Preview = workspace:FindFirstChild("BuildPreviewer")
if Preview then
Preview:ClearAllChildren()
end
LoadPlot(game:HttpGet("https://bloxburg.sexy/builds/fromId.php?Id=" .. id))
else
Window:Notification("Error", {
Text = "Target Not Selected";
ConfirmText = "Okay";
})
end
end)
Sections.AutoBuild.Build:Button("Bulldoze Current Plot", function()
BulldozePlot(ReplicatedStorage.Stats[player.Name].IsBuilding.Value)
end)
Sections.AutoBuild.BuildSettings:Slider("Extra Build Delay", {
min = 0,
max = 5000,
default = 0
}, function(value)
BuildSettings.Time = value
end)
Sections.AutoBuild.BuildSettings:Toggle("Use Vehicles", function(value)
BuildSettings.UseCar = value
end)
Sections.AutoBuild.BuildSettings:Toggle("Use Blockbux", function(value)
BuildSettings.UseBux = value
end)
Sections.AutoBuild.BuildSettings:Slider("Max Item Cost (Money)", {
min = 0,
max = 200000,
default = 200000
}, function(value)
BuildSettings.MaxCost = value
end)
Sections.AutoBuild.BuildSettings:Slider("Max Item Cost (Blockbux)", {
min = 0,
max = 10000,
default = 0
}, function(value)
BuildSettings.MaxBux = value
end)
local StatLabels = {
EarningsLabel = Sections.Autofarm.Stats:Label("");
TimeLabel = Sections.Autofarm.Stats:Label("");
}
local AutofarmSettings = {
ActiveJob = nil;
WorkEnabled = false;
}
local ColorsValue = {
"Dark stone grey";
"Dark orange";
"Deep orange";
"Lime green";
"Royal purple";
}
local mt = getrawmetatable(game)
local oldNamecall = mt.__namecall
setreadonly(mt, false)
mt.__namecall = newcclosure(function(self, ...)
local args = {
...
}
if checkcaller() and getnamecallmethod() == "FireServer" and args[1].Order and args[1].Workstation then
if args[1].Workstation.Parent.Name == "HairdresserWorkstations" and ActiveJob == "Hairdresser" then
args[1].Order = {
args[1].Workstation.Occupied.Value.Order.Style.Value,
args[1].Workstation.Occupied.Value.Order.Color.Value
}
return oldNamecall(self, unpack(args))
elseif args[1].Workstation.Parent.Name == "CashierWorkstations" and ActiveJob == "Cashier (Burger)" then
args[1].Order = {
args[1].Workstation.Occupied.Value.Order.Burger.Value,
args[1].Workstation.Occupied.Value.Order.Fries.Value,
args[1].Workstation.Occupied.Value.Order.Cola.Value
}
return oldNamecall(self, unpack(args))
elseif args[1].Workstation.Parent.Name == "BakerWorkstations" and ActiveJob == "Pizza Baker" then
args[1].Order = {
true,
true,
true,
args[1].Workstation.Order.Value
}
return oldNamecall(self, unpack(args))
end
end
return oldNamecall(self, ...)
end)
setreadonly(mt, true)
local function FindClosest(Item)
local closestBlock = nil
local closestDistance = huge
if Item == "Stone" then
repeat
wait()
until workspace.Environment.Locations:FindFirstChild("MinerCave")
local closestY = huge
for i, v in next, workspace.Environment.Locations.MinerCave.Folder:GetChildren() do
if player:DistanceFromCharacter(v.PrimaryPart.Position) < closestDistance and v.PrimaryPart.Position.Y < closestY then
if (not v:FindFirstChild("B")) or (v:FindFirstChild("B").BrickColor.Name ~= "Bright red") then
closestDistance = player:DistanceFromCharacter(v.PrimaryPart.Position)
closestBlock = v
closestY = v.PrimaryPart.Position.Y
end
end
end
elseif Item == "Valuable" then
repeat
wait()
until workspace.Environment.Locations:FindFirstChild("MinerCave")
local bestColor = "Dark stone grey"
for i, v in next, workspace.Environment.Locations.MinerCave.Folder:GetChildren() do
if v:FindFirstChild("M") then
if table.find(ColorsValue, bestColor) < table.find(ColorsValue, v:FindFirstChild("M").BrickColor.Name) then
closestBlock = v
bestColor = v:FindFirstChild("M").BrickColor.Name
elseif table.find(ColorsValue, bestColor) == table.find(ColorsValue, v:FindFirstChild("M").BrickColor.Name) then
if player:DistanceFromCharacter(v.PrimaryPart.Position) < closestDistance then
closestDistance = player:DistanceFromCharacter(v.PrimaryPart.Position)
closestBlock = v
end
end
end
end
if closestBlock == nil then
closestBlock = FindClosest("Stone")
end
elseif Item == "Trash" then
for i, v in next, workspace.Environment.Locations.GreenClean.Spawns:GetChildren() do
if player:DistanceFromCharacter(v.Position) < closestDistance and v:FindFirstChildWhichIsA("Decal", true) then
closestDistance = player:DistanceFromCharacter(v.Position)
closestBlock = v
end
end
if closestBlock == nil then
wait(0.5)
FindClosest("Trash")
end
elseif Item == "Tree" then
for i, v in next, workspace.Environment.Trees:GetChildren() do
if player:DistanceFromCharacter(v.PrimaryPart.Position) < closestDistance and v.PrimaryPart.Position.Y > 5 then
closestDistance = player:DistanceFromCharacter(v.PrimaryPart.Position)
closestBlock = v
end
end
elseif Item == "Crate" then
for i, v in next, workspace.Environment.Locations.Supermarket.Crates:GetChildren() do
if player:DistanceFromCharacter(v.Position) < closestDistance and v.Name == "Crate" then
closestDistance = player:DistanceFromCharacter(v.Position)
closestBlock = v
end
end
if closestBlock == nil then
wait(0.5)
FindClosest("Crate")
end
elseif Item == "EmptyShelf" then
for i, v in next, workspace.Environment.Locations.Supermarket.Shelves:GetChildren() do
if player:DistanceFromCharacter(v.PrimaryPart.Position) < closestDistance and v.IsEmpty.Value == true then
closestDistance = player:DistanceFromCharacter(v.PrimaryPart.Position)
closestBlock = v
end
end
if closestBlock == nil then
wait(0.5)
FindClosest("EmptyShelf")
end
elseif Item == "PizzaCrate" then
for i, v in next, workspace.Environment.Locations.PizzaPlanet.IngredientCrates:GetChildren() do
local dis = (player.Character.HumanoidRootPart.Position - v.Position).magnitude
if dis < closestDistance then
closestDistance = dis
closestBlock = v
end
end
if closestBlock == nil then
wait(0.5)
FindClosest("PizzaCrate")
end
end
return closestBlock
end
local toGo = nil
local Vehicle
local LocationCFrame = {
["Pizza Planet"] = CFrame.new(1092.59473, 13.6776829, 249.286835);
["Bloxy Burgers"] = CFrame.new(877.985901, 13.070406, 267.987854);
["Stylez Hairdresser"] = CFrame.new(902.504822, 13.0960951, 166.004135);
["Lake"] = CFrame.new(985.374207, 13.1055984, 1061.12622);
["Mike's Motors"] = CFrame.new(1095.50464, 12.9041576, 384.505646);
["Nightclub"] = CFrame.new(1068.34241, 12.9559097, 27.2332954);
["City Hall"] = CFrame.new(994.741943, 13.1551933, -225.07254);
["Gym"] = CFrame.new(841.105408, 12.9554825, -100.579193);
["BFF Supermarket"] = CFrame.new(840.207581, 13.0544462, -14.4691305);
["Fancy Furniture"] = CFrame.new(1095.1908, 13.1559048, 139.72467);
["Lovely Lumber"] = CFrame.new(614.160645, 13.0296869, 772.316162);
["Cave"] = CFrame.new(519.167419, 13.0106106, 728.404419);
["Ben's Ice Cream"] = CFrame.new(943.374939, 13.0542393, 1017.85272);
["Ferris Wheel"] = CFrame.new(986.463562, 13.0917492, 1089.16406);
}
local locationNames = {}
for i in next, LocationCFrame do
table.insert(locationNames, i)
end
Sections.Misc.AutoDrive:SearchBox("Location", locationNames, function(die)
toGo = die
end)
Sections.Misc.AutoDrive:SearchBox("Player Location", PlayerList, function(die)
toGo = die
end)
Sections.Misc.AutoDrive:SearchBox("Player Houses", PlayerHouses, function(die)
toGo = die
end)
local tween
local stop = false
local function VehicleTween(item, target, speed)
local dist = (item.Position - target.p).magnitude
tween = game:GetService("TweenService"):Create(item, TweenInfo.new(dist / speed, Enum.EasingStyle.Linear), {
CFrame = target
})
tween:Play()
tween.Completed:wait()
end
local function playerLocations()
local plrPos = {}
for i, v in next, PlayerList do
local PlayerCharacter = Players[v].Character
if PlayerCharacter and PlayerCharacter:FindFirstChild("HumanoidRootPart") then
plrPos[v] = PlayerCharacter.HumanoidRootPart.CFrame
end
end
return plrPos
end
local function houseLocations()
local housePos = {}
for i, v in next, PlayerList do
pcall(function()
housePos[v.."'s house"] = workspace.Plots["Plot_" .. v].FrontObjects.ItemHolder["Basic Mailbox"].CFrame
end)
end
return housePos
end
Sections.Misc.AutoDrive:Button("Drive", function()
for i, v in next, player.Character:GetChildren() do
if v.Name:sub(0, 8) == "Vehicle_" then
Vehicle = v
end
end
if not Vehicle then
Window:Notification("Error", {
Text = "You must be on a vehicle!";
ConfirmText = "Okay";
})
else
local oldg = workspace.Gravity
workspace.Gravity = 0
local _, VehicleSize = Vehicle:GetBoundingBox()
local LocationPath = PathfindingService:CreatePath()
local placeToGo = LocationCFrame[toGo] or playerLocations()[toGo] or houseLocations()[toGo]
LocationPath:ComputeAsync(player.Character.HumanoidRootPart.Position, placeToGo.p)
local LocationPoints = LocationPath:GetWaypoints({
AgentRadius = VehicleSize.X;
AgentHeight = VehicleSize.Y
})
driving = true
for i, v in next, LocationPoints do
if stop then
stop = false
workspace.Gravity = oldg
break
end
if i % 10 == 0 then
VehicleTween(Vehicle.PrimaryPart, CFrame.new(v.Position.X, v.Position.Y + 5, v.Position.Z, unpack(GetRelativeComponents(v.Position + Vector3.new(0, 5, 0)))), 60)
end
end
workspace.Gravity = oldg
if tween then
tween:Cancel()
tween = nil
end
driving = false
end
end)
Sections.Misc.AutoDrive:Button("Stop Driving", function()
stop = true
end)
local DeliveryFunctions = {
GoPizzaPlanet = nil;
GoCustomer = nil;
}
local function DeliveryMovement(vehicle, cf)
local Speed = 35
vehicle.PrimaryPart:FindFirstChildOfClass("BodyVelocity"):Destroy()
local New = CFrame.new(cf.X, -50, cf.Z)
local BodyVel = Instance.new('BodyVelocity', vehicle.PrimaryPart)
BodyVel.MaxForce = Vector3.new(9e9, 9e9, 9e9)
BodyVel.P = Speed
repeat
local to = (New.p - vehicle.PrimaryPart.Position).Unit * Speed
BodyVel.Velocity = to
wait()
until (vehicle.PrimaryPart.Position - New.p).Magnitude <= 5
BodyVel.Velocity = Vector3.new(0, 0, 0)
end
DeliveryFunctions.GoPizzaPlanet = function(isfromcustomer)
if ActiveJob == "Delivery Person" and WorkEnabled then
repeat
wait(0.1)
until JobActions.IsWorking()
Call("UsePizzaMoped", {})
repeat
wait(0.1)
until player.Character:FindFirstChild("Vehicle_Delivery Moped") or WorkEnabled == false and ActiveJob ~= "Delivery Person"
if player.Character:FindFirstChild("Vehicle_Delivery Moped") then
local customer = nil
player.Character:SetPrimaryPartCFrame(CFrame.new(1170, 13, 275))
repeat
wait(0.1)
customer = Remotes["TakePizzaBox"]:InvokeServer({
Box = workspace.Environment.Locations:WaitForChild("PizzaPlanet"):WaitForChild("Conveyor"):WaitForChild("MovingBoxes"):FindFirstChildOfClass("UnionOperation")
})
until customer ~= nil or WorkEnabled == false and ActiveJob ~= "Delivery Person"
player.Character:SetPrimaryPartCFrame(CFrame.new(1170, -50, 275))
DeliveryFunctions.GoCustomer(customer)
end
end
end
DeliveryFunctions.GoCustomer = function(customer)
if customer == nil then
wait(0.1)
DeliveryFunctions.GoPizzaPlanet()
else
if ActiveJob == "Delivery Person" and WorkEnabled and player.Character:FindFirstChild("Vehicle_Delivery Moped") then
DeliveryMovement(player.Character:FindFirstChild("Vehicle_Delivery Moped"), customer:WaitForChild("HumanoidRootPart").CFrame - Vector3.new(0, 50, 0))
player.Character:SetPrimaryPartCFrame(customer:WaitForChild("HumanoidRootPart").CFrame - Vector3.new(0, 10, 0))
repeat
Remotes["DeliverPizza"]:FireServer({
Customer = customer
})
wait(0.1)
until not player.Character:FindFirstChild("Pizza Box") or WorkEnabled == false or not player.Character:FindFirstChild("Vehicle_Delivery Moped")
DeliveryFunctions.GoPizzaPlanet(true)
end
end
end
local driving = false
local GoToStation = false
--//Noclip
RunService.Heartbeat:Connect(function()
if driving or GoToStation or (WorkEnabled and (ActiveJob == "Cashier (Market)" or ActiveJob == "Pizza Baker" or ActiveJob == "Janitor" or ActiveJob == "Miner" or ActiveJob == "Mechanic" or ActiveJob == "Woodcutter" or ActiveJob == "Stocker" or (ActiveJob == "Delivery Person" and player.Character:FindFirstChild("Vehicle_Delivery Moped")))) then
player.Character.Humanoid:ChangeState(11)
end
end)
local WorkstationFunctions
WorkstationFunctions = {
GetFreeMotorWorkstation = function()
if workspace.Environment.Locations:FindFirstChild("MikesMotors") then
for i, v in next, workspace.Environment.Locations.MikesMotors.MechanicWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == player then
return v
end
end
for i, v in next, workspace.Environment.Locations.MikesMotors.MechanicWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == nil then
return v
end
end
end
end;
GetMotorWorkstation = function()
if workspace.Environment.Locations:FindFirstChild("MikesMotors") then
local Station
for i, v in next, workspace.Environment.Locations.MikesMotors.MechanicWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == player then
Station = v
end
end
for i, v in next, workspace.Environment.Locations.MikesMotors.MechanicWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v:FindFirstChild("Occupied") and v.InUse.Value == nil and v.Occupied.Value ~= nil then
Station = v
end
end
if Station == nil then
wait()
WorkstationFunctions.GetMotorWorkstation()
end
return Station
end
end;
GetFreeBakerStation = function()
if workspace.Environment.Locations:FindFirstChild("PizzaPlanet") then
for i, v in next, workspace.Environment.Locations.PizzaPlanet.BakerWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == player then
return v
end
end
for i, v in next, workspace.Environment.Locations.PizzaPlanet.BakerWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == nil then
return v
end
end
end
end;
GetFreeCashierStation = function()
if workspace.Environment.Locations:FindFirstChild("Supermarket") then
local Station
local EmptyStations = {}
for i, v in next, workspace.Environment.Locations.Supermarket.CashierWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == player then
Station = v
end
end
for i, v in next, workspace.Environment.Locations.Supermarket.CashierWorkstations:GetChildren() do
if v:FindFirstChild("InUse") and v.InUse.Value == nil then
table.insert(EmptyStations, v)
end
end
if Station == nil and #EmptyStations > 0 then
local closest = nil
local distance = huge
for i, v in next, EmptyStations do
if player:DistanceFromCharacter(v.Scanner.Position) < distance then
distance = player:DistanceFromCharacter(v.Scanner.Position)
closest = v
end
end
Station = closest
end
if Station == nil then
wait()
GetFreeCashierStation()
end
return Station
end
end;
GetHairWorkstations = function()
if workspace.Environment.Locations:FindFirstChild("StylezHairStudio") then
local stations = {}
for i, v in next, workspace.Environment.Locations.StylezHairStudio.HairdresserWorkstations:GetChildren() do
if ((v.Mirror:FindFirstChild("HairdresserGUI") and v.Mirror.HairdresserGUI.Used.Visible == false) or v.InUse.Value == player) and v.Occupied.Value ~= nil then
table.insert(stations, v)
end
end
return stations
end
end;
GetBurgerWorkstations = function()
if workspace.Environment.Locations:FindFirstChild("BloxyBurgers") then
local stations = {}
for i, v in next, workspace.Environment.Locations.BloxyBurgers.CashierWorkstations:GetChildren() do
if v.InUse.Value == player and v.Occupied.Value ~= nil then
table.insert(stations, v)
end
if v.InUse.Value == nil and v.Occupied.Value ~= nil then
table.insert(stations, v)
end
end
return stations
end
end;
GetFreeHairStation = function()
local station
if workspace.Environment.Locations:FindFirstChild("StylezHairStudio") then
for i, v in next, workspace.Environment.Locations.StylezHairStudio.HairdresserWorkstations:GetChildren() do
if v.InUse.Value == nil then
station = v
end
end
end
if station == nil then
GetFreeHairStation()
end
return station
end;
GetFreeBurgerStation = function()
if workspace.Environment.Locations:FindFirstChild("BloxyBurgers") then
local station
for i, v in next, workspace.Environment.Locations.BloxyBurgers.CashierWorkstations:GetChildren() do
if v.InUse.Value == nil then
station = v
end
end
if station == nil then
GetFreeBurgerStation()
end
return station
end
end;
}
local GoToShelf, TakeCrate
GoToShelf = function()
if ActiveJob == "Stocker" and WorkEnabled == true then
local shelf = FindClosest("EmptyShelf")
local gotopart = FindClosest("EmptyShelf"):FindFirstChild("Part")
CoolTween(gotopart.CFrame, 12)
Call("RestockShelf", {
Shelf = shelf
})
TakeCrate()
end
end;
TakeCrate = function()
if ActiveJob == "Stocker" and WorkEnabled == true then
CoolTween(FindClosest("Crate").CFrame, 12)
Call("TakeFoodCrate", {
Object = FindClosest("Crate")
})
GoToShelf()
end
end
local function GrabIceCreamOrder(Workstation)
if Workstation.Occupied.Value ~= nil then
local Order = Workstation.Occupied.Value:WaitForChild("Order")
return {
Flavor1 = Order.Flavor2.Value,
Flavor2 = Order.Flavor1.Value,
Topping = Order.Topping.Value
}
else
wait()
GrabIceCreamOrder(Workstation)
end
end
local function StartFish()
repeat
wait()
until player.Character:FindFirstChild("Fishing Rod")
local start_time = tick()
Call("UseFishingRod", {
State = true;
Pos = player.Character:FindFirstChild("Fishing Rod").Line.Position
})
wait(2)
local bobberChangeConnection
local originalBobberPosition = player.Character["Fishing Rod"].Bobber.Position.Y
if player.Character:FindFirstChild("Fishing Rod") then
bobberChangeConnection = player.Character["Fishing Rod"].Bobber:GetPropertyChangedSignal("Position"):Connect(function()
if player.Character:FindFirstChild("Fishing Rod") then
if originalBobberPosition - player.Character["Fishing Rod"].Bobber.Position.Y < 3 then
local time_elapsed = tick() - start_time
Call("UseFishingRod", {
State = false;
Time = time_elapsed;
})
bobberChangeConnection:Disconnect()
StartFish()
end
end
end)
end
end
local WheelPos = {
["Bloxster"] = Vector3.new(1155.36475, 13.3524084, 411.294983),
["Classic"] = Vector3.new(1156, 13.3524084, 396.650177),
["Moped"] = Vector3.new(1154, 13, 402)
}
local GroceryCashierFunctions = {
BagAmount = function(station)
local amount = 0
for i, v in next, station.Bags:GetChildren() do
if v.Transparency == 0 then
amount = amount + 1
end
end
return amount
end;
RestockBags = function(stat)
local Crate = workspace.Environment.Locations.Supermarket.Crates:FindFirstChild("BagCrate")
CoolTween(Crate.CFrame + Vector3.new(5, 0, -5), 10)
Call("TakeNewBags", {
Object = Crate
})
repeat
wait()
until player.Character:FindFirstChild("BFF Bags")
CoolTween(stat.Scanner.CFrame - Vector3.new(3, 0, 0), 10)
Call("RestockBags", {
Workstation = stat
})
repeat
wait()
until stat.BagsLeft.Value > 0
end;
}
local NextCustomer
local count = 0
local CurrentBags = 1
local can_continue = true
local JobHandler = {
["Hairdresser"] = function()
if #WorkstationFunctions.GetHairWorkstations() > 0 then
for i, workstation in next, WorkstationFunctions.GetHairWorkstations() do
if workstation.Mirror:FindFirstChild("HairdresserGUI") then
workstation.Mirror.HairdresserGUI.Overlay:FindFirstChild("false").ImageRectOffset = Vector2.new(0, 0)
workstation.Mirror.HairdresserGUI.Overlay:FindFirstChild("false").ImageColor3 = Color3.new(0, 255, 0)
for i, v in next, getconnections(workstation.Mirror.HairdresserGUI.Frame.Done.Activated) do
v:Fire()
end
end
end
end
end;
["Cashier (Burger)"] = function()
if #WorkstationFunctions.GetBurgerWorkstations() > 0 then
for i, v in next, WorkstationFunctions.GetBurgerWorkstations() do
if v.OrderDisplay.DisplayMain:FindFirstChild("CashierGUI") then
v.OrderDisplay.DisplayMain.CashierGUI.Overlay:FindFirstChild("false").ImageRectOffset = Vector2.new(0, 0)
v.OrderDisplay.DisplayMain.CashierGUI.Overlay:FindFirstChild("false").ImageColor3 = Color3.new(0, 255, 0)
for i, v in next, getconnections(v.OrderDisplay.DisplayMain.CashierGUI.Frame.Done.Activated) do
v:Fire()
end
end
end
end
end;
["Mechanic"] = function()
local v = WorkstationFunctions.GetMotorWorkstation()
if v then
local customer = v.Occupied.Value
if customer then
local Order = customer:WaitForChild("Order")
if Order:FindFirstChild("Oil") then
local Oil = Order.Oil.Value
if Oil ~= nil then
repeat
CoolTween(CFrame.new(1194, 13, 389), 12)
Remotes["TakeOil"]:FireServer({
Object = workspace.Environment.Locations.MikesMotors.OilCans:FindFirstChildWhichIsA("Model")
})
wait()
until player.Character:FindFirstChild("Oil Can") or ActiveJob ~= "Mechanic"
CoolTween(CFrame.new(v.Display.Screen.Position + Vector3.new(0, 0, 5)), 12)
Remotes["FixBike"]:FireServer({
Workstation = v
})
repeat
wait()
until (not player.Character:FindFirstChild("Oil Can")) or (ActiveJob ~= "Mechanic")
Remotes["JobCompleted"]:FireServer({
Workstation = v
})
wait(2)
end
elseif Order:FindFirstChild("Wheels") then
local WheelType = Order.Wheels.Value
for i = 1, 2 do
repeat
CoolTween(CFrame.new(WheelPos[WheelType]), 12)
Remotes["TakeWheel"]:FireServer({
Object = workspace.Environment.Locations.MikesMotors.TireRacks:FindFirstChild(WheelType)
})
wait()
until player.Character:FindFirstChild(WheelType.." Wheel") or ActiveJob ~= "Mechanic"
CoolTween(CFrame.new(v.Display.Screen.Position + Vector3.new(0, 0, 5)), 12)
if i == 1 then
Remotes["FixBike"]:FireServer({
Workstation = v;
Front = true
})
elseif i == 2 then
Remotes["FixBike"]:FireServer({
Workstation = v;
})
end
repeat
wait()
until (not player.Character:FindFirstChild(WheelType.." Wheel")) or (ActiveJob ~= "Mechanic")
if i == 2 then
Remotes["JobCompleted"]:FireServer({
Workstation = v
})
end
wait(2)
end
elseif Order:FindFirstChild("Color") then
local ColorValue = Order.Color.Value
if ColorValue ~= nil then
repeat
CoolTween(CFrame.new(Vector3.new(1173, 13, 388)), 12)
Remotes["TakePainter"]:FireServer({
Object = workspace.Environment.Locations.MikesMotors.PaintingEquipment:FindFirstChild(ColorValue)
})
wait()
until player.Character:FindFirstChild("Spray Painter") or ActiveJob ~= "Mechanic"
CoolTween(CFrame.new(v.Display.Screen.Position + Vector3.new(0, 0, 5)), 12)
Remotes["FixBike"]:FireServer({
Workstation = v
})
repeat
wait()
until (not player.Character:FindFirstChild("Spray Painter")) or (ActiveJob ~= "Mechanic")
Remotes["JobCompleted"]:FireServer({
Workstation = v
})
wait(2)
end
end
end
end
end;
["Pizza Baker"] = function()
local Station = WorkstationFunctions.GetFreeBakerStation()
if Station ~= nil then
if Station.Order.IngredientsLeft.Value == 0 then
repeat
wait()
until not currentPlayerTween
local Crate = FindClosest("PizzaCrate")
player.Character.Humanoid:MoveTo((Crate.CFrame + Vector3.new(7, 0, 0)).p)
if not player.Character:FindFirstChild("Ingredient Crate") then
Remotes["TakeIngredientCrate"]:FireServer({
Object = Crate
})
end
repeat
wait()
until player.Character:FindFirstChild("Ingredient Crate")
player.Character.Humanoid:MoveTo((Station.CounterTop.CFrame - Vector3.new(7, 0, 0)).p)
Remotes["RestockIngredients"]:FireServer({
Workstation = Station;
})
repeat
wait()
until Station.Order.IngredientsLeft.Value > 0
end
if Station.OrderDisplay.DisplayMain:FindFirstChild("BakerGUI") then
Station.OrderDisplay.DisplayMain.BakerGUI.Overlay:FindFirstChild("false").ImageRectOffset = Vector2.new(0, 0)
Station.OrderDisplay.DisplayMain.BakerGUI.Overlay:FindFirstChild("false").ImageColor3 = Color3.new(0, 255, 0)
for i, v in next, getconnections(Station.OrderDisplay.DisplayMain.BakerGUI.Frame.Done.Activated) do
v:Fire()
end
end
end
end;
["Ice Cream Seller"] = function()
for i, v in next, workspace.Environment.Locations.BensIceCream.CustomerTargets:GetChildren() do
if v:FindFirstChild("Occupied") and v.Occupied.Value ~= nil then
local order = v.Occupied.Value:WaitForChild("Order")
if player.Character:FindFirstChild("Ice Cream Cup") then
Remotes["UnequipItem"]:FireServer({
Item = player.Character:FindFirstChild("Ice Cream Cup")
})
else
Remotes["TakeIceCreamCup"]:FireServer({})
repeat
wait()
until player.Character:FindFirstChild("Ice Cream Cup") and player.Character:FindFirstChild("Ice Cream Cup"):FindFirstChild("Ball1") and player.Character:FindFirstChild("Ice Cream Cup"):FindFirstChild("Ball2")
Remotes["AddIceCreamScoop"]:FireServer({
Taste = order:WaitForChild("Flavor1").Value,
Ball = player.Character["Ice Cream Cup"].Ball1
})
Remotes["AddIceCreamScoop"]:FireServer({
Taste = order.Flavor2.Value,
Ball = player.Character["Ice Cream Cup"].Ball2
})
Remotes["AddIceCreamTopping"]:FireServer({
Taste = order.Topping.Value,
})
Remotes["JobCompleted"]:FireServer({
Workstation = v
})
end
end
end
wait()
end;
["Woodcutter"] = function()
local Tree = FindClosest("Tree")
if Tree then
CoolTween(Tree.PrimaryPart.CFrame, 12)
repeat
Remotes["UseHatchet"]:FireServer({
Tree = Tree
})
wait()
until (Tree.PrimaryPart.Position.Y < 0) or (ActiveJob ~= "Woodcutter") or (WorkEnabled == false)
end
end;
["Janitor"] = function()
local Trash = FindClosest("Trash")
if Trash then
if Trash:FindFirstChild("Object") and Trash:FindFirstChild("Object"):IsA("Part") then
CoolTween(Trash.Object.CFrame, 12)
else
CoolTween(Trash.CFrame, 12)
end
Remotes["CleanJanitorObject"]:InvokeServer({
Spawn = Trash
})
end
end;
["Miner"] = function()
local TargetBlock = FindClosest("Valuable")
TargetBlock.PrimaryPart.CanCollide = false
if TargetBlock then
CoolTween(TargetBlock.PrimaryPart.CFrame, 20)
local TargetX, TargetY, TargetZ = string.match(TargetBlock.Name, "(.+):(.+):(.+)")
local TargetVector = Vector3.new(TargetX, TargetY, TargetZ)
Remotes["MineBlock"]:InvokeServer({
P = TargetVector
})
end;
end;
}
local function NextCustomer()
if ActiveJob == "Cashier (Market)" then
local Station = WorkstationFunctions.GetFreeCashierStation()
count = 0
CurrentBags = 1
if Station.BagsLeft.Value == 0 then
GroceryCashierFunctions.RestockBags(Station)
end
repeat
for i, v in next, Station.DroppedFood:GetChildren() do
count = count + 1
if count / CurrentBags == 3 then
Remotes["TakeNewBag"]:FireServer({
Workstation = Station
})
CurrentBags = CurrentBags + 1
if Station.BagsLeft.Value == 0 then
GroceryCashierFunctions.RestockBags(Station)
wait()
end
end
Remotes["ScanDroppedItem"]:FireServer({
Item = v
})
wait(0.1)
end
wait()
until ActiveJob ~= "Cashier (Market)" or Station.Occupied.Value ~= nil and (Station.Occupied.Value.Head.Position - Station.CustomerTarget_2.Position).magnitude < 3
Remotes["JobCompleted"]:FireServer({
Workstation = Station
})
NextCustomer()
end
end
local OldEndShift = JobModules["Delivery Person"].EndShift
JobModules["Delivery Person"].EndShift = function(...)
if ActiveJob == "Delivery Person" and WorkEnabled and JobActions.IsWorking() and player.Character:FindFirstChild("Vehicle_Delivery Moped") then
return
end
return OldEndShift(...)
end
local OldAlertBox = Modules.GUIHandler.AlertBox
Modules.GUIHandler.AlertBox = function(...)
local args = {...}
if ActiveJob == "Delivery Person" and WorkEnabled and JobActions.IsWorking() and player.Character:FindFirstChild("Vehicle_Delivery Moped") and args[2] == "E_LeftWorkplace" then
return
end
return OldAlertBox(...)
end
local JobFunctions = {
["Cashier (Burger)"] = {
Start = function()
JobActions.StartShift("Cashier (Burger)")
GoToStation = true
CoolTween(CFrame.new(WorkstationFunctions.GetFreeBurgerStation().OrderDisplay.DisplayMain.Position) - Vector3.new(3, 0, 0), 12)
GoToStation = false
end;
End = function()
JobActions.EndShift("Cashier (Burger)")
end;
GoTo = function()
require(JobManager):GoToWork("BloxyBurgersCashier")
end;
};
["Hairdresser"] = {
Start = function()
JobActions.StartShift("Hairdresser")
GoToStation = true
CoolTween(WorkstationFunctions.GetFreeHairStation().Stool.PrimaryPart.CFrame, 12)
GoToStation = false
end;
End = function()
JobActions.EndShift("Hairdresser")
end;
GoTo = function()
require(JobManager):GoToWork("StylezHairdresser")
end;
};
["Mechanic"] = {
Start = function()
repeat
wait()
until JobActions.IsWorking()
CoolTween(CFrame.new(WorkstationFunctions.GetFreeMotorWorkstation().Display.Screen.Position + Vector3.new(0, 0, 5)), 12)
JobActions.StartShift("Mechanic")
end;
End = function()
JobActions.EndShift("Mechanic")
if currentPlayerTween then
currentPlayerTween:Cancel()
currentPlayerTween = nil
end
end;
GoTo = function()
require(JobManager):GoToWork("MikesMechanic")
end;
};
["Pizza Baker"] = {
Start = function()
JobActions.StartShift("Pizza Baker")
local Station = WorkstationFunctions.GetFreeBakerStation()
if Station ~= nil then
CoolTween(Station.CounterTop.CFrame - Vector3.new(7, 0, 0), 12)
end
end;
End = function()
JobActions.EndShift("Pizza Baker")
end;
GoTo = function()
require(JobManager):GoToWork("PizzaPlanetBaker")
end;
};
["Delivery Person"] = {
Start = function()
if currentPlayerTween then
currentPlayerTween:Cancel()
currentPlayerTween = nil
end
JobActions.StartShift("Delivery Person")
Call("UsePizzaMoped", {})
repeat
wait()
until player.Character:FindFirstChild("Vehicle_Delivery Moped")
DeliveryFunctions.GoPizzaPlanet()
end;
End = function()
if currentPlayerTween then
currentPlayerTween:Cancel()
currentPlayerTween = nil
end
Call("UsePizzaMoped", {})
wait(0.2)
player.Character.Humanoid.Jump = true
wait(0.2)
JobActions.EndShift("Delivery Person")
end;
GoTo = function()
require(JobManager):GoToWork("PizzaPlanetDelivery")
end;
};
["Fisherman"] = {
Start = function()
JobActions.StartShift("Fisherman")
Pathfind(Vector3.new(1040.20239, 11.5224304, 1093.23889))
StartFish()
end;
End = function()
JobActions.EndShift("Fisherman")
end;
GoTo = function()
require(JobManager):GoToWork("HutFisherman")
end;
};
["Ice Cream Seller"] = {
Start = function()
CoolTween(CFrame.new(930.419434, 14.1130867, 1049.05457, -0.948081434, 5.13790361e-08, 0.318027735, 4.70168509e-08, 1, -2.13919567e-08, -0.318027735, -5.32865396e-09, -0.948081434), 12)
JobActions.StartShift("Ice Cream Seller")
end;
End = function()
JobActions.EndShift("Ice Cream Seller")
end;
GoTo = function()
require(JobManager):GoToWork("BensIceCreamSeller")
end;
};
["Stocker"] = {
Start = function()
JobActions.StartShift("Stocker")
TakeCrate()
end;
End = function()
JobActions.EndShift("Stocker")
if currentPlayerTween then
currentPlayerTween:Cancel()
currentPlayerTween = nil
end
end;
GoTo = function()
require(JobManager):GoToWork("SupermarketStocker")
end;
};
["Cashier (Market)"] = {
Start = function()
local Station
repeat
Station = WorkstationFunctions.GetFreeCashierStation()
until Station ~= nil
CoolTween(Station.Scanner.CFrame - Vector3.new(3, 0, 0), 10)
JobActions.StartShift("Cashier (Market)")
NextCustomer()
end;
End = function()
JobActions.EndShift("Cashier (Market)")
end;
GoTo = function()
require(JobManager):GoToWork("SupermarketCashier")
end;
};
["Woodcutter"] = {
Start = function()
JobActions.StartShift("Woodcutter")
end;
End = function()
JobActions.EndShift("Woodcutter")
end;
GoTo = function()
require(JobManager):GoToWork("LumberWoodcutter")
end;
};
["Janitor"] = {
Start = function()
JobActions.StartShift("Janitor")
end;
End = function()
JobActions.EndShift("Janitor")
JobActions.EndShift("Stocker")
if currentPlayerTween then
currentPlayerTween:Cancel()
currentPlayerTween = nil
end
end;
GoTo = function()
require(JobManager):GoToWork("CleanJanitor")
end;
};
["Miner"] = {
Start = function()
JobActions.StartShift("Miner")
if player.Character.HumanoidRootPart:FindFirstChildOfClass("BodyVelocity") then
player.Character.HumanoidRootPart:FindFirstChildOfClass("BodyVelocity"):Destroy()
end
local bv = Instance.new("BodyVelocity", player.Character.HumanoidRootPart)
bv.Velocity = Vector3.new(0, 0, 0)
end;
End = function()
JobActions.EndShift("Miner")
if player.Character.HumanoidRootPart:FindFirstChildOfClass("BodyVelocity") then
player.Character.HumanoidRootPart:FindFirstChildOfClass("BodyVelocity"):Destroy()
end
end;
GoTo = function()
require(JobManager):GoToWork("CaveMiner")
end;
};
}
local savedPos = nil
local moveCheck = 0
coroutine.resume(coroutine.create(function()
while wait(0.5) do
if ActiveJob == "Delivery Person" and WorkEnabled then
if not player.Character:FindFirstChild("Vehicle_Delivery Moped") then
if currentPlayerTween then
currentPlayerTween:Cancel()
currentPlayerTween = nil
end
end
if not JobActions.IsWorking() then
require(JobManager):GoToWork("PizzaPlanetDelivery")
end
end
end
end))
local JobList = {
"Burger Cashier";
"Hairdresser";
"Mechanic";
"Pizza Baker";
"Delivery Person";
"Fisherman";
"Ice Cream Seller";
"Stocker";
"Market Cashier";
"Woodcutter";
"Janitor";
"Miner";
}
local StopSettings = {
StopAfterAmount = false,
StopAmount = nil
}
Sections.Autofarm.Main:SearchBox("Job", JobList, function(value)
local lastActive = ActiveJob
ActiveJob = value
if WorkEnabled and lastActive then
JobFunctions[lastActive]["End"]()
end
end)
Sections.Autofarm.Main:Button("Go To Job", function()
if ActiveJob ~= nil then
JobFunctions[ActiveJob]["GoTo"]()
else
Window:Notification("Error", {
Text = "Job Not Selected";
ConfirmText = "Okay";
})
end
end)
Sections.Autofarm.Main:Toggle("Enabled", function(bool)
WorkEnabled = bool
if ActiveJob ~= nil then
if JobFunctions[ActiveJob] ~= nil then
if bool == true then
JobFunctions[ActiveJob]["Start"]()
elseif bool == false then
JobFunctions[ActiveJob]["End"]()
end
end
else
Window:Notification("Error", {
Text = "Job Not Selected";
ConfirmText = "Okay";
})
end
end)
Sections.Autofarm.Settings:Toggle("Stop After Amount", function(bool)
StopSettings.StopAfterAmount = bool
end)
Sections.Autofarm.Settings:Box("Amount", function(val)
StopSettings.StopAmount = tonumber(val)
end)
for i, v in next, game:GetService("ReplicatedStorage").Stats[player.Name].SkillData:GetChildren() do
local Name = v.Name
if Name ~= "Cooking" then
Sections.Misc.Skills:Slider(Name, {
min = 1,
max = 10,
default = v.Value
}, function(value)
v.Value = value
end)
end
end
local function AttemptTeleport()
local fail = Call("JoinPrivateServer", {
Search = game:HttpGet("https://bloxburg.sexy/neighborhoods/getCode.php")
})
if fail then
AttemptTeleport()
end
end
Sections.Misc.Random:Button("Private Server", function()
Window:Notification("Message", {
Text = "Teleporting...";
ConfirmText = "Okay";
})
AttemptTeleport()
end)
local FakePaycheck = {
pamount = nil;
pjob = nil;
}
Sections.Misc.FakePaycheck:Box("Amount", function(am)
if tonumber(am) ~= nil then
FakePaycheck.pamount = am
else
Window:Notification("Error", {
Text = "Amount must be a number!";
ConfirmText = "Okay";
})
end
end)
Sections.Misc.FakePaycheck:Box("Job", function(Input)
FakePaycheck.pjob = Input
end)
Sections.Misc.FakePaycheck:Button("Fake Paycheck", function()
if not FakePaycheck.pamount or not FakePaycheck.pjob then
Window:Notification("Error", {
Text = "Amount/Job were not provided";
ConfirmText = "Okay";
})
else
local JobData = Modules.JobData
local old = JobData.GetJob
JobData.GetJob = function(...)
local args = {
...
}
if args[2] == FakePaycheck.pjob then
return {
Title = FakePaycheck.pjob,
ID = 69,
Name = FakePaycheck.pjob,
Location = Instance.new("Model"),
AwardName = "bruh moment"
}
end
return old(...)
end
local TranslationHandler = Modules.TranslationHandler
local old2 = TranslationHandler.Format
TranslationHandler.Format = function(...)
local args = {
...
}
if args[2] == "T_Job"..FakePaycheck.pjob then
return FakePaycheck.pjob
end
return old2(...)
end
require(JobManager):ShowPaycheck(FakePaycheck.pamount, FakePaycheck.pjob)
end
end)
local FakeMessage = {
messageText = nil;
Type = nil;
}
Sections.Misc.FakeMessage:Picker("Type", {
"Message",
"Error",
"Confirmation"
}, function(a)
FakeMessage.Type = a
end)
Sections.Misc.FakeMessage:Box("Text", function(a)
FakeMessage.messageText = a
end)
Sections.Misc.FakeMessage:Button("Fake Message", function()
if FakeMessage.messageText then
local GUIHandler = Modules.GUIHandler
if FakeMessage.Type == "Message" or FakeMessage.Type == nil then
spawn(function()
GUIHandler:MessageBox(FakeMessage.messageText)
end)
elseif FakeMessage.Type == "Error" then
spawn(function()
GUIHandler:AlertBox(FakeMessage.messageText)
end)
elseif FakeMessage.Type == "Confirmation" then
spawn(function()
GUIHandler:ConfirmBox(FakeMessage.messageText)
end)
end
end
end)
local SkySettings = {
SkyEnabled = false;
Time = "Day";
Weather = "Clear";
}
Sections.Misc.Sky:Toggle("Enabled", function(bool)
SkySettings.SkyEnabled = bool
end)
Sections.Misc.Sky:Picker("Time of Day", {
"Day",
"Night"
}, function(selected)
SkySettings.Time = selected
if SkySettings.SkyEnabled then
if SkySettings.Time == "Day" then
game:GetService("Lighting"):FindFirstChild("TimeOfDay").Value = 500
elseif SkySettings.Time == "Night" then
game:GetService("Lighting"):FindFirstChild("TimeOfDay").Value = 0
end
end
end)
Sections.Misc.Sky:Picker("Weather", {
"Clear",
"Rain",
"Fog",
"Snow"
}, function(selected)
SkySettings.Weather = selected
if SkySettings.SkyEnabled then
if SkySettings.Weather == "Clear" then
game:GetService("Lighting"):FindFirstChild("Weather").Value = ""
else
game:GetService("Lighting"):FindFirstChild("Weather").Value = SkySettings.Weather
end
end
end)
local TimeOfDay = game:GetService("Lighting"):FindFirstChild("TimeOfDay")
TimeOfDay:GetPropertyChangedSignal("Value"):Connect(function()
if SkySettings.SkyEnabled and SkySettings.Time ~= nil then
if SkySettings.Time == "Day" then
TimeOfDay.Value = 500
elseif SkySettings.Time == "Night" then
TimeOfDay.Value = 0
end
end
end)
local Weather = game:GetService("Lighting"):FindFirstChild("Weather")
Weather:GetPropertyChangedSignal("Value"):Connect(function()
if SkySettings.SkyEnabled and SkySettings.Weather ~= nil then
if SkySettings.Weather == "Clear" then
Weather.Value = ""
else
Weather.Value = SkySettings.Weather
end
end
end)
local function GetClosestAppliance(Types)
local Results = {}
for i, v in next, workspace.Plots["Plot_"..player.Name].House:GetChildren() do
for k, x in next, v:GetDescendants() do
for a, b in next, Types do
if x.Name:find(b) and x:IsA("Part") then
table.insert(Results, x)
end
end
end
end
if #Results == 1 then
return Results[1]
else
local closest
local last = huge
for i, v in next, Results do
local mag = (player.Character.HumanoidRootPart.Position - v.Position).magnitude
if mag < last then
last = mag
closest = v
end
end
return closest
end
end
local FoodHandler = Modules.FoodHandler
local FoodData = FoodHandler.FoodData
local CookActions = FoodHandler.CookActions
local function GetApplianceFromRecipe(recipe)
local Types = {
"Stove",
"Counter"
}
local Action = CookActions[recipe]
local Type = Action.Type or Action.Types
local Result
if typeof(Type) == "table" then
for i, v in next, Type do
if table.find(Types, v) then
if v == "Counters" then
v = "Counter"
end
Type = v
end
end
else
if Type == "Counters" then
Type = "Counter"
end
end
if table.find(Types, Type) then
return Type
end
end
local function GetRecipe(name)
local Recipe = FoodData[name].Recipe
local Result = {}
for i, v in next, Recipe do
if type(v) == "table" then
for k, x in next, v do
if GetApplianceFromRecipe(x) then
table.insert(Result, x)
end
end
else
table.insert(Result, v)
end
end
return Result
end
local function GetMood(Type)
return ceil(ReplicatedStorage.Stats[player.Name].MoodData[Type].Value)
end
local AutoMoodVariables = {
MoodWhenLowAmount = 0;
Food = "Garden Salad";
MoodWhenLow = false;
EnabledMoods = {};
AutoCompleteCookingChallenges = false;
SelectedFood = "Garden Salad";
Cooking = false;
DoingAutoMood = false;
GetToAmount = 90;
TimeOut = 120;
}
local function GetLowMoods()
local low = {}
for i, v in next, {
"Hunger",
"Fun",
"Energy",
"Hygiene"
} do
if GetMood(v) < AutoMoodVariables.GetToAmount then
table.insert(low, v)
end
end
return low
end
player.PlayerGui.MainGUI.Scripts.Hotbar.ChildAdded:Connect(function(child)
if (AutoMoodVariables.AutoCompleteCookingChallenges or AutoMoodVariables.Cooking) and child:IsA("BindableEvent") then
wait()
child:Fire(true)
end
end)
local CharConnection
local CurrentConnection
local function AutoCook(Food, IsAuto)
local FinishedFood
if IsAuto then
for i, Counter in next, workspace.Plots["Plot_"..player.Name].House.Counters:GetChildren() do
if Counter:FindFirstChild("ItemHolder") then
for k, x in next, Counter.ItemHolder:GetChildren() do
if x:FindFirstChild("ObjectData") and x.ObjectData:FindFirstChild("FoodQuantity") then
if x.ObjectData.FoodQuantity.Value > -1 then
FinishedFood = x
CharConnection = player.Character.ChildAdded:connect(function(child)
if child:IsA("Model") and (child.Name:find(Food) or Food:find(child.Name)) and not child.Name:find("Ingredients") then
if GetMood("Hunger") < AutoMoodVariables.GetToAmount then
Remotes["Eat"]:FireServer({
Item = child
})
else
CharConnection:Disconnect()
return "Completed"
end
end
end)
Pathfind(Counter.AttachPos.Position)
Remotes["Interact"]:FireServer({
Target = FinishedFood,
Path = "2"
})
else
CharConnection = player.Character.ChildAdded:connect(function(child)
if child:IsA("Model") and (child.Name:find(Food) or Food:find(child.Name)) and not child.Name:find("Ingredients") then
Remotes["UnequipItem"]:FireServer({
Item = child
})
CharConnection:Disconnect()
end
end)
Pathfind(Counter.AttachPos.Position)
Remotes["Interact"]:FireServer({
Target = x,
Path = "1"
})
end
end
end
end
end
end
if not FinishedFood then
local Fridge = GetClosestAppliance({
"Fridge"
})
if Fridge == nil then
Window:Notification("Error", {
Text = "You must have a fridge on your plot";
ConfirmText = "Okay";
})
return
end
Pathfind(Fridge.AttachPos.Position)
Remotes["Interact"]:FireServer({
Target = Fridge,
Path = "1"
})
Remotes["TakeIngredient"]:FireServer({
Name = Food
})
local CurrentChild
local Recipe = GetRecipe(Food)
AutoMoodVariables.Cooking = true
local function DoAction(CookProgress, child)
local AppFromRec = GetApplianceFromRecipe(Recipe[CookProgress + 1])
local Appliance = GetClosestAppliance({
AppFromRec
})
if Appliance == nil then
Window:Notification("Error", {
Text = "You must have a "..AppFromRec.." on your plot";
ConfirmText = "Okay";
})
return
end
Pathfind(Appliance.AttachPos.Position)
if AppFromRec == "Stove" then
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "1"
})
if Recipe[CookProgress + 1] == "Bake" then
repeat
wait()
until not player.Character:FindFirstChild(child.Name)
repeat
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "1"
})
wait(1)
until player.Character:FindFirstChild(child.Name)
CurrentConnection:Disconnect()
local NewCookProgress = player.Character:FindFirstChild(child.Name):WaitForChild("CookProgress")
CurrentConnection = NewCookProgress:GetPropertyChangedSignal("Value"):connect(function()
DoAction(NewCookProgress.Value, CurrentChild)
end)
end
elseif AppFromRec == "Counter" then
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "2"
})
end
end
CharConnection = player.Character.ChildAdded:connect(function(child)
if child.Name == Food and AutoMoodVariables.Cooking and IsAuto then
local Appliance = GetClosestAppliance({
"Counter"
})
if Appliance == nil then
Window:Notification("Error", {
Text = "You must have a counter on your plot";
ConfirmText = "Okay";
})
return
end
Pathfind(Appliance.AttachPos.Position)
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "3",
Pos = Appliance.ObjectModel.PlaceArea.Position
})
FinishedFood = Appliance:WaitForChild("ItemHolder"):WaitForChild(Food)
AutoMoodVariables.Cooking = false
if GetMood("Hunger") < AutoMoodVariables.GetToAmount then
Remotes["Interact"]:FireServer({
Target = FinishedFood,
Path = "2"
})
end
end
if child:IsA("Model") and (child.Name:find(Food) or Food:find(child.Name)) and not child.Name:find("Ingredients") and not AutoMoodVariables.Cooking and IsAuto then
if GetMood("Hunger") < AutoMoodVariables.GetToAmount then
Remotes["Eat"]:FireServer({
Item = child
})
else
CharConnection:Disconnect()
CurrentConnection:Disconnect()
end
end
if child:IsA("Model") and child.Name:find("Ingredients") then
local CookProgress = child:WaitForChild("CookProgress")
if not CurrentConnection then
DoAction(CookProgress.Value, child)
CurrentConnection = CookProgress:GetPropertyChangedSignal("Value"):connect(function()
DoAction(CookProgress.Value, child)
end)
end
CurrentChild = child
end
end)
end
end
local function AutoMood(MoodType)
if MoodType == "Hunger" then
AutoCook(AutoMoodVariables.SelectedFood, true)
elseif MoodType == "Hygiene" then
local Appliance = GetClosestAppliance({
"Bath",
"Shower",
"The Barrel",
"Jacuzzi"
})
if Appliance == nil then
Window:Notification("Error", {
Text = "You must have a bath/shower on your plot";
ConfirmText = "Okay";
})
return
end
local AttachPos = Appliance:FindFirstChild("AttachPos") or Appliance:FindFirstChild("AttachPos1")
Pathfind(AttachPos.Position)
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "1"
})
elseif MoodType == "Fun" then
local Appliance = GetClosestAppliance({
"TV",
"Television",
"Pixelview"
})
if Appliance == nil then
Window:Notification("Error", {
Text = "You must have a TV on your plot";
ConfirmText = "Okay";
})
return
end
Pathfind(Appliance.Position)
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "1"
})
wait(1)
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "3"
})
elseif MoodType == "Energy" then
local Appliance = GetClosestAppliance({
"Bed"
})
if Appliance == nil then
Window:Notification("Error", {
Text = "You must have a bed on your plot";
ConfirmText = "Okay";
})
return
end
local AttachPos = Appliance:FindFirstChild("AttachPos") or Appliance:FindFirstChild("AttachPos1")
Pathfind(AttachPos.Position)
Remotes["Interact"]:FireServer({
Target = Appliance,
Path = "1"
})
end
end
local AllFoods = {}
for i, v in next, FoodData do
if not v.IsQuick and not v.Hidden then
table.insert(AllFoods, i)
end
end
for i, v in next, {
"Hunger",
"Fun",
"Energy",
"Hygiene"
} do
Sections.AutoMood.Manual:Toggle(v, function(value)
if value then
table.insert(AutoMoodVariables.EnabledMoods, v)
else
table.remove(AutoMoodVariables.EnabledMoods, table.find(AutoMoodVariables.EnabledMoods, v))
end
end)
end
local AutoBoostWhenLowToggle = Sections.AutoMood.Automatic:Toggle("Auto Boost Mood At Amount", function(value)
AutoMoodVariables.MoodWhenLow = value
end)
local AutoBoostWhenLowAmountSlider = Sections.AutoMood.Automatic:Slider("Amount", {
min = 0,
max = 100
}, function(value)
AutoMoodVariables.MoodWhenLowAmount = value
end)
local GetToAmountSlider = Sections.AutoMood.Automatic:Slider("Get Moods To Amount", {
min = 0,
max = 100,
default = 90
}, function(value)
AutoMoodVariables.GetToAmount = value
end)
local AutoMoodTimeoutSlider = Sections.AutoMood.Automatic:Slider("Auto Mood Timeout", {
min = 10,
max = 300,
default = 120
}, function(value)
AutoMoodVariables.TimeOut = value
end)
local AutoBoostMoodButton = Sections.AutoMood.Manual:Button("Boost Selected Moods", function()
if not AutoMoodVariables.DoingAutoMood then
if JobActions.IsWorking() then
WorkEnabled = false
JobFunctions[ActiveJob]["End"]()
wait(1)
require(player.PlayerGui.MainGUI.Scripts.Hotbar):ToPlot()
repeat
wait()
until player.PlayerGui.MainGUI:FindFirstChild("LoadingFrame_ToPlot")
repeat
wait()
until not player.PlayerGui.MainGUI:FindFirstChild("LoadingFrame_ToPlot")
wait(3)
end
for i, v in next, AutoMoodVariables.EnabledMoods do
AutoMood(v)
repeat
wait()
until GetMood(v) >= AutoMoodVariables.GetToAmount
if v == "Hygiene" then
wait(1)
player.Character.Humanoid.Jump = true
end
if v == "Fun" then
Remotes["Interact"]:FireServer({
Target = GetClosestAppliance({
"TV",
"Television",
"Pixelview"
}),
Path = "1"
})
end
if v == "Energy" then
wait(1)
player.Character.Humanoid.Jump = true
end
end
end
end)
local AutoCompleteCookingChallengesToggle = Sections.AutoMood.AutoCook:Toggle("Auto Complete Cooking Challenges", function(value)
AutoMoodVariables.AutoCompleteCookingChallenges = value
end)
local FoodSearchBox = Sections.AutoMood.AutoCook:SearchBox("Food", AllFoods, function(value)
AutoMoodVariables.SelectedFood = value
end)
local CookFoodButton = Sections.AutoMood.AutoCook:Button("Cook Food", function()
AutoCook(AutoMoodVariables.SelectedFood, false)
end)
for i, v in next, game:GetService("ReplicatedStorage").Stats[player.Name].MoodData:GetChildren() do
v:GetPropertyChangedSignal("Value"):Connect(function()
if GetMood(v.Name) <= AutoMoodVariables.MoodWhenLowAmount and AutoMoodVariables.MoodWhenLow and not AutoMoodVariables.DoingAutoMood then
AutoMoodVariables.DoingAutoMood = true
local WasWorking = false
if JobActions.IsWorking() then
WorkEnabled = false
WasWorking = true
JobFunctions[ActiveJob]["End"]()
wait(1)
require(player.PlayerGui.MainGUI.Scripts.Hotbar):ToPlot()
repeat
wait()
until player.PlayerGui.MainGUI:FindFirstChild("LoadingFrame_ToPlot")
repeat
wait()
until not player.PlayerGui.MainGUI:FindFirstChild("LoadingFrame_ToPlot")
wait(3)
end
spawn(function()
wait(AutoMoodVariables.TimeOut)
AutoMoodVariables.DoingAutoMood = false
if CharConnection then
CharConnection:Disconnect()
end
if CurrentConnection then
CurrentConnection:Disconnect()
end
if WasWorking then
JobFunctions[ActiveJob]["GoTo"]()
repeat
wait()
until JobActions.IsWorking()
WorkEnabled = true
JobFunctions[ActiveJob]["Start"]()
end
end)
for i, v in next, GetLowMoods() do
AutoMood(v)
repeat
wait()
until GetMood(v) >= AutoMoodVariables.GetToAmount
if v == "Hygiene" then
wait(0.5)
player.Character.Humanoid.Jump = true
end
if v == "Fun" then
Remotes["Interact"]:FireServer({
Target = GetClosestAppliance({
"TV",
"Television",
"Pixelview"
}),
Path = "1"
})
end
if v == "Energy" then
wait(0.5)
player.Character.Humanoid.Jump = true
end
end
AutoMoodVariables.DoingAutoMood = false
if WasWorking then
JobFunctions[ActiveJob]["GoTo"]()
repeat
wait()
until JobActions.IsWorking()
WorkEnabled = true
JobFunctions[ActiveJob]["Start"]()
end
end
end)
end
coroutine.wrap(function()
while wait() do
if WorkEnabled and ActiveJob ~= nil and JobHandler[ActiveJob] ~= nil then
JobHandler[ActiveJob]()
end
end
end)()
coroutine.wrap(function()
while wait() do
if JobActions.IsWorking() then
if StopSettings.StopAfterAmount == true and StopSettings.StopAmount ~= nil and floor(ReplicatedStorage.Stats[player.Name].Job.ShiftEarnings.Value) >= StopSettings.StopAmount then
WorkEnabled = false
JobFunctions[ActiveJob]["End"]()
wait(1)
Modules.Hotbar:ToPlot()
end
StatLabels.EarningsLabel:Update("Shift Earnings: "..tostring(floor(ReplicatedStorage.Stats[player.Name].Job.ShiftEarnings.Value)))
StatLabels.TimeLabel:Update("Shift Duration: "..player.PlayerGui.MainGUI.Bar.CharMenu.WorkFrame.WorkFrame.TimeLabel.TextLabel.Text)
else
StatLabels.EarningsLabel:Update("Shift Earnings: 0")
StatLabels.TimeLabel:Update("Shift Duration: 0s")
repeat wait() until JobActions.IsWorking()
end
end
end)()
local statFunctions
do
statFunctions = setmetatable({}, {
__tostring = function()
return "StatViewer"
end,
})
statFunctions.__index = statFunctions
function statFunctions.new(...)
local self = setmetatable({}, statFunctions)
self:constructor(...)
return self
end
function statFunctions:constructor(player)
self.statFolder = ReplicatedStorage.Stats[player]
end
function statFunctions:getStat(statType)
return self.statFolder:FindFirstChild(statType, true).Value
end
end
local otherStatLabels = {}
local selectStatPlayer = Sections.StatViewer.Viewer:SearchBox("Select player", PlayerList, function(target)
local userStats = statFunctions.new(target)
for i, v in next, otherStatLabels do
v:Update(string.format("%s: %s", i, userStats:getStat(i)))
end
end)
otherStatLabels.Money = Sections.StatViewer.Viewer:Label("Money: 0")
otherStatLabels.Blockbux = Sections.StatViewer.Viewer:Label("Blockbux: 0")
otherStatLabels.Houses = Sections.StatViewer.Viewer:Label("Houses: 0")
else
report(7,'R6, ' .. time3 .. " " .. res3) --Response Spoofing
return
end



smh doesnt work
And you reported it because it doesnt work
This crack is half a year old, the owner of the original script knows about this crack and said himself that this doesn't work anymore. Quick question Capper, do you test the scripts before uploading them?