All content on our site is free and will always be free.

Please consider supporting us with disabling your AdBlock software and to gain access to thousands of free content!

Not sure how to disable AdBLock? Follow this tutorial: How to disable AdBlock

Get the Epic Thing (Cracked)

The Epic Thing (Cracked) code is below. Copy & inject it into the game. Enjoy!

Welcome to Bloxburg - Autofarm available for all 12 jobs and much more. Credits unknown (not my script)
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()  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 = 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  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  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.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