-- locals
local OrionLib = loadstring(game:HttpGet(('https://[Log in to view URL]')))()
local library = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local main = library:CreateWindow("sOggy Hub", "#b36419", 9160626035)
--Labels (Welcome)
main:CreateTab("Welcome")
main:CreateLabel("Welcome to sOggy Hub we are the best hub ever. Hey, maybe join our discord?", "Welcome")
--Labels and buttons (Main)
main:CreateTab("Main")
main:CreateSlider("WalkSpeed", "Main", 16, 100, function(argsone)
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = argsone
end)
main:CreateSlider("JumpPower", "Main", 50, 450, function(argstwo)
game.Players.LocalPlayer.Character.Humanoid.JumpPower = argstwo
end)
main:CreateButton("Infinite jump", "Main", function()
local infjmp = true
game:GetService("UserInputService").jumpRequest:Connect(function()
if infjmp then
game:GetService"Players".LocalPlayer.Character:FindFirstChildOfClass"Humanoid":ChangeState("Jumping")
end
end)
end)
--Labels and Buttons (Scripts)
main:CreateTab("Scripts")
main:CreateButton("ESP GUI", "Scripts", function()
-- Join discord: https://[Log in to view URL]
-- Pretty sure this works, used Sirius esp lib to make. Not the greatest but you can see items, etc.
-- Will remake this with my own esp lib when i get time to make one for optimization.
-- // BYPASS
function errorLogSpoof()
local old;old = hookmetamethod(game, "__namecall", function(self, ...)
local args = {...}
if getnamecallmethod() == "FireServer" and tostring(self) == 'UDPSocket' then
if args[1]['script'] == 'LocalScript' then -- It's likely that the game knows their is no scripts named "LocalScript" so it bans.
return nil
end
end
return old(self, ...)
end)
end
errorLogSpoof()
-- // GLOBALS
getgenv().espObjects = espObjects or {
['Containers'] = {},
['Players'] = {},
['Zombies'] = {},
['Weapons'] = {},
['Medical'] = {},
['Edibles'] = {},
['Ammo'] = {},
['Attachments'] = {},
['Throwables'] = {},
['Clothing'] = {},
['Misc'] = {}
}
getgenv().connections = connections or {}
getgenv().plrTrackerObjects = plrTrackerObjects or Instance.new('Folder', gethui()) ; plrTrackerObjects.Name = '_Plrs'
do -- // CLEANUP
for k, tbl in espObjects do
for _, espObject in tbl do
espObject:Destruct()
end
end
end
-- // VARIABLES
local player = game:GetService('Players').LocalPlayer
local espLibrary = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local itemCFrameSpawnDirectory = game:GetService("ReplicatedStorage").Assets.ItemSpawnData.Items
local itemSpawnDirectory = game:GetService('Workspace').game_assets.item_spawns
local zombieSpawnDirectory = game:GetService('Workspace').game_assets.NPCs
local weaponData = game:GetService("ReplicatedStorage").GunData
local espData = {
['GroundItems'] = {
['Weapons'] = {
Type = 'Instance',
Contents = game:GetService("ReplicatedStorage").GunData,
},
['Medical'] = {
Type = 'Table',
Contents = {
'Bandage',
'DressedBandage',
'LargeMedkit',
'Healing Salve',
'Medkit',
'LegSplit',
'SalineSolution'
},
},
['Edibles'] = {
Type = 'TableMatch',
Contents = {
'Apple',
'Beans',
'Juice',
'Cereal',
'Chips',
'Cola',
'Drink',
'Potato',
'Water',
'DirtyWater',
'EnergyDrink',
}
},
['Clothing'] = {
Type = 'TableMatch',
Contents = {
'Shirt',
'Jeans',
'Slacks',
'Suit',
'Pants',
'Jacket',
'Sneakers',
'Shoes',
'Hoodie',
'Backpack'
}
},
['Throwables'] = {
Type = 'TableMatch',
Contents = {
'Molotov',
'Frag',
}
},
['Ammo'] = {
Type = 'ApartOfName',
Contents = 'Ammo'
},
['Misc'] = {
Type = 'Default',
Contents = {}
},
},
['Entities'] = {
['Players'] = {
Type = 'Custom',
Contents = function(instance)
if instance.Parent == game.Workspace and table.find(game.Players:GetPlayers(), instance.Name) then
return 'Players'
end
end,
CustomOptions = {
boxOutline = false,
textSize = 22,
}
},
['Zombies'] = {
Type = 'Custom',
Contents = function(instance)
if instance.Parent == zombieSpawnDirectory then
return 'Zombies'
end
end
},
}
}
local espDirectories = {
[itemSpawnDirectory.Name] = {
Directory = itemSpawnDirectory,
Exclude = {}
},
[itemCFrameSpawnDirectory.Name] = {
Directory = itemCFrameSpawnDirectory,
Exclude = { 'WorldModel' }
},
[zombieSpawnDirectory.Name] = {
Directory = zombieSpawnDirectory,
Exclude = {}
},
}
local farAwayRenderLoot = { 'Weapons' }
-- // FUNCTIONS
do -- // ESP
function initEsp() -- // SETS UP ALL ESP
local function setupPlayerPseudoPart(plr)
local pseudoPart = Instance.new('Part') ; pseudoPart.Parent = plrTrackerObjects
pseudoPart.Name = plr.Name
pseudoPart.Position = plr:GetAttribute('CharacterPosition')
pseudoPart.Anchored = true
pseudoPart.CanCollide = false
pseudoPart.CanQuery = false
pseudoPart.CanTouch = false
createEspHandler(pseudoPart, 'Players')
plr:GetAttributeChangedSignal('CharacterPosition'):Connect(function()
local pos = plr:GetAttribute('CharacterPosition') + Vector3.new(0,3,0)
pseudoPart.CFrame = CFrame.new(pos) --apparently more performant then .Position manually for frame time.
end)
end
-- // Set up directories
for key, directoryData in espDirectories do
directoryData.Directory.ChildAdded:Connect(function(child)
if table.find(directoryData.Exclude, child.Name) == nil then
createEspHandler(child)
end
end)
for _, ins in directoryData.Directory:GetChildren() do
if table.find(directoryData.Exclude, ins.Name) then continue end
createEspHandler(ins)
end
warn(key, ' Set up...')
end
-- // Players
for _, plr in game:GetService('Players'):GetPlayers() do
if plr.Name == game:GetService('Players').LocalPlayer.Name then continue end
setupPlayerPseudoPart(plr)
end
connections['pxAdded'] = game:GetService('Players').PlayerAdded:Connect(function(plr)
if plr.Name == game.Players.LocalPlayer.Name then return end
setupPlayerPseudoPart(plr)
end)
connections['pxLeft'] = game:GetService('Players').PlayerRemoving:Connect(function(plr)
if plrTrackerObjects[plr.Name] then
plrTrackerObjects[plr.Name]:Destroy()
end
end)
end
function getAssociation(instance)
local itemName = instance.Name:gsub("%.item", "")
local selectedAssocation = nil
local customOptions = {}
for categoryKey, mainInfo in espData do
for key, itemInfo in mainInfo do
if itemInfo['Type'] == 'Custom' then
local result = itemInfo['Contents'](instance)
if result ~= nil then
selectedAssocation = result
customOptions = itemInfo['CustomOptions'] or {}
end
elseif itemInfo['Type'] == 'Instance' then
for _, ins in itemInfo['Contents']:GetChildren() do
if ins.Name == itemName then selectedAssocation = key end
end
elseif itemInfo['Type'] == 'Table' then
for _, ins in itemInfo['Contents'] do
if string.lower(ins) == string.lower(itemName) then selectedAssocation = key end
end
elseif itemInfo['Type'] == 'TableMatch' then
for _, ins in itemInfo['Contents'] do
if string.find(itemName, ins) ~= nil then selectedAssocation = key end
end
elseif itemInfo['Type'] == 'ApartOfName' then
if string.find(itemName, itemInfo['Contents'], 1, false) ~= nil then selectedAssocation = key end
end
end
end
if selectedAssocation == nil then selectedAssocation = 'Misc' end
return {[1] = selectedAssocation, [2] = customOptions}
end
function createEspHandler(instance, association)
if instance:IsA('Folder') then return end
local itemName = instance.Name:gsub("%.item", "")
local itemInstance = nil
local primaryPart = nil
local associationInfo = getAssociation(instance)
local customOptions = associationInfo[2] or {}
association = association or associationInfo[1]
if instance.Parent == itemCFrameSpawnDirectory then if table.find(farAwayRenderLoot, association) == nil then return end end
if instance:IsA('Model') then
primaryPart = instance.PrimaryPart
else
primaryPart = instance
end
itemInstance = primaryPart
--itemInstance.Name = itemName
-- // edge cases
if instance.Parent == zombieSpawnDirectory then
itemInstance.Name = 'Zombie'
end
local isEnabled = nil
if Toggles['EspEnabled'].Value == false then
isEnabled = false
else
isEnabled = Toggles[association].Value
end
local newEspObject = espLibrary.AddInstance(itemInstance, {
enabled = isEnabled,
text = itemName .. ' | {distance}', -- Placeholders: {name}, {distance}, {position}
textColor = { Options[association..'Color'].Value, 1 },
textOutline = true,
textOutlineColor = Color3.new(),
textSize = 12,
textFont = 2,
limitDistance = true,
maxDistance = 3000,
})
table.insert(espObjects[association], newEspObject)
if customOptions then
for key, value in customOptions do
print(key,value)
customEspValueUpdate(association, key, value)
end
end
instance.Destroying:Connect(function()
if instance.Parent == nil or instance == nil then
table.remove(espObjects[association], table.find(espObjects[association], newEspObject))
newEspObject:Destruct()
end
end)
end
function customEspValueUpdate(category, customOption, customValue)
if espObjects[category] == nil then warn(`{category} doesnt exist.`) ; return end
if customOption ~= nil then
for _, espObject in espObjects[category] do
espObject.options[customOption] = customValue
end
end
end
function toggleCategoryEsp(category, bool)
if espObjects[category] == nil then warn(`{category} doesnt exist.`) ; return end
for _, espObject in espObjects[category] do
espObject.options.enabled = bool
end
end
function toggleEsp(bool)
for categoryKey, espObjHolder in espObjects do
if Toggles[categoryKey] == nil then continue end
if Toggles[categoryKey].Value == false and bool == true then continue end
toggleCategoryEsp(categoryKey, bool)
end
end
end
do -- // PLAYER
function getClosestPlayer()
local closest, closestMag = nil, math.huge
for _, plr in game:GetService('Players'):GetPlayers() do
if plr.Name == player.Name then continue end
local mag = (plr:GetAttribute('CharacterPosition') - player.Character.WorldCharacter.PrimaryPart.Position).Magnitude
if mag < closestMag then
closest = plr
closestMag = mag
end
end
return closest
end
end
do -- MISC INIT
function initEspCache()
for _, data in espData do
for category, lk in data do
if espObjects[category] == nil then
espObjects[category] = {}
end
end
end
end
end
-- // GUI
local repo = 'https://[Log in to view URL]'
local Library = loadstring(game:HttpGet(repo .. 'Library.lua'))()
local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))()
local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))()
local Window = Library:CreateWindow({
Title = 'Aftermath GUI',
Center = true,
AutoShow = true,
})
local Tabs = {
['Main'] = Window:AddTab('Main'),
['ESP'] = Window:AddTab('ESP'),
['ESP Settings'] = Window:AddTab('ESP Settings'),
['UI Settings'] = Window:AddTab('UI Settings')
}
local EspGroupboxes = {}
local EspSettingsGroupboxes = {}
-- // ESP CREATION
Tabs['ESP Settings']:AddLeftGroupbox('GeneralEspSettings'):AddToggle('EspEnabled', {
Text = 'ESP Toggle',
Default = false,
Tooltip = `Enable and disable all ESP.`,
Callback = function(bool)
toggleEsp(bool)
end
}):AddKeyPicker('EspKeyPicker', {
Default = 'E',
SyncToggleState = true,
Mode = 'Toggle',
Text = 'Enable and disable esp',
NoUI = false,
Callback = function(Value)
toggleEsp(Value)
end,
-- Occurs when the keybind itself is changed, `New` is a KeyCode Enum OR a UserInputType Enum
ChangedCallback = function(New)
end
})
for windowKey, generalData in espData do -- // ESP TAB
EspGroupboxes[windowKey] = Tabs.ESP:AddLeftGroupbox(windowKey)
EspSettingsGroupboxes[windowKey] = Tabs['ESP Settings']:AddLeftGroupbox(windowKey .. ` Distance Settings`)
for itemKey, itemInfo in generalData do
do --// ESP TOGGLES
EspGroupboxes[windowKey]:AddToggle(itemKey, {
Text = itemKey,
Default = false,
Tooltip = `All {itemKey} in the workspace.`,
Callback = function(bool)
toggleCategoryEsp(itemKey, bool)
end
}):AddColorPicker(itemKey..'Color', {
Default = Color3.new(0.419607, 0.788235, 0.529411),
Title = `{itemKey} Color`, -- Optional. Allows you to have a custom color picker title (when you open it)
Transparency = 0, -- Optional. Enables transparency changing for this color picker (leave as nil to disable)
Callback = function(Value)
customEspValueUpdate(itemKey, 'textColor', {Value, 1})
end
})
end
do --// ESP DISTANCES
EspSettingsGroupboxes[windowKey]:AddSlider(itemKey..'Slider', {
Text = itemKey,
Default = 3000,
Min = 50,
Max = 10000,
Rounding = 1,
Compact = true,
Callback = function(Value)
customEspValueUpdate(itemKey, 'maxDistance', Value)
end
})
end
end
end
-- // MAIN UI
-- // UI OTHER
Library:OnUnload(function()
print('Unloaded!')
for _, part in plrTrackerObjects:GetChildren() do
part:Destroy()
end
for k, tbl in espObjects do
for _, espObject in tbl do
espObject:Destruct()
end
end
Library.Unloaded = true
end)
local MenuGroup = Tabs['UI Settings']:AddLeftGroupbox('Menu')
MenuGroup:AddButton('Unload', function() Library:Unload() end)
MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = 'LeftAlt', NoUI = true, Text = 'Menu keybind' })
-- SaveManager (Allows you to have a configuration system)
-- ThemeManager (Allows you to have a menu theme system)
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({ 'MenuKeybind' })
ThemeManager:SetFolder('linoria_lib')
SaveManager:SetFolder('linoria_lib/Aftermath')
SaveManager:BuildConfigSection(Tabs['UI Settings'])
ThemeManager:ApplyToTab(Tabs['UI Settings'])
SaveManager:LoadAutoloadConfig()
Library.ToggleKeybind = Options.MenuKeybind -- Allows you to have a custom keybind for the menu
-- // MAIN
errorLogSpoof()
initEspCache()
initEsp()
end)
main:CreateButton("Infinite yield", "Scripts", function()
loadstring(game:HttpGet("https://[Log in to view URL]", true))()
end)
main:CreateButton("Kutz Cheat sheet (Most op gui ever)", "Scripts", function()
loadstring(game:HttpGet("https://[Log in to view URL]",true))()
end)
main:CreateButton("Fling gui OP flinger", "Scripts", function()
loadstring(game:HttpGet("https://[Log in to view URL]", true))()
end)
OrionLib:MakeNotification({
Name = "Gui loaded",
Content = "Made by team qui3tkidz",
Image = "rbxassetid://4483345998",
Time = 5
})
To embed this project on your website, copy the following code and paste it into your website's HTML: