--This watermark is used to delete the file if its cached, remove it to make the file persist after vape updates.
local loadstring = function(...)
local res, err = loadstring(...)
if err and vape then
vape:CreateNotification('Vape', 'Failed to load : '..err, 30, 'alert')
end
return res
end
local isfile = isfile or function(file)
local suc, res = pcall(function()
return readfile(file)
end)
return suc and res ~= nil and res ~= ''
end
local function downloadFile(path, func)
if not isfile(path) then
local suc, res = pcall(function()
return game:HttpGet('https://raw.githubusercontent.com/7GrandDadPGN/VapeV4ForRoblox/'..readfile('newvape/profiles/commit.txt')..'/'..select(1, path:gsub('newvape/', '')), true)
end)
if not suc or res == '404: Not Found' then
error(res)
end
if path:find('.lua') then
res = '--This watermark is used to delete the file if its cached, remove it to make the file persist after vape updates.\n'..res
end
writefile(path, res)
end
return (func or readfile)(path)
end
local run = function(func)
func()
end
local queue_on_teleport = queue_on_teleport or function() end
local cloneref = cloneref or function(obj)
return obj
end
local playersService = cloneref(game:GetService('Players'))
local replicatedStorage = cloneref(game:GetService('ReplicatedStorage'))
local runService = cloneref(game:GetService('RunService'))
local inputService = cloneref(game:GetService('UserInputService'))
local tweenService = cloneref(game:GetService('TweenService'))
local lightingService = cloneref(game:GetService('Lighting'))
local marketplaceService = cloneref(game:GetService('MarketplaceService'))
local teleportService = cloneref(game:GetService('TeleportService'))
local httpService = cloneref(game:GetService('HttpService'))
local guiService = cloneref(game:GetService('GuiService'))
local groupService = cloneref(game:GetService('GroupService'))
local textChatService = cloneref(game:GetService('TextChatService'))
local contextService = cloneref(game:GetService('ContextActionService'))
local coreGui = cloneref(game:GetService('CoreGui'))
local isnetworkowner = identifyexecutor and table.find({'AWP', 'Nihon'}, ({identifyexecutor()})[1]) and isnetworkowner or function()
return true
end
local gameCamera = workspace.CurrentCamera or workspace:FindFirstChildWhichIsA('Camera')
local lplr = playersService.LocalPlayer
local assetfunction = getcustomasset
local vape = shared.vape
local tween = vape.Libraries.tween
local targetinfo = vape.Libraries.targetinfo
local getfontsize = vape.Libraries.getfontsize
local getcustomasset = vape.Libraries.getcustomasset
local TargetStrafeVector, SpiderShift, WaypointFolder
local Spider = {Enabled = false}
local Phase = {Enabled = false}
local function addBlur(parent)
local blur = Instance.new('ImageLabel')
blur.Name = 'Blur'
blur.Size = UDim2.new(1, 89, 1, 52)
blur.Position = UDim2.fromOffset(-48, -31)
blur.BackgroundTransparency = 1
blur.Image = getcustomasset('newvape/assets/new/blur.png')
blur.ScaleType = Enum.ScaleType.Slice
blur.SliceCenter = Rect.new(52, 31, 261, 502)
blur.Parent = parent
return blur
end
local function calculateMoveVector(vec)
local c, s
local _, _, _, R00, R01, R02, _, _, R12, _, _, R22 = gameCamera.CFrame:GetComponents()
if R12 < 1 and R12 > -1 then
c = R22
s = R02
else
c = R00
s = -R01 * math.sign(R12)
end
vec = Vector3.new((c * vec.X + s * vec.Z), 0, (c * vec.Z - s * vec.X)) / math.sqrt(c * c + s * s)
return vec.Unit == vec.Unit and vec.Unit or Vector3.zero
end
local function isFriend(plr, recolor)
if vape.Categories.Friends.Options['Use friends'].Enabled then
local friend = table.find(vape.Categories.Friends.ListEnabled, plr.Name) and true
if recolor then
friend = friend and vape.Categories.Friends.Options['Recolor visuals'].Enabled
end
return friend
end
return nil
end
local function isTarget(plr)
return table.find(vape.Categories.Targets.ListEnabled, plr.Name) and true
end
local function canClick()
local mousepos = (inputService:GetMouseLocation() - guiService:GetGuiInset())
for _, v in lplr.PlayerGui:GetGuiObjectsAtPosition(mousepos.X, mousepos.Y) do
local obj = v:FindFirstAncestorOfClass('ScreenGui')
if v.Active and v.Visible and obj and obj.Enabled then
return false
end
end
for _, v in coreGui:GetGuiObjectsAtPosition(mousepos.X, mousepos.Y) do
local obj = v:FindFirstAncestorOfClass('ScreenGui')
if v.Active and v.Visible and obj and obj.Enabled then
return false
end
end
return (not vape.gui.ScaledGui.ClickGui.Visible) and (not inputService:GetFocusedTextBox())
end
local function getTableSize(tab)
local ind = 0
for _ in tab do ind += 1 end
return ind
end
local function getTool()
return lplr.Character and lplr.Character:FindFirstChildWhichIsA('Tool', true) or nil
end
local function notif(...)
return vape:CreateNotification(...)
end
local function removeTags(str)
str = str:gsub('
', '\n')
return (str:gsub('<[^<>]->', ''))
end
local visited, attempted, tpSwitch = {}, {}, false
local cacheExpire, cache = tick()
local function serverHop(pointer, filter)
visited = shared.vapeserverhoplist and shared.vapeserverhoplist:split('/') or {}
if not table.find(visited, game.JobId) then
table.insert(visited, game.JobId)
end
if not pointer then
notif('Vape', 'Searching for an available server.', 2)
end
local suc, httpdata = pcall(function()
return cacheExpire < tick() and game:HttpGet('https://games.roblox.com/v1/games/'..game.PlaceId..'/servers/Public?sortOrder='..(filter == 'Ascending' and 1 or 2)..'&excludeFullGames=true&limit=100'..(pointer and '&cursor='..pointer or '')) or cache
end)
local data = suc and httpService:JSONDecode(httpdata) or nil
if data and data.data then
for _, v in data.data do
if tonumber(v.playing) < playersService.MaxPlayers and not table.find(visited, v.id) and not table.find(attempted, v.id) then
cacheExpire, cache = tick() + 60, httpdata
table.insert(attempted, v.id)
notif('Vape', 'Found! Teleporting.', 5)
teleportService:TeleportToPlaceInstance(game.PlaceId, v.id)
return
end
end
if data.nextPageCursor then
serverHop(data.nextPageCursor, filter)
else
notif('Vape', 'Failed to find an available server.', 5, 'warning')
end
else
notif('Vape', 'Failed to grab servers. ('..(data and data.errors[1].message or 'no data')..')', 5, 'warning')
end
end
vape:Clean(lplr.OnTeleport:Connect(function()
if not tpSwitch then
tpSwitch = true
queue_on_teleport("shared.vapeserverhoplist = '"..table.concat(visited, '/').."'\nshared.vapeserverhopprevious = '"..game.JobId.."'")
end
end))
local frictionTable, oldfrict, entitylib = {}, {}
local function updateVelocity()
if getTableSize(frictionTable) > 0 then
if entitylib.isAlive then
for _, v in entitylib.character.Character:GetChildren() do
if v:IsA('BasePart') and v.Name ~= 'HumanoidRootPart' and not oldfrict[v] then
oldfrict[v] = v.CustomPhysicalProperties or 'none'
v.CustomPhysicalProperties = PhysicalProperties.new(0.0001, 0.2, 0.5, 1, 1)
end
end
end
else
for i, v in oldfrict do
i.CustomPhysicalProperties = v ~= 'none' and v or nil
end
table.clear(oldfrict)
end
end
local function motorMove(target, cf)
local part = Instance.new('Part')
part.Anchored = true
part.Parent = workspace
local motor = Instance.new('Motor6D')
motor.Part0 = target
motor.Part1 = part
motor.C1 = cf
motor.Parent = part
task.delay(0, part.Destroy, part)
end
local hash = loadstring(downloadFile('newvape/libraries/hash.lua'), 'hash')()
local prediction = loadstring(downloadFile('newvape/libraries/prediction.lua'), 'prediction')()
entitylib = loadstring(downloadFile('newvape/libraries/entity.lua'), 'entitylibrary')()
local whitelist = {
alreadychecked = {},
customtags = {},
data = {WhitelistedUsers = {}},
hashes = setmetatable({}, {
__index = function(_, v)
return hash and hash.sha512(v..'SelfReport') or ''
end
}),
hooked = false,
loaded = false,
localprio = 0,
said = {}
}
vape.Libraries.entity = entitylib
vape.Libraries.whitelist = whitelist
vape.Libraries.prediction = prediction
vape.Libraries.hash = hash
vape.Libraries.auraanims = {
Normal = {
{CFrame = CFrame.new(-0.17, -0.14, -0.12) * CFrame.Angles(math.rad(-53), math.rad(50), math.rad(-64)), Time = 0.1},
{CFrame = CFrame.new(-0.55, -0.59, -0.1) * CFrame.Angles(math.rad(-161), math.rad(54), math.rad(-6)), Time = 0.08},
{CFrame = CFrame.new(-0.62, -0.68, -0.07) * CFrame.Angles(math.rad(-167), math.rad(47), math.rad(-1)), Time = 0.03},
{CFrame = CFrame.new(-0.56, -0.86, 0.23) * CFrame.Angles(math.rad(-167), math.rad(49), math.rad(-1)), Time = 0.03}
},
Random = {},
['Horizontal Spin'] = {
{CFrame = CFrame.Angles(math.rad(-10), math.rad(-90), math.rad(-80)), Time = 0.12},
{CFrame = CFrame.Angles(math.rad(-10), math.rad(180), math.rad(-80)), Time = 0.12},
{CFrame = CFrame.Angles(math.rad(-10), math.rad(90), math.rad(-80)), Time = 0.12},
{CFrame = CFrame.Angles(math.rad(-10), 0, math.rad(-80)), Time = 0.12}
},
['Vertical Spin'] = {
{CFrame = CFrame.Angles(math.rad(-90), 0, math.rad(15)), Time = 0.12},
{CFrame = CFrame.Angles(math.rad(180), 0, math.rad(15)), Time = 0.12},
{CFrame = CFrame.Angles(math.rad(90), 0, math.rad(15)), Time = 0.12},
{CFrame = CFrame.Angles(0, 0, math.rad(15)), Time = 0.12}
},
Exhibition = {
{CFrame = CFrame.new(0.69, -0.7, 0.6) * CFrame.Angles(math.rad(-30), math.rad(50), math.rad(-90)), Time = 0.1},
{CFrame = CFrame.new(0.7, -0.71, 0.59) * CFrame.Angles(math.rad(-84), math.rad(50), math.rad(-38)), Time = 0.2}
},
['Exhibition Old'] = {
{CFrame = CFrame.new(0.69, -0.7, 0.6) * CFrame.Angles(math.rad(-30), math.rad(50), math.rad(-90)), Time = 0.15},
{CFrame = CFrame.new(0.69, -0.7, 0.6) * CFrame.Angles(math.rad(-30), math.rad(50), math.rad(-90)), Time = 0.05},
{CFrame = CFrame.new(0.7, -0.71, 0.59) * CFrame.Angles(math.rad(-84), math.rad(50), math.rad(-38)), Time = 0.1},
{CFrame = CFrame.new(0.7, -0.71, 0.59) * CFrame.Angles(math.rad(-84), math.rad(50), math.rad(-38)), Time = 0.05},
{CFrame = CFrame.new(0.63, -0.1, 1.37) * CFrame.Angles(math.rad(-84), math.rad(50), math.rad(-38)), Time = 0.15}
}
}
local SpeedMethods
local SpeedMethodList = {'Velocity'}
SpeedMethods = {
Velocity = function(options, moveDirection)
local root = entitylib.character.RootPart
root.AssemblyLinearVelocity = (moveDirection * options.Value.Value) + Vector3.new(0, root.AssemblyLinearVelocity.Y, 0)
end,
Impulse = function(options, moveDirection)
local root = entitylib.character.RootPart
local diff = ((moveDirection * options.Value.Value) - root.AssemblyLinearVelocity) * Vector3.new(1, 0, 1)
if diff.Magnitude > (moveDirection == Vector3.zero and 10 or 2) then
root:ApplyImpulse(diff * root.AssemblyMass)
end
end,
CFrame = function(options, moveDirection, dt)
local root = entitylib.character.RootPart
local dest = (moveDirection * math.max(options.Value.Value - entitylib.character.Humanoid.WalkSpeed, 0) * dt)
if options.WallCheck.Enabled then
options.rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
options.rayCheck.CollisionGroup = root.CollisionGroup
local ray = workspace:Raycast(root.Position, dest, options.rayCheck)
if ray then
dest = ((ray.Position + ray.Normal) - root.Position)
end
end
root.CFrame += dest
end,
TP = function(options, moveDirection)
if options.TPTiming < tick() then
options.TPTiming = tick() + options.TPFrequency.Value
SpeedMethods.CFrame(options, moveDirection, 1)
end
end,
WalkSpeed = function(options)
if not options.WalkSpeed then options.WalkSpeed = entitylib.character.Humanoid.WalkSpeed end
entitylib.character.Humanoid.WalkSpeed = options.Value.Value
end,
Pulse = function(options, moveDirection)
local root = entitylib.character.RootPart
local dt = math.max(options.Value.Value - entitylib.character.Humanoid.WalkSpeed, 0)
dt = dt * (1 - math.min((tick() % (options.PulseLength.Value + options.PulseDelay.Value)) / options.PulseLength.Value, 1))
root.AssemblyLinearVelocity = (moveDirection * (entitylib.character.Humanoid.WalkSpeed + dt)) + Vector3.new(0, root.AssemblyLinearVelocity.Y, 0)
end
}
for name in SpeedMethods do
if not table.find(SpeedMethodList, name) then
table.insert(SpeedMethodList, name)
end
end
run(function()
entitylib.getUpdateConnections = function(ent)
local hum = ent.Humanoid
return {
hum:GetPropertyChangedSignal('Health'),
hum:GetPropertyChangedSignal('MaxHealth'),
{
Connect = function()
ent.Friend = ent.Player and isFriend(ent.Player) or nil
ent.Target = ent.Player and isTarget(ent.Player) or nil
return {
Disconnect = function() end
}
end
}
}
end
entitylib.targetCheck = function(ent)
if ent.TeamCheck then
return ent:TeamCheck()
end
if ent.NPC then return true end
if isFriend(ent.Player) then return false end
if not select(2, whitelist:get(ent.Player)) then return false end
if vape.Categories.Main.Options['Teams by server'].Enabled then
if not lplr.Team then return true end
if not ent.Player.Team then return true end
if ent.Player.Team ~= lplr.Team then return true end
return #ent.Player.Team:GetPlayers() == #playersService:GetPlayers()
end
return true
end
entitylib.getEntityColor = function(ent)
ent = ent.Player
if not (ent and vape.Categories.Main.Options['Use team color'].Enabled) then return end
if isFriend(ent, true) then
return Color3.fromHSV(vape.Categories.Friends.Options['Friends color'].Hue, vape.Categories.Friends.Options['Friends color'].Sat, vape.Categories.Friends.Options['Friends color'].Value)
end
return tostring(ent.TeamColor) ~= 'White' and ent.TeamColor.Color or nil
end
vape:Clean(function()
entitylib.kill()
entitylib = nil
end)
vape:Clean(vape.Categories.Friends.Update.Event:Connect(function() entitylib.refresh() end))
vape:Clean(vape.Categories.Targets.Update.Event:Connect(function() entitylib.refresh() end))
vape:Clean(entitylib.Events.LocalAdded:Connect(updateVelocity))
vape:Clean(workspace:GetPropertyChangedSignal('CurrentCamera'):Connect(function()
gameCamera = workspace.CurrentCamera or workspace:FindFirstChildWhichIsA('Camera')
end))
end)
run(function()
function whitelist:get(plr)
local plrstr = self.hashes[plr.Name..plr.UserId]
for _, v in self.data.WhitelistedUsers do
if v.hash == plrstr then
return v.level, v.attackable or whitelist.localprio >= v.level, v.tags
end
end
return 0, true
end
function whitelist:isingame()
for _, v in playersService:GetPlayers() do
if self:get(v) ~= 0 then return true end
end
return false
end
function whitelist:tag(plr, text, rich)
local plrtag, newtag = select(3, self:get(plr)) or self.customtags[plr.Name] or {}, ''
if not text then return plrtag end
for _, v in plrtag do
newtag = newtag..(rich and '['..v.text..']' or '['..removeTags(v.text)..']')..' '
end
return newtag
end
function whitelist:getplayer(arg)
if arg == 'default' and self.localprio == 0 then return true end
if arg == 'private' and self.localprio == 1 then return true end
if arg and lplr.Name:lower():sub(1, arg:len()) == arg:lower() then return true end
return false
end
local olduninject
function whitelist:playeradded(v, joined)
if self:get(v) ~= 0 then
if self.alreadychecked[v.UserId] then return end
self.alreadychecked[v.UserId] = true
self:hook()
if self.localprio == 0 then
olduninject = vape.Uninject
vape.Uninject = function()
notif('Vape', 'No escaping the private members :)', 10)
end
if joined then
task.wait(10)
end
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
local oldchannel = textChatService.ChatInputBarConfiguration.TargetTextChannel
local newchannel = cloneref(game:GetService('RobloxReplicatedStorage')).ExperienceChat.WhisperChat:InvokeServer(v.UserId)
if newchannel then
newchannel:SendAsync('helloimusinginhaler')
end
textChatService.ChatInputBarConfiguration.TargetTextChannel = oldchannel
elseif replicatedStorage:FindFirstChild('DefaultChatSystemChatEvents') then
replicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer('/w '..v.Name..' helloimusinginhaler', 'All')
end
end
end
end
function whitelist:process(msg, plr)
if plr == lplr and msg == 'helloimusinginhaler' then return true end
if self.localprio > 0 and not self.said[plr.Name] and msg == 'helloimusinginhaler' and plr ~= lplr then
self.said[plr.Name] = true
notif('Vape', plr.Name..' is using vape!', 60)
self.customtags[plr.Name] = {{
text = 'VAPE USER',
color = Color3.new(1, 1, 0)
}}
local newent = entitylib.getEntity(plr)
if newent then
entitylib.Events.EntityUpdated:Fire(newent)
end
return true
end
if self.localprio < self:get(plr) or plr == lplr then
local args = msg:split(' ')
table.remove(args, 1)
if self:getplayer(args[1]) then
table.remove(args, 1)
for cmd, func in self.commands do
if msg:sub(1, cmd:len() + 1):lower() == ';'..cmd:lower() then
func(args, plr)
return true
end
end
end
end
return false
end
function whitelist:newchat(obj, plr, skip)
obj.Text = self:tag(plr, true, true)..obj.Text
local sub = obj.ContentText:find(': ')
if sub then
if not skip and self:process(obj.ContentText:sub(sub + 3, #obj.ContentText), plr) then
obj.Visible = false
end
end
end
function whitelist:oldchat(func)
local msgtable, oldchat = debug.getupvalue(func, 3)
if typeof(msgtable) == 'table' and msgtable.CurrentChannel then
whitelist.oldchattable = msgtable
end
oldchat = hookfunction(func, function(data, ...)
local plr = playersService:GetPlayerByUserId(data.SpeakerUserId)
if plr then
data.ExtraData.Tags = data.ExtraData.Tags or {}
for _, v in self:tag(plr) do
table.insert(data.ExtraData.Tags, {TagText = v.text, TagColor = v.color})
end
if data.Message and self:process(data.Message, plr) then
data.Message = ''
end
end
return oldchat(data, ...)
end)
vape:Clean(function()
hookfunction(func, oldchat)
end)
end
function whitelist:hook()
if self.hooked then return end
self.hooked = true
local exp = coreGui:FindFirstChild('ExperienceChat')
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
if exp and exp:WaitForChild('appLayout', 5) then
vape:Clean(exp:FindFirstChild('RCTScrollContentView', true).ChildAdded:Connect(function(obj)
local plr = playersService:GetPlayerByUserId(tonumber(obj.Name:split('-')[1]) or 0)
obj = obj:FindFirstChild('TextMessage', true)
if obj and obj:IsA('TextLabel') then
if plr then
self:newchat(obj, plr, true)
obj:GetPropertyChangedSignal('Text'):Wait()
self:newchat(obj, plr)
end
if obj.ContentText:sub(1, 35) == 'You are now privately chatting with' then
obj.Visible = false
end
end
end))
end
elseif replicatedStorage:FindFirstChild('DefaultChatSystemChatEvents') then
pcall(function()
for _, v in getconnections(replicatedStorage.DefaultChatSystemChatEvents.OnNewMessage.OnClientEvent) do
if v.Function and table.find(debug.getconstants(v.Function), 'UpdateMessagePostedInChannel') then
whitelist:oldchat(v.Function)
break
end
end
for _, v in getconnections(replicatedStorage.DefaultChatSystemChatEvents.OnMessageDoneFiltering.OnClientEvent) do
if v.Function and table.find(debug.getconstants(v.Function), 'UpdateMessageFiltered') then
whitelist:oldchat(v.Function)
break
end
end
end)
end
if exp then
local bubblechat = exp:WaitForChild('bubbleChat', 5)
if bubblechat then
vape:Clean(bubblechat.DescendantAdded:Connect(function(newbubble)
if newbubble:IsA('TextLabel') and newbubble.Text:find('helloimusinginhaler') then
newbubble.Parent.Parent.Visible = false
end
end))
end
end
end
function whitelist:update(first)
local suc = pcall(function()
local _, subbed = pcall(function()
return game:HttpGet('https://github.com/7GrandDadPGN/whitelists')
end)
local commit = subbed:find('currentOid')
commit = commit and subbed:sub(commit + 13, commit + 52) or nil
commit = commit and #commit == 40 and commit or 'main'
whitelist.textdata = game:HttpGet('https://raw.githubusercontent.com/7GrandDadPGN/whitelists/'..commit..'/PlayerWhitelist.json', true)
end)
if not suc or not hash or not whitelist.get then return true end
whitelist.loaded = true
if not first or whitelist.textdata ~= whitelist.olddata then
if not first then
whitelist.olddata = isfile('newvape/profiles/whitelist.json') and readfile('newvape/profiles/whitelist.json') or nil
end
local suc, res = pcall(function()
return httpService:JSONDecode(whitelist.textdata)
end)
whitelist.data = suc and type(res) == 'table' and res or whitelist.data
whitelist.localprio = whitelist:get(lplr)
for _, v in whitelist.data.WhitelistedUsers do
if v.tags then
for _, tag in v.tags do
tag.color = Color3.fromRGB(unpack(tag.color))
end
end
end
if not whitelist.connection then
whitelist.connection = playersService.PlayerAdded:Connect(function(v)
whitelist:playeradded(v, true)
end)
vape:Clean(whitelist.connection)
end
for _, v in playersService:GetPlayers() do
whitelist:playeradded(v)
end
if entitylib.Running and vape.Loaded then
entitylib.refresh()
end
if whitelist.textdata ~= whitelist.olddata then
if whitelist.data.Announcement.expiretime > os.time() then
local targets = whitelist.data.Announcement.targets
targets = targets == 'all' and {tostring(lplr.UserId)} or targets:split(',')
if table.find(targets, tostring(lplr.UserId)) then
local hint = Instance.new('Hint')
hint.Text = 'VAPE ANNOUNCEMENT: '..whitelist.data.Announcement.text
hint.Parent = workspace
game:GetService('Debris'):AddItem(hint, 20)
end
end
whitelist.olddata = whitelist.textdata
pcall(function()
writefile('newvape/profiles/whitelist.json', whitelist.textdata)
end)
end
if whitelist.data.KillVape then
vape:Uninject()
return true
end
if whitelist.data.BlacklistedUsers[tostring(lplr.UserId)] then
task.spawn(lplr.kick, lplr, whitelist.data.BlacklistedUsers[tostring(lplr.UserId)])
return true
end
end
end
whitelist.commands = {
byfron = function()
task.spawn(function()
if vape.ThreadFix then
setthreadidentity(8)
end
local UIBlox = getrenv().require(game:GetService('CorePackages').UIBlox)
local Roact = getrenv().require(game:GetService('CorePackages').Roact)
UIBlox.init(getrenv().require(game:GetService('CorePackages').Workspace.Packages.RobloxAppUIBloxConfig))
local auth = getrenv().require(coreGui.RobloxGui.Modules.LuaApp.Components.Moderation.ModerationPrompt)
local darktheme = getrenv().require(game:GetService('CorePackages').Workspace.Packages.Style).Themes.DarkTheme
local fonttokens = getrenv().require(game:GetService("CorePackages").Packages._Index.UIBlox.UIBlox.App.Style.Tokens).getTokens('Desktop', 'Dark', true)
local buildersans = getrenv().require(game:GetService('CorePackages').Packages._Index.UIBlox.UIBlox.App.Style.Fonts.FontLoader).new(true, fonttokens):loadFont()
local tLocalization = getrenv().require(game:GetService('CorePackages').Workspace.Packages.RobloxAppLocales).Localization
local localProvider = getrenv().require(game:GetService('CorePackages').Workspace.Packages.Localization).LocalizationProvider
lplr.PlayerGui:ClearAllChildren()
vape.gui.Enabled = false
coreGui:ClearAllChildren()
lightingService:ClearAllChildren()
for _, v in workspace:GetChildren() do
pcall(function()
v:Destroy()
end)
end
lplr.kick(lplr)
guiService:ClearError()
local gui = Instance.new('ScreenGui')
gui.IgnoreGuiInset = true
gui.Parent = coreGui
local frame = Instance.new('ImageLabel')
frame.BorderSizePixel = 0
frame.Size = UDim2.fromScale(1, 1)
frame.BackgroundColor3 = Color3.fromRGB(224, 223, 225)
frame.ScaleType = Enum.ScaleType.Crop
frame.Parent = gui
task.delay(0.3, function()
frame.Image = 'rbxasset://textures/ui/LuaApp/graphic/Auth/GridBackground.jpg'
end)
task.delay(0.6, function()
local modPrompt = Roact.createElement(auth, {
style = {},
screenSize = vape.gui.AbsoluteSize or Vector2.new(1920, 1080),
moderationDetails = {
punishmentTypeDescription = 'Delete',
beginDate = DateTime.fromUnixTimestampMillis(DateTime.now().UnixTimestampMillis - ((60 * math.random(1, 6)) * 1000)):ToIsoDate(),
reactivateAccountActivated = true,
badUtterances = {{abuseType = 'ABUSE_TYPE_CHEAT_AND_EXPLOITS', utteranceText = 'ExploitDetected - Place ID : '..game.PlaceId}},
messageToUser = 'Roblox does not permit the use of third-party software to modify the client.'
},
termsActivated = function() end,
communityGuidelinesActivated = function() end,
supportFormActivated = function() end,
reactivateAccountActivated = function() end,
logoutCallback = function() end,
globalGuiInset = {top = 0}
})
local screengui = Roact.createElement(localProvider, {
localization = tLocalization.new('en-us')
}, {Roact.createElement(UIBlox.Style.Provider, {
style = {
Theme = darktheme,
Font = buildersans
},
}, {modPrompt})})
Roact.mount(screengui, coreGui)
end)
end)
end,
crash = function()
task.spawn(function()
repeat
local part = Instance.new('Part')
part.Size = Vector3.new(1e10, 1e10, 1e10)
part.Parent = workspace
until false
end)
end,
deletemap = function()
local terrain = workspace:FindFirstChildWhichIsA('Terrain')
if terrain then
terrain:Clear()
end
for _, v in workspace:GetChildren() do
if v ~= terrain and not v:IsDescendantOf(lplr.Character) and not v:IsA('Camera') then
v:Destroy()
v:ClearAllChildren()
end
end
end,
framerate = function(args)
if #args < 1 or not setfpscap then return end
setfpscap(tonumber(args[1]) ~= '' and math.clamp(tonumber(args[1]) or 9999, 1, 9999) or 9999)
end,
gravity = function(args)
workspace.Gravity = tonumber(args[1]) or workspace.Gravity
end,
jump = function()
if entitylib.isAlive and entitylib.character.Humanoid.FloorMaterial ~= Enum.Material.Air then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end,
kick = function(args)
task.spawn(function()
lplr:Kick(table.concat(args, ' '))
end)
end,
kill = function()
if entitylib.isAlive then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Dead)
entitylib.character.Humanoid.Health = 0
end
end,
reveal = function()
task.delay(0.1, function()
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
textChatService.ChatInputBarConfiguration.TargetTextChannel:SendAsync('I am using the inhaler client')
else
replicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer('I am using the inhaler client', 'All')
end
end)
end,
shutdown = function()
game:Shutdown()
end,
toggle = function(args)
if #args < 1 then return end
if args[1]:lower() == 'all' then
for i, v in vape.Modules do
if i ~= 'Panic' and i ~= 'ServerHop' and i ~= 'Rejoin' then
v:Toggle()
end
end
else
for i, v in vape.Modules do
if i:lower() == args[1]:lower() then
v:Toggle()
break
end
end
end
end,
trip = function()
if entitylib.isAlive then
if entitylib.character.RootPart.Velocity.Magnitude < 15 then
entitylib.character.RootPart.Velocity = entitylib.character.RootPart.CFrame.LookVector * 15
end
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
end
end,
uninject = function()
if olduninject then
if vape.ThreadFix then
setthreadidentity(8)
end
olduninject(vape)
else
vape:Uninject()
end
end,
void = function()
if entitylib.isAlive then
entitylib.character.RootPart.CFrame += Vector3.new(0, -1000, 0)
end
end
}
task.spawn(function()
repeat
if whitelist:update(whitelist.loaded) then return end
task.wait(10)
until vape.Loaded == nil
end)
vape:Clean(function()
table.clear(whitelist.commands)
table.clear(whitelist.data)
table.clear(whitelist)
end)
end)
entitylib.start()
run(function()
local AimAssist
local Targets
local Part
local FOV
local Speed
local CircleColor
local CircleTransparency
local CircleFilled
local CircleObject
local RightClick
local ShowTarget
local moveConst = Vector2.new(1, 0.77) * math.rad(0.5)
local function wrapAngle(num)
num = num % math.pi
num -= num >= (math.pi / 2) and math.pi or 0
num += num < -(math.pi / 2) and math.pi or 0
return num
end
AimAssist = vape.Categories.Combat:CreateModule({
Name = 'AimAssist',
Function = function(callback)
if CircleObject then
CircleObject.Visible = callback
end
if callback then
local ent
local rightClicked = not RightClick.Enabled or inputService:IsMouseButtonPressed(1)
AimAssist:Clean(runService.RenderStepped:Connect(function(dt)
if CircleObject then
CircleObject.Position = inputService:GetMouseLocation()
end
if rightClicked and not vape.gui.ScaledGui.ClickGui.Visible then
ent = entitylib.EntityMouse({
Range = FOV.Value,
Part = Part.Value,
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Wallcheck = Targets.Walls.Enabled,
Origin = gameCamera.CFrame.Position
})
if ent then
local facing = gameCamera.CFrame.LookVector
local new = (ent[Part.Value].Position - gameCamera.CFrame.Position).Unit
new = new == new and new or Vector3.zero
if ShowTarget.Enabled then
targetinfo.Targets[ent] = tick() + 1
end
if new ~= Vector3.zero then
local diffYaw = wrapAngle(math.atan2(facing.X, facing.Z) - math.atan2(new.X, new.Z))
local diffPitch = math.asin(facing.Y) - math.asin(new.Y)
local angle = Vector2.new(diffYaw, diffPitch) // (moveConst * UserSettings():GetService('UserGameSettings').MouseSensitivity)
angle *= math.min(Speed.Value * dt, 1)
mousemoverel(angle.X, angle.Y)
end
end
end
end))
if RightClick.Enabled then
AimAssist:Clean(inputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
ent = nil
rightClicked = true
end
end))
AimAssist:Clean(inputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
rightClicked = false
end
end))
end
end
end,
Tooltip = 'Smoothly aims to closest valid target'
})
Targets = AimAssist:CreateTargets({Players = true})
Part = AimAssist:CreateDropdown({
Name = 'Part',
List = {'RootPart', 'Head'}
})
FOV = AimAssist:CreateSlider({
Name = 'FOV',
Min = 0,
Max = 1000,
Default = 100,
Function = function(val)
if CircleObject then
CircleObject.Radius = val
end
end
})
Speed = AimAssist:CreateSlider({
Name = 'Speed',
Min = 0,
Max = 30,
Default = 15
})
AimAssist:CreateToggle({
Name = 'Range Circle',
Function = function(callback)
if callback then
CircleObject = Drawing.new('Circle')
CircleObject.Filled = CircleFilled.Enabled
CircleObject.Color = Color3.fromHSV(CircleColor.Hue, CircleColor.Sat, CircleColor.Value)
CircleObject.Position = vape.gui.AbsoluteSize / 2
CircleObject.Radius = FOV.Value
CircleObject.NumSides = 100
CircleObject.Transparency = 1 - CircleTransparency.Value
CircleObject.Visible = AimAssist.Enabled
else
pcall(function()
CircleObject.Visible = false
CircleObject:Remove()
end)
end
CircleColor.Object.Visible = callback
CircleTransparency.Object.Visible = callback
CircleFilled.Object.Visible = callback
end
})
CircleColor = AimAssist:CreateColorSlider({
Name = 'Circle Color',
Function = function(hue, sat, val)
if CircleObject then
CircleObject.Color = Color3.fromHSV(hue, sat, val)
end
end,
Darker = true,
Visible = false
})
CircleTransparency = AimAssist:CreateSlider({
Name = 'Transparency',
Min = 0,
Max = 1,
Decimal = 10,
Default = 0.5,
Function = function(val)
if CircleObject then
CircleObject.Transparency = 1 - val
end
end,
Darker = true,
Visible = false
})
CircleFilled = AimAssist:CreateToggle({
Name = 'Circle Filled',
Function = function(callback)
if CircleObject then
CircleObject.Filled = callback
end
end,
Darker = true,
Visible = false
})
RightClick = AimAssist:CreateToggle({
Name = 'Require right click',
Function = function()
if AimAssist.Enabled then
AimAssist:Toggle()
AimAssist:Toggle()
end
end
})
ShowTarget = AimAssist:CreateToggle({
Name = 'Show target info'
})
end)
run(function()
local AutoClicker
local Mode
local CPS
AutoClicker = vape.Categories.Combat:CreateModule({
Name = 'AutoClicker',
Function = function(callback)
if callback then
repeat
if Mode.Value == 'Tool' then
local tool = getTool()
if tool and inputService:IsMouseButtonPressed(0) then
tool:Activate()
end
else
if mouse1click and (isrbxactive or iswindowactive)() then
if not vape.gui.ScaledGui.ClickGui.Visible then
(Mode.Value == 'Click' and mouse1click or mouse2click)()
end
end
end
task.wait(1 / CPS.GetRandomValue())
until not AutoClicker.Enabled
end
end,
Tooltip = 'Automatically clicks for you'
})
Mode = AutoClicker:CreateDropdown({
Name = 'Mode',
List = {'Tool', 'Click', 'RightClick'},
Tooltip = 'Tool - Automatically uses roblox tools (eg. swords)\nClick - Left click\nRightClick - Right click'
})
CPS = AutoClicker:CreateTwoSlider({
Name = 'CPS',
Min = 1,
Max = 20,
DefaultMin = 8,
DefaultMax = 12
})
end)
run(function()
local Reach
local Targets
local Mode
local Value
local Chance
local Overlay = OverlapParams.new()
Overlay.FilterType = Enum.RaycastFilterType.Include
local modified = {}
Reach = vape.Categories.Combat:CreateModule({
Name = 'Reach',
Function = function(callback)
if callback then
repeat
local tool = getTool()
tool = tool and tool:FindFirstChildWhichIsA('TouchTransmitter', true)
if tool then
if Mode.Value == 'TouchInterest' then
local entites = {}
for _, v in entitylib.List do
if v.Targetable then
if not Targets.Players.Enabled and v.Player then continue end
if not Targets.NPCs.Enabled and v.NPC then continue end
table.insert(entites, v.Character)
end
end
Overlay.FilterDescendantsInstances = entites
local parts = workspace:GetPartBoundsInBox(tool.Parent.CFrame * CFrame.new(0, 0, Value.Value / 2), tool.Parent.Size + Vector3.new(0, 0, Value.Value), Overlay)
for _, v in parts do
if Random.new().NextNumber(Random.new(), 0, 100) > Chance.Value then
task.wait(0.2)
break
end
firetouchinterest(tool.Parent, v, 1)
firetouchinterest(tool.Parent, v, 0)
end
else
if not modified[tool.Parent] then
modified[tool.Parent] = tool.Parent.Size
end
tool.Parent.Size = modified[tool.Parent] + Vector3.new(0, 0, Value.Value)
tool.Parent.Massless = true
end
end
task.wait()
until not Reach.Enabled
else
for i, v in modified do
i.Size = v
i.Massless = false
end
table.clear(modified)
end
end,
Tooltip = 'Extends tool attack reach'
})
Targets = Reach:CreateTargets({Players = true})
Mode = Reach:CreateDropdown({
Name = 'Mode',
List = {'TouchInterest', 'Resize'},
Function = function(val)
Chance.Object.Visible = val == 'TouchInterest'
end,
Tooltip = 'TouchInterest - Reports fake collision events to the server\nResize - Physically modifies the tools size'
})
Value = Reach:CreateSlider({
Name = 'Range',
Min = 0,
Max = 2,
Decimal = 10,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
Chance = Reach:CreateSlider({
Name = 'Chance',
Min = 0,
Max = 100,
Default = 100,
Suffix = '%'
})
end)
local mouseClicked
run(function()
local SilentAim
local Target
local Mode
local Method
local MethodRay
local IgnoredScripts
local Range
local HitChance
local HeadshotChance
local AutoFire
local AutoFireShootDelay
local AutoFireMode
local AutoFirePosition
local Wallbang
local CircleColor
local CircleTransparency
local CircleFilled
local CircleObject
local Projectile
local ProjectileSpeed
local ProjectileGravity
local RaycastWhitelist = RaycastParams.new()
RaycastWhitelist.FilterType = Enum.RaycastFilterType.Include
local ProjectileRaycast = RaycastParams.new()
ProjectileRaycast.RespectCanCollide = true
local fireoffset, rand, delayCheck = CFrame.identity, Random.new(), tick()
local oldnamecall, oldray
local function getTarget(origin, obj)
if rand.NextNumber(rand, 0, 100) > (AutoFire.Enabled and 100 or HitChance.Value) then return end
local targetPart = (rand.NextNumber(rand, 0, 100) < (AutoFire.Enabled and 100 or HeadshotChance.Value)) and 'Head' or 'RootPart'
local ent = entitylib['Entity'..Mode.Value]({
Range = Range.Value,
Wallcheck = Target.Walls.Enabled and (obj or true) or nil,
Part = targetPart,
Origin = origin,
Players = Target.Players.Enabled,
NPCs = Target.NPCs.Enabled
})
if ent then
targetinfo.Targets[ent] = tick() + 1
if Projectile.Enabled then
ProjectileRaycast.FilterDescendantsInstances = {gameCamera, ent.Character}
ProjectileRaycast.CollisionGroup = ent[targetPart].CollisionGroup
end
end
return ent, ent and ent[targetPart], origin
end
local Hooks = {
FindPartOnRayWithIgnoreList = function(args)
local ent, targetPart, origin = getTarget(args[1].Origin, {args[2]})
if not ent then return end
if Wallbang.Enabled then
return {targetPart, targetPart.Position, targetPart.GetClosestPointOnSurface(targetPart, origin), targetPart.Material}
end
args[1] = Ray.new(origin, CFrame.lookAt(origin, targetPart.Position).LookVector * args[1].Direction.Magnitude)
end,
Raycast = function(args)
if MethodRay.Value ~= 'All' and args[3] and args[3].FilterType ~= Enum.RaycastFilterType[MethodRay.Value] then return end
local ent, targetPart, origin = getTarget(args[1])
if not ent then return end
args[2] = CFrame.lookAt(origin, targetPart.Position).LookVector * args[2].Magnitude
if Wallbang.Enabled then
RaycastWhitelist.FilterDescendantsInstances = {targetPart}
args[3] = RaycastWhitelist
end
end,
ScreenPointToRay = function(args)
local ent, targetPart, origin = getTarget(gameCamera.CFrame.Position)
if not ent then return end
local direction = CFrame.lookAt(origin, targetPart.Position)
if Projectile.Enabled then
local calc = prediction.SolveTrajectory(origin, ProjectileSpeed.Value, ProjectileGravity.Value, targetPart.Position, targetPart.Velocity, workspace.Gravity, ent.HipHeight, nil, ProjectileRaycast)
if not calc then return end
direction = CFrame.lookAt(origin, calc)
end
return {Ray.new(origin + (args[3] and direction.LookVector * args[3] or Vector3.zero), direction.LookVector)}
end,
Ray = function(args)
local ent, targetPart, origin = getTarget(args[1])
if not ent then return end
if Projectile.Enabled then
local calc = prediction.SolveTrajectory(origin, ProjectileSpeed.Value, ProjectileGravity.Value, targetPart.Position, targetPart.Velocity, workspace.Gravity, ent.HipHeight, nil, ProjectileRaycast)
if not calc then return end
args[2] = CFrame.lookAt(origin, calc).LookVector * args[2].Magnitude
else
args[2] = CFrame.lookAt(origin, targetPart.Position).LookVector * args[2].Magnitude
end
end
}
Hooks.FindPartOnRayWithWhitelist = Hooks.FindPartOnRayWithIgnoreList
Hooks.FindPartOnRay = Hooks.FindPartOnRayWithIgnoreList
Hooks.ViewportPointToRay = Hooks.ScreenPointToRay
SilentAim = vape.Categories.Combat:CreateModule({
Name = 'SilentAim',
Function = function(callback)
if CircleObject then
CircleObject.Visible = callback and Mode.Value == 'Mouse'
end
if callback then
if Method.Value == 'Ray' then
oldray = hookfunction(Ray.new, function(origin, direction)
if checkcaller() then
return oldray(origin, direction)
end
local calling = getcallingscript()
if calling then
local list = #IgnoredScripts.ListEnabled > 0 and IgnoredScripts.ListEnabled or {'ControlScript', 'ControlModule'}
if table.find(list, tostring(calling)) then
return oldray(origin, direction)
end
end
local args = {origin, direction}
Hooks.Ray(args)
return oldray(unpack(args))
end)
else
oldnamecall = hookmetamethod(game, '__namecall', function(...)
if getnamecallmethod() ~= Method.Value then
return oldnamecall(...)
end
if checkcaller() then
return oldnamecall(...)
end
local calling = getcallingscript()
if calling then
local list = #IgnoredScripts.ListEnabled > 0 and IgnoredScripts.ListEnabled or {'ControlScript', 'ControlModule'}
if table.find(list, tostring(calling)) then
return oldnamecall(...)
end
end
local self, args = ..., {select(2, ...)}
local res = Hooks[Method.Value](args)
if res then
return unpack(res)
end
return oldnamecall(self, unpack(args))
end)
end
repeat
if CircleObject then
CircleObject.Position = inputService:GetMouseLocation()
end
if AutoFire.Enabled then
local origin = AutoFireMode.Value == 'Camera' and gameCamera.CFrame or entitylib.isAlive and entitylib.character.RootPart.CFrame or CFrame.identity
local ent = entitylib['Entity'..Mode.Value]({
Range = Range.Value,
Wallcheck = Target.Walls.Enabled or nil,
Part = 'Head',
Origin = (origin * fireoffset).Position,
Players = Target.Players.Enabled,
NPCs = Target.NPCs.Enabled
})
if mouse1click and (isrbxactive or iswindowactive)() then
if ent and canClick() then
if delayCheck < tick() then
if mouseClicked then
mouse1release()
delayCheck = tick() + AutoFireShootDelay.Value
else
mouse1press()
end
mouseClicked = not mouseClicked
end
else
if mouseClicked then
mouse1release()
end
mouseClicked = false
end
end
end
task.wait()
until not SilentAim.Enabled
else
if oldnamecall then
hookmetamethod(game, '__namecall', oldnamecall)
end
if oldray then
hookfunction(Ray.new, oldray)
end
oldnamecall, oldray = nil, nil
end
end,
ExtraText = function()
return Method.Value:gsub('FindPartOnRay', '')
end,
Tooltip = 'Silently adjusts your aim towards the enemy'
})
Target = SilentAim:CreateTargets({Players = true})
Mode = SilentAim:CreateDropdown({
Name = 'Mode',
List = {'Mouse', 'Position'},
Function = function(val)
if CircleObject then
CircleObject.Visible = SilentAim.Enabled and val == 'Mouse'
end
end,
Tooltip = 'Mouse - Checks for entities near the mouses position\nPosition - Checks for entities near the local character'
})
Method = SilentAim:CreateDropdown({
Name = 'Method',
List = {'FindPartOnRay', 'FindPartOnRayWithIgnoreList', 'FindPartOnRayWithWhitelist', 'ScreenPointToRay', 'ViewportPointToRay', 'Raycast', 'Ray'},
Function = function(val)
if SilentAim.Enabled then
SilentAim:Toggle()
SilentAim:Toggle()
end
MethodRay.Object.Visible = val == 'Raycast'
end,
Tooltip = 'FindPartOnRay* - Deprecated methods of raycasting used in old games\nRaycast - The modern raycast method\nPointToRay - Method to generate a ray from screen coords\nRay - Hooking Ray.new'
})
MethodRay = SilentAim:CreateDropdown({
Name = 'Raycast Type',
List = {'All', 'Exclude', 'Include'},
Darker = true,
Visible = false
})
IgnoredScripts = SilentAim:CreateTextList({Name = 'Ignored Scripts'})
Range = SilentAim:CreateSlider({
Name = 'Range',
Min = 1,
Max = 1000,
Default = 150,
Function = function(val)
if CircleObject then
CircleObject.Radius = val
end
end,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
HitChance = SilentAim:CreateSlider({
Name = 'Hit Chance',
Min = 0,
Max = 100,
Default = 85,
Suffix = '%'
})
HeadshotChance = SilentAim:CreateSlider({
Name = 'Headshot Chance',
Min = 0,
Max = 100,
Default = 65,
Suffix = '%'
})
AutoFire = SilentAim:CreateToggle({
Name = 'AutoFire',
Function = function(callback)
AutoFireShootDelay.Object.Visible = callback
AutoFireMode.Object.Visible = callback
AutoFirePosition.Object.Visible = callback
end
})
AutoFireShootDelay = SilentAim:CreateSlider({
Name = 'Next Shot Delay',
Min = 0,
Max = 1,
Decimal = 100,
Visible = false,
Darker = true,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
AutoFireMode = SilentAim:CreateDropdown({
Name = 'Origin',
List = {'RootPart', 'Camera'},
Visible = false,
Darker = true,
Tooltip = 'Determines the position to check for before shooting'
})
AutoFirePosition = SilentAim:CreateTextBox({
Name = 'Offset',
Function = function()
local suc, res = pcall(function()
return CFrame.new(unpack(AutoFirePosition.Value:split(',')))
end)
if suc then fireoffset = res end
end,
Default = '0, 0, 0',
Visible = false,
Darker = true
})
Wallbang = SilentAim:CreateToggle({Name = 'Wallbang'})
SilentAim:CreateToggle({
Name = 'Range Circle',
Function = function(callback)
if callback then
CircleObject = Drawing.new('Circle')
CircleObject.Filled = CircleFilled.Enabled
CircleObject.Color = Color3.fromHSV(CircleColor.Hue, CircleColor.Sat, CircleColor.Value)
CircleObject.Position = vape.gui.AbsoluteSize / 2
CircleObject.Radius = Range.Value
CircleObject.NumSides = 100
CircleObject.Transparency = 1 - CircleTransparency.Value
CircleObject.Visible = SilentAim.Enabled and Mode.Value == 'Mouse'
else
pcall(function()
CircleObject.Visible = false
CircleObject:Remove()
end)
end
CircleColor.Object.Visible = callback
CircleTransparency.Object.Visible = callback
CircleFilled.Object.Visible = callback
end
})
CircleColor = SilentAim:CreateColorSlider({
Name = 'Circle Color',
Function = function(hue, sat, val)
if CircleObject then
CircleObject.Color = Color3.fromHSV(hue, sat, val)
end
end,
Darker = true,
Visible = false
})
CircleTransparency = SilentAim:CreateSlider({
Name = 'Transparency',
Min = 0,
Max = 1,
Decimal = 10,
Default = 0.5,
Function = function(val)
if CircleObject then
CircleObject.Transparency = 1 - val
end
end,
Darker = true,
Visible = false
})
CircleFilled = SilentAim:CreateToggle({
Name = 'Circle Filled',
Function = function(callback)
if CircleObject then
CircleObject.Filled = callback
end
end,
Darker = true,
Visible = false
})
Projectile = SilentAim:CreateToggle({
Name = 'Projectile',
Function = function(callback)
ProjectileSpeed.Object.Visible = callback
ProjectileGravity.Object.Visible = callback
end
})
ProjectileSpeed = SilentAim:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 1000,
Default = 1000,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
ProjectileGravity = SilentAim:CreateSlider({
Name = 'Gravity',
Min = 0,
Max = 192.6,
Default = 192.6,
Darker = true,
Visible = false
})
end)
run(function()
local TriggerBot
local Targets
local ShootDelay
local Distance
local rayCheck, delayCheck = RaycastParams.new(), tick()
local function getTriggerBotTarget()
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
local ray = workspace:Raycast(gameCamera.CFrame.Position, gameCamera.CFrame.LookVector * Distance.Value, rayCheck)
if ray and ray.Instance then
for _, v in entitylib.List do
if v.Targetable and v.Character and (Targets.Players.Enabled and v.Player or Targets.NPCs.Enabled and v.NPC) then
if ray.Instance:IsDescendantOf(v.Character) then
return entitylib.isVulnerable(v) and v
end
end
end
end
end
TriggerBot = vape.Categories.Combat:CreateModule({
Name = 'TriggerBot',
Function = function(callback)
if callback then
repeat
if mouse1click and (isrbxactive or iswindowactive)() then
if getTriggerBotTarget() and canClick() then
if delayCheck < tick() then
if mouseClicked then
mouse1release()
delayCheck = tick() + ShootDelay.Value
else
mouse1press()
end
mouseClicked = not mouseClicked
end
else
if mouseClicked then
mouse1release()
end
mouseClicked = false
end
end
task.wait()
until not TriggerBot.Enabled
else
if mouse1click and (isrbxactive or iswindowactive)() then
if mouseClicked then
mouse1release()
end
end
mouseClicked = false
end
end,
Tooltip = 'Shoots people that enter your crosshair'
})
Targets = TriggerBot:CreateTargets({
Players = true,
NPCs = true
})
ShootDelay = TriggerBot:CreateSlider({
Name = 'Next Shot Delay',
Min = 0,
Max = 1,
Decimal = 100,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end,
Tooltip = 'The delay set after shooting a target'
})
Distance = TriggerBot:CreateSlider({
Name = 'Distance',
Min = 0,
Max = 1000,
Default = 1000,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
local AntiFall
local Method
local Mode
local Material
local Color
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local part
AntiFall = vape.Categories.Blatant:CreateModule({
Name = 'AntiFall',
Function = function(callback)
if callback then
if Method.Value == 'Part' then
local debounce = tick()
part = Instance.new('Part')
part.Size = Vector3.new(10000, 1, 10000)
part.Transparency = 1 - Color.Opacity
part.Material = Enum.Material[Material.Value]
part.Color = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
part.CanCollide = Mode.Value == 'Collide'
part.Anchored = true
part.CanQuery = false
part.Parent = workspace
AntiFall:Clean(part)
AntiFall:Clean(part.Touched:Connect(function(touchedpart)
if touchedpart.Parent == lplr.Character and entitylib.isAlive and debounce < tick() then
local root = entitylib.character.RootPart
debounce = tick() + 0.1
if Mode.Value == 'Velocity' then
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, 100, root.AssemblyLinearVelocity.Z)
elseif Mode.Value == 'Impulse' then
root:ApplyImpulse(Vector3.new(0, (100 - root.AssemblyLinearVelocity.Y), 0) * root.AssemblyMass)
end
end
end))
repeat
if entitylib.isAlive then
local root = entitylib.character.RootPart
rayCheck.FilterDescendantsInstances = {gameCamera, lplr.Character, part}
rayCheck.CollisionGroup = root.CollisionGroup
local ray = workspace:Raycast(root.Position, Vector3.new(0, -1000, 0), rayCheck)
if ray then
part.Position = ray.Position - Vector3.new(0, 15, 0)
end
end
task.wait(0.1)
until not AntiFall.Enabled
else
local lastpos
AntiFall:Clean(runService.PreSimulation:Connect(function()
if entitylib.isAlive then
local root = entitylib.character.RootPart
lastpos = entitylib.character.Humanoid.FloorMaterial ~= Enum.Material.Air and root.Position or lastpos
if (root.Position.Y + (root.Velocity.Y * 0.016)) <= (workspace.FallenPartsDestroyHeight + 10) then
lastpos = lastpos or Vector3.new(root.Position.X, (workspace.FallenPartsDestroyHeight + 20), root.Position.Z)
root.CFrame += (lastpos - root.Position)
root.Velocity *= Vector3.new(1, 0, 1)
end
end
end))
end
end
end,
Tooltip = 'Help\'s you with your Parkinson\'s\nPrevents you from falling into the void.'
})
Method = AntiFall:CreateDropdown({
Name = 'Method',
List = {'Part', 'Classic'},
Function = function(val)
if Mode.Object then
Mode.Object.Visible = val == 'Part'
Material.Object.Visible = val == 'Part'
Color.Object.Visible = val == 'Part'
end
if AntiFall.Enabled then
AntiFall:Toggle()
AntiFall:Toggle()
end
end,
Tooltip = 'Part - Moves a part under you that does various methods to stop you from falling\nClassic - Teleports you out of the void after reaching the part destroy plane'
})
Mode = AntiFall:CreateDropdown({
Name = 'Move Mode',
List = {'Impulse', 'Velocity', 'Collide'},
Darker = true,
Function = function(val)
if part then
part.CanCollide = val == 'Collide'
end
end,
Tooltip = 'Velocity - Launches you upward after touching\nCollide - Allows you to walk on the part'
})
local materials = {'ForceField'}
for _, v in Enum.Material:GetEnumItems() do
if v.Name ~= 'ForceField' then
table.insert(materials, v.Name)
end
end
Material = AntiFall:CreateDropdown({
Name = 'Material',
List = materials,
Darker = true,
Function = function(val)
if part then
part.Material = Enum.Material[val]
end
end
})
Color = AntiFall:CreateColorSlider({
Name = 'Color',
DefaultOpacity = 0.5,
Darker = true,
Function = function(h, s, v, o)
if part then
part.Color = Color3.fromHSV(h, s, v)
part.Transparency = 1 - o
end
end
})
end)
local Fly
local LongJump
run(function()
local Options = {TPTiming = tick()}
local Mode
local FloatMode
local State
local MoveMethod
local Keys
local VerticalValue
local BounceLength
local BounceDelay
local FloatTPGround
local FloatTPAir
local CustomProperties
local WallCheck
local PlatformStanding
local Platform, YLevel, OldYLevel
local w, s, a, d, up, down = 0, 0, 0, 0, 0, 0
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
Options.rayCheck = rayCheck
local Functions
Functions = {
Velocity = function()
entitylib.character.RootPart.Velocity = (entitylib.character.RootPart.Velocity * Vector3.new(1, 0, 1)) + Vector3.new(0, 2.25 + ((up + down) * VerticalValue.Value), 0)
end,
Impulse = function(options, moveDirection)
local root = entitylib.character.RootPart
local diff = (Vector3.new(0, 2.25 + ((up + down) * VerticalValue.Value), 0) - root.AssemblyLinearVelocity) * Vector3.new(0, 1, 0)
if diff.Magnitude > 2 then
root:ApplyImpulse(diff * root.AssemblyMass)
end
end,
CFrame = function(dt)
local root = entitylib.character.RootPart
if not YLevel then
YLevel = root.Position.Y
end
YLevel = YLevel + ((up + down) * VerticalValue.Value * dt)
if WallCheck.Enabled then
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
rayCheck.CollisionGroup = root.CollisionGroup
local ray = workspace:Raycast(root.Position, Vector3.new(0, YLevel - root.Position.Y, 0), rayCheck)
if ray then
YLevel = ray.Position.Y + entitylib.character.HipHeight
end
end
root.Velocity *= Vector3.new(1, 0, 1)
root.CFrame += Vector3.new(0, YLevel - root.Position.Y, 0)
end,
Bounce = function()
Functions.Velocity()
entitylib.character.RootPart.Velocity += Vector3.new(0, ((tick() % BounceDelay.Value) / BounceDelay.Value > 0.5 and 1 or -1) * BounceLength.Value, 0)
end,
Floor = function()
Platform.CFrame = down ~= 0 and CFrame.identity or entitylib.character.RootPart.CFrame + Vector3.new(0, -(entitylib.character.HipHeight + 0.5), 0)
end,
TP = function(dt)
Functions.CFrame(dt)
if tick() % (FloatTPAir.Value + FloatTPGround.Value) > FloatTPAir.Value then
OldYLevel = OldYLevel or YLevel
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
rayCheck.CollisionGroup = entitylib.character.RootPart.CollisionGroup
local ray = workspace:Raycast(entitylib.character.RootPart.Position, Vector3.new(0, -1000, 0), rayCheck)
if ray then
YLevel = ray.Position.Y + entitylib.character.HipHeight
end
else
if OldYLevel then
YLevel = OldYLevel
OldYLevel = nil
end
end
end,
Jump = function(dt)
local root = entitylib.character.RootPart
if not YLevel then
YLevel = root.Position.Y
end
YLevel = YLevel + ((up + down) * VerticalValue.Value * dt)
if root.Position.Y < YLevel then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
}
Fly = vape.Categories.Blatant:CreateModule({
Name = 'Fly',
Function = function(callback)
if Platform then
Platform.Parent = callback and gameCamera or nil
end
frictionTable.Fly = callback and CustomProperties.Enabled or nil
updateVelocity()
if callback then
Fly:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive then
if PlatformStanding.Enabled then
entitylib.character.Humanoid.PlatformStand = true
entitylib.character.RootPart.RotVelocity = Vector3.zero
entitylib.character.RootPart.CFrame = CFrame.lookAlong(entitylib.character.RootPart.CFrame.Position, gameCamera.CFrame.LookVector)
end
if State.Value ~= 'None' then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType[State.Value])
end
SpeedMethods[Mode.Value](Options, TargetStrafeVector or MoveMethod.Value == 'Direct' and calculateMoveVector(Vector3.new(a + d, 0, w + s)) or entitylib.character.Humanoid.MoveDirection, dt)
Functions[FloatMode.Value](dt)
else
YLevel = nil
OldYLevel = nil
end
end))
w, s, a, d = inputService:IsKeyDown(Enum.KeyCode.W) and -1 or 0, inputService:IsKeyDown(Enum.KeyCode.S) and 1 or 0, inputService:IsKeyDown(Enum.KeyCode.A) and -1 or 0, inputService:IsKeyDown(Enum.KeyCode.D) and 1 or 0
up, down = 0, 0
for _, v in {'InputBegan', 'InputEnded'} do
Fly:Clean(inputService[v]:Connect(function(input)
if not inputService:GetFocusedTextBox() then
local divided = Keys.Value:split('/')
if input.KeyCode == Enum.KeyCode.W then
w = v == 'InputBegan' and -1 or 0
elseif input.KeyCode == Enum.KeyCode.S then
s = v == 'InputBegan' and 1 or 0
elseif input.KeyCode == Enum.KeyCode.A then
a = v == 'InputBegan' and -1 or 0
elseif input.KeyCode == Enum.KeyCode.D then
d = v == 'InputBegan' and 1 or 0
elseif input.KeyCode == Enum.KeyCode[divided[1]] then
up = v == 'InputBegan' and 1 or 0
elseif input.KeyCode == Enum.KeyCode[divided[2]] then
down = v == 'InputBegan' and -1 or 0
end
end
end))
end
if inputService.TouchEnabled then
pcall(function()
local jumpButton = lplr.PlayerGui.TouchGui.TouchControlFrame.JumpButton
Fly:Clean(jumpButton:GetPropertyChangedSignal('ImageRectOffset'):Connect(function()
up = jumpButton.ImageRectOffset.X == 146 and 1 or 0
end))
end)
end
else
YLevel, OldYLevel = nil, nil
if entitylib.isAlive and PlatformStanding.Enabled then
entitylib.character.Humanoid.PlatformStand = false
end
end
end,
ExtraText = function()
return Mode.Value
end,
Tooltip = 'Makes you go zoom.'
})
Mode = Fly:CreateDropdown({
Name = 'Speed Mode',
List = SpeedMethodList,
Function = function(val)
WallCheck.Object.Visible = FloatMode.Value == 'CFrame' or FloatMode.Value == 'TP' or val == 'CFrame' or val == 'TP'
Options.TPFrequency.Object.Visible = val == 'TP'
Options.PulseLength.Object.Visible = val == 'Pulse'
Options.PulseDelay.Object.Visible = val == 'Pulse'
if Fly.Enabled then
Fly:Toggle()
Fly:Toggle()
end
end,
Tooltip = 'Velocity - Uses smooth physics based movement\nImpulse - Same as velocity while using forces instead\nCFrame - Directly adjusts the position of the root\nTP - Large teleports within intervals\nPulse - Controllable bursts of speed\nWalkSpeed - The classic mode of speed, usually detected on most games.'
})
FloatMode = Fly:CreateDropdown({
Name = 'Float Mode',
List = {'Velocity', 'Impulse', 'CFrame', 'Bounce', 'Floor', 'Jump', 'TP'},
Function = function(val)
WallCheck.Object.Visible = Mode.Value == 'CFrame' or Mode.Value == 'TP' or val == 'CFrame' or val == 'TP'
BounceLength.Object.Visible = val == 'Bounce'
BounceDelay.Object.Visible = val == 'Bounce'
VerticalValue.Object.Visible = val ~= 'Floor'
FloatTPGround.Object.Visible = val == 'TP'
FloatTPAir.Object.Visible = val == 'TP'
if Platform then
Platform:Destroy()
Platform = nil
end
if val == 'Floor' then
Platform = Instance.new('Part')
Platform.CanQuery = false
Platform.Anchored = true
Platform.Size = Vector3.one
Platform.Transparency = 1
Platform.Parent = Fly.Enabled and gameCamera or nil
end
end,
Tooltip = 'Velocity - Uses smooth physics based movement\nImpulse - Same as velocity while using forces instead\nCFrame - Directly adjusts the position of the root\nTP - Teleports you to the ground within intervals\nFloor - Spawns a part under you\nJump - Presses space after going below a certain Y Level\nBounce - Vertical bouncing motion'
})
local states = {'None'}
for _, v in Enum.HumanoidStateType:GetEnumItems() do
if v.Name ~= 'Dead' and v.Name ~= 'None' then
table.insert(states, v.Name)
end
end
State = Fly:CreateDropdown({
Name = 'Humanoid State',
List = states
})
MoveMethod = Fly:CreateDropdown({
Name = 'Move Mode',
List = {'MoveDirection', 'Direct'},
Tooltip = 'MoveDirection - Uses the games input vector for movement\nDirect - Directly calculate our own input vector'
})
Keys = Fly:CreateDropdown({
Name = 'Keys',
List = {'Space/LeftControl', 'Space/LeftShift', 'E/Q', 'Space/Q', 'ButtonA/ButtonL2'},
Tooltip = 'The key combination for going up & down'
})
Options.Value = Fly:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
VerticalValue = Fly:CreateSlider({
Name = 'Vertical Speed',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
Options.TPFrequency = Fly:CreateSlider({
Name = 'TP Frequency',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
Options.PulseLength = Fly:CreateSlider({
Name = 'Pulse Length',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
Options.PulseDelay = Fly:CreateSlider({
Name = 'Pulse Delay',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
BounceLength = Fly:CreateSlider({
Name = 'Bounce Length',
Min = 0,
Max = 30,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
BounceDelay = Fly:CreateSlider({
Name = 'Bounce Delay',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
FloatTPGround = Fly:CreateSlider({
Name = 'Ground',
Min = 0,
Max = 1,
Decimal = 10,
Default = 0.1,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
FloatTPAir = Fly:CreateSlider({
Name = 'Air',
Min = 0,
Max = 5,
Decimal = 10,
Default = 2,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
WallCheck = Fly:CreateToggle({
Name = 'Wall Check',
Default = true,
Darker = true,
Visible = false
})
Options.WallCheck = WallCheck
PlatformStanding = Fly:CreateToggle({
Name = 'PlatformStand',
Function = function(callback)
if Fly.Enabled then
entitylib.character.Humanoid.PlatformStand = callback
end
end,
Tooltip = 'Forces the character to look infront of the camera'
})
CustomProperties = Fly:CreateToggle({
Name = 'Custom Properties',
Function = function()
if Fly.Enabled then
Fly:Toggle()
Fly:Toggle()
end
end,
Default = true
})
end)
run(function()
local HighJump
local Mode
local Value
local AutoDisable
local function jump()
local state = entitylib.isAlive and entitylib.character.Humanoid:GetState() or nil
if state == Enum.HumanoidStateType.Running or state == Enum.HumanoidStateType.Landed then
local root = entitylib.character.RootPart
if Mode.Value == 'Velocity' then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, Value.Value, root.AssemblyLinearVelocity.Z)
elseif Mode.Value == 'Impulse' then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.delay(0, function()
root:ApplyImpulse(Vector3.new(0, Value.Value - root.AssemblyLinearVelocity.Y, 0) * root.AssemblyMass)
end)
else
local start = math.max(Value.Value - entitylib.character.Humanoid.JumpHeight, 0)
repeat
root.CFrame += Vector3.new(0, start * 0.016, 0)
start = start - (workspace.Gravity * 0.016)
if Mode.Value == 'CFrame' then
task.wait()
end
until start <= 0
end
end
end
HighJump = vape.Categories.Blatant:CreateModule({
Name = 'HighJump',
Function = function(callback)
if callback then
if AutoDisable.Enabled then
jump()
HighJump:Toggle()
else
HighJump:Clean(runService.RenderStepped:Connect(function()
if not inputService:GetFocusedTextBox() and inputService:IsKeyDown(Enum.KeyCode.Space) then
jump()
end
end))
end
end
end,
ExtraText = function()
return Mode.Value
end,
Tooltip = 'Lets you jump higher'
})
Mode = HighJump:CreateDropdown({
Name = 'Mode',
List = {'Impulse', 'Velocity', 'CFrame', 'Instant'},
Tooltip = 'Velocity - Uses smooth movement to boost you upward\nImpulse - Same as velocity while using forces instead\nCFrame - Directly adjusts the position upward\nInstant - Teleports you to the peak of the jump'
})
Value = HighJump:CreateSlider({
Name = 'Velocity',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
AutoDisable = HighJump:CreateToggle({
Name = 'Auto Disable',
Default = true
})
end)
run(function()
local HitBoxes
local Targets
local TargetPart
local Expand
local modified = {}
HitBoxes = vape.Categories.Blatant:CreateModule({
Name = 'HitBoxes',
Function = function(callback)
if callback then
repeat
for _, v in entitylib.List do
if v.Targetable then
if not Targets.Players.Enabled and v.Player then continue end
if not Targets.NPCs.Enabled and v.NPC then continue end
local part = v[TargetPart.Value]
if not modified[part] then
modified[part] = part.Size
end
part.Size = modified[part] + Vector3.new(Expand.Value, Expand.Value, Expand.Value)
end
end
task.wait()
until not HitBoxes.Enabled
else
for i, v in modified do
i.Size = v
end
table.clear(modified)
end
end,
Tooltip = 'Expands entities hitboxes'
})
Targets = HitBoxes:CreateTargets({Players = true})
TargetPart = HitBoxes:CreateDropdown({
Name = 'Part',
List = {'RootPart', 'Head'}
})
Expand = HitBoxes:CreateSlider({
Name = 'Expand amount',
Min = 0,
Max = 2,
Decimal = 10,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
local Invisible
local clone, oldroot, hip, valid
local animtrack
local proper = true
local function doClone()
if entitylib.isAlive and entitylib.character.Humanoid.Health > 0 then
hip = entitylib.character.Humanoid.HipHeight
oldroot = entitylib.character.HumanoidRootPart
if not lplr.Character.Parent then
return false
end
lplr.Character.Parent = game
clone = oldroot:Clone()
clone.Parent = lplr.Character
oldroot.Parent = gameCamera
clone.CFrame = oldroot.CFrame
lplr.Character.PrimaryPart = clone
entitylib.character.HumanoidRootPart = clone
entitylib.character.RootPart = clone
lplr.Character.Parent = workspace
for _, v in lplr.Character:GetDescendants() do
if v:IsA('Weld') or v:IsA('Motor6D') then
if v.Part0 == oldroot then
v.Part0 = clone
end
if v.Part1 == oldroot then
v.Part1 = clone
end
end
end
return true
end
return false
end
local function revertClone()
if not oldroot or not oldroot:IsDescendantOf(workspace) or not entitylib.isAlive then
return false
end
lplr.Character.Parent = game
oldroot.Parent = lplr.Character
lplr.Character.PrimaryPart = oldroot
entitylib.character.HumanoidRootPart = oldroot
entitylib.character.RootPart = oldroot
lplr.Character.Parent = workspace
oldroot.CanCollide = true
for _, v in lplr.Character:GetDescendants() do
if v:IsA('Weld') or v:IsA('Motor6D') then
if v.Part0 == clone then
v.Part0 = oldroot
end
if v.Part1 == clone then
v.Part1 = oldroot
end
end
end
local oldpos = clone.CFrame
if clone then
clone:Destroy()
clone = nil
end
oldroot.CFrame = oldpos
oldroot = nil
entitylib.character.Humanoid.HipHeight = hip or 2
end
local function animationTrickery()
if entitylib.isAlive then
local anim = Instance.new('Animation')
anim.AnimationId = 'http://www.roblox.com/asset/?id=18537363391'
animtrack = entitylib.character.Humanoid.Animator:LoadAnimation(anim)
animtrack.Priority = Enum.AnimationPriority.Action4
animtrack:Play(0, 1, 0)
anim:Destroy()
animtrack.Stopped:Connect(function()
if Invisible.Enabled then
animationTrickery()
end
end)
task.delay(0, function()
animtrack.TimePosition = 0.77
task.delay(1, function()
animtrack:AdjustSpeed(math.huge)
end)
end)
end
end
Invisible = vape.Categories.Blatant:CreateModule({
Name = 'Invisible',
Function = function(callback)
if callback then
if not proper then
notif('Invisible', 'Broken state detected', 3, 'alert')
Invisible:Toggle()
return
end
success = doClone()
if not success then
Invisible:Toggle()
return
end
animationTrickery()
Invisible:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive and oldroot then
local root = entitylib.character.RootPart
local cf = root.CFrame - Vector3.new(0, entitylib.character.Humanoid.HipHeight + (root.Size.Y / 2) - 1, 0)
if not isnetworkowner(oldroot) then
root.CFrame = oldroot.CFrame
root.Velocity = oldroot.Velocity
return
end
oldroot.CFrame = cf * CFrame.Angles(math.rad(180), 0, 0)
oldroot.Velocity = root.Velocity
oldroot.CanCollide = false
end
end))
Invisible:Clean(entitylib.Events.LocalAdded:Connect(function(char)
local animator = char.Humanoid:WaitForChild('Animator', 1)
if animator and Invisible.Enabled then
oldroot = nil
Invisible:Toggle()
Invisible:Toggle()
end
end))
else
if animtrack then
animtrack:Stop()
animtrack:Destroy()
end
if success and clone and oldroot and proper then
proper = true
if oldroot and clone then
revertClone()
end
end
end
end,
Tooltip = 'Turns you invisible.'
})
end)
run(function()
local Killaura
local Targets
local CPS
local SwingRange
local AttackRange
local AngleSlider
local Max
local Mouse
local Lunge
local BoxSwingColor
local BoxAttackColor
local ParticleTexture
local ParticleColor1
local ParticleColor2
local ParticleSize
local Face
local Overlay = OverlapParams.new()
Overlay.FilterType = Enum.RaycastFilterType.Include
local Particles, Boxes, AttackDelay = {}, {}, tick()
local function getAttackData()
if Mouse.Enabled then
if not inputService:IsMouseButtonPressed(0) then return false end
end
local tool = getTool()
return tool and tool:FindFirstChildWhichIsA('TouchTransmitter', true) or nil, tool
end
Killaura = vape.Categories.Blatant:CreateModule({
Name = 'Killaura',
Function = function(callback)
if callback then
repeat
local interest, tool = getAttackData()
local attacked = {}
if interest then
local plrs = entitylib.AllPosition({
Range = SwingRange.Value,
Wallcheck = Targets.Walls.Enabled or nil,
Part = 'RootPart',
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Limit = Max.Value
})
if #plrs > 0 then
local selfpos = entitylib.character.RootPart.Position
local localfacing = entitylib.character.RootPart.CFrame.LookVector * Vector3.new(1, 0, 1)
for _, v in plrs do
local delta = (v.RootPart.Position - selfpos)
local angle = math.acos(localfacing:Dot((delta * Vector3.new(1, 0, 1)).Unit))
if angle > (math.rad(AngleSlider.Value) / 2) then continue end
table.insert(attacked, {
Entity = v,
Check = delta.Magnitude > AttackRange.Value and BoxSwingColor or BoxAttackColor
})
targetinfo.Targets[v] = tick() + 1
if AttackDelay < tick() then
AttackDelay = tick() + (1 / CPS.GetRandomValue())
tool:Activate()
end
if Lunge.Enabled and tool.GripUp.X == 0 then break end
if delta.Magnitude > AttackRange.Value then continue end
Overlay.FilterDescendantsInstances = {v.Character}
for _, part in workspace:GetPartBoundsInBox(v.RootPart.CFrame, Vector3.new(4, 4, 4), Overlay) do
firetouchinterest(interest.Parent, part, 1)
firetouchinterest(interest.Parent, part, 0)
end
end
end
end
for i, v in Boxes do
v.Adornee = attacked[i] and attacked[i].Entity.RootPart or nil
if v.Adornee then
v.Color3 = Color3.fromHSV(attacked[i].Check.Hue, attacked[i].Check.Sat, attacked[i].Check.Value)
v.Transparency = 1 - attacked[i].Check.Opacity
end
end
for i, v in Particles do
v.Position = attacked[i] and attacked[i].Entity.RootPart.Position or Vector3.new(9e9, 9e9, 9e9)
v.Parent = attacked[i] and gameCamera or nil
end
if Face.Enabled and attacked[1] then
local vec = attacked[1].Entity.RootPart.Position * Vector3.new(1, 0, 1)
entitylib.character.RootPart.CFrame = CFrame.lookAt(entitylib.character.RootPart.Position, Vector3.new(vec.X, entitylib.character.RootPart.Position.Y + 0.01, vec.Z))
end
task.wait()
until not Killaura.Enabled
else
for _, v in Boxes do
v.Adornee = nil
end
for _, v in Particles do
v.Parent = nil
end
end
end,
Tooltip = 'Attack players around you\nwithout aiming at them.'
})
Targets = Killaura:CreateTargets({Players = true})
CPS = Killaura:CreateTwoSlider({
Name = 'Attacks per Second',
Min = 1,
Max = 20,
DefaultMin = 12,
DefaultMax = 12
})
SwingRange = Killaura:CreateSlider({
Name = 'Swing range',
Min = 1,
Max = 30,
Default = 13,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
AttackRange = Killaura:CreateSlider({
Name = 'Attack range',
Min = 1,
Max = 30,
Default = 13,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
AngleSlider = Killaura:CreateSlider({
Name = 'Max angle',
Min = 1,
Max = 360,
Default = 90
})
Max = Killaura:CreateSlider({
Name = 'Max targets',
Min = 1,
Max = 10,
Default = 10
})
Mouse = Killaura:CreateToggle({Name = 'Require mouse down'})
Lunge = Killaura:CreateToggle({Name = 'Sword lunge only'})
Killaura:CreateToggle({
Name = 'Show target',
Function = function(callback)
BoxSwingColor.Object.Visible = callback
BoxAttackColor.Object.Visible = callback
if callback then
for i = 1, 10 do
local box = Instance.new('BoxHandleAdornment')
box.Adornee = nil
box.AlwaysOnTop = true
box.Size = Vector3.new(3, 5, 3)
box.CFrame = CFrame.new(0, -0.5, 0)
box.ZIndex = 0
box.Parent = vape.gui
Boxes[i] = box
end
else
for _, v in Boxes do
v:Destroy()
end
table.clear(Boxes)
end
end
})
BoxSwingColor = Killaura:CreateColorSlider({
Name = 'Target Color',
Darker = true,
DefaultHue = 0.6,
DefaultOpacity = 0.5,
Visible = false
})
BoxAttackColor = Killaura:CreateColorSlider({
Name = 'Attack Color',
Darker = true,
DefaultOpacity = 0.5,
Visible = false
})
Killaura:CreateToggle({
Name = 'Target particles',
Function = function(callback)
ParticleTexture.Object.Visible = callback
ParticleColor1.Object.Visible = callback
ParticleColor2.Object.Visible = callback
ParticleSize.Object.Visible = callback
if callback then
for i = 1, 10 do
local part = Instance.new('Part')
part.Size = Vector3.new(2, 4, 2)
part.Anchored = true
part.CanCollide = false
part.Transparency = 1
part.CanQuery = false
part.Parent = Killaura.Enabled and gameCamera or nil
local particles = Instance.new('ParticleEmitter')
particles.Brightness = 1.5
particles.Size = NumberSequence.new(ParticleSize.Value)
particles.Shape = Enum.ParticleEmitterShape.Sphere
particles.Texture = ParticleTexture.Value
particles.Transparency = NumberSequence.new(0)
particles.Lifetime = NumberRange.new(0.4)
particles.Speed = NumberRange.new(16)
particles.Rate = 128
particles.Drag = 16
particles.ShapePartial = 1
particles.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(ParticleColor1.Hue, ParticleColor1.Sat, ParticleColor1.Value)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(ParticleColor2.Hue, ParticleColor2.Sat, ParticleColor2.Value))
})
particles.Parent = part
Particles[i] = part
end
else
for _, v in Particles do
v:Destroy()
end
table.clear(Particles)
end
end
})
ParticleTexture = Killaura:CreateTextBox({
Name = 'Texture',
Default = 'rbxassetid://14736249347',
Function = function()
for _, v in Particles do
v.ParticleEmitter.Texture = ParticleTexture.Value
end
end,
Darker = true,
Visible = false
})
ParticleColor1 = Killaura:CreateColorSlider({
Name = 'Color Begin',
Function = function(hue, sat, val)
for _, v in Particles do
v.ParticleEmitter.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(hue, sat, val)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(ParticleColor2.Hue, ParticleColor2.Sat, ParticleColor2.Value))
})
end
end,
Darker = true,
Visible = false
})
ParticleColor2 = Killaura:CreateColorSlider({
Name = 'Color End',
Function = function(hue, sat, val)
for _, v in Particles do
v.ParticleEmitter.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(ParticleColor1.Hue, ParticleColor1.Sat, ParticleColor1.Value)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(hue, sat, val))
})
end
end,
Darker = true,
Visible = false
})
ParticleSize = Killaura:CreateSlider({
Name = 'Size',
Min = 0,
Max = 1,
Default = 0.2,
Decimal = 100,
Function = function(val)
for _, v in Particles do
v.ParticleEmitter.Size = NumberSequence.new(val)
end
end,
Darker = true,
Visible = false
})
Face = Killaura:CreateToggle({Name = 'Face target'})
end)
run(function()
local Mode
local Value
local AutoDisable
LongJump = vape.Categories.Blatant:CreateModule({
Name = 'LongJump',
Function = function(callback)
if callback then
local exempt = tick() + 0.1
LongJump:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive then
if entitylib.character.Humanoid.FloorMaterial ~= Enum.Material.Air then
if exempt < tick() and AutoDisable.Enabled then
if LongJump.Enabled then
LongJump:Toggle()
end
else
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
local root = entitylib.character.RootPart
local dir = entitylib.character.Humanoid.MoveDirection * Value.Value
if Mode.Value == 'Velocity' then
root.AssemblyLinearVelocity = dir + Vector3.new(0, root.AssemblyLinearVelocity.Y, 0)
elseif Mode.Value == 'Impulse' then
local diff = (dir - root.AssemblyLinearVelocity) * Vector3.new(1, 0, 1)
if diff.Magnitude > (dir == Vector3.zero and 10 or 2) then
root:ApplyImpulse(diff * root.AssemblyMass)
end
else
root.CFrame += dir * dt
end
end
end))
end
end,
ExtraText = function()
return Mode.Value
end,
Tooltip = 'Lets you jump farther'
})
Mode = LongJump:CreateDropdown({
Name = 'Mode',
List = {'Velocity', 'Impulse', 'CFrame'},
Tooltip = 'Velocity - Uses smooth physics based movement\nImpulse - Same as velocity while using forces instead\nCFrame - Directly adjusts the position of the root'
})
Value = LongJump:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
AutoDisable = LongJump:CreateToggle({
Name = 'Auto Disable',
Default = true
})
end)
run(function()
local MouseTP
local Mode
local MovementMode
local Length
local Delay
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local function getWaypointInMouse()
local returned, distance, mouseLocation = nil, math.huge, inputService:GetMouseLocation()
for _, v in WaypointFolder:GetChildren() do
local position, vis = gameCamera:WorldToViewportPoint(v.StudsOffsetWorldSpace)
if not vis then continue end
local mag = (mouseLocation - Vector2.new(position.x, position.y)).Magnitude
if mag < distance then
returned, distance = v, mag
end
end
return returned
end
MouseTP = vape.Categories.Blatant:CreateModule({
Name = 'MouseTP',
Function = function(callback)
if callback then
local position
if Mode.Value == 'Mouse' then
local ray = cloneref(lplr:GetMouse()).UnitRay
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
ray = workspace:Raycast(ray.Origin, ray.Direction * 10000, rayCheck)
position = ray and ray.Position + Vector3.new(0, entitylib.character.HipHeight or 2, 0)
elseif Mode.Value == 'Waypoint' then
local waypoint = getWaypointInMouse()
position = waypoint and waypoint.StudsOffsetWorldSpace
else
local ent = entitylib.EntityMouse({
Range = math.huge,
Part = 'RootPart',
Players = true
})
position = ent and ent.RootPart.Position
end
if not position then
notif('MouseTP', 'No position found.', 5)
MouseTP:Toggle()
return
end
if MovementMode.Value ~= 'Lerp' then
MouseTP:Toggle()
if entitylib.isAlive then
if MovementMode.Value == 'Motor' then
motorMove(entitylib.character.RootPart, CFrame.lookAlong(position, entitylib.character.RootPart.CFrame.LookVector))
else
entitylib.character.RootPart.CFrame = CFrame.lookAlong(position, entitylib.character.RootPart.CFrame.LookVector)
end
end
else
MouseTP:Clean(runService.Heartbeat:Connect(function()
if entitylib.isAlive then
entitylib.character.RootPart.Velocity = Vector3.zero
end
end))
repeat
if entitylib.isAlive then
local direction = CFrame.lookAt(entitylib.character.RootPart.Position, position).LookVector * math.min((entitylib.character.RootPart.Position - position).Magnitude, Length.Value)
entitylib.character.RootPart.CFrame += direction
if (entitylib.character.RootPart.Position - position).Magnitude < 3 and MouseTP.Enabled then
MouseTP:Toggle()
end
elseif MouseTP.Enabled then
MouseTP:Toggle()
notif('MouseTP', 'Character missing', 5, 'warning')
end
task.wait(Delay.Value)
until not MouseTP.Enabled
end
end
end,
Tooltip = 'Teleports to a selected position.'
})
Mode = MouseTP:CreateDropdown({
Name = 'Mode',
List = {'Mouse', 'Player', 'Waypoint'}
})
MovementMode = MouseTP:CreateDropdown({
Name = 'Movement',
List = {'CFrame', 'Motor', 'Lerp'},
Function = function(val)
Length.Object.Visible = val == 'Lerp'
Delay.Object.Visible = val == 'Lerp'
end
})
Length = MouseTP:CreateSlider({
Name = 'Length',
Min = 0,
Max = 150,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
Delay = MouseTP:CreateSlider({
Name = 'Delay',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
end)
run(function()
local Mode
local StudLimit = {Object = {}}
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local overlapCheck = OverlapParams.new()
overlapCheck.MaxParts = 9e9
local modified, fflag = {}
local teleported
local function grabClosestNormal(ray)
local partCF, mag, closest = ray.Instance.CFrame, 0, Enum.NormalId.Top
for _, normal in Enum.NormalId:GetEnumItems() do
local dot = partCF:VectorToWorldSpace(Vector3.fromNormalId(normal)):Dot(ray.Normal)
if dot > mag then
mag, closest = dot, normal
end
end
return Vector3.fromNormalId(closest).X ~= 0 and 'X' or 'Z'
end
local Functions = {
Part = function()
local chars = {gameCamera, lplr.Character}
for _, v in entitylib.List do
table.insert(chars, v.Character)
end
overlapCheck.FilterDescendantsInstances = chars
local parts = workspace:GetPartBoundsInBox(entitylib.character.RootPart.CFrame + Vector3.new(0, 1, 0), entitylib.character.RootPart.Size + Vector3.new(1, entitylib.character.HipHeight, 1), overlapCheck)
for _, part in parts do
if part.CanCollide and (not Spider.Enabled or SpiderShift) then
modified[part] = true
part.CanCollide = false
end
end
for part in modified do
if not table.find(parts, part) then
modified[part] = nil
part.CanCollide = true
end
end
end,
Character = function()
for _, part in lplr.Character:GetDescendants() do
if part:IsA('BasePart') and part.CanCollide and (not Spider.Enabled or SpiderShift) then
modified[part] = true
part.CanCollide = Spider.Enabled and not SpiderShift
end
end
end,
CFrame = function()
local chars = {gameCamera, lplr.Character}
for _, v in entitylib.List do
table.insert(chars, v.Character)
end
rayCheck.FilterDescendantsInstances = chars
overlapCheck.FilterDescendantsInstances = chars
local ray = workspace:Raycast(entitylib.character.Head.CFrame.Position, entitylib.character.Humanoid.MoveDirection * 1.1, rayCheck)
if ray and (not Spider.Enabled or SpiderShift) then
local phaseDirection = grabClosestNormal(ray)
if ray.Instance.Size[phaseDirection] <= StudLimit.Value then
local root = entitylib.character.RootPart
local dest = root.CFrame + (ray.Normal * (-(ray.Instance.Size[phaseDirection]) - (root.Size.X / 1.5)))
if #workspace:GetPartBoundsInBox(dest, Vector3.one, overlapCheck) <= 0 then
if Mode.Value == 'Motor' then
motorMove(root, dest)
else
root.CFrame = dest
end
end
end
end
end,
FFlag = function()
if teleported then return end
setfflag('AssemblyExtentsExpansionStudHundredth', '-10000')
fflag = true
end
}
Functions.Motor = Functions.CFrame
Phase = vape.Categories.Blatant:CreateModule({
Name = 'Phase',
Function = function(callback)
if callback then
Phase:Clean(runService.Stepped:Connect(function()
if entitylib.isAlive then
Functions[Mode.Value]()
end
end))
if Mode.Value == 'FFlag' then
Phase:Clean(lplr.OnTeleport:Connect(function()
teleported = true
setfflag('AssemblyExtentsExpansionStudHundredth', '30')
end))
end
else
if fflag then
setfflag('AssemblyExtentsExpansionStudHundredth', '30')
end
for part in modified do
part.CanCollide = true
end
table.clear(modified)
fflag = nil
end
end,
Tooltip = 'Lets you Phase/Clip through walls. (Hold shift to use Phase over spider)'
})
Mode = Phase:CreateDropdown({
Name = 'Mode',
List = {'Part', 'Character', 'CFrame', 'Motor', 'FFlag'},
Function = function(val)
StudLimit.Object.Visible = val == 'CFrame' or val == 'Motor'
if fflag then
setfflag('AssemblyExtentsExpansionStudHundredth', '30')
end
for part in modified do
part.CanCollide = true
end
table.clear(modified)
fflag = nil
end,
Tooltip = 'Part - Modifies parts collision status around you\nCharacter - Modifies the local collision status of the character\nCFrame - Teleports you past parts\nMotor - Same as CFrame with a bypass\nFFlag - Directly adjusts all physics collisions'
})
StudLimit = Phase:CreateSlider({
Name = 'Wall Size',
Min = 1,
Max = 20,
Default = 5,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end,
Darker = true,
Visible = false
})
end)
run(function()
local Speed
local Mode
local Options
local AutoJump
local AutoJumpCustom
local AutoJumpValue
local w, s, a, d = 0, 0, 0, 0
Speed = vape.Categories.Blatant:CreateModule({
Name = 'Speed',
Function = function(callback)
frictionTable.Speed = callback and CustomProperties.Enabled or nil
updateVelocity()
if callback then
Speed:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive and not Fly.Enabled and not LongJump.Enabled then
local state = entitylib.character.Humanoid:GetState()
if state == Enum.HumanoidStateType.Climbing then return end
local movevec = TargetStrafeVector or Options.MoveMethod.Value == 'Direct' and calculateMoveVector(Vector3.new(a + d, 0, w + s)) or entitylib.character.Humanoid.MoveDirection
SpeedMethods[Mode.Value](Options, movevec, dt)
if AutoJump.Enabled and entitylib.character.Humanoid.FloorMaterial ~= Enum.Material.Air and movevec ~= Vector3.zero then
if AutoJumpCustom.Enabled then
local velocity = entitylib.character.RootPart.Velocity * Vector3.new(1, 0, 1)
entitylib.character.RootPart.Velocity = Vector3.new(velocity.X, AutoJumpValue.Value, velocity.Z)
else
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end
end))
w, s, a, d = inputService:IsKeyDown(Enum.KeyCode.W) and -1 or 0, inputService:IsKeyDown(Enum.KeyCode.S) and 1 or 0, inputService:IsKeyDown(Enum.KeyCode.A) and -1 or 0, inputService:IsKeyDown(Enum.KeyCode.D) and 1 or 0
for _, v in {'InputBegan', 'InputEnded'} do
Speed:Clean(inputService[v]:Connect(function(input)
if not inputService:GetFocusedTextBox() then
if input.KeyCode == Enum.KeyCode.W then
w = v == 'InputBegan' and -1 or 0
elseif input.KeyCode == Enum.KeyCode.S then
s = v == 'InputBegan' and 1 or 0
elseif input.KeyCode == Enum.KeyCode.A then
a = v == 'InputBegan' and -1 or 0
elseif input.KeyCode == Enum.KeyCode.D then
d = v == 'InputBegan' and 1 or 0
end
end
end))
end
else
if Options.WalkSpeed and entitylib.isAlive then
entitylib.character.Humanoid.WalkSpeed = Options.WalkSpeed
end
Options.WalkSpeed = nil
end
end,
ExtraText = function()
return Mode.Value
end,
Tooltip = 'Increases your movement with various methods.'
})
Mode = Speed:CreateDropdown({
Name = 'Mode',
List = SpeedMethodList,
Function = function(val)
Options.WallCheck.Object.Visible = val == 'CFrame' or val == 'TP'
Options.TPFrequency.Object.Visible = val == 'TP'
Options.PulseLength.Object.Visible = val == 'Pulse'
Options.PulseDelay.Object.Visible = val == 'Pulse'
if Speed.Enabled then
Speed:Toggle()
Speed:Toggle()
end
end,
Tooltip = 'Velocity - Uses smooth physics based movement\nImpulse - Same as velocity while using forces instead\nCFrame - Directly adjusts the position of the root\nTP - Large teleports within intervals\nPulse - Controllable bursts of speed\nWalkSpeed - The classic mode of speed, usually detected on most games.'
})
Options = {
MoveMethod = Speed:CreateDropdown({
Name = 'Move Mode',
List = {'MoveDirection', 'Direct'},
Tooltip = 'MoveDirection - Uses the games input vector for movement\nDirect - Directly calculate our own input vector'
}),
Value = Speed:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
}),
TPFrequency = Speed:CreateSlider({
Name = 'TP Frequency',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
}),
PulseLength = Speed:CreateSlider({
Name = 'Pulse Length',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
}),
PulseDelay = Speed:CreateSlider({
Name = 'Pulse Delay',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
}),
WallCheck = Speed:CreateToggle({
Name = 'Wall Check',
Default = true,
Darker = true,
Visible = false
}),
TPTiming = tick(),
rayCheck = RaycastParams.new()
}
Options.rayCheck.RespectCanCollide = true
CustomProperties = Speed:CreateToggle({
Name = 'Custom Properties',
Function = function()
if Speed.Enabled then
Speed:Toggle()
Speed:Toggle()
end
end,
Default = true
})
AutoJump = Speed:CreateToggle({
Name = 'AutoJump',
Function = function(callback)
AutoJumpCustom.Object.Visible = callback
end
})
AutoJumpCustom = Speed:CreateToggle({
Name = 'Custom Jump',
Function = function(callback)
AutoJumpValue.Object.Visible = callback
end,
Tooltip = 'Allows you to adjust the jump power',
Darker = true,
Visible = false
})
AutoJumpValue = Speed:CreateSlider({
Name = 'Jump Power',
Min = 1,
Max = 50,
Default = 30,
Darker = true,
Visible = false
})
end)
run(function()
local Mode
local Value
local State
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local Active, Truss
Spider = vape.Categories.Blatant:CreateModule({
Name = 'Spider',
Function = function(callback)
if callback then
if Truss then Truss.Parent = gameCamera end
Spider:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive then
local root = entitylib.character.RootPart
local chars = {gameCamera, lplr.Character, Truss}
for _, v in entitylib.List do
table.insert(chars, v.Character)
end
SpiderShift = inputService:IsKeyDown(Enum.KeyCode.LeftShift)
rayCheck.FilterDescendantsInstances = chars
rayCheck.CollisionGroup = root.CollisionGroup
if Mode.Value ~= 'Part' then
local vec = entitylib.character.Humanoid.MoveDirection * 2.5
local ray = workspace:Raycast(root.Position - Vector3.new(0, entitylib.character.HipHeight - 0.5, 0), vec, rayCheck)
if Active and not ray then
root.Velocity = Vector3.new(root.Velocity.X, 0, root.Velocity.Z)
end
Active = ray
if Active and ray.Normal.Y == 0 then
if not Phase.Enabled or not SpiderShift then
if State.Enabled then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Climbing)
end
root.Velocity *= Vector3.new(1, 0, 1)
if Mode.Value == 'CFrame' then
root.CFrame += Vector3.new(0, Value.Value * dt, 0)
elseif Mode.Value == 'Impulse' then
root:ApplyImpulse(Vector3.new(0, Value.Value, 0) * root.AssemblyMass)
else
root.Velocity += Vector3.new(0, Value.Value, 0)
end
end
end
else
local ray = workspace:Raycast(root.Position - Vector3.new(0, entitylib.character.HipHeight - 0.5, 0), entitylib.character.RootPart.CFrame.LookVector * 2, rayCheck)
if ray and (not Phase.Enabled or not SpiderShift) then
Truss.Position = ray.Position - ray.Normal * 0.9 or Vector3.zero
else
Truss.Position = Vector3.zero
end
end
end
end))
else
if Truss then
Truss.Parent = nil
end
SpiderShift = false
end
end,
Tooltip = 'Lets you climb up walls. (Hold shift to use Phase over spider)'
})
Mode = Spider:CreateDropdown({
Name = 'Mode',
List = {'Velocity', 'Impulse', 'CFrame', 'Part'},
Function = function(val)
Value.Object.Visible = val ~= 'Part'
State.Object.Visible = val ~= 'Part'
if Truss then
Truss:Destroy()
Truss = nil
end
if val == 'Part' then
Truss = Instance.new('TrussPart')
Truss.Size = Vector3.new(2, 2, 2)
Truss.Transparency = 1
Truss.Anchored = true
Truss.Parent = Spider.Enabled and gameCamera or nil
end
end,
Tooltip = 'Velocity - Uses smooth movement to boost you upward\nCFrame - Directly adjusts the position upward\nPart - Positions a climbable part infront of you'
})
Value = Spider:CreateSlider({
Name = 'Speed',
Min = 0,
Max = 100,
Default = 30,
Darker = true,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
State = Spider:CreateToggle({
Name = 'Climb State',
Darker = true
})
end)
run(function()
local SpinBot
local Mode
local XToggle
local YToggle
local ZToggle
local Value
local AngularVelocity
SpinBot = vape.Categories.Blatant:CreateModule({
Name = 'SpinBot',
Function = function(callback)
if callback then
SpinBot:Clean(runService.PreSimulation:Connect(function()
if entitylib.isAlive then
if Mode.Value == 'RotVelocity' then
local originalRotVelocity = entitylib.character.RootPart.RotVelocity
entitylib.character.Humanoid.AutoRotate = false
entitylib.character.RootPart.RotVelocity = Vector3.new(XToggle.Enabled and Value.Value or originalRotVelocity.X, YToggle.Enabled and Value.Value or originalRotVelocity.Y, ZToggle.Enabled and Value.Value or originalRotVelocity.Z)
elseif Mode.Value == 'CFrame' then
local val = math.rad((tick() * (20 * Value.Value)) % 360)
local x, y, z = entitylib.character.RootPart.CFrame:ToOrientation()
entitylib.character.RootPart.CFrame = CFrame.new(entitylib.character.RootPart.Position) * CFrame.Angles(XToggle.Enabled and val or x, YToggle.Enabled and val or y, ZToggle.Enabled and val or z)
elseif AngularVelocity then
AngularVelocity.Parent = entitylib.isAlive and entitylib.character.RootPart
AngularVelocity.MaxTorque = Vector3.new(XToggle.Enabled and math.huge or 0, YToggle.Enabled and math.huge or 0, ZToggle.Enabled and math.huge or 0)
AngularVelocity.AngularVelocity = Vector3.new(Value.Value, Value.Value, Value.Value)
end
end
end))
else
if entitylib.isAlive and Mode.Value == 'RotVelocity' then
entitylib.character.Humanoid.AutoRotate = true
end
if AngularVelocity then
AngularVelocity.Parent = nil
end
end
end,
Tooltip = 'Makes your character spin around in circles (does not work in first person)'
})
Mode = SpinBot:CreateDropdown({
Name = 'Mode',
List = {'CFrame', 'RotVelocity', 'BodyMover'},
Function = function(val)
if AngularVelocity then
AngularVelocity:Destroy()
AngularVelocity = nil
end
AngularVelocity = val == 'BodyMover' and Instance.new('BodyAngularVelocity') or nil
end
})
Value = SpinBot:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 100,
Default = 40
})
XToggle = SpinBot:CreateToggle({Name = 'Spin X'})
YToggle = SpinBot:CreateToggle({
Name = 'Spin Y',
Default = true
})
ZToggle = SpinBot:CreateToggle({Name = 'Spin Z'})
end)
run(function()
local Swim
local terrain = cloneref(workspace:FindFirstChildWhichIsA('Terrain'))
local lastpos = Region3.new(Vector3.zero, Vector3.zero)
Swim = vape.Categories.Blatant:CreateModule({
Name = 'Swim',
Function = function(callback)
if callback then
Swim:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive then
local root = entitylib.character.RootPart
local moving = entitylib.character.Humanoid.MoveDirection ~= Vector3.zero
local rootvelo = root.Velocity
local space = inputService:IsKeyDown(Enum.KeyCode.Space)
if terrain then
local factor = (moving or space) and Vector3.new(6, 6, 6) or Vector3.new(2, 1, 2)
local pos = root.Position - Vector3.new(0, 1, 0)
local newpos = Region3.new(pos - factor, pos + factor):ExpandToGrid(4)
terrain:ReplaceMaterial(lastpos, 4, Enum.Material.Water, Enum.Material.Air)
terrain:FillRegion(newpos, 4, Enum.Material.Water)
lastpos = newpos
end
end
end))
else
if terrain and lastpos then
terrain:ReplaceMaterial(lastpos, 4, Enum.Material.Water, Enum.Material.Air)
end
end
end,
Tooltip = 'Lets you swim midair'
})
end)
run(function()
local TargetStrafe
local Targets
local SearchRange
local StrafeRange
local YFactor
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local module, old
TargetStrafe = vape.Categories.Blatant:CreateModule({
Name = 'TargetStrafe',
Function = function(callback)
if callback then
if not module then
local suc = pcall(function() module = require(lplr.PlayerScripts.PlayerModule).controls end)
if not suc then
module = {}
end
end
old = module.moveFunction
local flymod, ang, oldent = vape.Modules.Fly or {Enabled = false}
module.moveFunction = function(self, vec, face)
local wallcheck = Targets.Walls.Enabled
local ent = not inputService:IsKeyDown(Enum.KeyCode.S) and entitylib.EntityPosition({
Range = SearchRange.Value,
Wallcheck = wallcheck,
Part = 'RootPart',
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled
})
if ent then
local root, targetPos = entitylib.character.RootPart, ent.RootPart.Position
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera, ent.Character}
rayCheck.CollisionGroup = root.CollisionGroup
if flymod.Enabled or workspace:Raycast(targetPos, Vector3.new(0, -70, 0), rayCheck) then
local factor, localPosition = 0, root.Position
if ent ~= oldent then
ang = math.deg(select(2, CFrame.lookAt(targetPos, localPosition):ToEulerAnglesYXZ()))
end
local yFactor = math.abs(localPosition.Y - targetPos.Y) * (YFactor.Value / 100)
local entityPos = Vector3.new(targetPos.X, localPosition.Y, targetPos.Z)
local newPos = entityPos + (CFrame.Angles(0, math.rad(ang), 0).LookVector * (StrafeRange.Value - yFactor))
local startRay, endRay = entityPos, newPos
if not wallcheck and workspace:Raycast(targetPos, (localPosition - targetPos), rayCheck) then
startRay, endRay = entityPos + (CFrame.Angles(0, math.rad(ang), 0).LookVector * (entityPos - localPosition).Magnitude), entityPos
end
local ray = workspace:Blockcast(CFrame.new(startRay), Vector3.new(1, entitylib.character.HipHeight + (root.Size.Y / 2), 1), (endRay - startRay), rayCheck)
if (localPosition - newPos).Magnitude < 3 or ray then
factor = (8 - math.min((localPosition - newPos).Magnitude, 3))
if ray then
newPos = ray.Position + (ray.Normal * 1.5)
factor = (localPosition - newPos).Magnitude > 3 and 0 or factor
end
end
if not flymod.Enabled and not workspace:Raycast(newPos, Vector3.new(0, -70, 0), rayCheck) then
newPos = entityPos
factor = 40
end
ang += factor % 360
vec = ((newPos - localPosition) * Vector3.new(1, 0, 1)).Unit
vec = vec == vec and vec or Vector3.zero
TargetStrafeVector = vec
else
ent = nil
end
end
TargetStrafeVector = ent and vec or nil
oldent = ent
return old(self, vec, face)
end
else
if module and old then
module.moveFunction = old
end
TargetStrafeVector = nil
end
end,
Tooltip = 'Automatically strafes around the opponent'
})
Targets = TargetStrafe:CreateTargets({
Players = true,
Walls = true
})
SearchRange = TargetStrafe:CreateSlider({
Name = 'Search Range',
Min = 1,
Max = 30,
Default = 24,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
StrafeRange = TargetStrafe:CreateSlider({
Name = 'Strafe Range',
Min = 1,
Max = 30,
Default = 18,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
YFactor = TargetStrafe:CreateSlider({
Name = 'Y Factor',
Min = 0,
Max = 100,
Default = 100,
Suffix = '%'
})
end)
run(function()
local Timer
local Value
Timer = vape.Categories.Blatant:CreateModule({
Name = 'Timer',
Function = function(callback)
if callback then
setfflag('SimEnableStepPhysics', 'True')
setfflag('SimEnableStepPhysicsSelective', 'True')
Timer:Clean(runService.RenderStepped:Connect(function(dt)
if Value.Value > 1 then
runService:Pause()
workspace:StepPhysics(dt * (Value.Value - 1), {entitylib.character.RootPart})
runService:Run()
end
end))
end
end,
Tooltip = 'Change the game speed.'
})
Value = Timer:CreateSlider({
Name = 'Value',
Min = 1,
Max = 3,
Decimal = 10
})
end)
run(function()
local Arrows
local Targets
local Color
local Teammates
local Distance
local DistanceLimit
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.gui
local function Added(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
local arrow = Instance.new('ImageLabel')
arrow.Size = UDim2.fromOffset(256, 256)
arrow.Position = UDim2.fromScale(0.5, 0.5)
arrow.AnchorPoint = Vector2.new(0.5, 0.5)
arrow.BackgroundTransparency = 1
arrow.BorderSizePixel = 0
arrow.Visible = false
arrow.Image = getcustomasset('newvape/assets/new/arrowmodule.png')
arrow.ImageColor3 = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
arrow.Parent = Folder
Reference[ent] = arrow
end
local function Removed(ent)
local v = Reference[ent]
if v then
if vape.ThreadFix then
setthreadidentity(8)
end
Reference[ent] = nil
v:Destroy()
end
end
local function ColorFunc(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for ent, EntityArrow in Reference do
EntityArrow.ImageColor3 = entitylib.getEntityColor(ent) or color
end
end
local function Loop()
for ent, arrow in Reference do
if Distance.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
arrow.Visible = false
continue
end
end
local _, rootVis = gameCamera:WorldToScreenPoint(ent.RootPart.Position)
arrow.Visible = not rootVis
if rootVis then continue end
local dir = CFrame.lookAlong(gameCamera.CFrame.Position, gameCamera.CFrame.LookVector * Vector3.new(1, 0, 1)):PointToObjectSpace(ent.RootPart.Position)
arrow.Rotation = math.deg(math.atan2(dir.Z, dir.X))
end
end
Arrows = vape.Categories.Render:CreateModule({
Name = 'Arrows',
Function = function(callback)
if callback then
Arrows:Clean(entitylib.Events.EntityRemoved:Connect(Removed))
for _, v in entitylib.List do
if Reference[v] then Removed(v) end
Added(v)
end
Arrows:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then Removed(ent) end
Added(ent)
end))
Arrows:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
ColorFunc(Color.Hue, Color.Sat, Color.Value)
end))
Arrows:Clean(runService.RenderStepped:Connect(Loop))
else
for i in Reference do
Removed(i)
end
end
end,
Tooltip = 'Draws arrows on screen when entities\nare out of your field of view.'
})
Targets = Arrows:CreateTargets({
Players = true,
Function = function()
if Arrows.Enabled then
Arrows:Toggle()
Arrows:Toggle()
end
end
})
Color = Arrows:CreateColorSlider({
Name = 'Player Color',
Function = function(hue, sat, val)
if Arrows.Enabled then
ColorFunc(hue, sat, val)
end
end,
})
Teammates = Arrows:CreateToggle({
Name = 'Priority Only',
Function = function()
if Arrows.Enabled then
Arrows:Toggle()
Arrows:Toggle()
end
end,
Default = true,
Tooltip = 'Hides teammates & non targetable entities'
})
Distance = Arrows:CreateToggle({
Name = 'Distance Check',
Function = function(callback)
DistanceLimit.Object.Visible = callback
end
})
DistanceLimit = Arrows:CreateTwoSlider({
Name = 'Player Distance',
Min = 0,
Max = 256,
DefaultMin = 0,
DefaultMax = 64,
Darker = true,
Visible = false
})
end)
run(function()
local Chams
local Targets
local Mode
local FillColor
local OutlineColor
local FillTransparency
local OutlineTransparency
local Teammates
local Walls
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.gui
local function Added(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
if Mode.Value == 'Highlight' then
local cham = Instance.new('Highlight')
cham.Adornee = ent.Character
cham.DepthMode = Enum.HighlightDepthMode[Walls.Enabled and 'AlwaysOnTop' or 'Occluded']
cham.FillColor = entitylib.getEntityColor(ent) or Color3.fromHSV(FillColor.Hue, FillColor.Sat, FillColor.Value)
cham.OutlineColor = Color3.fromHSV(OutlineColor.Hue, OutlineColor.Sat, OutlineColor.Value)
cham.FillTransparency = FillTransparency.Value
cham.OutlineTransparency = OutlineTransparency.Value
cham.Parent = Folder
Reference[ent] = cham
else
local chams = {}
for _, v in ent.Character:GetChildren() do
if v:IsA('BasePart') and (ent.NPC or v.Name:find('Arm') or v.Name:find('Leg') or v.Name:find('Hand') or v.Name:find('Feet') or v.Name:find('Torso') or v.Name == 'Head') then
local box = Instance.new(v.Name == 'Head' and 'SphereHandleAdornment' or 'BoxHandleAdornment')
if v.Name == 'Head' then
box.Radius = 0.75
else
box.Size = v.Size
end
box.AlwaysOnTop = Walls.Enabled
box.Adornee = v
box.ZIndex = 0
box.Transparency = FillTransparency.Value
box.Color3 = entitylib.getEntityColor(ent) or Color3.fromHSV(FillColor.Hue, FillColor.Sat, FillColor.Value)
box.Parent = Folder
table.insert(chams, box)
end
end
Reference[ent] = chams
end
end
local function Removed(ent)
if Reference[ent] then
if vape.ThreadFix then
setthreadidentity(8)
end
if type(Reference[ent]) == 'table' then
for _, v in Reference[ent] do
v:Destroy()
end
table.clear(Reference[ent])
else
Reference[ent]:Destroy()
end
Reference[ent] = nil
end
end
Chams = vape.Categories.Render:CreateModule({
Name = 'Chams',
Function = function(callback)
if callback then
Chams:Clean(entitylib.Events.EntityRemoved:Connect(Removed))
Chams:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then
Removed(ent)
end
Added(ent)
end))
Chams:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
for i, v in Reference do
local color = entitylib.getEntityColor(i) or Color3.fromHSV(FillColor.Hue, FillColor.Sat, FillColor.Value)
if type(v) == 'table' then
for _, v2 in v do v2.Color3 = color end
else
v.FillColor = color
end
end
end))
for _, v in entitylib.List do
if Reference[v] then
Removed(v)
end
Added(v)
end
else
for i in Reference do
Removed(i)
end
end
end,
Tooltip = 'Render players through walls'
})
Targets = Chams:CreateTargets({
Players = true,
Function = function()
if Chams.Enabled then
Chams:Toggle()
Chams:Toggle()
end
end
})
Mode = Chams:CreateDropdown({
Name = 'Mode',
List = {'Highlight', 'BoxHandles'},
Function = function(val)
OutlineColor.Object.Visible = val == 'Highlight'
OutlineTransparency.Object.Visible = val == 'Highlight'
if Chams.Enabled then
Chams:Toggle()
Chams:Toggle()
end
end
})
FillColor = Chams:CreateColorSlider({
Name = 'Color',
Function = function(hue, sat, val)
for i, v in Reference do
local color = entitylib.getEntityColor(i) or Color3.fromHSV(hue, sat, val)
if type(v) == 'table' then
for _, v2 in v do v2.Color3 = color end
else
v.FillColor = color
end
end
end
})
OutlineColor = Chams:CreateColorSlider({
Name = 'Outline Color',
DefaultSat = 0,
Function = function(hue, sat, val)
for i, v in Reference do
if type(v) ~= 'table' then
v.OutlineColor = entitylib.getEntityColor(i) or Color3.fromHSV(hue, sat, val)
end
end
end,
Darker = true
})
FillTransparency = Chams:CreateSlider({
Name = 'Transparency',
Min = 0,
Max = 1,
Default = 0.5,
Function = function(val)
for _, v in Reference do
if type(v) == 'table' then
for _, v2 in v do v2.Transparency = val end
else
v.FillTransparency = val
end
end
end,
Decimal = 10
})
OutlineTransparency = Chams:CreateSlider({
Name = 'Outline Transparency',
Min = 0,
Max = 1,
Default = 0.5,
Function = function(val)
for _, v in Reference do
if type(v) ~= 'table' then
v.OutlineTransparency = val
end
end
end,
Decimal = 10,
Darker = true
})
Walls = Chams:CreateToggle({
Name = 'Render Walls',
Function = function(callback)
for _, v in Reference do
if type(v) == 'table' then
for _, v2 in v do
v2.AlwaysOnTop = callback
end
else
v.DepthMode = Enum.HighlightDepthMode[callback and 'AlwaysOnTop' or 'Occluded']
end
end
end,
Default = true
})
Teammates = Chams:CreateToggle({
Name = 'Priority Only',
Function = function()
if Chams.Enabled then
Chams:Toggle()
Chams:Toggle()
end
end,
Default = true,
Tooltip = 'Hides teammates & non targetable entities'
})
end)
run(function()
local ESP
local Targets
local Color
local Method
local BoundingBox
local Filled
local HealthBar
local Name
local DisplayName
local Background
local Teammates
local Distance
local DistanceLimit
local Reference = {}
local methodused
local function ESPWorldToViewport(pos)
local newpos = gameCamera:WorldToViewportPoint(gameCamera.CFrame:pointToWorldSpace(gameCamera.CFrame:PointToObjectSpace(pos)))
return Vector2.new(newpos.X, newpos.Y)
end
local ESPAdded = {
Drawing2D = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
local EntityESP = {}
EntityESP.Main = Drawing.new('Square')
EntityESP.Main.Transparency = BoundingBox.Enabled and 1 or 0
EntityESP.Main.ZIndex = 2
EntityESP.Main.Filled = false
EntityESP.Main.Thickness = 1
EntityESP.Main.Color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
if BoundingBox.Enabled then
EntityESP.Border = Drawing.new('Square')
EntityESP.Border.Transparency = 0.35
EntityESP.Border.ZIndex = 1
EntityESP.Border.Thickness = 1
EntityESP.Border.Filled = false
EntityESP.Border.Color = Color3.new()
EntityESP.Border2 = Drawing.new('Square')
EntityESP.Border2.Transparency = 0.35
EntityESP.Border2.ZIndex = 1
EntityESP.Border2.Thickness = 1
EntityESP.Border2.Filled = Filled.Enabled
EntityESP.Border2.Color = Color3.new()
end
if HealthBar.Enabled then
EntityESP.HealthLine = Drawing.new('Line')
EntityESP.HealthLine.Thickness = 1
EntityESP.HealthLine.ZIndex = 2
EntityESP.HealthLine.Color = Color3.fromHSV(math.clamp(ent.Health / ent.MaxHealth, 0, 1) / 2.5, 0.89, 0.75)
EntityESP.HealthBorder = Drawing.new('Line')
EntityESP.HealthBorder.Thickness = 3
EntityESP.HealthBorder.Transparency = 0.35
EntityESP.HealthBorder.ZIndex = 1
EntityESP.HealthBorder.Color = Color3.new()
end
if Name.Enabled then
if Background.Enabled then
EntityESP.TextBKG = Drawing.new('Square')
EntityESP.TextBKG.Transparency = 0.35
EntityESP.TextBKG.ZIndex = 0
EntityESP.TextBKG.Thickness = 1
EntityESP.TextBKG.Filled = true
EntityESP.TextBKG.Color = Color3.new()
end
EntityESP.Drop = Drawing.new('Text')
EntityESP.Drop.Color = Color3.new()
EntityESP.Drop.Text = ent.Player and whitelist:tag(ent.Player, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
EntityESP.Drop.ZIndex = 1
EntityESP.Drop.Center = true
EntityESP.Drop.Size = 20
EntityESP.Text = Drawing.new('Text')
EntityESP.Text.Text = EntityESP.Drop.Text
EntityESP.Text.ZIndex = 2
EntityESP.Text.Color = EntityESP.Main.Color
EntityESP.Text.Center = true
EntityESP.Text.Size = 20
end
Reference[ent] = EntityESP
end,
Drawing3D = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
local EntityESP = {}
EntityESP.Line1 = Drawing.new('Line')
EntityESP.Line2 = Drawing.new('Line')
EntityESP.Line3 = Drawing.new('Line')
EntityESP.Line4 = Drawing.new('Line')
EntityESP.Line5 = Drawing.new('Line')
EntityESP.Line6 = Drawing.new('Line')
EntityESP.Line7 = Drawing.new('Line')
EntityESP.Line8 = Drawing.new('Line')
EntityESP.Line9 = Drawing.new('Line')
EntityESP.Line10 = Drawing.new('Line')
EntityESP.Line11 = Drawing.new('Line')
EntityESP.Line12 = Drawing.new('Line')
local color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
for _, v in EntityESP do
v.Thickness = 1
v.Color = color
end
Reference[ent] = EntityESP
end,
DrawingSkeleton = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
local EntityESP = {}
EntityESP.Head = Drawing.new('Line')
EntityESP.HeadFacing = Drawing.new('Line')
EntityESP.Torso = Drawing.new('Line')
EntityESP.UpperTorso = Drawing.new('Line')
EntityESP.LowerTorso = Drawing.new('Line')
EntityESP.LeftArm = Drawing.new('Line')
EntityESP.RightArm = Drawing.new('Line')
EntityESP.LeftLeg = Drawing.new('Line')
EntityESP.RightLeg = Drawing.new('Line')
local color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
for _, v in EntityESP do
v.Thickness = 2
v.Color = color
end
Reference[ent] = EntityESP
end
}
local ESPRemoved = {
Drawing2D = function(ent)
local EntityESP = Reference[ent]
if EntityESP then
if vape.ThreadFix then
setthreadidentity(8)
end
Reference[ent] = nil
for _, v in EntityESP do
pcall(function()
v.Visible = false
v:Remove()
end)
end
end
end
}
ESPRemoved.Drawing3D = ESPRemoved.Drawing2D
ESPRemoved.DrawingSkeleton = ESPRemoved.Drawing2D
local ESPUpdated = {
Drawing2D = function(ent)
local EntityESP = Reference[ent]
if EntityESP then
if vape.ThreadFix then
setthreadidentity(8)
end
if EntityESP.HealthLine then
EntityESP.HealthLine.Color = Color3.fromHSV(math.clamp(ent.Health / ent.MaxHealth, 0, 1) / 2.5, 0.89, 0.75)
end
if EntityESP.Text then
EntityESP.Text.Text = ent.Player and whitelist:tag(ent.Player, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
EntityESP.Drop.Text = EntityESP.Text.Text
end
end
end
}
local ColorFunc = {
Drawing2D = function(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for i, v in Reference do
v.Main.Color = entitylib.getEntityColor(i) or color
if v.Text then
v.Text.Color = v.Main.Color
end
end
end,
Drawing3D = function(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for i, v in Reference do
local playercolor = entitylib.getEntityColor(i) or color
for _, v2 in v do
v2.Color = playercolor
end
end
end
}
ColorFunc.DrawingSkeleton = ColorFunc.Drawing3D
local ESPLoop = {
Drawing2D = function()
for ent, EntityESP in Reference do
if Distance.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
for _, obj in EntityESP do
obj.Visible = false
end
continue
end
end
local rootPos, rootVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position)
for _, obj in EntityESP do
obj.Visible = rootVis
end
if not rootVis then continue end
local topPos = gameCamera:WorldToViewportPoint((CFrame.lookAlong(ent.RootPart.Position, gameCamera.CFrame.LookVector) * CFrame.new(2, ent.HipHeight, 0)).p)
local bottomPos = gameCamera:WorldToViewportPoint((CFrame.lookAlong(ent.RootPart.Position, gameCamera.CFrame.LookVector) * CFrame.new(-2, -ent.HipHeight - 1, 0)).p)
local sizex, sizey = topPos.X - bottomPos.X, topPos.Y - bottomPos.Y
local posx, posy = (rootPos.X - sizex / 2), ((rootPos.Y - sizey / 2))
EntityESP.Main.Position = Vector2.new(posx, posy) // 1
EntityESP.Main.Size = Vector2.new(sizex, sizey) // 1
if EntityESP.Border then
EntityESP.Border.Position = Vector2.new(posx - 1, posy + 1) // 1
EntityESP.Border.Size = Vector2.new(sizex + 2, sizey - 2) // 1
EntityESP.Border2.Position = Vector2.new(posx + 1, posy - 1) // 1
EntityESP.Border2.Size = Vector2.new(sizex - 2, sizey + 2) // 1
end
if EntityESP.HealthLine then
local healthposy = sizey * math.clamp(ent.Health / ent.MaxHealth, 0, 1)
EntityESP.HealthLine.Visible = ent.Health > 0
EntityESP.HealthLine.From = Vector2.new(posx - 6, posy + (sizey - (sizey - healthposy))) // 1
EntityESP.HealthLine.To = Vector2.new(posx - 6, posy) // 1
EntityESP.HealthBorder.From = Vector2.new(posx - 6, posy + 1) // 1
EntityESP.HealthBorder.To = Vector2.new(posx - 6, (posy + sizey) - 1) // 1
end
if EntityESP.Text then
EntityESP.Text.Position = Vector2.new(posx + (sizex / 2), posy + (sizey - 28)) // 1
EntityESP.Drop.Position = EntityESP.Text.Position + Vector2.new(1, 1)
if EntityESP.TextBKG then
EntityESP.TextBKG.Size = EntityESP.Text.TextBounds + Vector2.new(8, 4)
EntityESP.TextBKG.Position = EntityESP.Text.Position - Vector2.new(4 + (EntityESP.Text.TextBounds.X / 2), 0)
end
end
end
end,
Drawing3D = function()
for ent, EntityESP in Reference do
if Distance.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
for _, obj in EntityESP do
obj.Visible = false
end
continue
end
end
local _, rootVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position)
for _, obj in EntityESP do
obj.Visible = rootVis
end
if not rootVis then continue end
local point1 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(1.5, ent.HipHeight, 1.5))
local point2 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(1.5, -ent.HipHeight, 1.5))
local point3 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(-1.5, ent.HipHeight, 1.5))
local point4 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(-1.5, -ent.HipHeight, 1.5))
local point5 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(1.5, ent.HipHeight, -1.5))
local point6 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(1.5, -ent.HipHeight, -1.5))
local point7 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(-1.5, ent.HipHeight, -1.5))
local point8 = ESPWorldToViewport(ent.RootPart.Position + Vector3.new(-1.5, -ent.HipHeight, -1.5))
EntityESP.Line1.From = point1
EntityESP.Line1.To = point2
EntityESP.Line2.From = point3
EntityESP.Line2.To = point4
EntityESP.Line3.From = point5
EntityESP.Line3.To = point6
EntityESP.Line4.From = point7
EntityESP.Line4.To = point8
EntityESP.Line5.From = point1
EntityESP.Line5.To = point3
EntityESP.Line6.From = point1
EntityESP.Line6.To = point5
EntityESP.Line7.From = point5
EntityESP.Line7.To = point7
EntityESP.Line8.From = point7
EntityESP.Line8.To = point3
EntityESP.Line9.From = point2
EntityESP.Line9.To = point4
EntityESP.Line10.From = point2
EntityESP.Line10.To = point6
EntityESP.Line11.From = point6
EntityESP.Line11.To = point8
EntityESP.Line12.From = point8
EntityESP.Line12.To = point4
end
end,
DrawingSkeleton = function()
for ent, EntityESP in Reference do
if Distance.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
for _, obj in EntityESP do
obj.Visible = false
end
continue
end
end
local _, rootVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position)
for _, obj in EntityESP do
obj.Visible = rootVis
end
if not rootVis then continue end
local rigcheck = ent.Humanoid.RigType == Enum.HumanoidRigType.R6
pcall(function()
local offset = rigcheck and CFrame.new(0, -0.8, 0) or CFrame.identity
local head = ESPWorldToViewport((ent.Head.CFrame).p)
local headfront = ESPWorldToViewport((ent.Head.CFrame * CFrame.new(0, 0, -0.5)).p)
local toplefttorso = ESPWorldToViewport((ent.Character[(rigcheck and 'Torso' or 'UpperTorso')].CFrame * CFrame.new(-1.5, 0.8, 0)).p)
local toprighttorso = ESPWorldToViewport((ent.Character[(rigcheck and 'Torso' or 'UpperTorso')].CFrame * CFrame.new(1.5, 0.8, 0)).p)
local toptorso = ESPWorldToViewport((ent.Character[(rigcheck and 'Torso' or 'UpperTorso')].CFrame * CFrame.new(0, 0.8, 0)).p)
local bottomtorso = ESPWorldToViewport((ent.Character[(rigcheck and 'Torso' or 'UpperTorso')].CFrame * CFrame.new(0, -0.8, 0)).p)
local bottomlefttorso = ESPWorldToViewport((ent.Character[(rigcheck and 'Torso' or 'UpperTorso')].CFrame * CFrame.new(-0.5, -0.8, 0)).p)
local bottomrighttorso = ESPWorldToViewport((ent.Character[(rigcheck and 'Torso' or 'UpperTorso')].CFrame * CFrame.new(0.5, -0.8, 0)).p)
local leftarm = ESPWorldToViewport((ent.Character[(rigcheck and 'Left Arm' or 'LeftHand')].CFrame * offset).p)
local rightarm = ESPWorldToViewport((ent.Character[(rigcheck and 'Right Arm' or 'RightHand')].CFrame * offset).p)
local leftleg = ESPWorldToViewport((ent.Character[(rigcheck and 'Left Leg' or 'LeftFoot')].CFrame * offset).p)
local rightleg = ESPWorldToViewport((ent.Character[(rigcheck and 'Right Leg' or 'RightFoot')].CFrame * offset).p)
EntityESP.Head.From = toptorso
EntityESP.Head.To = head
EntityESP.HeadFacing.From = head
EntityESP.HeadFacing.To = headfront
EntityESP.UpperTorso.From = toplefttorso
EntityESP.UpperTorso.To = toprighttorso
EntityESP.Torso.From = toptorso
EntityESP.Torso.To = bottomtorso
EntityESP.LowerTorso.From = bottomlefttorso
EntityESP.LowerTorso.To = bottomrighttorso
EntityESP.LeftArm.From = toplefttorso
EntityESP.LeftArm.To = leftarm
EntityESP.RightArm.From = toprighttorso
EntityESP.RightArm.To = rightarm
EntityESP.LeftLeg.From = bottomlefttorso
EntityESP.LeftLeg.To = leftleg
EntityESP.RightLeg.From = bottomrighttorso
EntityESP.RightLeg.To = rightleg
end)
end
end
}
ESP = vape.Categories.Render:CreateModule({
Name = 'ESP',
Function = function(callback)
if callback then
methodused = 'Drawing'..Method.Value
if ESPRemoved[methodused] then
ESP:Clean(entitylib.Events.EntityRemoved:Connect(ESPRemoved[methodused]))
end
if ESPAdded[methodused] then
for _, v in entitylib.List do
if Reference[v] then
ESPRemoved[methodused](v)
end
ESPAdded[methodused](v)
end
ESP:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then
ESPRemoved[methodused](ent)
end
ESPAdded[methodused](ent)
end))
end
if ESPUpdated[methodused] then
ESP:Clean(entitylib.Events.EntityUpdated:Connect(ESPUpdated[methodused]))
for _, v in entitylib.List do
ESPUpdated[methodused](v)
end
end
if ColorFunc[methodused] then
ESP:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
ColorFunc[methodused](Color.Hue, Color.Sat, Color.Value)
end))
end
if ESPLoop[methodused] then
ESP:Clean(runService.RenderStepped:Connect(ESPLoop[methodused]))
end
else
if ESPRemoved[methodused] then
for i in Reference do
ESPRemoved[methodused](i)
end
end
end
end,
Tooltip = 'Extra Sensory Perception\nRenders an ESP on players.'
})
Targets = ESP:CreateTargets({
Players = true,
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end
})
Method = ESP:CreateDropdown({
Name = 'Mode',
List = {'2D', '3D', 'Skeleton'},
Function = function(val)
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
BoundingBox.Object.Visible = (val == '2D')
Filled.Object.Visible = (val == '2D')
HealthBar.Object.Visible = (val == '2D')
Name.Object.Visible = (val == '2D')
DisplayName.Object.Visible = Name.Object.Visible and Name.Enabled
Background.Object.Visible = Name.Object.Visible and Name.Enabled
end,
})
Color = ESP:CreateColorSlider({
Name = 'Player Color',
Function = function(hue, sat, val)
if ESP.Enabled and ColorFunc[methodused] then
ColorFunc[methodused](hue, sat, val)
end
end
})
BoundingBox = ESP:CreateToggle({
Name = 'Bounding Box',
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end,
Default = true,
Darker = true
})
Filled = ESP:CreateToggle({
Name = 'Filled',
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end,
Darker = true
})
HealthBar = ESP:CreateToggle({
Name = 'Health Bar',
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end,
Darker = true
})
Name = ESP:CreateToggle({
Name = 'Name',
Function = function(callback)
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
DisplayName.Object.Visible = callback
Background.Object.Visible = callback
end,
Darker = true
})
DisplayName = ESP:CreateToggle({
Name = 'Use Displayname',
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end,
Default = true,
Darker = true
})
Background = ESP:CreateToggle({
Name = 'Show Background',
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end,
Darker = true
})
Teammates = ESP:CreateToggle({
Name = 'Priority Only',
Function = function()
if ESP.Enabled then
ESP:Toggle()
ESP:Toggle()
end
end,
Default = true,
Tooltip = 'Hides teammates & non targetable entities'
})
Distance = ESP:CreateToggle({
Name = 'Distance Check',
Function = function(callback)
DistanceLimit.Object.Visible = callback
end
})
DistanceLimit = ESP:CreateTwoSlider({
Name = 'Player Distance',
Min = 0,
Max = 256,
DefaultMin = 0,
DefaultMax = 64,
Darker = true,
Visible = false
})
end)
run(function()
local GamingChair = {Enabled = false}
local Color
local wheelpositions = {
Vector3.new(-0.8, -0.6, -0.18),
Vector3.new(0.1, -0.6, -0.88),
Vector3.new(0, -0.6, 0.7)
}
local chairhighlight
local currenttween
local movingsound
local flyingsound
local chairanim
local chair
GamingChair = vape.Categories.Render:CreateModule({
Name = 'GamingChair',
Function = function(callback)
if callback then
if vape.ThreadFix then
setthreadidentity(8)
end
chair = Instance.new('MeshPart')
chair.Color = Color3.fromRGB(21, 21, 21)
chair.Size = Vector3.new(2.16, 3.6, 2.3) / Vector3.new(12.37, 20.636, 13.071)
chair.CanCollide = false
chair.Massless = true
chair.MeshId = 'rbxassetid://12972961089'
chair.Material = Enum.Material.SmoothPlastic
chair.Parent = workspace
movingsound = Instance.new('Sound')
--movingsound.SoundId = downloadVapeAsset('vape/assets/ChairRolling.mp3')
movingsound.Volume = 0.4
movingsound.Looped = true
movingsound.Parent = workspace
flyingsound = Instance.new('Sound')
--flyingsound.SoundId = downloadVapeAsset('vape/assets/ChairFlying.mp3')
flyingsound.Volume = 0.4
flyingsound.Looped = true
flyingsound.Parent = workspace
local chairweld = Instance.new('WeldConstraint')
chairweld.Part0 = chair
chairweld.Parent = chair
if entitylib.isAlive then
chair.CFrame = entitylib.character.RootPart.CFrame * CFrame.Angles(0, math.rad(-90), 0)
chairweld.Part1 = entitylib.character.RootPart
end
chairhighlight = Instance.new('Highlight')
chairhighlight.FillTransparency = 1
chairhighlight.OutlineColor = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
chairhighlight.DepthMode = Enum.HighlightDepthMode.Occluded
chairhighlight.OutlineTransparency = 0.2
chairhighlight.Parent = chair
local chairarms = Instance.new('MeshPart')
chairarms.Color = chair.Color
chairarms.Size = Vector3.new(1.39, 1.345, 2.75) / Vector3.new(97.13, 136.216, 234.031)
chairarms.CFrame = chair.CFrame * CFrame.new(-0.169, -1.129, -0.013)
chairarms.MeshId = 'rbxassetid://12972673898'
chairarms.CanCollide = false
chairarms.Parent = chair
local chairarmsweld = Instance.new('WeldConstraint')
chairarmsweld.Part0 = chairarms
chairarmsweld.Part1 = chair
chairarmsweld.Parent = chair
local chairlegs = Instance.new('MeshPart')
chairlegs.Color = chair.Color
chairlegs.Name = 'Legs'
chairlegs.Size = Vector3.new(1.8, 1.2, 1.8) / Vector3.new(10.432, 8.105, 9.488)
chairlegs.CFrame = chair.CFrame * CFrame.new(0.047, -2.324, 0)
chairlegs.MeshId = 'rbxassetid://13003181606'
chairlegs.CanCollide = false
chairlegs.Parent = chair
local chairfan = Instance.new('MeshPart')
chairfan.Color = chair.Color
chairfan.Name = 'Fan'
chairfan.Size = Vector3.zero
chairfan.CFrame = chair.CFrame * CFrame.new(0, -1.873, 0)
chairfan.MeshId = 'rbxassetid://13004977292'
chairfan.CanCollide = false
chairfan.Parent = chair
local trails = {}
for _, v in wheelpositions do
local attachment = Instance.new('Attachment')
attachment.Position = v
attachment.Parent = chairlegs
local attachment2 = Instance.new('Attachment')
attachment2.Position = v + Vector3.new(0, 0, 0.18)
attachment2.Parent = chairlegs
local trail = Instance.new('Trail')
trail.Texture = 'http://www.roblox.com/asset/?id=13005168530'
trail.TextureMode = Enum.TextureMode.Static
trail.Transparency = NumberSequence.new(0.5)
trail.Color = ColorSequence.new(Color3.new(0.5, 0.5, 0.5))
trail.Attachment0 = attachment
trail.Attachment1 = attachment2
trail.Lifetime = 20
trail.MaxLength = 60
trail.MinLength = 0.1
trail.Parent = chairlegs
table.insert(trails, trail)
end
GamingChair:Clean(chair)
GamingChair:Clean(movingsound)
GamingChair:Clean(flyingsound)
chairanim = {Stop = function() end}
local oldmoving = false
local oldflying = false
repeat
if entitylib.isAlive and entitylib.character.Humanoid.Health > 0 then
if not chairanim.IsPlaying then
local temp2 = Instance.new('Animation')
temp2.AnimationId = entitylib.character.Humanoid.RigType == Enum.HumanoidRigType.R15 and 'http://www.roblox.com/asset/?id=2506281703' or 'http://www.roblox.com/asset/?id=178130996'
chairanim = entitylib.character.Humanoid:LoadAnimation(temp2)
chairanim.Priority = Enum.AnimationPriority.Movement
chairanim.Looped = true
chairanim:Play()
end
chair.CFrame = entitylib.character.RootPart.CFrame * CFrame.Angles(0, math.rad(-90), 0)
chairweld.Part1 = entitylib.character.RootPart
chairlegs.Velocity = Vector3.zero
chairlegs.CFrame = chair.CFrame * CFrame.new(0.047, -2.324, 0)
chairfan.Velocity = Vector3.zero
chairfan.CFrame = chair.CFrame * CFrame.new(0.047, -1.873, 0) * CFrame.Angles(0, math.rad(tick() * 180 % 360), math.rad(180))
local moving = entitylib.character.Humanoid:GetState() == Enum.HumanoidStateType.Running and entitylib.character.Humanoid.MoveDirection ~= Vector3.zero
local flying = vape.Modules.Fly and vape.Modules.Fly.Enabled or vape.Modules.LongJump and vape.Modules.LongJump.Enabled or vape.Modules.InfiniteFly and vape.Modules.InfiniteFly.Enabled
if movingsound.TimePosition > 1.9 then
movingsound.TimePosition = 0.2
end
movingsound.PlaybackSpeed = (entitylib.character.RootPart.Velocity * Vector3.new(1, 0, 1)).Magnitude / 16
for _, v in trails do
v.Enabled = not flying and moving
v.Color = ColorSequence.new(movingsound.PlaybackSpeed > 1.5 and Color3.new(1, 0.5, 0) or Color3.new())
end
if moving ~= oldmoving then
if movingsound.IsPlaying then
if not moving then
movingsound:Stop()
end
else
if not flying and moving then
movingsound:Play()
end
end
oldmoving = moving
end
if flying ~= oldflying then
if flying then
if movingsound.IsPlaying then
movingsound:Stop()
end
if not flyingsound.IsPlaying then
flyingsound:Play()
end
if currenttween then
currenttween:Cancel()
end
tween = tweenService:Create(chairlegs, TweenInfo.new(0.15), {
Size = Vector3.zero
})
tween.Completed:Connect(function(state)
if state == Enum.PlaybackState.Completed then
chairfan.Transparency = 0
chairlegs.Transparency = 1
tween = tweenService:Create(chairfan, TweenInfo.new(0.15), {
Size = Vector3.new(1.534, 0.328, 1.537) / Vector3.new(791.138, 168.824, 792.027)
})
tween:Play()
end
end)
tween:Play()
else
if flyingsound.IsPlaying then
flyingsound:Stop()
end
if not movingsound.IsPlaying and moving then
movingsound:Play()
end
if currenttween then currenttween:Cancel() end
tween = tweenService:Create(chairfan, TweenInfo.new(0.15), {
Size = Vector3.zero
})
tween.Completed:Connect(function(state)
if state == Enum.PlaybackState.Completed then
chairfan.Transparency = 1
chairlegs.Transparency = 0
tween = tweenService:Create(chairlegs, TweenInfo.new(0.15), {
Size = Vector3.new(1.8, 1.2, 1.8) / Vector3.new(10.432, 8.105, 9.488)
})
tween:Play()
end
end)
tween:Play()
end
oldflying = flying
end
else
chair.Anchored = true
chairlegs.Anchored = true
chairfan.Anchored = true
repeat task.wait() until entitylib.isAlive and entitylib.character.Humanoid.Health > 0
chair.Anchored = false
chairlegs.Anchored = false
chairfan.Anchored = false
chairanim:Stop()
end
task.wait()
until not GamingChair.Enabled
else
if chairanim then
chairanim:Stop()
end
end
end,
Tooltip = 'Sit in the best gaming chair known to mankind.'
})
Color = GamingChair:CreateColorSlider({
Name = 'Color',
Function = function(h, s, v)
if chairhighlight then
chairhighlight.OutlineColor = Color3.fromHSV(h, s, v)
end
end
})
end)
run(function()
local Health
Health = vape.Categories.Render:CreateModule({
Name = 'Health',
Function = function(callback)
if callback then
local label = Instance.new('TextLabel')
label.Size = UDim2.fromOffset(100, 20)
label.Position = UDim2.new(0.5, 6, 0.5, 30)
label.AnchorPoint = Vector2.new(0.5, 0)
label.BackgroundTransparency = 1
label.Text = '100 ❤️'
label.TextSize = 18
label.Font = Enum.Font.Arial
label.Parent = vape.gui
Health:Clean(label)
repeat
label.Text = entitylib.isAlive and math.round(entitylib.character.Humanoid.Health)..' ❤️' or ''
label.TextColor3 = entitylib.isAlive and Color3.fromHSV((entitylib.character.Humanoid.Health / entitylib.character.Humanoid.MaxHealth) / 2.8, 0.86, 1) or Color3.new()
task.wait()
until not Health.Enabled
end
end,
Tooltip = 'Displays your health in the center of your screen.'
})
end)
run(function()
local NameTags
local Targets
local Color
local Background
local DisplayName
local Health
local Distance
local DrawingToggle
local Scale
local FontOption
local Teammates
local DistanceCheck
local DistanceLimit
local Strings, Sizes, Reference = {}, {}, {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.gui
local methodused
local Added = {
Normal = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
local healthColor = Color3.fromHSV(math.clamp(ent.Health / ent.MaxHealth, 0, 1) / 2.5, 0.89, 0.75)
Strings[ent] = Strings[ent]..' '..math.round(ent.Health)..''
end
if Distance.Enabled then
Strings[ent] = '[%s] '..Strings[ent]
end
local nametag = Instance.new('TextLabel')
nametag.TextSize = 14 * Scale.Value
nametag.FontFace = FontOption.Value
local size = getfontsize(removeTags(Strings[ent]), nametag.TextSize, nametag.FontFace, Vector2.new(100000, 100000))
nametag.Name = ent.Player and ent.Player.Name or ent.Character.Name
nametag.Size = UDim2.fromOffset(size.X + 8, size.Y + 7)
nametag.AnchorPoint = Vector2.new(0.5, 1)
nametag.BackgroundColor3 = Color3.new()
nametag.BackgroundTransparency = Background.Value
nametag.BorderSizePixel = 0
nametag.Visible = false
nametag.Text = Strings[ent]
nametag.TextColor3 = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
nametag.RichText = true
nametag.Parent = Folder
Reference[ent] = nametag
end,
Drawing = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
local nametag = {}
nametag.BG = Drawing.new('Square')
nametag.BG.Filled = true
nametag.BG.Transparency = 1 - Background.Value
nametag.BG.Color = Color3.new()
nametag.BG.ZIndex = 1
nametag.Text = Drawing.new('Text')
nametag.Text.Size = 15 * Scale.Value
nametag.Text.Font = 0
nametag.Text.ZIndex = 2
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
Strings[ent] = Strings[ent]..' '..math.round(ent.Health)
end
if Distance.Enabled then
Strings[ent] = '[%s] '..Strings[ent]
end
nametag.Text.Text = Strings[ent]
nametag.Text.Color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
nametag.BG.Size = Vector2.new(nametag.Text.TextBounds.X + 8, nametag.Text.TextBounds.Y + 7)
Reference[ent] = nametag
end
}
local Removed = {
Normal = function(ent)
local v = Reference[ent]
if v then
if vape.ThreadFix then
setthreadidentity(8)
end
Reference[ent] = nil
Strings[ent] = nil
Sizes[ent] = nil
v:Destroy()
end
end,
Drawing = function(ent)
local v = Reference[ent]
if v then
if vape.ThreadFix then
setthreadidentity(8)
end
Reference[ent] = nil
Strings[ent] = nil
Sizes[ent] = nil
for _, obj in v do
pcall(function()
obj.Visible = false
obj:Remove()
end)
end
end
end
}
local Updated = {
Normal = function(ent)
local nametag = Reference[ent]
if nametag then
if vape.ThreadFix then
setthreadidentity(8)
end
Sizes[ent] = nil
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
local color = Color3.fromHSV(math.clamp(ent.Health / ent.MaxHealth, 0, 1) / 2.5, 0.89, 0.75)
Strings[ent] = Strings[ent]..' '..math.round(ent.Health)..''
end
if Distance.Enabled then
Strings[ent] = '[%s] '..Strings[ent]
end
local size = getfontsize(removeTags(Strings[ent]), nametag.TextSize, nametag.FontFace, Vector2.new(100000, 100000))
nametag.Size = UDim2.fromOffset(size.X + 8, size.Y + 7)
nametag.Text = Strings[ent]
end
end,
Drawing = function(ent)
local nametag = Reference[ent]
if nametag then
if vape.ThreadFix then
setthreadidentity(8)
end
Sizes[ent] = nil
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
Strings[ent] = Strings[ent]..' '..math.round(ent.Health)
end
if Distance.Enabled then
Strings[ent] = '[%s] '..Strings[ent]
nametag.Text.Text = entitylib.isAlive and string.format(Strings[ent], math.floor((entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude)) or Strings[ent]
else
nametag.Text.Text = Strings[ent]
end
nametag.BG.Size = Vector2.new(nametag.Text.TextBounds.X + 8, nametag.Text.TextBounds.Y + 7)
nametag.Text.Color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
end
end
}
local ColorFunc = {
Normal = function(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for i, v in Reference do
v.TextColor3 = entitylib.getEntityColor(i) or color
end
end,
Drawing = function(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for i, v in Reference do
v.Text.Color = entitylib.getEntityColor(i) or color
end
end
}
local Loop = {
Normal = function()
for ent, nametag in Reference do
if DistanceCheck.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
nametag.Visible = false
continue
end
end
local headPos, headVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position + Vector3.new(0, ent.HipHeight + 1, 0))
nametag.Visible = headVis
if not headVis then
continue
end
if Distance.Enabled then
local mag = entitylib.isAlive and math.floor((entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude) or 0
if Sizes[ent] ~= mag then
nametag.Text = string.format(Strings[ent], mag)
local ize = getfontsize(removeTags(nametag.Text), nametag.TextSize, nametag.FontFace, Vector2.new(100000, 100000))
nametag.Size = UDim2.fromOffset(ize.X + 8, ize.Y + 7)
Sizes[ent] = mag
end
end
nametag.Position = UDim2.fromOffset(headPos.X, headPos.Y)
end
end,
Drawing = function()
for ent, nametag in Reference do
if DistanceCheck.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
nametag.Text.Visible = false
nametag.BG.Visible = false
continue
end
end
local headPos, headVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position + Vector3.new(0, ent.HipHeight + 1, 0))
nametag.Text.Visible = headVis
nametag.BG.Visible = headVis
if not headVis then
continue
end
if Distance.Enabled then
local mag = entitylib.isAlive and math.floor((entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude) or 0
if Sizes[ent] ~= mag then
nametag.Text.Text = string.format(Strings[ent], mag)
nametag.BG.Size = Vector2.new(nametag.Text.TextBounds.X + 8, nametag.Text.TextBounds.Y + 7)
Sizes[ent] = mag
end
end
nametag.BG.Position = Vector2.new(headPos.X - (nametag.BG.Size.X / 2), headPos.Y - nametag.BG.Size.Y)
nametag.Text.Position = nametag.BG.Position + Vector2.new(4, 3)
end
end
}
NameTags = vape.Categories.Render:CreateModule({
Name = 'NameTags',
Function = function(callback)
if callback then
methodused = DrawingToggle.Enabled and 'Drawing' or 'Normal'
if Removed[methodused] then
NameTags:Clean(entitylib.Events.EntityRemoved:Connect(Removed[methodused]))
end
if Added[methodused] then
for _, v in entitylib.List do
if Reference[v] then
Removed[methodused](v)
end
Added[methodused](v)
end
NameTags:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then
Removed[methodused](ent)
end
Added[methodused](ent)
end))
end
if Updated[methodused] then
NameTags:Clean(entitylib.Events.EntityUpdated:Connect(Updated[methodused]))
for _, v in entitylib.List do
Updated[methodused](v)
end
end
if ColorFunc[methodused] then
NameTags:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
ColorFunc[methodused](Color.Hue, Color.Sat, Color.Value)
end))
end
if Loop[methodused] then
NameTags:Clean(runService.RenderStepped:Connect(Loop[methodused]))
end
else
if Removed[methodused] then
for i in Reference do
Removed[methodused](i)
end
end
end
end,
Tooltip = 'Renders nametags on entities through walls.'
})
Targets = NameTags:CreateTargets({
Players = true,
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
FontOption = NameTags:CreateFont({
Name = 'Font',
Blacklist = 'Arial',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
Color = NameTags:CreateColorSlider({
Name = 'Player Color',
Function = function(hue, sat, val)
if NameTags.Enabled and ColorFunc[methodused] then
ColorFunc[methodused](hue, sat, val)
end
end
})
Scale = NameTags:CreateSlider({
Name = 'Scale',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = 1,
Min = 0.1,
Max = 1.5,
Decimal = 10
})
Background = NameTags:CreateSlider({
Name = 'Transparency',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = 0.5,
Min = 0,
Max = 1,
Decimal = 10
})
Health = NameTags:CreateToggle({
Name = 'Health',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
Distance = NameTags:CreateToggle({
Name = 'Distance',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
DisplayName = NameTags:CreateToggle({
Name = 'Use Displayname',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = true
})
Teammates = NameTags:CreateToggle({
Name = 'Priority Only',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = true,
Tooltip = 'Hides teammates & non targetable entities'
})
DrawingToggle = NameTags:CreateToggle({
Name = 'Drawing',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
DistanceCheck = NameTags:CreateToggle({
Name = 'Distance Check',
Function = function(callback)
DistanceLimit.Object.Visible = callback
end
})
DistanceLimit = NameTags:CreateTwoSlider({
Name = 'Player Distance',
Min = 0,
Max = 256,
DefaultMin = 0,
DefaultMax = 64,
Darker = true,
Visible = false
})
end)
run(function()
local PlayerModel
local Scale
local Local
local Mesh
local Texture
local Rots = {}
local models = {}
local function addMesh(ent)
if vape.ThreadFix then
setthreadidentity(8)
end
local root = ent.RootPart
local part = Instance.new('Part')
part.Size = Vector3.new(3, 3, 3)
part.CFrame = root.CFrame * CFrame.Angles(math.rad(Rots[1].Value), math.rad(Rots[2].Value), math.rad(Rots[3].Value))
part.CanCollide = false
part.CanQuery = false
part.Massless = true
part.Parent = workspace
local meshd = Instance.new('SpecialMesh')
meshd.MeshId = Mesh.Value
meshd.TextureId = Texture.Value
meshd.Scale = Vector3.one * Scale.Value
meshd.Parent = part
local weld = Instance.new('WeldConstraint')
weld.Part0 = part
weld.Part1 = root
weld.Parent = part
models[root] = part
end
local function removeMesh(ent)
if models[ent.RootPart] then
models[ent.RootPart]:Destroy()
models[ent.RootPart] = nil
end
end
PlayerModel = vape.Categories.Render:CreateModule({
Name = 'PlayerModel',
Function = function(callback)
if callback then
if Local.Enabled then
PlayerModel:Clean(entitylib.Events.LocalAdded:Connect(addMesh))
PlayerModel:Clean(entitylib.Events.LocalRemoved:Connect(removeMesh))
if entitylib.isAlive then
task.spawn(addMesh, entitylib.character)
end
end
PlayerModel:Clean(entitylib.Events.EntityAdded:Connect(addMesh))
PlayerModel:Clean(entitylib.Events.EntityRemoved:Connect(removeMesh))
for _, ent in entitylib.List do
task.spawn(addMesh, ent)
end
else
for _, part in models do
part:Destroy()
end
table.clear(models)
end
end,
Tooltip = 'Change the player models to a Mesh'
})
Scale = PlayerModel:CreateSlider({
Name = 'Scale',
Min = 0,
Max = 2,
Default = 1,
Decimal = 100,
Function = function(val)
for _, part in models do
part.Mesh.Scale = Vector3.one * val
end
end
})
for _, name in {'Rotation X', 'Rotation Y', 'Rotation Z'} do
table.insert(Rots, PlayerModel:CreateSlider({
Name = name,
Min = 0,
Max = 360,
Function = function(val)
for root, part in models do
part.WeldConstraint.Enabled = false
part.CFrame = root.CFrame * CFrame.Angles(math.rad(Rots[1].Value), math.rad(Rots[2].Value), math.rad(Rots[3].Value))
part.WeldConstraint.Enabled = true
end
end
}))
end
Local = PlayerModel:CreateToggle({
Name = 'Local',
Function = function()
if PlayerModel.Enabled then
PlayerModel:Toggle()
PlayerModel:Toggle()
end
end
})
Mesh = PlayerModel:CreateTextBox({
Name = 'Mesh',
Placeholder = 'mesh id',
Function = function()
for _, part in models do
part.Mesh.MeshId = Mesh.Value
end
end
})
Texture = PlayerModel:CreateTextBox({
Name = 'Texture',
Placeholder = 'texture id',
Function = function()
for _, part in models do
part.Mesh.TextureId = Texture.Value
end
end
})
end)
run(function()
local Radar
local Targets
local DotStyle
local PlayerColor
local Clamp
local Reference = {}
local bkg
local function Added(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
local dot = Instance.new('Frame')
dot.Size = UDim2.fromOffset(4, 4)
dot.AnchorPoint = Vector2.new(0.5, 0.5)
dot.BackgroundColor3 = entitylib.getEntityColor(ent) or Color3.fromHSV(PlayerColor.Hue, PlayerColor.Sat, PlayerColor.Value)
dot.Parent = bkg
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(DotStyle.Value == 'Circles' and 1 or 0, 0)
corner.Parent = dot
local stroke = Instance.new('UIStroke')
stroke.Color = Color3.new()
stroke.Thickness = 1
stroke.Transparency = 0.8
stroke.Parent = dot
Reference[ent] = dot
end
local function Removed(ent)
local v = Reference[ent]
if v then
if vape.ThreadFix then
setthreadidentity(8)
end
Reference[ent] = nil
v:Destroy()
end
end
Radar = vape:CreateOverlay({
Name = 'Radar',
Icon = getcustomasset('newvape/assets/new/radaricon.png'),
Size = UDim2.fromOffset(14, 14),
Position = UDim2.fromOffset(12, 13),
Function = function(callback)
if callback then
Radar:Clean(entitylib.Events.EntityRemoved:Connect(Removed))
for _, v in entitylib.List do
if Reference[v] then
Removed(v)
end
Added(v)
end
Radar:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then
Removed(ent)
end
Added(ent)
end))
Radar:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
for ent, dot in Reference do
dot.BackgroundColor3 = entitylib.getEntityColor(ent) or Color3.fromHSV(PlayerColor.Hue, PlayerColor.Sat, PlayerColor.Value)
end
end))
Radar:Clean(runService.RenderStepped:Connect(function()
for ent, dot in Reference do
if entitylib.isAlive then
local dt = CFrame.lookAlong(entitylib.character.RootPart.Position, gameCamera.CFrame.LookVector * Vector3.new(1, 0, 1)):PointToObjectSpace(ent.RootPart.Position)
dot.Position = UDim2.fromOffset(Clamp.Enabled and math.clamp(108 + dt.X, 2, 214) or 108 + dt.X, Clamp.Enabled and math.clamp(108 + dt.Z, 8, 214) or 108 + dt.Z)
end
end
end))
else
for ent in Reference do
Removed(ent)
end
end
end
})
Targets = Radar:CreateTargets({
Players = true,
Function = function()
if Radar.Button.Enabled then
Radar.Button:Toggle()
Radar.Button:Toggle()
end
end
})
DotStyle = Radar:CreateDropdown({
Name = 'Dot Style',
List = {'Circles', 'Squares'},
Function = function(val)
for _, dot in Reference do
dot.UICorner.CornerRadius = UDim.new(val == 'Circles' and 1 or 0, 0)
end
end
})
PlayerColor = Radar:CreateColorSlider({
Name = 'Player Color',
Function = function(hue, sat, val)
for ent, dot in Reference do
dot.BackgroundColor3 = entitylib.getEntityColor(ent) or Color3.fromHSV(hue, sat, val)
end
end
})
bkg = Instance.new('Frame')
bkg.Size = UDim2.fromOffset(216, 216)
bkg.Position = UDim2.fromOffset(2, 2)
bkg.BackgroundColor3 = Color3.new()
bkg.BackgroundTransparency = 0.5
bkg.ClipsDescendants = true
bkg.Parent = Radar.Children
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = bkg
local stroke = Instance.new('UIStroke')
stroke.Thickness = 2
stroke.Color = Color3.new()
stroke.Transparency = 0.4
stroke.Parent = bkg
local line1 = Instance.new('Frame')
line1.Size = UDim2.new(0, 2, 1, 0)
line1.Position = UDim2.fromScale(0.5, 0.5)
line1.AnchorPoint = Vector2.new(0.5, 0.5)
line1.ZIndex = 0
line1.BackgroundColor3 = Color3.new(1, 1, 1)
line1.BackgroundTransparency = 0.5
line1.BorderSizePixel = 0
line1.Parent = bkg
local line2 = line1:Clone()
line2.Size = UDim2.new(1, 0, 0, 2)
line2.Parent = bkg
local bar = Instance.new('Frame')
bar.Size = UDim2.new(1, -6, 0, 4)
bar.Position = UDim2.fromOffset(3, 0)
bar.BackgroundColor3 = Color3.fromHSV(0.44, 1, 1)
bar.Parent = bkg
local barcorner = Instance.new('UICorner')
barcorner.CornerRadius = UDim.new(0, 8)
barcorner.Parent = bar
Radar:CreateColorSlider({
Name = 'Bar Color',
Function = function(hue, sat, val)
bar.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
end
})
Radar:CreateToggle({
Name = 'Show Background',
Default = true,
Function = function(callback)
bkg.BackgroundTransparency = callback and 0.5 or 1
bar.BackgroundTransparency = callback and 0 or 1
stroke.Transparency = callback and 0.4 or 1
end
})
Radar:CreateToggle({
Name = 'Show Cross',
Default = true,
Function = function(callback)
line1.BackgroundTransparency = callback and 0.5 or 1
line2.BackgroundTransparency = callback and 0.5 or 1
end
})
Clamp = Radar:CreateToggle({
Name = 'Clamp Radar',
Default = true
})
end)
run(function()
local Search
local List
local Color
local FillTransparency
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.gui
local function Add(v)
if not table.find(List.ListEnabled, v.Name) then return end
if v:IsA('BasePart') or v:IsA('Model') then
local box = Instance.new('BoxHandleAdornment')
box.AlwaysOnTop = true
box.Adornee = v
box.Size = v:IsA('Model') and v:GetExtentsSize() or v.Size
box.ZIndex = 0
box.Transparency = FillTransparency.Value
box.Color3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
box.Parent = Folder
Reference[v] = box
end
end
Search = vape.Categories.Render:CreateModule({
Name = 'Search',
Function = function(callback)
if callback then
Search:Clean(workspace.DescendantAdded:Connect(Add))
Search:Clean(workspace.DescendantRemoving:Connect(function(v)
if Reference[v] then
Reference[v]:Destroy()
Reference[v] = nil
end
end))
for _, v in workspace:GetDescendants() do
Add(v)
end
else
Folder:ClearAllChildren()
table.clear(Reference)
end
end,
Tooltip = 'Draws box around selected parts\nAdd parts in Search frame'
})
List = Search:CreateTextList({
Name = 'Parts',
Function = function()
if Search.Enabled then
Search:Toggle()
Search:Toggle()
end
end
})
Color = Search:CreateColorSlider({
Name = 'Color',
Function = function(hue, sat, val)
for _, v in Reference do
v.Color3 = Color3.fromHSV(hue, sat, val)
end
end
})
FillTransparency = Search:CreateSlider({
Name = 'Transparency',
Min = 0,
Max = 1,
Function = function(val)
for _, v in Reference do
v.Transparency = val
end
end,
Decimal = 10
})
end)
run(function()
local SessionInfo
local FontOption
local Hide
local TextSize
local BorderColor
local Title
local TitleOffset = {}
local Custom
local CustomBox
local infoholder
local infolabel
local infostroke
SessionInfo = vape:CreateOverlay({
Name = 'Session Info',
Icon = getcustomasset('newvape/assets/new/textguiicon.png'),
Size = UDim2.fromOffset(16, 12),
Position = UDim2.fromOffset(12, 14),
Function = function(callback)
if callback then
local teleportedServers
SessionInfo:Clean(playersService.LocalPlayer.OnTeleport:Connect(function()
if not teleportedServers then
teleportedServers = true
queue_on_teleport("shared.vapesessioninfo = '"..httpService:JSONEncode(vape.Libraries.sessioninfo.Objects).."'")
end
end))
if shared.vapesessioninfo then
for i, v in httpService:JSONDecode(shared.vapesessioninfo) do
if vape.Libraries.sessioninfo.Objects[i] and v.Saved then
vape.Libraries.sessioninfo.Objects[i].Value = v.Value
end
end
end
repeat
if vape.Libraries.sessioninfo then
local stuff = {''}
if Title.Enabled then
stuff[1] = TitleOffset.Enabled and 'Session Info\n ' or 'Session Info'
end
for i, v in vape.Libraries.sessioninfo.Objects do
stuff[v.Index] = not table.find(Hide.ListEnabled, i) and i..': '..v.Function(v.Value) or false
end
if #Hide.ListEnabled > 0 then
local key, val
repeat
local oldkey = key
key, val = next(stuff, key)
if val == false then
table.remove(stuff, key)
key = oldkey
end
until not key
end
if Custom.Enabled then
table.insert(stuff, CustomBox.Value)
end
if not Title.Enabled then
table.remove(stuff, 1)
end
infolabel.Text = table.concat(stuff, '\n')
infolabel.FontFace = FontOption.Value
infolabel.TextSize = TextSize.Value
local size = getfontsize(removeTags(infolabel.Text), infolabel.TextSize, infolabel.FontFace)
infoholder.Size = UDim2.fromOffset(size.X + 16, size.Y + (Title.Enabled and TitleOffset.Enabled and 4 or 16))
end
task.wait(1)
until not SessionInfo.Button or not SessionInfo.Button.Enabled
end
end
})
FontOption = SessionInfo:CreateFont({
Name = 'Font',
Blacklist = 'Arial'
})
Hide = SessionInfo:CreateTextList({
Name = 'Blacklist',
Tooltip = 'Name of entry to hide.',
Icon = getcustomasset('newvape/assets/new/blockedicon.png'),
Tab = getcustomasset('newvape/assets/new/blockedtab.png'),
TabSize = UDim2.fromOffset(21, 16),
Color = Color3.fromRGB(250, 50, 56)
})
SessionInfo:CreateColorSlider({
Name = 'Background Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
infoholder.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
infoholder.BackgroundTransparency = 1 - opacity
end
})
BorderColor = SessionInfo:CreateColorSlider({
Name = 'Border Color',
Function = function(hue, sat, val, opacity)
infostroke.Color = Color3.fromHSV(hue, sat, val)
infostroke.Transparency = 1 - opacity
end,
Darker = true,
Visible = false
})
TextSize = SessionInfo:CreateSlider({
Name = 'Text Size',
Min = 1,
Max = 30,
Default = 16
})
Title = SessionInfo:CreateToggle({
Name = 'Title',
Function = function(callback)
if TitleOffset.Object then
TitleOffset.Object.Visible = callback
end
end,
Default = true
})
TitleOffset = SessionInfo:CreateToggle({
Name = 'Offset',
Default = true,
Darker = true
})
SessionInfo:CreateToggle({
Name = 'Border',
Function = function(callback)
infostroke.Enabled = callback
BorderColor.Object.Visible = callback
end
})
Custom = SessionInfo:CreateToggle({
Name = 'Add custom text',
Function = function(enabled)
CustomBox.Object.Visible = enabled
end
})
CustomBox = SessionInfo:CreateTextBox({
Name = 'Custom text',
Darker = true,
Visible = false
})
infoholder = Instance.new('Frame')
infoholder.BackgroundColor3 = Color3.new()
infoholder.BackgroundTransparency = 0.5
infoholder.Parent = SessionInfo.Children
vape:Clean(SessionInfo.Children:GetPropertyChangedSignal('AbsolutePosition'):Connect(function()
if vape.ThreadFix then
setthreadidentity(8)
end
local newside = SessionInfo.Children.AbsolutePosition.X > (vape.gui.AbsoluteSize.X / 2)
infoholder.Position = UDim2.fromScale(newside and 1 or 0, 0)
infoholder.AnchorPoint = Vector2.new(newside and 1 or 0, 0)
end))
local sessioninfocorner = Instance.new('UICorner')
sessioninfocorner.CornerRadius = UDim.new(0, 5)
sessioninfocorner.Parent = infoholder
infolabel = Instance.new('TextLabel')
infolabel.Size = UDim2.new(1, -16, 1, -16)
infolabel.Position = UDim2.fromOffset(8, 8)
infolabel.BackgroundTransparency = 1
infolabel.TextXAlignment = Enum.TextXAlignment.Left
infolabel.TextYAlignment = Enum.TextYAlignment.Top
infolabel.TextSize = 16
infolabel.TextColor3 = Color3.new(1, 1, 1)
infolabel.TextStrokeColor3 = Color3.new()
infolabel.TextStrokeTransparency = 0.8
infolabel.Font = Enum.Font.Arial
infolabel.RichText = true
infolabel.Parent = infoholder
infostroke = Instance.new('UIStroke')
infostroke.Enabled = false
infostroke.Color = Color3.fromHSV(0.44, 1, 1)
infostroke.Parent = infoholder
addBlur(infoholder)
vape.Libraries.sessioninfo = {
Objects = {},
AddItem = function(self, name, startvalue, func, saved)
func, saved = func or function(val) return val end, saved == nil or saved
self.Objects[name] = {Function = func, Saved = saved, Value = startvalue or 0, Index = getTableSize(self.Objects) + 2}
return {
Increment = function(_, val)
self.Objects[name].Value += (val or 1)
end,
Get = function()
return self.Objects[name].Value
end
}
end
}
vape.Libraries.sessioninfo:AddItem('Time Played', os.clock(), function(value)
return os.date('!%X', math.floor(os.clock() - value))
end)
end)
run(function()
local Tracers
local Targets
local Color
local Transparency
local StartPosition
local EndPosition
local Teammates
local DistanceColor
local Distance
local DistanceLimit
local Behind
local Reference = {}
local function Added(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
if vape.ThreadFix then
setthreadidentity(8)
end
local EntityTracer = Drawing.new('Line')
EntityTracer.Thickness = 1
EntityTracer.Transparency = 1 - Transparency.Value
EntityTracer.Color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
Reference[ent] = EntityTracer
end
local function Removed(ent)
local v = Reference[ent]
if v then
if vape.ThreadFix then
setthreadidentity(8)
end
Reference[ent] = nil
pcall(function()
v.Visible = false
v:Remove()
end)
end
end
local function ColorFunc(hue, sat, val)
if DistanceColor.Enabled then return end
local tracerColor = Color3.fromHSV(hue, sat, val)
for ent, EntityTracer in Reference do
EntityTracer.Color = entitylib.getEntityColor(ent) or tracerColor
end
end
local function Loop()
local screenSize = vape.gui.AbsoluteSize
local startVector = StartPosition.Value == 'Mouse' and inputService:GetMouseLocation() or Vector2.new(screenSize.X / 2, (StartPosition.Value == 'Middle' and screenSize.Y / 2 or screenSize.Y))
for ent, EntityTracer in Reference do
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude
if Distance.Enabled and distance then
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
EntityTracer.Visible = false
continue
end
end
local pos = ent[EndPosition.Value == 'Torso' and 'RootPart' or 'Head'].Position
local rootPos, rootVis = gameCamera:WorldToViewportPoint(pos)
if not rootVis and Behind.Enabled then
local tempPos = gameCamera.CFrame:PointToObjectSpace(pos)
tempPos = CFrame.Angles(0, 0, (math.atan2(tempPos.Y, tempPos.X) + math.pi)):VectorToWorldSpace((CFrame.Angles(0, math.rad(89.9), 0):VectorToWorldSpace(Vector3.new(0, 0, -1))))
rootPos = gameCamera:WorldToViewportPoint(gameCamera.CFrame:pointToWorldSpace(tempPos))
rootVis = true
end
local endVector = Vector2.new(rootPos.X, rootPos.Y)
EntityTracer.Visible = rootVis
EntityTracer.From = startVector
EntityTracer.To = endVector
if DistanceColor.Enabled and distance then
EntityTracer.Color = Color3.fromHSV(math.min((distance / 128) / 2.8, 0.4), 0.89, 0.75)
end
end
end
Tracers = vape.Categories.Render:CreateModule({
Name = 'Tracers',
Function = function(callback)
if callback then
Tracers:Clean(entitylib.Events.EntityRemoved:Connect(Removed))
for _, v in entitylib.List do
if Reference[v] then
Removed(v)
end
Added(v)
end
Tracers:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then
Removed(ent)
end
Added(ent)
end))
Tracers:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
ColorFunc(Color.Hue, Color.Sat, Color.Value)
end))
Tracers:Clean(runService.RenderStepped:Connect(Loop))
else
for i in Reference do
Removed(i)
end
end
end,
Tooltip = 'Renders tracers on players.'
})
Targets = Tracers:CreateTargets({
Players = true,
Function = function()
if Tracers.Enabled then
Tracers:Toggle()
Tracers:Toggle()
end
end
})
StartPosition = Tracers:CreateDropdown({
Name = 'Start Position',
List = {'Middle', 'Bottom', 'Mouse'},
Function = function()
if Tracers.Enabled then
Tracers:Toggle()
Tracers:Toggle()
end
end
})
EndPosition = Tracers:CreateDropdown({
Name = 'End Position',
List = {'Head', 'Torso'},
Function = function()
if Tracers.Enabled then
Tracers:Toggle()
Tracers:Toggle()
end
end
})
Color = Tracers:CreateColorSlider({
Name = 'Player Color',
Function = function(hue, sat, val)
if Tracers.Enabled then
ColorFunc(hue, sat, val)
end
end
})
Transparency = Tracers:CreateSlider({
Name = 'Transparency',
Min = 0,
Max = 1,
Function = function(val)
for _, tracer in Reference do
tracer.Transparency = 1 - val
end
end,
Decimal = 10
})
DistanceColor = Tracers:CreateToggle({
Name = 'Color by distance',
Function = function()
if Tracers.Enabled then
Tracers:Toggle()
Tracers:Toggle()
end
end
})
Distance = Tracers:CreateToggle({
Name = 'Distance Check',
Function = function(callback)
DistanceLimit.Object.Visible = callback
end
})
DistanceLimit = Tracers:CreateTwoSlider({
Name = 'Player Distance',
Min = 0,
Max = 256,
DefaultMin = 0,
DefaultMax = 64,
Darker = true,
Visible = false
})
Behind = Tracers:CreateToggle({
Name = 'Behind',
Default = true
})
Teammates = Tracers:CreateToggle({
Name = 'Priority Only',
Function = function()
if Tracers.Enabled then
Tracers:Toggle()
Tracers:Toggle()
end
end,
Default = true,
Tooltip = 'Hides teammates & non targetable entities'
})
end)
run(function()
local Waypoints
local FontOption
local List
local Color
local Scale
local Background
WaypointFolder = Instance.new('Folder')
WaypointFolder.Parent = vape.gui
Waypoints = vape.Categories.Render:CreateModule({
Name = 'Waypoints',
Function = function(callback)
if callback then
for _, v in List.ListEnabled do
local split = v:split('/')
local tagSize = getfontsize(removeTags(split[2]), 14 * Scale.Value, FontOption.Value, Vector2.new(100000, 100000))
local billboard = Instance.new('BillboardGui')
billboard.Size = UDim2.fromOffset(tagSize.X + 8, tagSize.Y + 7)
billboard.StudsOffsetWorldSpace = Vector3.new(unpack(split[1]:split(',')))
billboard.AlwaysOnTop = true
billboard.Parent = WaypointFolder
local tag = Instance.new('TextLabel')
tag.BackgroundColor3 = Color3.new()
tag.BorderSizePixel = 0
tag.Visible = true
tag.RichText = true
tag.FontFace = FontOption.Value
tag.TextSize = 14 * Scale.Value
tag.BackgroundTransparency = Background.Value
tag.Size = billboard.Size
tag.Text = split[2]
tag.TextColor3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
tag.Parent = billboard
end
else
WaypointFolder:ClearAllChildren()
end
end,
Tooltip = 'Mark certain spots with a visual indicator'
})
FontOption = Waypoints:CreateFont({
Name = 'Font',
Blacklist = 'Arial',
Function = function()
if Waypoints.Enabled then
Waypoints:Toggle()
Waypoints:Toggle()
end
end,
})
List = Waypoints:CreateTextList({
Name = 'Points',
Placeholder = 'x, y, z/name',
Function = function()
if Waypoints.Enabled then
Waypoints:Toggle()
Waypoints:Toggle()
end
end
})
Waypoints:CreateButton({
Name = 'Add current position',
Function = function()
if entitylib.isAlive then
local pos = entitylib.character.RootPart.Position // 1
List:ChangeValue(pos.X..','..pos.Y..','..pos.Z..'/Waypoint '..(#List.List + 1))
end
end
})
Color = Waypoints:CreateColorSlider({
Name = 'Color',
Function = function(hue, sat, val)
for _, v in WaypointFolder:GetChildren() do
v.TextLabel.TextColor3 = Color3.fromHSV(hue, sat, val)
end
end
})
Scale = Waypoints:CreateSlider({
Name = 'Scale',
Function = function()
if Waypoints.Enabled then
Waypoints:Toggle()
Waypoints:Toggle()
end
end,
Default = 1,
Min = 0.1,
Max = 1.5,
Decimal = 10
})
Background = Waypoints:CreateSlider({
Name = 'Transparency',
Function = function()
if Waypoints.Enabled then
Waypoints:Toggle()
Waypoints:Toggle()
end
end,
Default = 0.5,
Min = 0,
Max = 1,
Decimal = 10
})
end)
run(function()
local AnimationPlayer
local IDBox
local Priority
local Speed
local anim, animobject
local function playAnimation(char)
local animcheck = anim
if animcheck then
anim = nil
animcheck:Stop()
end
local suc, res = pcall(function()
anim = char.Humanoid.Animator:LoadAnimation(animobject)
end)
if suc then
local currentanim = anim
anim.Priority = Enum.AnimationPriority[Priority.Value]
anim:Play()
anim:AdjustSpeed(Speed.Value)
AnimationPlayer:Clean(anim.Stopped:Connect(function()
if currentanim == anim then
anim:Play()
end
end))
else
notif('AnimationPlayer', 'failed to load anim : '..(res or 'invalid animation id'), 5, 'warning')
end
end
AnimationPlayer = vape.Categories.Utility:CreateModule({
Name = 'AnimationPlayer',
Function = function(callback)
if callback then
animobject = Instance.new('Animation')
local suc, id = pcall(function()
return string.match(game:GetObjects('rbxassetid://'..IDBox.Value)[1].AnimationId, '%?id=(%d+)')
end)
animobject.AnimationId = 'rbxassetid://'..(suc and id or IDBox.Value)
if entitylib.isAlive then
playAnimation(entitylib.character)
end
AnimationPlayer:Clean(entitylib.Events.LocalAdded:Connect(playAnimation))
AnimationPlayer:Clean(animobject)
else
if anim then
anim:Stop()
end
end
end,
Tooltip = 'Plays a specific animation of your choosing at a certain speed'
})
IDBox = AnimationPlayer:CreateTextBox({
Name = 'Animation',
Placeholder = 'anim (num only)',
Function = function(enter)
if enter and AnimationPlayer.Enabled then
AnimationPlayer:Toggle()
AnimationPlayer:Toggle()
end
end
})
local prio = {'Action4'}
for _, v in Enum.AnimationPriority:GetEnumItems() do
if v.Name ~= 'Action4' then
table.insert(prio, v.Name)
end
end
Priority = AnimationPlayer:CreateDropdown({
Name = 'Priority',
List = prio,
Function = function(val)
if anim then
anim.Priority = Enum.AnimationPriority[val]
end
end
})
Speed = AnimationPlayer:CreateSlider({
Name = 'Speed',
Function = function(val)
if anim then
anim:AdjustSpeed(val)
end
end,
Min = 0.1,
Max = 2,
Decimal = 10
})
end)
run(function()
local AntiRagdoll
AntiRagdoll = vape.Categories.Utility:CreateModule({
Name = 'AntiRagdoll',
Function = function(callback)
if entitylib.isAlive then
entitylib.character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, not callback)
end
if callback then
AntiRagdoll:Clean(entitylib.Events.LocalAdded:Connect(function(char)
char.Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
end))
end
end,
Tooltip = 'Prevents you from getting knocked down in a ragdoll state'
})
end)
run(function()
local AutoRejoin
local Sort
AutoRejoin = vape.Categories.Utility:CreateModule({
Name = 'AutoRejoin',
Function = function(callback)
if callback then
local check
AutoRejoin:Clean(guiService.ErrorMessageChanged:Connect(function(str)
if (not check or guiService:GetErrorCode() ~= Enum.ConnectionError.DisconnectLuaKick) and guiService:GetErrorCode() ~= Enum.ConnectionError.DisconnectConnectionLost and not str:lower():find('ban') then
check = true
serverHop(nil, Sort.Value)
end
end))
end
end,
Tooltip = 'Automatically rejoins into a new server if you get disconnected / kicked'
})
Sort = AutoRejoin:CreateDropdown({
Name = 'Sort',
List = {'Descending', 'Ascending'},
Tooltip = 'Descending - Prefers full servers\nAscending - Prefers empty servers'
})
end)
run(function()
local Blink
local Type
local AutoSend
local AutoSendLength
local oldphys, oldsend
Blink = vape.Categories.Utility:CreateModule({
Name = 'Blink',
Function = function(callback)
if callback then
local teleported
Blink:Clean(lplr.OnTeleport:Connect(function()
setfflag('PhysicsSenderMaxBandwidthBps', '38760')
setfflag('DataSenderRate', '60')
teleported = true
end))
repeat
local physicsrate, senderrate = '0', Type.Value == 'All' and '-1' or '60'
if AutoSend.Enabled and tick() % (AutoSendLength.Value + 0.1) > AutoSendLength.Value then
physicsrate, senderrate = '38760', '60'
end
if physicsrate ~= oldphys or senderrate ~= oldsend then
setfflag('PhysicsSenderMaxBandwidthBps', physicsrate)
setfflag('DataSenderRate', senderrate)
oldphys, oldsend = physicsrate, senderrate
end
task.wait(0.03)
until (not Blink.Enabled and not teleported)
else
if setfflag then
setfflag('PhysicsSenderMaxBandwidthBps', '38760')
setfflag('DataSenderRate', '60')
end
oldphys, oldsend = nil, nil
end
end,
Tooltip = 'Chokes packets until disabled.'
})
Type = Blink:CreateDropdown({
Name = 'Type',
List = {'Movement Only', 'All'},
Tooltip = 'Movement Only - Only chokes movement packets\nAll - Chokes remotes & movement'
})
AutoSend = Blink:CreateToggle({
Name = 'Auto send',
Function = function(callback)
AutoSendLength.Object.Visible = callback
end,
Tooltip = 'Automatically send packets in intervals'
})
AutoSendLength = Blink:CreateSlider({
Name = 'Send threshold',
Min = 0,
Max = 1,
Decimal = 100,
Darker = true,
Visible = false,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
end)
run(function()
local ChatSpammer
local Lines
local Mode
local Delay
local Hide
local oldchat
ChatSpammer = vape.Categories.Utility:CreateModule({
Name = 'ChatSpammer',
Function = function(callback)
if callback then
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
if Hide.Enabled and coreGui:FindFirstChild('ExperienceChat') then
ChatSpammer:Clean(coreGui.ExperienceChat:FindFirstChild('RCTScrollContentView', true).ChildAdded:Connect(function(msg)
if msg.Name:sub(1, 2) == '0-' and msg.ContentText == 'You must wait before sending another message.' then
msg.Visible = false
end
end))
end
elseif replicatedStorage:FindFirstChild('DefaultChatSystemChatEvents') then
if Hide.Enabled then
oldchat = hookfunction(getconnections(replicatedStorage.DefaultChatSystemChatEvents.OnNewSystemMessage.OnClientEvent)[1].Function, function(data, ...)
if data.Message:find('ChatFloodDetector') then return end
return oldchat(data, ...)
end)
end
else
notif('ChatSpammer', 'unsupported chat', 5, 'warning')
ChatSpammer:Toggle()
return
end
local ind = 1
repeat
local message = (#Lines.ListEnabled > 0 and Lines.ListEnabled[math.random(1, #Lines.ListEnabled)] or 'vxpe on top')
if Mode.Value == 'Order' and #Lines.ListEnabled > 0 then
message = Lines.ListEnabled[ind] or Lines.ListEnabled[1]
ind = (ind % #Lines.ListEnabled) + 1
end
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
textChatService.ChatInputBarConfiguration.TargetTextChannel:SendAsync(message)
else
replicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(message, 'All')
end
task.wait(Delay.Value)
until not ChatSpammer.Enabled
else
if oldchat then
hookfunction(getconnections(replicatedStorage.DefaultChatSystemChatEvents.OnNewSystemMessage.OnClientEvent)[1].Function, oldchat)
end
end
end,
Tooltip = 'Automatically types in chat'
})
Lines = ChatSpammer:CreateTextList({Name = 'Lines'})
Mode = ChatSpammer:CreateDropdown({
Name = 'Mode',
List = {'Random', 'Order'}
})
Delay = ChatSpammer:CreateSlider({
Name = 'Delay',
Min = 0.1,
Max = 10,
Default = 1,
Decimal = 10,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
Hide = ChatSpammer:CreateToggle({
Name = 'Hide Flood Message',
Default = true,
Function = function()
if ChatSpammer.Enabled then
ChatSpammer:Toggle()
ChatSpammer:Toggle()
end
end
})
end)
run(function()
local Disabler
local function characterAdded(char)
for _, v in getconnections(char.RootPart:GetPropertyChangedSignal('CFrame')) do
hookfunction(v.Function, function() end)
end
for _, v in getconnections(char.RootPart:GetPropertyChangedSignal('Velocity')) do
hookfunction(v.Function, function() end)
end
end
Disabler = vape.Categories.Utility:CreateModule({
Name = 'Disabler',
Function = function(callback)
if callback then
Disabler:Clean(entitylib.Events.LocalAdded:Connect(characterAdded))
if entitylib.isAlive then
characterAdded(entitylib.character)
end
end
end,
Tooltip = 'Disables GetPropertyChangedSignal detections for movement'
})
end)
run(function()
vape.Categories.Utility:CreateModule({
Name = 'Panic',
Function = function(callback)
if callback then
for _, v in vape.Modules do
if v.Enabled then
v:Toggle()
end
end
end
end,
Tooltip = 'Disables all currently enabled modules'
})
end)
run(function()
local Rejoin
Rejoin = vape.Categories.Utility:CreateModule({
Name = 'Rejoin',
Function = function(callback)
if callback then
notif('Rejoin', 'Rejoining...', 5)
Rejoin:Toggle()
if playersService.NumPlayers > 1 then
teleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId)
else
teleportService:Teleport(game.PlaceId)
end
end
end,
Tooltip = 'Rejoins the server'
})
end)
run(function()
local ServerHop
local Sort
ServerHop = vape.Categories.Utility:CreateModule({
Name = 'ServerHop',
Function = function(callback)
if callback then
ServerHop:Toggle()
serverHop(nil, Sort.Value)
end
end,
Tooltip = 'Teleports into a unique server'
})
Sort = ServerHop:CreateDropdown({
Name = 'Sort',
List = {'Descending', 'Ascending'},
Tooltip = 'Descending - Prefers full servers\nAscending - Prefers empty servers'
})
ServerHop:CreateButton({
Name = 'Rejoin Previous Server',
Function = function()
notif('ServerHop', shared.vapeserverhopprevious and 'Rejoining previous server...' or 'Cannot find previous server', 5)
if shared.vapeserverhopprevious then
teleportService:TeleportToPlaceInstance(game.PlaceId, shared.vapeserverhopprevious)
end
end
})
end)
run(function()
local StaffDetector
local Mode
local Profile
local Users
local Group
local Role
local function getRole(plr, id)
local suc, res
for _ = 1, 3 do
suc, res = pcall(function()
return plr:GetRankInGroup(id)
end)
if suc then break end
end
return suc and res or 0
end
local function getLowestStaffRole(roles)
local highest = math.huge
for _, v in roles do
local low = v.Name:lower()
if (low:find('admin') or low:find('mod') or low:find('dev')) and v.Rank < highest then
highest = v.Rank
end
end
return highest
end
local function playerAdded(plr)
if not vape.Loaded then
repeat task.wait() until vape.Loaded
end
local user = table.find(Users.ListEnabled, tostring(plr.UserId))
if user or getRole(plr, tonumber(Group.Value) or 0) >= (tonumber(Role.Value) or 1) then
notif('StaffDetector', 'Staff Detected ('..(user and 'blacklisted_user' or 'staff_role')..'): '..plr.Name, 60, 'alert')
whitelist.customtags[plr.Name] = {{text = 'GAME STAFF', color = Color3.new(1, 0, 0)}}
if Mode.Value == 'Uninject' then
task.spawn(function()
vape:Uninject()
end)
game:GetService('StarterGui'):SetCore('SendNotification', {
Title = 'StaffDetector',
Text = 'Staff Detected\n'..plr.Name,
Duration = 60,
})
elseif Mode.Value == 'ServerHop' then
serverHop()
elseif Mode.Value == 'Profile' then
vape.Save = function() end
if vape.Profile ~= Profile.Value then
vape.Profile = Profile.Value
vape:Load(true, Profile.Value)
end
elseif Mode.Value == 'AutoConfig' then
vape.Save = function() end
for _, v in vape.Modules do
if v.Enabled then
v:Toggle()
end
end
end
end
end
StaffDetector = vape.Categories.Utility:CreateModule({
Name = 'StaffDetector',
Function = function(callback)
if callback then
if Group.Value == '' or Role.Value == '' then
local placeinfo = {Creator = {CreatorTargetId = tonumber(Group.Value)}}
if Group.Value == '' then
placeinfo = marketplaceService:GetProductInfo(game.PlaceId)
if placeinfo.Creator.CreatorType ~= 'Group' then
local desc = placeinfo.Description:split('\n')
for _, str in desc do
local _, begin = str:find('roblox.com/groups/')
if begin then
local endof = str:find('/', begin + 1)
placeinfo = {Creator = {
CreatorType = 'Group',
CreatorTargetId = str:sub(begin + 1, endof - 1)
}}
end
end
end
if placeinfo.Creator.CreatorType ~= 'Group' then
notif('StaffDetector', 'Automatic Setup Failed (no group detected)', 60, 'warning')
return
end
end
local groupinfo = groupService:GetGroupInfoAsync(placeinfo.Creator.CreatorTargetId)
Group:SetValue(placeinfo.Creator.CreatorTargetId)
Role:SetValue(getLowestStaffRole(groupinfo.Roles))
end
if Group.Value == '' or Role.Value == '' then
return
end
StaffDetector:Clean(playersService.PlayerAdded:Connect(playerAdded))
for _, v in playersService:GetPlayers() do
task.spawn(playerAdded, v)
end
end
end,
Tooltip = 'Detects people with a staff rank ingame'
})
Mode = StaffDetector:CreateDropdown({
Name = 'Mode',
List = {'Uninject', 'ServerHop', 'Profile', 'AutoConfig', 'Notify'},
Function = function(val)
if Profile.Object then
Profile.Object.Visible = val == 'Profile'
end
end
})
Profile = StaffDetector:CreateTextBox({
Name = 'Profile',
Default = 'default',
Darker = true,
Visible = false
})
Users = StaffDetector:CreateTextList({
Name = 'Users',
Placeholder = 'player (userid)'
})
Group = StaffDetector:CreateTextBox({
Name = 'Group',
Placeholder = 'Group Id'
})
Role = StaffDetector:CreateTextBox({
Name = 'Role',
Placeholder = 'Role Rank'
})
end)
run(function()
local connections = {}
vape.Categories.World:CreateModule({
Name = 'Anti-AFK',
Function = function(callback)
if callback then
for _, v in getconnections(lplr.Idled) do
table.insert(connections, v)
v:Disable()
end
else
for _, v in connections do
v:Enable()
end
table.clear(connections)
end
end,
Tooltip = 'Lets you stay ingame without getting kicked'
})
end)
run(function()
local Freecam
local Value
local randomkey, module, old = httpService:GenerateGUID(false)
Freecam = vape.Categories.World:CreateModule({
Name = 'Freecam',
Function = function(callback)
if callback then
repeat
task.wait(0.1)
for _, v in getconnections(gameCamera:GetPropertyChangedSignal('CameraType')) do
if v.Function then
module = debug.getupvalue(v.Function, 1)
end
end
until module or not Freecam.Enabled
if module and module.activeCameraController and Freecam.Enabled then
old = module.activeCameraController.GetSubjectPosition
local camPos = old(module.activeCameraController) or Vector3.zero
module.activeCameraController.GetSubjectPosition = function()
return camPos
end
Freecam:Clean(runService.PreSimulation:Connect(function(dt)
if not inputService:GetFocusedTextBox() then
local forward = (inputService:IsKeyDown(Enum.KeyCode.W) and -1 or 0) + (inputService:IsKeyDown(Enum.KeyCode.S) and 1 or 0)
local side = (inputService:IsKeyDown(Enum.KeyCode.A) and -1 or 0) + (inputService:IsKeyDown(Enum.KeyCode.D) and 1 or 0)
local up = (inputService:IsKeyDown(Enum.KeyCode.Q) and -1 or 0) + (inputService:IsKeyDown(Enum.KeyCode.E) and 1 or 0)
dt = dt * (inputService:IsKeyDown(Enum.KeyCode.LeftShift) and 0.25 or 1)
camPos = (CFrame.lookAlong(camPos, gameCamera.CFrame.LookVector) * CFrame.new(Vector3.new(side, up, forward) * (Value.Value * dt))).Position
end
end))
contextService:BindActionAtPriority('FreecamKeyboard'..randomkey, function()
return Enum.ContextActionResult.Sink
end, false, Enum.ContextActionPriority.High.Value,
Enum.KeyCode.W,
Enum.KeyCode.A,
Enum.KeyCode.S,
Enum.KeyCode.D,
Enum.KeyCode.E,
Enum.KeyCode.Q,
Enum.KeyCode.Up,
Enum.KeyCode.Down
)
end
else
pcall(function()
contextService:UnbindAction('FreecamKeyboard'..randomkey)
end)
if module and old then
module.activeCameraController.GetSubjectPosition = old
module = nil
old = nil
end
end
end,
Tooltip = 'Lets you fly and clip through walls freely\nwithout moving your player server-sided.'
})
Value = Freecam:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
local Gravity
local Mode
local Value
local changed, old = false
Gravity = vape.Categories.World:CreateModule({
Name = 'Gravity',
Function = function(callback)
if callback then
if Mode.Value == 'Workspace' then
old = workspace.Gravity
workspace.Gravity = Value.Value
Gravity:Clean(workspace:GetPropertyChangedSignal('Gravity'):Connect(function()
if changed then return end
changed = true
old = workspace.Gravity
workspace.Gravity = Value.Value
changed = false
end))
else
Gravity:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive and entitylib.character.Humanoid.FloorMaterial == Enum.Material.Air then
local root = entitylib.character.RootPart
if Mode.Value == 'Impulse' then
root:ApplyImpulse(Vector3.new(0, dt * (workspace.Gravity - Value.Value), 0) * root.AssemblyMass)
else
root.AssemblyLinearVelocity += Vector3.new(0, dt * (workspace.Gravity - Value.Value), 0)
end
end
end))
end
else
if old then
workspace.Gravity = old
old = nil
end
end
end,
Tooltip = 'Changes the rate you fall'
})
Mode = Gravity:CreateDropdown({
Name = 'Mode',
List = {'Workspace', 'Velocity', 'Impulse'},
Tooltip = 'Workspace - Adjusts the gravity for the entire game\nVelocity - Adjusts the local players gravity\nImpulse - Same as velocity while using forces instead'
})
Value = Gravity:CreateSlider({
Name = 'Gravity',
Min = 0,
Max = 192,
Function = function(val)
if Gravity.Enabled and Mode.Value == 'Workspace' then
changed = true
workspace.Gravity = val
changed = false
end
end,
Default = 192
})
end)
run(function()
local Parkour
Parkour = vape.Categories.World:CreateModule({
Name = 'Parkour',
Function = function(callback)
if callback then
local oldfloor
Parkour:Clean(runService.RenderStepped:Connect(function()
if entitylib.isAlive then
local material = entitylib.character.Humanoid.FloorMaterial
if material == Enum.Material.Air and oldfloor ~= Enum.Material.Air then
entitylib.character.Humanoid.Jump = true
end
oldfloor = material
end
end))
end
end,
Tooltip = 'Automatically jumps after reaching the edge'
})
end)
run(function()
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local module, old
vape.Categories.World:CreateModule({
Name = 'SafeWalk',
Function = function(callback)
if callback then
if not module then
local suc = pcall(function()
module = require(lplr.PlayerScripts.PlayerModule).controls
end)
if not suc then module = {} end
end
old = module.moveFunction
module.moveFunction = function(self, vec, face)
if entitylib.isAlive then
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
local root = entitylib.character.RootPart
local movedir = root.Position + vec
local ray = workspace:Raycast(movedir, Vector3.new(0, -15, 0), rayCheck)
if not ray then
local check = workspace:Blockcast(root.CFrame, Vector3.new(3, 1, 3), Vector3.new(0, -(entitylib.character.HipHeight + 1), 0), rayCheck)
if check then
vec = (check.Instance:GetClosestPointOnSurface(movedir) - root.Position) * Vector3.new(1, 0, 1)
end
end
end
return old(self, vec, face)
end
else
if module and old then
module.moveFunction = old
end
end
end,
Tooltip = 'Prevents you from walking off the edge of parts'
})
end)
run(function()
local Xray
local List
local modified = {}
local function modifyPart(v)
if v:IsA('BasePart') and not table.find(List.ListEnabled, v.Name) then
modified[v] = true
v.LocalTransparencyModifier = 0.5
end
end
Xray = vape.Categories.World:CreateModule({
Name = 'Xray',
Function = function(callback)
if callback then
Xray:Clean(workspace.DescendantAdded:Connect(modifyPart))
for _, v in workspace:GetDescendants() do
modifyPart(v)
end
else
for i in modified do
i.LocalTransparencyModifier = 0
end
table.clear(modified)
end
end,
Tooltip = 'Renders whitelisted parts through walls.'
})
List = Xray:CreateTextList({
Name = 'Part',
Function = function()
if Xray.Enabled then
Xray:Toggle()
Xray:Toggle()
end
end
})
end)
run(function()
local MurderMystery
local murderer, sheriff, oldtargetable, oldgetcolor
local function itemAdded(v, plr)
if v:IsA('Tool') then
local check = v:FindFirstChild('IsGun') and 'sheriff' or v:FindFirstChild('KnifeServer') and 'murderer' or nil
check = check or v.Name:lower():find('knife') and 'murderer' or v.Name:lower():find('gun') and 'sheriff' or nil
if check == 'murderer' and plr ~= murderer then
murderer = plr
if plr.Character then
entitylib.refresh()
end
elseif check == 'sheriff' and plr ~= sheriff then
sheriff = plr
if plr.Character then
entitylib.refresh()
end
end
end
end
local function playerAdded(plr)
MurderMystery:Clean(plr.DescendantAdded:Connect(function(v)
itemAdded(v, plr)
end))
local pack = plr:FindFirstChildWhichIsA('Backpack')
if pack then
for _, v in pack:GetChildren() do
itemAdded(v, plr)
end
end
if plr.Character then
for _, v in plr.Character:GetChildren() do
itemAdded(v, plr)
end
end
end
MurderMystery = vape.Categories.Minigames:CreateModule({
Name = 'MurderMystery',
Function = function(callback)
if callback then
oldtargetable, oldgetcolor = entitylib.targetCheck, entitylib.getEntityColor
entitylib.getEntityColor = function(ent)
ent = ent.Player
if not (ent and vape.Categories.Main.Options['Use team color'].Enabled) then return end
if isFriend(ent, true) then
return Color3.fromHSV(vape.Categories.Friends.Options['Friends color'].Hue, vape.Categories.Friends.Options['Friends color'].Sat, vape.Categories.Friends.Options['Friends color'].Value)
end
return murderer == ent and Color3.new(1, 0.3, 0.3) or sheriff == ent and Color3.new(0, 0.5, 1) or nil
end
entitylib.targetCheck = function(ent)
if ent.Player and isFriend(ent.Player) then return false end
if murderer == lplr then return true end
return murderer == ent.Player or sheriff == ent.Player
end
for _, v in playersService:GetPlayers() do
playerAdded(v)
end
MurderMystery:Clean(playersService.PlayerAdded:Connect(playerAdded))
entitylib.refresh()
else
entitylib.getEntityColor = oldgetcolor
entitylib.targetCheck = oldtargetable
entitylib.refresh()
end
end,
Tooltip = 'Automatic murder mystery teaming based on equipped roblox tools.'
})
end)
run(function()
local Atmosphere
local Toggles = {}
local newobjects, oldobjects = {}, {}
local apidump = {
Sky = {
SkyboxUp = 'Text',
SkyboxDn = 'Text',
SkyboxLf = 'Text',
SkyboxRt = 'Text',
SkyboxFt = 'Text',
SkyboxBk = 'Text',
SunTextureId = 'Text',
SunAngularSize = 'Number',
MoonTextureId = 'Text',
MoonAngularSize = 'Number',
StarCount = 'Number'
},
Atmosphere = {
Color = 'Color',
Decay = 'Color',
Density = 'Number',
Offset = 'Number',
Glare = 'Number',
Haze = 'Number'
},
BloomEffect = {
Intensity = 'Number',
Size = 'Number',
Threshold = 'Number'
},
DepthOfFieldEffect = {
FarIntensity = 'Number',
FocusDistance = 'Number',
InFocusRadius = 'Number',
NearIntensity = 'Number'
},
SunRaysEffect = {
Intensity = 'Number',
Spread = 'Number'
},
ColorCorrectionEffect = {
TintColor = 'Color',
Saturation = 'Number',
Contrast = 'Number',
Brightness = 'Number'
}
}
local function removeObject(v)
if not table.find(newobjects, v) then
local toggle = Toggles[v.ClassName]
if toggle and toggle.Toggle.Enabled then
if v.Parent then
table.insert(oldobjects, v)
v.Parent = game
end
end
end
end
Atmosphere = vape.Legit:CreateModule({
Name = 'Atmosphere',
Function = function(callback)
if callback then
for _, v in lightingService:GetChildren() do
removeObject(v)
end
Atmosphere:Clean(lightingService.ChildAdded:Connect(function(v)
task.defer(removeObject, v)
end))
for i, v in Toggles do
if v.Toggle.Enabled then
local obj = Instance.new(i)
for i2, v2 in v.Objects do
if v2.Type == 'ColorSlider' then
obj[i2] = Color3.fromHSV(v2.Hue, v2.Sat, v2.Value)
else
obj[i2] = apidump[i][i2] ~= 'Number' and v2.Value or tonumber(v2.Value) or 0
end
end
obj.Parent = lightingService
table.insert(newobjects, obj)
end
end
else
for _, v in newobjects do
v:Destroy()
end
for _, v in oldobjects do
v.Parent = lightingService
end
table.clear(newobjects)
table.clear(oldobjects)
end
end,
Tooltip = 'Custom lighting objects'
})
for i, v in apidump do
Toggles[i] = {Objects = {}}
Toggles[i].Toggle = Atmosphere:CreateToggle({
Name = i,
Function = function(callback)
if Atmosphere.Enabled then
Atmosphere:Toggle()
Atmosphere:Toggle()
end
for _, toggle in Toggles[i].Objects do
toggle.Object.Visible = callback
end
end
})
for i2, v2 in v do
if v2 == 'Text' or v2 == 'Number' then
Toggles[i].Objects[i2] = Atmosphere:CreateTextBox({
Name = i2,
Function = function(enter)
if Atmosphere.Enabled and enter then
Atmosphere:Toggle()
Atmosphere:Toggle()
end
end,
Darker = true,
Default = v2 == 'Number' and '0' or nil,
Visible = false
})
elseif v2 == 'Color' then
Toggles[i].Objects[i2] = Atmosphere:CreateColorSlider({
Name = i2,
Function = function()
if Atmosphere.Enabled then
Atmosphere:Toggle()
Atmosphere:Toggle()
end
end,
Darker = true,
Visible = false
})
end
end
end
end)
run(function()
local Breadcrumbs
local Texture
local Lifetime
local Thickness
local FadeIn
local FadeOut
local trail, point, point2
Breadcrumbs = vape.Legit:CreateModule({
Name = 'Breadcrumbs',
Function = function(callback)
if callback then
point = Instance.new('Attachment')
point.Position = Vector3.new(0, Thickness.Value - 2.7, 0)
point2 = Instance.new('Attachment')
point2.Position = Vector3.new(0, -Thickness.Value - 2.7, 0)
trail = Instance.new('Trail')
trail.Texture = Texture.Value == '' and 'http://www.roblox.com/asset/?id=14166981368' or Texture.Value
trail.TextureMode = Enum.TextureMode.Static
trail.Color = ColorSequence.new(Color3.fromHSV(FadeIn.Hue, FadeIn.Sat, FadeIn.Value), Color3.fromHSV(FadeOut.Hue, FadeOut.Sat, FadeOut.Value))
trail.Lifetime = Lifetime.Value
trail.Attachment0 = point
trail.Attachment1 = point2
trail.FaceCamera = true
Breadcrumbs:Clean(trail)
Breadcrumbs:Clean(point)
Breadcrumbs:Clean(point2)
Breadcrumbs:Clean(entitylib.Events.LocalAdded:Connect(function(ent)
point.Parent = ent.HumanoidRootPart
point2.Parent = ent.HumanoidRootPart
trail.Parent = gameCamera
end))
if entitylib.isAlive then
point.Parent = entitylib.character.RootPart
point2.Parent = entitylib.character.RootPart
trail.Parent = gameCamera
end
else
trail = nil
point = nil
point2 = nil
end
end,
Tooltip = 'Shows a trail behind your character'
})
Texture = Breadcrumbs:CreateTextBox({
Name = 'Texture',
Placeholder = 'Texture Id',
Function = function(enter)
if enter and trail then
trail.Texture = Texture.Value == '' and 'http://www.roblox.com/asset/?id=14166981368' or Texture.Value
end
end
})
FadeIn = Breadcrumbs:CreateColorSlider({
Name = 'Fade In',
Function = function(hue, sat, val)
if trail then
trail.Color = ColorSequence.new(Color3.fromHSV(hue, sat, val), Color3.fromHSV(FadeOut.Hue, FadeOut.Sat, FadeOut.Value))
end
end
})
FadeOut = Breadcrumbs:CreateColorSlider({
Name = 'Fade Out',
Function = function(hue, sat, val)
if trail then
trail.Color = ColorSequence.new(Color3.fromHSV(FadeIn.Hue, FadeIn.Sat, FadeIn.Value), Color3.fromHSV(hue, sat, val))
end
end
})
Lifetime = Breadcrumbs:CreateSlider({
Name = 'Lifetime',
Min = 1,
Max = 5,
Default = 3,
Decimal = 10,
Function = function(val)
if trail then
trail.Lifetime = val
end
end,
Suffix = function(val)
return val == 1 and 'second' or 'seconds'
end
})
Thickness = Breadcrumbs:CreateSlider({
Name = 'Thickness',
Min = 0,
Max = 2,
Default = 0.1,
Decimal = 100,
Function = function(val)
if point then
point.Position = Vector3.new(0, val - 2.7, 0)
end
if point2 then
point2.Position = Vector3.new(0, -val - 2.7, 0)
end
end,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
local Cape
local Texture
local part, motor
local function createMotor(char)
if motor then
motor:Destroy()
end
part.Parent = gameCamera
motor = Instance.new('Motor6D')
motor.MaxVelocity = 0.08
motor.Part0 = part
motor.Part1 = char.Character:FindFirstChild('UpperTorso') or char.RootPart
motor.C0 = CFrame.new(0, 2, 0) * CFrame.Angles(0, math.rad(-90), 0)
motor.C1 = CFrame.new(0, motor.Part1.Size.Y / 2, 0.45) * CFrame.Angles(0, math.rad(90), 0)
motor.Parent = part
end
Cape = vape.Legit:CreateModule({
Name = 'Cape',
Function = function(callback)
if callback then
part = Instance.new('Part')
part.Size = Vector3.new(2, 4, 0.1)
part.CanCollide = false
part.CanQuery = false
part.Massless = true
part.Transparency = 0
part.Material = Enum.Material.SmoothPlastic
part.Color = Color3.new()
part.CastShadow = false
part.Parent = gameCamera
local capesurface = Instance.new('SurfaceGui')
capesurface.SizingMode = Enum.SurfaceGuiSizingMode.PixelsPerStud
capesurface.Adornee = part
capesurface.Parent = part
if Texture.Value:find('.webm') then
local decal = Instance.new('VideoFrame')
decal.Video = getcustomasset(Texture.Value)
decal.Size = UDim2.fromScale(1, 1)
decal.BackgroundTransparency = 1
decal.Looped = true
decal.Parent = capesurface
decal:Play()
else
local decal = Instance.new('ImageLabel')
decal.Image = Texture.Value ~= '' and (Texture.Value:find('rbxasset') and Texture.Value or assetfunction(Texture.Value)) or 'rbxassetid://14637958134'
decal.Size = UDim2.fromScale(1, 1)
decal.BackgroundTransparency = 1
decal.Parent = capesurface
end
Cape:Clean(part)
Cape:Clean(entitylib.Events.LocalAdded:Connect(createMotor))
if entitylib.isAlive then
createMotor(entitylib.character)
end
repeat
if motor and entitylib.isAlive then
local velo = math.min(entitylib.character.RootPart.Velocity.Magnitude, 90)
motor.DesiredAngle = math.rad(6) + math.rad(velo) + (velo > 1 and math.abs(math.cos(tick() * 5)) / 3 or 0)
end
capesurface.Enabled = (gameCamera.CFrame.Position - gameCamera.Focus.Position).Magnitude > 0.6
part.Transparency = (gameCamera.CFrame.Position - gameCamera.Focus.Position).Magnitude > 0.6 and 0 or 1
task.wait()
until not Cape.Enabled
else
part = nil
motor = nil
end
end,
Tooltip = 'Add\'s a cape to your character'
})
Texture = Cape:CreateTextBox({
Name = 'Texture'
})
end)
run(function()
local ChinaHat
local Material
local Color
local hat
ChinaHat = vape.Legit:CreateModule({
Name = 'China Hat',
Function = function(callback)
if callback then
if vape.ThreadFix then
setthreadidentity(8)
end
hat = Instance.new('MeshPart')
hat.Size = Vector3.new(3, 0.7, 3)
hat.Name = 'ChinaHat'
hat.Material = Enum.Material[Material.Value]
hat.Color = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
hat.CanCollide = false
hat.CanQuery = false
hat.Massless = true
hat.MeshId = 'http://www.roblox.com/asset/?id=1778999'
hat.Transparency = 1 - Color.Opacity
hat.Parent = gameCamera
hat.CFrame = entitylib.isAlive and entitylib.character.Head.CFrame + Vector3.new(0, 1, 0) or CFrame.identity
local weld = Instance.new('WeldConstraint')
weld.Part0 = hat
weld.Part1 = entitylib.isAlive and entitylib.character.Head or nil
weld.Parent = hat
ChinaHat:Clean(hat)
ChinaHat:Clean(entitylib.Events.LocalAdded:Connect(function(char)
if weld then
weld:Destroy()
end
hat.Parent = gameCamera
hat.CFrame = char.Head.CFrame + Vector3.new(0, 1, 0)
hat.Velocity = Vector3.zero
weld = Instance.new('WeldConstraint')
weld.Part0 = hat
weld.Part1 = char.Head
weld.Parent = hat
end))
repeat
hat.LocalTransparencyModifier = ((gameCamera.CFrame.Position - gameCamera.Focus.Position).Magnitude <= 0.6 and 1 or 0)
task.wait()
until not ChinaHat.Enabled
else
hat = nil
end
end,
Tooltip = 'Puts a china hat on your character (ty mastadawn)'
})
local materials = {'ForceField'}
for _, v in Enum.Material:GetEnumItems() do
if v.Name ~= 'ForceField' then
table.insert(materials, v.Name)
end
end
Material = ChinaHat:CreateDropdown({
Name = 'Material',
List = materials,
Function = function(val)
if hat then
hat.Material = Enum.Material[val]
end
end
})
Color = ChinaHat:CreateColorSlider({
Name = 'Hat Color',
DefaultOpacity = 0.7,
Function = function(hue, sat, val, opacity)
if hat then
hat.Color = Color3.fromHSV(hue, sat, val)
hat.Transparency = 1 - opacity
end
end
})
end)
run(function()
local Clock
local TwentyFourHour
local label
Clock = vape.Legit:CreateModule({
Name = 'Clock',
Function = function(callback)
if callback then
repeat
label.Text = DateTime.now():FormatLocalTime('LT', TwentyFourHour.Enabled and 'zh-cn' or 'en-us')
task.wait(1)
until not Clock.Enabled
end
end,
Size = UDim2.fromOffset(100, 41),
Tooltip = 'Shows the current local time'
})
Clock:CreateFont({
Name = 'Font',
Blacklist = 'Gotham',
Function = function(val)
label.FontFace = val
end
})
Clock:CreateColorSlider({
Name = 'Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
label.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
label.BackgroundTransparency = 1 - opacity
end
})
TwentyFourHour = Clock:CreateToggle({
Name = '24 Hour Clock'
})
label = Instance.new('TextLabel')
label.Size = UDim2.new(0, 100, 0, 41)
label.BackgroundTransparency = 0.5
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.Text = '0:00 PM'
label.TextColor3 = Color3.new(1, 1, 1)
label.BackgroundColor3 = Color3.new()
label.Parent = Clock.Children
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = label
end)
run(function()
local Disguise
local Mode
local IDBox
local desc
local function itemAdded(v, manual)
if (not v:GetAttribute('Disguise')) and ((v:IsA('Accessory') and (not v:GetAttribute('InvItem')) and (not v:GetAttribute('ArmorSlot'))) or v:IsA('ShirtGraphic') or v:IsA('Shirt') or v:IsA('Pants') or v:IsA('BodyColors') or manual) then
repeat
task.wait()
v.Parent = game
until v.Parent == game
v:ClearAllChildren()
v:Destroy()
end
end
local function characterAdded(char)
if Mode.Value == 'Character' then
task.wait(0.1)
char.Character.Archivable = true
local clone = char.Character:Clone()
repeat
if pcall(function()
desc = playersService:GetHumanoidDescriptionFromUserId(IDBox.Value == '' and 239702688 or tonumber(IDBox.Value))
end) and desc then break end
task.wait(1)
until not Disguise.Enabled
if not Disguise.Enabled then
clone:ClearAllChildren()
clone:Destroy()
clone = nil
if desc then
desc:Destroy()
desc = nil
end
return
end
clone.Parent = game
local originalDesc = char.Humanoid:WaitForChild('HumanoidDescription', 2) or {
HeightScale = 1,
SetEmotes = function() end,
SetEquippedEmotes = function() end
}
originalDesc.JumpAnimation = desc.JumpAnimation
desc.HeightScale = originalDesc.HeightScale
for _, v in clone:GetChildren() do
if v:IsA('Accessory') or v:IsA('ShirtGraphic') or v:IsA('Shirt') or v:IsA('Pants') then
v:ClearAllChildren()
v:Destroy()
end
end
clone.Humanoid:ApplyDescriptionClientServer(desc)
for _, v in char.Character:GetChildren() do
itemAdded(v)
end
Disguise:Clean(char.Character.ChildAdded:Connect(itemAdded))
for _, v in clone:WaitForChild('Animate'):GetChildren() do
if not char.Character:FindFirstChild('Animate') then return end
local real = char.Character.Animate:FindFirstChild(v.Name)
if v and real then
local anim = v:FindFirstChildWhichIsA('Animation') or {AnimationId = ''}
local realanim = real:FindFirstChildWhichIsA('Animation') or {AnimationId = ''}
if realanim then
realanim.AnimationId = anim.AnimationId
end
end
end
for _, v in clone:GetChildren() do
v:SetAttribute('Disguise', true)
if v:IsA('Accessory') then
for _, v2 in v:GetDescendants() do
if v2:IsA('Weld') and v2.Part1 then
v2.Part1 = char.Character[v2.Part1.Name]
end
end
v.Parent = char.Character
elseif v:IsA('ShirtGraphic') or v:IsA('Shirt') or v:IsA('Pants') or v:IsA('BodyColors') then
v.Parent = char.Character
elseif v.Name == 'Head' and char.Head:IsA('MeshPart') and (not char.Head:FindFirstChild('FaceControls')) then
char.Head.MeshId = v.MeshId
end
end
local localface = char.Character:FindFirstChild('face', true)
local cloneface = clone:FindFirstChild('face', true)
if localface and cloneface then
itemAdded(localface, true)
cloneface.Parent = char.Head
end
originalDesc:SetEmotes(desc:GetEmotes())
originalDesc:SetEquippedEmotes(desc:GetEquippedEmotes())
clone:ClearAllChildren()
clone:Destroy()
clone = nil
if desc then
desc:Destroy()
desc = nil
end
else
local data
repeat
if pcall(function()
data = marketplaceService:GetProductInfo(IDBox.Value == '' and 43 or tonumber(IDBox.Value), Enum.InfoType.Bundle)
end) then break end
task.wait(1)
until not Disguise.Enabled
if not Disguise.Enabled then
if data then
table.clear(data)
data = nil
end
return
end
if data.BundleType == 'AvatarAnimations' then
local animate = char.Character:FindFirstChild('Animate')
if not animate then return end
for _, v in desc.Items do
local animtype = v.Name:split(' ')[2]:lower()
if animtype ~= 'animation' then
local suc, res = pcall(function() return game:GetObjects('rbxassetid://'..v.Id) end)
if suc then
animate[animtype]:FindFirstChildWhichIsA('Animation').AnimationId = res[1]:FindFirstChildWhichIsA('Animation', true).AnimationId
end
end
end
else
notif('Disguise', 'that\'s not an animation pack', 5, 'warning')
end
end
end
Disguise = vape.Legit:CreateModule({
Name = 'Disguise',
Function = function(callback)
if callback then
Disguise:Clean(entitylib.Events.LocalAdded:Connect(characterAdded))
if entitylib.isAlive then
characterAdded(entitylib.character)
end
end
end,
Tooltip = 'Changes your character or animation to a specific ID (animation packs or userid\'s only)'
})
Mode = Disguise:CreateDropdown({
Name = 'Mode',
List = {'Character', 'Animation'},
Function = function()
if Disguise.Enabled then
Disguise:Toggle()
Disguise:Toggle()
end
end
})
IDBox = Disguise:CreateTextBox({
Name = 'Disguise',
Placeholder = 'Disguise User Id',
Function = function()
if Disguise.Enabled then
Disguise:Toggle()
Disguise:Toggle()
end
end
})
end)
run(function()
local FOV
local Value
local oldfov
FOV = vape.Legit:CreateModule({
Name = 'FOV',
Function = function(callback)
if callback then
oldfov = gameCamera.FieldOfView
repeat
gameCamera.FieldOfView = Value.Value
task.wait()
until not FOV.Enabled
else
gameCamera.FieldOfView = oldfov
end
end,
Tooltip = 'Adjusts camera vision'
})
Value = FOV:CreateSlider({
Name = 'FOV',
Min = 30,
Max = 120
})
end)
run(function()
--[[
Grabbing an accurate count of the current framerate
Source: https://devforum.roblox.com/t/get-client-FPS-trough-a-script/282631
]]
local FPS
local label
FPS = vape.Legit:CreateModule({
Name = 'FPS',
Function = function(callback)
if callback then
local frames = {}
local startClock = os.clock()
local updateTick = tick()
FPS:Clean(runService.Heartbeat:Connect(function()
local updateClock = os.clock()
for i = #frames, 1, -1 do
frames[i + 1] = frames[i] >= updateClock - 1 and frames[i] or nil
end
frames[1] = updateClock
if updateTick < tick() then
updateTick = tick() + 1
label.Text = math.floor(os.clock() - startClock >= 1 and #frames or #frames / (os.clock() - startClock))..' FPS'
end
end))
end
end,
Size = UDim2.fromOffset(100, 41),
Tooltip = 'Shows the current framerate'
})
FPS:CreateFont({
Name = 'Font',
Blacklist = 'Gotham',
Function = function(val)
label.FontFace = val
end
})
FPS:CreateColorSlider({
Name = 'Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
label.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
label.BackgroundTransparency = 1 - opacity
end
})
label = Instance.new('TextLabel')
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 0.5
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.Text = 'inf FPS'
label.TextColor3 = Color3.new(1, 1, 1)
label.BackgroundColor3 = Color3.new()
label.Parent = FPS.Children
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = label
end)
run(function()
local Keystrokes
local Style
local Color
local keys, holder = {}
local function createKeystroke(keybutton, pos, pos2, text)
if keys[keybutton] then
keys[keybutton].Key:Destroy()
keys[keybutton] = nil
end
local key = Instance.new('Frame')
key.Size = keybutton == Enum.KeyCode.Space and UDim2.new(0, 110, 0, 24) or UDim2.new(0, 34, 0, 36)
key.BackgroundColor3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
key.BackgroundTransparency = 1 - Color.Opacity
key.Position = pos
key.Name = keybutton.Name
key.Parent = holder
local keytext = Instance.new('TextLabel')
keytext.BackgroundTransparency = 1
keytext.Size = UDim2.fromScale(1, 1)
keytext.Font = Enum.Font.Gotham
keytext.Text = text or keybutton.Name
keytext.TextXAlignment = Enum.TextXAlignment.Left
keytext.TextYAlignment = Enum.TextYAlignment.Top
keytext.Position = pos2
keytext.TextSize = keybutton == Enum.KeyCode.Space and 18 or 15
keytext.TextColor3 = Color3.new(1, 1, 1)
keytext.Parent = key
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = key
keys[keybutton] = {Key = key}
end
Keystrokes = vape.Legit:CreateModule({
Name = 'Keystrokes',
Function = function(callback)
if callback then
createKeystroke(Enum.KeyCode.W, UDim2.new(0, 38, 0, 0), UDim2.new(0, 6, 0, 5), Style.Value == 'Arrow' and '↑' or nil)
createKeystroke(Enum.KeyCode.S, UDim2.new(0, 38, 0, 42), UDim2.new(0, 8, 0, 5), Style.Value == 'Arrow' and '↓' or nil)
createKeystroke(Enum.KeyCode.A, UDim2.new(0, 0, 0, 42), UDim2.new(0, 7, 0, 5), Style.Value == 'Arrow' and '←' or nil)
createKeystroke(Enum.KeyCode.D, UDim2.new(0, 76, 0, 42), UDim2.new(0, 8, 0, 5), Style.Value == 'Arrow' and '→' or nil)
Keystrokes:Clean(inputService.InputBegan:Connect(function(inputType)
local key = keys[inputType.KeyCode]
if key then
if key.Tween then
key.Tween:Cancel()
end
if key.Tween2 then
key.Tween2:Cancel()
end
key.Pressed = true
key.Tween = tweenService:Create(key.Key, TweenInfo.new(0.1), {
BackgroundColor3 = Color3.new(1, 1, 1),
BackgroundTransparency = 0
})
key.Tween2 = tweenService:Create(key.Key.TextLabel, TweenInfo.new(0.1), {
TextColor3 = Color3.new()
})
key.Tween:Play()
key.Tween2:Play()
end
end))
Keystrokes:Clean(inputService.InputEnded:Connect(function(inputType)
local key = keys[inputType.KeyCode]
if key then
if key.Tween then
key.Tween:Cancel()
end
if key.Tween2 then
key.Tween2:Cancel()
end
key.Pressed = false
key.Tween = tweenService:Create(key.Key, TweenInfo.new(0.1), {
BackgroundColor3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value),
BackgroundTransparency = 1 - Color.Opacity
})
key.Tween2 = tweenService:Create(key.Key.TextLabel, TweenInfo.new(0.1), {
TextColor3 = Color3.new(1, 1, 1)
})
key.Tween:Play()
key.Tween2:Play()
end
end))
end
end,
Size = UDim2.fromOffset(110, 176),
Tooltip = 'Shows movement keys onscreen'
})
holder = Instance.new('Frame')
holder.Size = UDim2.fromScale(1, 1)
holder.BackgroundTransparency = 1
holder.Parent = Keystrokes.Children
Style = Keystrokes:CreateDropdown({
Name = 'Key Style',
List = {'Keyboard', 'Arrow'},
Function = function()
if Keystrokes.Enabled then
Keystrokes:Toggle()
Keystrokes:Toggle()
end
end
})
Color = Keystrokes:CreateColorSlider({
Name = 'Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
for _, v in keys do
if not v.Pressed then
v.Key.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
v.Key.BackgroundTransparency = 1 - opacity
end
end
end
})
Keystrokes:CreateToggle({
Name = 'Show Spacebar',
Function = function(callback)
Keystrokes.Children.Size = UDim2.fromOffset(110, callback and 107 or 78)
if callback then
createKeystroke(Enum.KeyCode.Space, UDim2.new(0, 0, 0, 83), UDim2.new(0, 25, 0, -10), '______')
else
keys[Enum.KeyCode.Space].Key:Destroy()
keys[Enum.KeyCode.Space] = nil
end
end,
Default = true
})
end)
run(function()
local Memory
local label
Memory = vape.Legit:CreateModule({
Name = 'Memory',
Function = function(callback)
if callback then
repeat
label.Text = math.floor(tonumber(game:GetService('Stats'):FindFirstChild('PerformanceStats').Memory:GetValue()))..' MB'
task.wait(1)
until not Memory.Enabled
end
end,
Size = UDim2.fromOffset(100, 41),
Tooltip = 'A label showing the memory currently used by roblox'
})
Memory:CreateFont({
Name = 'Font',
Blacklist = 'Gotham',
Function = function(val)
label.FontFace = val
end
})
Memory:CreateColorSlider({
Name = 'Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
label.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
label.BackgroundTransparency = 1 - opacity
end
})
label = Instance.new('TextLabel')
label.Size = UDim2.new(0, 100, 0, 41)
label.BackgroundTransparency = 0.5
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.Text = '0 MB'
label.TextColor3 = Color3.new(1, 1, 1)
label.BackgroundColor3 = Color3.new()
label.Parent = Memory.Children
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = label
end)
run(function()
local Ping
local label
Ping = vape.Legit:CreateModule({
Name = 'Ping',
Function = function(callback)
if callback then
repeat
label.Text = math.floor(tonumber(game:GetService('Stats'):FindFirstChild('PerformanceStats').Ping:GetValue()))..' ms'
task.wait(1)
until not Ping.Enabled
end
end,
Size = UDim2.fromOffset(100, 41),
Tooltip = 'Shows the current connection speed to the roblox server'
})
Ping:CreateFont({
Name = 'Font',
Blacklist = 'Gotham',
Function = function(val)
label.FontFace = val
end
})
Ping:CreateColorSlider({
Name = 'Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
label.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
label.BackgroundTransparency = 1 - opacity
end
})
label = Instance.new('TextLabel')
label.Size = UDim2.new(0, 100, 0, 41)
label.BackgroundTransparency = 0.5
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.Text = '0 ms'
label.TextColor3 = Color3.new(1, 1, 1)
label.BackgroundColor3 = Color3.new()
label.Parent = Ping.Children
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = label
end)
run(function()
local SongBeats
local List
local FOV
local FOVValue = {}
local Volume
local alreadypicked = {}
local beattick = tick()
local oldfov, songobj, songbpm, songtween
local function choosesong()
local list = List.ListEnabled
if #alreadypicked >= #list then
table.clear(alreadypicked)
end
if #list <= 0 then
notif('SongBeats', 'no songs', 10)
SongBeats:Toggle()
return
end
local chosensong = list[math.random(1, #list)]
if #list > 1 and table.find(alreadypicked, chosensong) then
repeat
task.wait()
chosensong = list[math.random(1, #list)]
until not table.find(alreadypicked, chosensong) or not SongBeats.Enabled
end
if not SongBeats.Enabled then return end
local split = chosensong:split('/')
if not isfile(split[1]) then
notif('SongBeats', 'Missing song ('..split[1]..')', 10)
SongBeats:Toggle()
return
end
songobj.SoundId = assetfunction(split[1])
repeat task.wait() until songobj.IsLoaded or not SongBeats.Enabled
if SongBeats.Enabled then
beattick = tick() + (tonumber(split[3]) or 0)
songbpm = 60 / (tonumber(split[2]) or 50)
songobj:Play()
end
end
SongBeats = vape.Legit:CreateModule({
Name = 'Song Beats',
Function = function(callback)
if callback then
songobj = Instance.new('Sound')
songobj.Volume = Volume.Value / 100
songobj.Parent = workspace
oldfov = gameCamera.FieldOfView
repeat
if not songobj.Playing then
choosesong()
end
if beattick < tick() and SongBeats.Enabled and FOV.Enabled then
beattick = tick() + songbpm
gameCamera.FieldOfView = oldfov - FOVValue.Value
songtween = tweenService:Create(gameCamera, TweenInfo.new(math.min(songbpm, 0.2), Enum.EasingStyle.Linear), {
FieldOfView = oldfov
})
songtween:Play()
end
task.wait()
until not SongBeats.Enabled
else
if songobj then
songobj:Destroy()
end
if songtween then
songtween:Cancel()
end
if oldfov then
gameCamera.FieldOfView = oldfov
end
table.clear(alreadypicked)
end
end,
Tooltip = 'Built in mp3 player'
})
List = SongBeats:CreateTextList({
Name = 'Songs',
Placeholder = 'filepath/bpm/start'
})
FOV = SongBeats:CreateToggle({
Name = 'Beat FOV',
Function = function(callback)
if FOVValue.Object then
FOVValue.Object.Visible = callback
end
if SongBeats.Enabled then
SongBeats:Toggle()
SongBeats:Toggle()
end
end,
Default = true
})
FOVValue = SongBeats:CreateSlider({
Name = 'Adjustment',
Min = 1,
Max = 30,
Default = 5,
Darker = true
})
Volume = SongBeats:CreateSlider({
Name = 'Volume',
Function = function(val)
if songobj then
songobj.Volume = val / 100
end
end,
Min = 1,
Max = 100,
Default = 100,
Suffix = '%'
})
end)
run(function()
local Speedmeter
local label
Speedmeter = vape.Legit:CreateModule({
Name = 'Speedmeter',
Function = function(callback)
if callback then
repeat
local lastpos = entitylib.isAlive and entitylib.character.HumanoidRootPart.Position * Vector3.new(1, 0, 1) or Vector3.zero
local dt = task.wait(0.2)
local newpos = entitylib.isAlive and entitylib.character.HumanoidRootPart.Position * Vector3.new(1, 0, 1) or Vector3.zero
label.Text = math.round(((lastpos - newpos) / dt).Magnitude)..' sps'
until not Speedmeter.Enabled
end
end,
Size = UDim2.fromOffset(100, 41),
Tooltip = 'A label showing the average velocity in studs'
})
Speedmeter:CreateFont({
Name = 'Font',
Blacklist = 'Gotham',
Function = function(val)
label.FontFace = val
end
})
Speedmeter:CreateColorSlider({
Name = 'Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
label.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
label.BackgroundTransparency = 1 - opacity
end
})
label = Instance.new('TextLabel')
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 0.5
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.Text = '0 sps'
label.TextColor3 = Color3.new(1, 1, 1)
label.BackgroundColor3 = Color3.new()
label.Parent = Speedmeter.Children
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = label
end)
run(function()
local TimeChanger
local Value
local old
TimeChanger = vape.Legit:CreateModule({
Name = 'Time Changer',
Function = function(callback)
if callback then
old = lightingService.TimeOfDay
lightingService.TimeOfDay = Value.Value..':00:00'
else
lightingService.TimeOfDay = old
old = nil
end
end,
Tooltip = 'Change the time of the current world'
})
Value = TimeChanger:CreateSlider({
Name = 'Time',
Min = 0,
Max = 24,
Default = 12,
Function = function(val)
if TimeChanger.Enabled then
lightingService.TimeOfDay = val..':00:00'
end
end
})
end)