Advertisement
Guest User

VAPE V4 (BEDWARS)

a guest
Oct 7th, 2023
708
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 85.54 KB | None | 0 0
  1. repeat task.wait() until game:IsLoaded()
  2. local GuiLibrary
  3. local baseDirectory = (shared.VapePrivate and "vapeprivate/" or "vape/")
  4. local vapeInjected = true
  5. local oldRainbow = false
  6. local errorPopupShown = false
  7. local redownloadedAssets = false
  8. local profilesLoaded = false
  9. local teleportedServers = false
  10. local gameCamera = workspace.CurrentCamera
  11. local textService = game:GetService("TextService")
  12. local playersService = game:GetService("Players")
  13. local inputService = game:GetService("UserInputService")
  14. local isfile = isfile or function(file)
  15. local suc, res = pcall(function() return readfile(file) end)
  16. return suc and res ~= nil
  17. end
  18. local setidentity = syn and syn.set_thread_identity or set_thread_identity or setidentity or setthreadidentity or function() end
  19. local getidentity = syn and syn.get_thread_identity or get_thread_identity or getidentity or getthreadidentity or function() return 0 end
  20. local vapeAssetTable = {
  21. ["vape/assets/AddItem.png"] = "rbxassetid://13350763121",
  22. ["vape/assets/AddRemoveIcon1.png"] = "rbxassetid://13350764147",
  23. ["vape/assets/ArrowIndicator.png"] = "rbxassetid://13350766521",
  24. ["vape/assets/BackIcon.png"] = "rbxassetid://13350767223",
  25. ["vape/assets/BindBackground.png"] = "rbxassetid://13350767577",
  26. ["vape/assets/BlatantIcon.png"] = "rbxassetid://13350767943",
  27. ["vape/assets/CircleListBlacklist.png"] = "rbxassetid://13350768647",
  28. ["vape/assets/CircleListWhitelist.png"] = "rbxassetid://13350769066",
  29. ["vape/assets/ColorSlider1.png"] = "rbxassetid://13350769439",
  30. ["vape/assets/ColorSlider2.png"] = "rbxassetid://13350769842",
  31. ["vape/assets/CombatIcon.png"] = "rbxassetid://13350770192",
  32. ["vape/assets/DownArrow.png"] = "rbxassetid://13350770749",
  33. ["vape/assets/ExitIcon1.png"] = "rbxassetid://13350771140",
  34. ["vape/assets/FriendsIcon.png"] = "rbxassetid://13350771464",
  35. ["vape/assets/HoverArrow.png"] = "rbxassetid://13350772201",
  36. ["vape/assets/HoverArrow2.png"] = "rbxassetid://13350772588",
  37. ["vape/assets/HoverArrow3.png"] = "rbxassetid://13350773014",
  38. ["vape/assets/HoverArrow4.png"] = "rbxassetid://13350773643",
  39. ["vape/assets/InfoNotification.png"] = "rbxassetid://13350774006",
  40. ["vape/assets/KeybindIcon.png"] = "rbxassetid://13350774323",
  41. ["vape/assets/LegitModeIcon.png"] = "rbxassetid://13436400428",
  42. ["vape/assets/MoreButton1.png"] = "rbxassetid://13350775005",
  43. ["vape/assets/MoreButton2.png"] = "rbxassetid://13350775731",
  44. ["vape/assets/MoreButton3.png"] = "rbxassetid://13350776241",
  45. ["vape/assets/NotificationBackground.png"] = "rbxassetid://13350776706",
  46. ["vape/assets/NotificationBar.png"] = "rbxassetid://13350777235",
  47. ["vape/assets/OnlineProfilesButton.png"] = "rbxassetid://13350777717",
  48. ["vape/assets/PencilIcon.png"] = "rbxassetid://13350778187",
  49. ["vape/assets/PinButton.png"] = "rbxassetid://13350778654",
  50. ["vape/assets/ProfilesIcon.png"] = "rbxassetid://13350779149",
  51. ["vape/assets/RadarIcon1.png"] = "rbxassetid://13350779545",
  52. ["vape/assets/RadarIcon2.png"] = "rbxassetid://13350779992",
  53. ["vape/assets/RainbowIcon1.png"] = "rbxassetid://13350780571",
  54. ["vape/assets/RainbowIcon2.png"] = "rbxassetid://13350780993",
  55. ["vape/assets/RightArrow.png"] = "rbxassetid://13350781908",
  56. ["vape/assets/SearchBarIcon.png"] = "rbxassetid://13350782420",
  57. ["vape/assets/SettingsWheel1.png"] = "rbxassetid://13350782848",
  58. ["vape/assets/SettingsWheel2.png"] = "rbxassetid://13350783258",
  59. ["vape/assets/SliderArrow1.png"] = "rbxassetid://13350783794",
  60. ["vape/assets/SliderArrowSeperator.png"] = "rbxassetid://13350784477",
  61. ["vape/assets/SliderButton1.png"] = "rbxassetid://13350785680",
  62. ["vape/assets/TargetIcon.png"] = "rbxassetid://13350786128",
  63. ["vape/assets/TargetIcon1.png"] = "rbxassetid://13350786776",
  64. ["vape/assets/TargetIcon2.png"] = "rbxassetid://13350787228",
  65. ["vape/assets/TargetIcon3.png"] = "rbxassetid://13350787729",
  66. ["vape/assets/TargetIcon4.png"] = "rbxassetid://13350788379",
  67. ["vape/assets/TargetInfoIcon1.png"] = "rbxassetid://13350788860",
  68. ["vape/assets/TargetInfoIcon2.png"] = "rbxassetid://13350789239",
  69. ["vape/assets/TextBoxBKG.png"] = "rbxassetid://13350789732",
  70. ["vape/assets/TextBoxBKG2.png"] = "rbxassetid://13350790229",
  71. ["vape/assets/TextGUIIcon1.png"] = "rbxassetid://13350790634",
  72. ["vape/assets/TextGUIIcon2.png"] = "rbxassetid://13350791175",
  73. ["vape/assets/TextGUIIcon3.png"] = "rbxassetid://13350791758",
  74. ["vape/assets/TextGUIIcon4.png"] = "rbxassetid://13350792279",
  75. ["vape/assets/ToggleArrow.png"] = "rbxassetid://13350792786",
  76. ["vape/assets/UpArrow.png"] = "rbxassetid://13350793386",
  77. ["vape/assets/UtilityIcon.png"] = "rbxassetid://13350793918",
  78. ["vape/assets/WarningNotification.png"] = "rbxassetid://13350794868",
  79. ["vape/assets/WindowBlur.png"] = "rbxassetid://13350795660",
  80. ["vape/assets/WorldIcon.png"] = "rbxassetid://13350796199",
  81. ["vape/assets/VapeIcon.png"] = "rbxassetid://13350808582",
  82. ["vape/assets/RenderIcon.png"] = "rbxassetid://13350832775",
  83. ["vape/assets/VapeLogo1.png"] = "rbxassetid://13350860863",
  84. ["vape/assets/VapeLogo3.png"] = "rbxassetid://13350872035",
  85. ["vape/assets/VapeLogo2.png"] = "rbxassetid://13350876307",
  86. ["vape/assets/VapeLogo4.png"] = "rbxassetid://13350877564"
  87. }
  88. if inputService:GetPlatform() ~= Enum.Platform.Windows then
  89. --mobile exploit fix
  90. getgenv().getsynasset = nil
  91. getgenv().getcustomasset = nil
  92. -- why is this needed
  93. getsynasset = nil
  94. getcustomasset = nil
  95. end
  96. local getcustomasset = getsynasset or getcustomasset or function(location) return vapeAssetTable[location] or "" end
  97. local customassetcheck = (getsynasset or getcustomasset) and true
  98. local queueonteleport = syn and syn.queue_on_teleport or queue_on_teleport or function() end
  99. local delfile = delfile or function(file) writefile(file, "") end
  100.  
  101. local function displayErrorPopup(text, funclist)
  102. local oldidentity = getidentity()
  103. setidentity(8)
  104. local ErrorPrompt = getrenv().require(game:GetService("CoreGui").RobloxGui.Modules.ErrorPrompt)
  105. local prompt = ErrorPrompt.new("Default")
  106. prompt._hideErrorCode = true
  107. local gui = Instance.new("ScreenGui", game:GetService("CoreGui"))
  108. prompt:setErrorTitle("Vape")
  109. local funcs
  110. if funclist then
  111. funcs = {}
  112. local num = 0
  113. for i,v in pairs(funclist) do
  114. num = num + 1
  115. table.insert(funcs, {
  116. Text = i,
  117. Callback = function()
  118. prompt:_close()
  119. v()
  120. end,
  121. Primary = num == #funclist
  122. })
  123. end
  124. end
  125. prompt:updateButtons(funcs or {{
  126. Text = "OK",
  127. Callback = function()
  128. prompt:_close()
  129. end,
  130. Primary = true
  131. }}, 'Default')
  132. prompt:setParent(gui)
  133. prompt:_open(text)
  134. setidentity(oldidentity)
  135. end
  136.  
  137. local function vapeGithubRequest(scripturl)
  138. if not isfile("vape/"..scripturl) then
  139. local suc, res
  140. task.delay(15, function()
  141. if not res and not errorPopupShown then
  142. errorPopupShown = true
  143. displayErrorPopup("The connection to github is taking a while, Please be patient.")
  144. end
  145. end)
  146. suc, res = pcall(function() return game:HttpGet("https://raw.githubusercontent.com/7GrandDadPGN/VapeV4ForRoblox/"..readfile("vape/commithash.txt").."/"..scripturl, true) end)
  147. if not suc or res == "404: Not Found" then
  148. displayErrorPopup("Failed to connect to github : vape/"..scripturl.." : "..res)
  149. error(res)
  150. end
  151. if scripturl:find(".lua") then res = "--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.\n"..res end
  152. writefile("vape/"..scripturl, res)
  153. end
  154. return readfile("vape/"..scripturl)
  155. end
  156.  
  157. local function downloadVapeAsset(path)
  158. if customassetcheck then
  159. if not isfile(path) then
  160. task.spawn(function()
  161. local textlabel = Instance.new("TextLabel")
  162. textlabel.Size = UDim2.new(1, 0, 0, 36)
  163. textlabel.Text = "Downloading "..path
  164. textlabel.BackgroundTransparency = 1
  165. textlabel.TextStrokeTransparency = 0
  166. textlabel.TextSize = 30
  167. textlabel.Font = Enum.Font.SourceSans
  168. textlabel.TextColor3 = Color3.new(1, 1, 1)
  169. textlabel.Position = UDim2.new(0, 0, 0, -36)
  170. textlabel.Parent = GuiLibrary.MainGui
  171. repeat task.wait() until isfile(path)
  172. textlabel:Destroy()
  173. end)
  174. local suc, req = pcall(function() return vapeGithubRequest(path:gsub("vape/assets", "assets")) end)
  175. if suc and req then
  176. writefile(path, req)
  177. else
  178. return ""
  179. end
  180. end
  181. end
  182. return getcustomasset(path)
  183. end
  184.  
  185. assert(not shared.VapeExecuted, "Vape Already Injected")
  186. shared.VapeExecuted = true
  187.  
  188. for i,v in pairs({baseDirectory:gsub("/", ""), "vape", "vape/Libraries", "vape/CustomModules", "vape/Profiles", baseDirectory.."Profiles", "vape/assets"}) do
  189. if not isfolder(v) then makefolder(v) end
  190. end
  191. task.spawn(function()
  192. local success, assetver = pcall(function() return vapeGithubRequest("assetsversion.txt") end)
  193. if not isfile("vape/assetsversion.txt") then writefile("vape/assetsversion.txt", "0") end
  194. if success and assetver > readfile("vape/assetsversion.txt") then
  195. redownloadedAssets = true
  196. if isfolder("vape/assets") and not shared.VapeDeveloper then
  197. if delfolder then
  198. delfolder("vape/assets")
  199. makefolder("vape/assets")
  200. end
  201. end
  202. writefile("vape/assetsversion.txt", assetver)
  203. end
  204. end)
  205. if not isfile("vape/CustomModules/cachechecked.txt") then
  206. local isNotCached = false
  207. for i,v in pairs({"vape/Universal.lua", "vape/MainScript.lua", "vape/GuiLibrary.lua"}) do
  208. if isfile(v) and not readfile(v):find("--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.") then
  209. isNotCached = true
  210. end
  211. end
  212. if isfolder("vape/CustomModules") then
  213. for i,v in pairs(listfiles("vape/CustomModules")) do
  214. if isfile(v) and not readfile(v):find("--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.") then
  215. isNotCached = true
  216. end
  217. end
  218. end
  219. if isNotCached and not shared.VapeDeveloper then
  220. displayErrorPopup("Vape has detected uncached files, If you have CustomModules click no, else click yes.", {No = function() end, Yes = function()
  221. for i,v in pairs({"vape/Universal.lua", "vape/MainScript.lua", "vape/GuiLibrary.lua"}) do
  222. if isfile(v) and not readfile(v):find("--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.") then
  223. delfile(v)
  224. end
  225. end
  226. for i,v in pairs(listfiles("vape/CustomModules")) do
  227. if isfile(v) and not readfile(v):find("--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.") then
  228. local last = v:split('\\')
  229. last = last[#last]
  230. local suc, publicrepo = pcall(function() return game:HttpGet("https://raw.githubusercontent.com/7GrandDadPGN/VapeV4ForRoblox/"..readfile("vape/commithash.txt").."/CustomModules/"..last) end)
  231. if suc and publicrepo and publicrepo ~= "404: Not Found" then
  232. writefile("vape/CustomModules/"..last, "--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.\n"..publicrepo)
  233. end
  234. end
  235. end
  236. end})
  237. end
  238. writefile("vape/CustomModules/cachechecked.txt", "verified")
  239. end
  240.  
  241. GuiLibrary = loadstring(vapeGithubRequest("GuiLibrary.lua"))()
  242. shared.GuiLibrary = GuiLibrary
  243.  
  244. local saveSettingsLoop = coroutine.create(function()
  245. if inputService.TouchEnabled then return end
  246. repeat
  247. GuiLibrary.SaveSettings()
  248. task.wait(10)
  249. until not vapeInjected or not GuiLibrary
  250. end)
  251.  
  252. task.spawn(function()
  253. local image = Instance.new("ImageLabel")
  254. image.Image = downloadVapeAsset("vape/assets/CombatIcon.png")
  255. image.Position = UDim2.new()
  256. image.BackgroundTransparency = 1
  257. image.Size = UDim2.fromOffset(100, 100)
  258. image.ImageTransparency = 0.999
  259. image.Parent = GuiLibrary.MainGui
  260. image:GetPropertyChangedSignal("IsLoaded"):Connect(function()
  261. image:Destroy()
  262. image = nil
  263. end)
  264. task.spawn(function()
  265. task.wait(15)
  266. if image and image.ContentImageSize == Vector2.zero and (not errorPopupShown) and (not redownloadedAssets) and (not isfile("vape/assets/check3.txt")) then
  267. errorPopupShown = true
  268. displayErrorPopup("Assets failed to load, Try another executor (executor : "..(identifyexecutor and identifyexecutor() or "Unknown")..")", {OK = function()
  269. writefile("vape/assets/check3.txt", "")
  270. end})
  271. end
  272. end)
  273. end)
  274.  
  275. local GUI = GuiLibrary.CreateMainWindow()
  276. local Combat = GuiLibrary.CreateWindow({
  277. Name = "Combat",
  278. Icon = "vape/assets/CombatIcon.png",
  279. IconSize = 15
  280. })
  281. local Blatant = GuiLibrary.CreateWindow({
  282. Name = "Blatant",
  283. Icon = "vape/assets/BlatantIcon.png",
  284. IconSize = 16
  285. })
  286. local Render = GuiLibrary.CreateWindow({
  287. Name = "Render",
  288. Icon = "vape/assets/RenderIcon.png",
  289. IconSize = 17
  290. })
  291. local Utility = GuiLibrary.CreateWindow({
  292. Name = "Utility",
  293. Icon = "vape/assets/UtilityIcon.png",
  294. IconSize = 17
  295. })
  296. local World = GuiLibrary.CreateWindow({
  297. Name = "World",
  298. Icon = "vape/assets/WorldIcon.png",
  299. IconSize = 16
  300. })
  301. local Friends = GuiLibrary.CreateWindow2({
  302. Name = "Friends",
  303. Icon = "vape/assets/FriendsIcon.png",
  304. IconSize = 17
  305. })
  306. local Targets = GuiLibrary.CreateWindow2({
  307. Name = "Targets",
  308. Icon = "vape/assets/FriendsIcon.png",
  309. IconSize = 17
  310. })
  311. local Profiles = GuiLibrary.CreateWindow2({
  312. Name = "Profiles",
  313. Icon = "vape/assets/ProfilesIcon.png",
  314. IconSize = 19
  315. })
  316. GUI.CreateDivider()
  317. GUI.CreateButton({
  318. Name = "Combat",
  319. Function = function(callback) Combat.SetVisible(callback) end,
  320. Icon = "vape/assets/CombatIcon.png",
  321. IconSize = 15
  322. })
  323. GUI.CreateButton({
  324. Name = "Blatant",
  325. Function = function(callback) Blatant.SetVisible(callback) end,
  326. Icon = "vape/assets/BlatantIcon.png",
  327. IconSize = 16
  328. })
  329. GUI.CreateButton({
  330. Name = "Render",
  331. Function = function(callback) Render.SetVisible(callback) end,
  332. Icon = "vape/assets/RenderIcon.png",
  333. IconSize = 17
  334. })
  335. GUI.CreateButton({
  336. Name = "Utility",
  337. Function = function(callback) Utility.SetVisible(callback) end,
  338. Icon = "vape/assets/UtilityIcon.png",
  339. IconSize = 17
  340. })
  341. GUI.CreateButton({
  342. Name = "World",
  343. Function = function(callback) World.SetVisible(callback) end,
  344. Icon = "vape/assets/WorldIcon.png",
  345. IconSize = 16
  346. })
  347. GUI.CreateDivider("MISC")
  348. GUI.CreateButton({
  349. Name = "Friends",
  350. Function = function(callback) Friends.SetVisible(callback) end,
  351. })
  352. GUI.CreateButton({
  353. Name = "Targets",
  354. Function = function(callback) Targets.SetVisible(callback) end,
  355. })
  356. GUI.CreateButton({
  357. Name = "Profiles",
  358. Function = function(callback) Profiles.SetVisible(callback) end,
  359. })
  360.  
  361. local FriendsTextListTable = {
  362. Name = "FriendsList",
  363. TempText = "Username [Alias]",
  364. Color = Color3.fromRGB(5, 133, 104)
  365. }
  366. local FriendsTextList = Friends.CreateCircleTextList(FriendsTextListTable)
  367. FriendsTextList.FriendRefresh = Instance.new("BindableEvent")
  368. FriendsTextList.FriendColorRefresh = Instance.new("BindableEvent")
  369. local TargetsTextList = Targets.CreateCircleTextList({
  370. Name = "TargetsList",
  371. TempText = "Username [Alias]",
  372. Color = Color3.fromRGB(5, 133, 104)
  373. })
  374. local oldFriendRefresh = FriendsTextList.RefreshValues
  375. FriendsTextList.RefreshValues = function(...)
  376. FriendsTextList.FriendRefresh:Fire()
  377. return oldFriendRefresh(...)
  378. end
  379. local oldTargetRefresh = TargetsTextList.RefreshValues
  380. TargetsTextList.RefreshValues = function(...)
  381. FriendsTextList.FriendRefresh:Fire()
  382. return oldTargetRefresh(...)
  383. end
  384. Friends.CreateToggle({
  385. Name = "Use Friends",
  386. Function = function(callback)
  387. FriendsTextList.FriendRefresh:Fire()
  388. end,
  389. Default = true
  390. })
  391. Friends.CreateToggle({
  392. Name = "Use Alias",
  393. Function = function(callback) end,
  394. Default = true,
  395. })
  396. Friends.CreateToggle({
  397. Name = "Spoof alias",
  398. Function = function(callback) end,
  399. })
  400. local friendRecolorToggle = Friends.CreateToggle({
  401. Name = "Recolor visuals",
  402. Function = function(callback) FriendsTextList.FriendColorRefresh:Fire() end,
  403. Default = true
  404. })
  405. local friendWindowFrame
  406. Friends.CreateColorSlider({
  407. Name = "Friends Color",
  408. Function = function(h, s, v)
  409. local cachedColor = Color3.fromHSV(h, s, v)
  410. local addCircle = FriendsTextList.Object:FindFirstChild("AddButton", true)
  411. if addCircle then
  412. addCircle.ImageColor3 = cachedColor
  413. end
  414. friendWindowFrame = friendWindowFrame or FriendsTextList.ScrollingObject and FriendsTextList.ScrollingObject:FindFirstChild("ScrollingFrame")
  415. if friendWindowFrame then
  416. for i,v in pairs(friendWindowFrame:GetChildren()) do
  417. local friendCircle = v:FindFirstChild("FriendCircle")
  418. local friendText = v:FindFirstChild("ItemText")
  419. if friendCircle and friendText then
  420. friendCircle.BackgroundColor3 = friendText.TextColor3 == Color3.fromRGB(160, 160, 160) and cachedColor or friendCircle.BackgroundColor3
  421. end
  422. end
  423. end
  424. FriendsTextListTable.Color = cachedColor
  425. if friendRecolorToggle.Enabled then
  426. FriendsTextList.FriendColorRefresh:Fire()
  427. end
  428. end
  429. })
  430. local ProfilesTextList = {RefreshValues = function() end}
  431. ProfilesTextList = Profiles.CreateTextList({
  432. Name = "ProfilesList",
  433. TempText = "Type name",
  434. NoSave = true,
  435. AddFunction = function(profileName)
  436. GuiLibrary.Profiles[profileName] = {Keybind = "", Selected = false}
  437. local profiles = {}
  438. for i,v in pairs(GuiLibrary.Profiles) do
  439. table.insert(profiles, i)
  440. end
  441. table.sort(profiles, function(a, b) return b == "default" and true or a:lower() < b:lower() end)
  442. ProfilesTextList.RefreshValues(profiles)
  443. end,
  444. RemoveFunction = function(profileIndex, profileName)
  445. if profileName ~= "default" and profileName ~= GuiLibrary.CurrentProfile then
  446. pcall(function() delfile(baseDirectory.."Profiles/"..profileName..(shared.CustomSaveVape or game.PlaceId)..".vapeprofile.txt") end)
  447. GuiLibrary.Profiles[profileName] = nil
  448. else
  449. table.insert(ProfilesTextList.ObjectList, profileName)
  450. ProfilesTextList.RefreshValues(ProfilesTextList.ObjectList)
  451. end
  452. end,
  453. CustomFunction = function(profileObject, profileName)
  454. if GuiLibrary.Profiles[profileName] == nil then
  455. GuiLibrary.Profiles[profileName] = {Keybind = ""}
  456. end
  457. profileObject.MouseButton1Click:Connect(function()
  458. GuiLibrary.SwitchProfile(profileName)
  459. end)
  460. local newsize = UDim2.new(0, 20, 0, 21)
  461. local bindbkg = Instance.new("TextButton")
  462. bindbkg.Text = ""
  463. bindbkg.AutoButtonColor = false
  464. bindbkg.Size = UDim2.new(0, 20, 0, 21)
  465. bindbkg.Position = UDim2.new(1, -50, 0, 6)
  466. bindbkg.BorderSizePixel = 0
  467. bindbkg.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  468. bindbkg.BackgroundTransparency = 0.95
  469. bindbkg.Visible = GuiLibrary.Profiles[profileName].Keybind ~= ""
  470. bindbkg.Parent = profileObject
  471. local bindimg = Instance.new("ImageLabel")
  472. bindimg.Image = downloadVapeAsset("vape/assets/KeybindIcon.png")
  473. bindimg.BackgroundTransparency = 1
  474. bindimg.Size = UDim2.new(0, 12, 0, 12)
  475. bindimg.Position = UDim2.new(0, 4, 0, 5)
  476. bindimg.ImageTransparency = 0.2
  477. bindimg.Active = false
  478. bindimg.Visible = (GuiLibrary.Profiles[profileName].Keybind == "")
  479. bindimg.Parent = bindbkg
  480. local bindtext = Instance.new("TextLabel")
  481. bindtext.Active = false
  482. bindtext.BackgroundTransparency = 1
  483. bindtext.TextSize = 16
  484. bindtext.Parent = bindbkg
  485. bindtext.Font = Enum.Font.SourceSans
  486. bindtext.Size = UDim2.new(1, 0, 1, 0)
  487. bindtext.TextColor3 = Color3.fromRGB(85, 85, 85)
  488. bindtext.Visible = (GuiLibrary.Profiles[profileName].Keybind ~= "")
  489. local bindtext2 = Instance.new("TextLabel")
  490. bindtext2.Text = "PRESS A KEY TO BIND"
  491. bindtext2.Size = UDim2.new(0, 150, 0, 33)
  492. bindtext2.Font = Enum.Font.SourceSans
  493. bindtext2.TextSize = 17
  494. bindtext2.TextColor3 = Color3.fromRGB(201, 201, 201)
  495. bindtext2.BackgroundColor3 = Color3.fromRGB(37, 37, 37)
  496. bindtext2.BorderSizePixel = 0
  497. bindtext2.Visible = false
  498. bindtext2.Parent = profileObject
  499. local bindround = Instance.new("UICorner")
  500. bindround.CornerRadius = UDim.new(0, 4)
  501. bindround.Parent = bindbkg
  502. bindbkg.MouseButton1Click:Connect(function()
  503. if not GuiLibrary.KeybindCaptured then
  504. GuiLibrary.KeybindCaptured = true
  505. task.spawn(function()
  506. bindtext2.Visible = true
  507. repeat task.wait() until GuiLibrary.PressedKeybindKey ~= ""
  508. local key = (GuiLibrary.PressedKeybindKey == GuiLibrary.Profiles[profileName].Keybind and "" or GuiLibrary.PressedKeybindKey)
  509. if key == "" then
  510. GuiLibrary.Profiles[profileName].Keybind = key
  511. newsize = UDim2.new(0, 20, 0, 21)
  512. bindbkg.Size = newsize
  513. bindbkg.Visible = true
  514. bindbkg.Position = UDim2.new(1, -(30 + newsize.X.Offset), 0, 6)
  515. bindimg.Visible = true
  516. bindtext.Visible = false
  517. bindtext.Text = key
  518. else
  519. local textsize = textService:GetTextSize(key, 16, bindtext.Font, Vector2.new(99999, 99999))
  520. newsize = UDim2.new(0, 13 + textsize.X, 0, 21)
  521. GuiLibrary.Profiles[profileName].Keybind = key
  522. bindbkg.Visible = true
  523. bindbkg.Size = newsize
  524. bindbkg.Position = UDim2.new(1, -(30 + newsize.X.Offset), 0, 6)
  525. bindimg.Visible = false
  526. bindtext.Visible = true
  527. bindtext.Text = key
  528. end
  529. GuiLibrary.PressedKeybindKey = ""
  530. GuiLibrary.KeybindCaptured = false
  531. bindtext2.Visible = false
  532. end)
  533. end
  534. end)
  535. bindbkg.MouseEnter:Connect(function()
  536. bindimg.Image = downloadVapeAsset("vape/assets/PencilIcon.png")
  537. bindimg.Visible = true
  538. bindtext.Visible = false
  539. bindbkg.Size = UDim2.new(0, 20, 0, 21)
  540. bindbkg.Position = UDim2.new(1, -50, 0, 6)
  541. end)
  542. bindbkg.MouseLeave:Connect(function()
  543. bindimg.Image = downloadVapeAsset("vape/assets/KeybindIcon.png")
  544. if GuiLibrary.Profiles[profileName].Keybind ~= "" then
  545. bindimg.Visible = false
  546. bindtext.Visible = true
  547. bindbkg.Size = newsize
  548. bindbkg.Position = UDim2.new(1, -(30 + newsize.X.Offset), 0, 6)
  549. end
  550. end)
  551. profileObject.MouseEnter:Connect(function()
  552. bindbkg.Visible = true
  553. end)
  554. profileObject.MouseLeave:Connect(function()
  555. bindbkg.Visible = GuiLibrary.Profiles[profileName] and GuiLibrary.Profiles[profileName].Keybind ~= ""
  556. end)
  557. if GuiLibrary.Profiles[profileName].Keybind ~= "" then
  558. bindtext.Text = GuiLibrary.Profiles[profileName].Keybind
  559. local textsize = textService:GetTextSize(GuiLibrary.Profiles[profileName].Keybind, 16, bindtext.Font, Vector2.new(99999, 99999))
  560. newsize = UDim2.new(0, 13 + textsize.X, 0, 21)
  561. bindbkg.Size = newsize
  562. bindbkg.Position = UDim2.new(1, -(30 + newsize.X.Offset), 0, 6)
  563. end
  564. if profileName == GuiLibrary.CurrentProfile then
  565. profileObject.BackgroundColor3 = Color3.fromHSV(GuiLibrary.ObjectsThatCanBeSaved["Gui ColorSliderColor"].Api.Hue, GuiLibrary.ObjectsThatCanBeSaved["Gui ColorSliderColor"].Api.Sat, GuiLibrary.ObjectsThatCanBeSaved["Gui ColorSliderColor"].Api.Value)
  566. profileObject.ImageButton.BackgroundColor3 = Color3.fromHSV(GuiLibrary.ObjectsThatCanBeSaved["Gui ColorSliderColor"].Api.Hue, GuiLibrary.ObjectsThatCanBeSaved["Gui ColorSliderColor"].Api.Sat, GuiLibrary.ObjectsThatCanBeSaved["Gui ColorSliderColor"].Api.Value)
  567. profileObject.ItemText.TextColor3 = Color3.new(1, 1, 1)
  568. profileObject.ItemText.TextStrokeTransparency = 0.75
  569. bindbkg.BackgroundTransparency = 0.9
  570. bindtext.TextColor3 = Color3.fromRGB(214, 214, 214)
  571. end
  572. end
  573. })
  574.  
  575. local OnlineProfilesButton = Instance.new("TextButton")
  576. OnlineProfilesButton.Name = "OnlineProfilesButton"
  577. OnlineProfilesButton.LayoutOrder = 1
  578. OnlineProfilesButton.AutoButtonColor = false
  579. OnlineProfilesButton.Size = UDim2.new(0, 45, 0, 29)
  580. OnlineProfilesButton.BackgroundColor3 = Color3.fromRGB(26, 25, 26)
  581. OnlineProfilesButton.Active = false
  582. OnlineProfilesButton.Text = ""
  583. OnlineProfilesButton.ZIndex = 1
  584. OnlineProfilesButton.Font = Enum.Font.SourceSans
  585. OnlineProfilesButton.TextXAlignment = Enum.TextXAlignment.Left
  586. OnlineProfilesButton.Position = UDim2.new(0, 166, 0, 6)
  587. OnlineProfilesButton.Parent = ProfilesTextList.Object
  588. local OnlineProfilesButtonBKG = Instance.new("UIStroke")
  589. OnlineProfilesButtonBKG.Color = Color3.fromRGB(38, 37, 38)
  590. OnlineProfilesButtonBKG.Thickness = 1
  591. OnlineProfilesButtonBKG.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
  592. OnlineProfilesButtonBKG.Parent = OnlineProfilesButton
  593. local OnlineProfilesButtonImage = Instance.new("ImageLabel")
  594. OnlineProfilesButtonImage.BackgroundTransparency = 1
  595. OnlineProfilesButtonImage.Position = UDim2.new(0, 14, 0, 7)
  596. OnlineProfilesButtonImage.Size = UDim2.new(0, 17, 0, 16)
  597. OnlineProfilesButtonImage.Image = downloadVapeAsset("vape/assets/OnlineProfilesButton.png")
  598. OnlineProfilesButtonImage.ImageColor3 = Color3.fromRGB(121, 121, 121)
  599. OnlineProfilesButtonImage.ZIndex = 1
  600. OnlineProfilesButtonImage.Active = false
  601. OnlineProfilesButtonImage.Parent = OnlineProfilesButton
  602. local OnlineProfilesbuttonround1 = Instance.new("UICorner")
  603. OnlineProfilesbuttonround1.CornerRadius = UDim.new(0, 5)
  604. OnlineProfilesbuttonround1.Parent = OnlineProfilesButton
  605. local OnlineProfilesbuttonTargetInfoMainInfoCorner = Instance.new("UICorner")
  606. OnlineProfilesbuttonTargetInfoMainInfoCorner.CornerRadius = UDim.new(0, 5)
  607. OnlineProfilesbuttonTargetInfoMainInfoCorner.Parent = OnlineProfilesButtonBKG
  608. local OnlineProfilesFrame = Instance.new("Frame")
  609. OnlineProfilesFrame.Size = UDim2.new(0, 660, 0, 445)
  610. OnlineProfilesFrame.Position = UDim2.new(0.5, -330, 0.5, -223)
  611. OnlineProfilesFrame.BackgroundColor3 = Color3.fromRGB(26, 25, 26)
  612. OnlineProfilesFrame.Parent = GuiLibrary.MainGui.ScaledGui.OnlineProfiles
  613. local OnlineProfilesExitButton = Instance.new("ImageButton")
  614. OnlineProfilesExitButton.Name = "OnlineProfilesExitButton"
  615. OnlineProfilesExitButton.ImageColor3 = Color3.fromRGB(121, 121, 121)
  616. OnlineProfilesExitButton.Size = UDim2.new(0, 24, 0, 24)
  617. OnlineProfilesExitButton.AutoButtonColor = false
  618. OnlineProfilesExitButton.Image = downloadVapeAsset("vape/assets/ExitIcon1.png")
  619. OnlineProfilesExitButton.Visible = true
  620. OnlineProfilesExitButton.Position = UDim2.new(1, -31, 0, 8)
  621. OnlineProfilesExitButton.BackgroundColor3 = Color3.fromRGB(26, 25, 26)
  622. OnlineProfilesExitButton.Parent = OnlineProfilesFrame
  623. local OnlineProfilesExitButtonround = Instance.new("UICorner")
  624. OnlineProfilesExitButtonround.CornerRadius = UDim.new(0, 16)
  625. OnlineProfilesExitButtonround.Parent = OnlineProfilesExitButton
  626. OnlineProfilesExitButton.MouseEnter:Connect(function()
  627. game:GetService("TweenService"):Create(OnlineProfilesExitButton, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {BackgroundColor3 = Color3.fromRGB(60, 60, 60), ImageColor3 = Color3.fromRGB(255, 255, 255)}):Play()
  628. end)
  629. OnlineProfilesExitButton.MouseLeave:Connect(function()
  630. game:GetService("TweenService"):Create(OnlineProfilesExitButton, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {BackgroundColor3 = Color3.fromRGB(26, 25, 26), ImageColor3 = Color3.fromRGB(121, 121, 121)}):Play()
  631. end)
  632. local OnlineProfilesFrameShadow = Instance.new("ImageLabel")
  633. OnlineProfilesFrameShadow.AnchorPoint = Vector2.new(0.5, 0.5)
  634. OnlineProfilesFrameShadow.Position = UDim2.new(0.5, 0, 0.5, 0)
  635. OnlineProfilesFrameShadow.Image = downloadVapeAsset("vape/assets/WindowBlur.png")
  636. OnlineProfilesFrameShadow.BackgroundTransparency = 1
  637. OnlineProfilesFrameShadow.ZIndex = -1
  638. OnlineProfilesFrameShadow.Size = UDim2.new(1, 6, 1, 6)
  639. OnlineProfilesFrameShadow.ImageColor3 = Color3.new()
  640. OnlineProfilesFrameShadow.ScaleType = Enum.ScaleType.Slice
  641. OnlineProfilesFrameShadow.SliceCenter = Rect.new(10, 10, 118, 118)
  642. OnlineProfilesFrameShadow.Parent = OnlineProfilesFrame
  643. local OnlineProfilesFrameIcon = Instance.new("ImageLabel")
  644. OnlineProfilesFrameIcon.Size = UDim2.new(0, 19, 0, 16)
  645. OnlineProfilesFrameIcon.Image = downloadVapeAsset("vape/assets/ProfilesIcon.png")
  646. OnlineProfilesFrameIcon.Name = "WindowIcon"
  647. OnlineProfilesFrameIcon.BackgroundTransparency = 1
  648. OnlineProfilesFrameIcon.Position = UDim2.new(0, 10, 0, 13)
  649. OnlineProfilesFrameIcon.ImageColor3 = Color3.fromRGB(200, 200, 200)
  650. OnlineProfilesFrameIcon.Parent = OnlineProfilesFrame
  651. local OnlineProfilesFrameText = Instance.new("TextLabel")
  652. OnlineProfilesFrameText.Size = UDim2.new(0, 155, 0, 41)
  653. OnlineProfilesFrameText.BackgroundTransparency = 1
  654. OnlineProfilesFrameText.Name = "WindowTitle"
  655. OnlineProfilesFrameText.Position = UDim2.new(0, 36, 0, 0)
  656. OnlineProfilesFrameText.TextXAlignment = Enum.TextXAlignment.Left
  657. OnlineProfilesFrameText.Font = Enum.Font.SourceSans
  658. OnlineProfilesFrameText.TextSize = 17
  659. OnlineProfilesFrameText.Text = "Public Profiles"
  660. OnlineProfilesFrameText.TextColor3 = Color3.fromRGB(201, 201, 201)
  661. OnlineProfilesFrameText.Parent = OnlineProfilesFrame
  662. local OnlineProfilesFrameText2 = Instance.new("TextLabel")
  663. OnlineProfilesFrameText2.TextSize = 15
  664. OnlineProfilesFrameText2.TextColor3 = Color3.fromRGB(85, 84, 85)
  665. OnlineProfilesFrameText2.Text = "YOUR PROFILES"
  666. OnlineProfilesFrameText2.Font = Enum.Font.SourceSans
  667. OnlineProfilesFrameText2.BackgroundTransparency = 1
  668. OnlineProfilesFrameText2.TextXAlignment = Enum.TextXAlignment.Left
  669. OnlineProfilesFrameText2.TextYAlignment = Enum.TextYAlignment.Top
  670. OnlineProfilesFrameText2.Size = UDim2.new(1, 0, 0, 20)
  671. OnlineProfilesFrameText2.Position = UDim2.new(0, 10, 0, 48)
  672. OnlineProfilesFrameText2.Parent = OnlineProfilesFrame
  673. local OnlineProfilesFrameText3 = Instance.new("TextLabel")
  674. OnlineProfilesFrameText3.TextSize = 15
  675. OnlineProfilesFrameText3.TextColor3 = Color3.fromRGB(85, 84, 85)
  676. OnlineProfilesFrameText3.Text = "PUBLIC PROFILES"
  677. OnlineProfilesFrameText3.Font = Enum.Font.SourceSans
  678. OnlineProfilesFrameText3.BackgroundTransparency = 1
  679. OnlineProfilesFrameText3.TextXAlignment = Enum.TextXAlignment.Left
  680. OnlineProfilesFrameText3.TextYAlignment = Enum.TextYAlignment.Top
  681. OnlineProfilesFrameText3.Size = UDim2.new(1, 0, 0, 20)
  682. OnlineProfilesFrameText3.Position = UDim2.new(0, 231, 0, 48)
  683. OnlineProfilesFrameText3.Parent = OnlineProfilesFrame
  684. local OnlineProfilesBorder1 = Instance.new("Frame")
  685. OnlineProfilesBorder1.BackgroundColor3 = Color3.fromRGB(40, 39, 40)
  686. OnlineProfilesBorder1.BorderSizePixel = 0
  687. OnlineProfilesBorder1.Size = UDim2.new(1, 0, 0, 1)
  688. OnlineProfilesBorder1.Position = UDim2.new(0, 0, 0, 41)
  689. OnlineProfilesBorder1.Parent = OnlineProfilesFrame
  690. local OnlineProfilesBorder2 = Instance.new("Frame")
  691. OnlineProfilesBorder2.BackgroundColor3 = Color3.fromRGB(40, 39, 40)
  692. OnlineProfilesBorder2.BorderSizePixel = 0
  693. OnlineProfilesBorder2.Size = UDim2.new(0, 1, 1, -41)
  694. OnlineProfilesBorder2.Position = UDim2.new(0, 220, 0, 41)
  695. OnlineProfilesBorder2.Parent = OnlineProfilesFrame
  696. local OnlineProfilesList = Instance.new("ScrollingFrame")
  697. OnlineProfilesList.BackgroundTransparency = 1
  698. OnlineProfilesList.Size = UDim2.new(0, 408, 0, 319)
  699. OnlineProfilesList.Position = UDim2.new(0, 230, 0, 122)
  700. OnlineProfilesList.CanvasSize = UDim2.new(0, 408, 0, 319)
  701. OnlineProfilesList.Parent = OnlineProfilesFrame
  702. local OnlineProfilesListGrid = Instance.new("UIGridLayout")
  703. OnlineProfilesListGrid.CellSize = UDim2.new(0, 134, 0, 144)
  704. OnlineProfilesListGrid.CellPadding = UDim2.new(0, 4, 0, 4)
  705. OnlineProfilesListGrid.Parent = OnlineProfilesList
  706. local OnlineProfilesFrameCorner = Instance.new("UICorner")
  707. OnlineProfilesFrameCorner.CornerRadius = UDim.new(0, 4)
  708. OnlineProfilesFrameCorner.Parent = OnlineProfilesFrame
  709. OnlineProfilesButton.MouseButton1Click:Connect(function()
  710. GuiLibrary.MainGui.ScaledGui.OnlineProfiles.Visible = true
  711. GuiLibrary.MainGui.ScaledGui.ClickGui.Visible = false
  712. if not profilesLoaded then
  713. local onlineprofiles = {}
  714. local saveplaceid = tostring(shared.CustomSaveVape or game.PlaceId)
  715. local success, result = pcall(function()
  716. return game:GetService("HttpService"):JSONDecode(game:HttpGet("https://raw.githubusercontent.com/7GrandDadPGN/VapeProfiles/main/Profiles/"..saveplaceid.."/profilelist.txt", true))
  717. end)
  718. for i,v in pairs(success and result or {}) do
  719. onlineprofiles[i] = v
  720. end
  721. for i2,v2 in pairs(onlineprofiles) do
  722. local profileurl = "https://raw.githubusercontent.com/7GrandDadPGN/VapeProfiles/main/Profiles/"..saveplaceid.."/"..v2.OnlineProfileName
  723. local profilebox = Instance.new("Frame")
  724. profilebox.BackgroundColor3 = Color3.fromRGB(31, 30, 31)
  725. profilebox.Parent = OnlineProfilesList
  726. local profiletext = Instance.new("TextLabel")
  727. profiletext.TextSize = 15
  728. profiletext.TextColor3 = Color3.fromRGB(137, 136, 137)
  729. profiletext.Size = UDim2.new(0, 100, 0, 20)
  730. profiletext.Position = UDim2.new(0, 18, 0, 25)
  731. profiletext.Font = Enum.Font.SourceSans
  732. profiletext.TextXAlignment = Enum.TextXAlignment.Left
  733. profiletext.TextYAlignment = Enum.TextYAlignment.Top
  734. profiletext.BackgroundTransparency = 1
  735. profiletext.Text = i2
  736. profiletext.Parent = profilebox
  737. local profiledownload = Instance.new("TextButton")
  738. profiledownload.BackgroundColor3 = Color3.fromRGB(31, 30, 31)
  739. profiledownload.Size = UDim2.new(0, 69, 0, 31)
  740. profiledownload.Font = Enum.Font.SourceSans
  741. profiledownload.TextColor3 = Color3.fromRGB(200, 200, 200)
  742. profiledownload.TextSize = 15
  743. profiledownload.AutoButtonColor = false
  744. profiledownload.Text = "DOWNLOAD"
  745. profiledownload.Position = UDim2.new(0, 14, 0, 96)
  746. profiledownload.Visible = false
  747. profiledownload.Parent = profilebox
  748. profiledownload.ZIndex = 2
  749. local profiledownloadbkg = Instance.new("Frame")
  750. profiledownloadbkg.Size = UDim2.new(0, 71, 0, 33)
  751. profiledownloadbkg.BackgroundColor3 = Color3.fromRGB(42, 41, 42)
  752. profiledownloadbkg.Position = UDim2.new(0, 13, 0, 95)
  753. profiledownloadbkg.ZIndex = 1
  754. profiledownloadbkg.Visible = false
  755. profiledownloadbkg.Parent = profilebox
  756. profilebox.MouseEnter:Connect(function()
  757. profiletext.TextColor3 = Color3.fromRGB(200, 200, 200)
  758. profiledownload.Visible = true
  759. profiledownloadbkg.Visible = true
  760. end)
  761. profilebox.MouseLeave:Connect(function()
  762. profiletext.TextColor3 = Color3.fromRGB(137, 136, 137)
  763. profiledownload.Visible = false
  764. profiledownloadbkg.Visible = false
  765. end)
  766. profiledownload.MouseEnter:Connect(function()
  767. profiledownload.BackgroundColor3 = Color3.fromRGB(5, 134, 105)
  768. end)
  769. profiledownload.MouseLeave:Connect(function()
  770. profiledownload.BackgroundColor3 = Color3.fromRGB(31, 30, 31)
  771. end)
  772. profiledownload.MouseButton1Click:Connect(function()
  773. writefile(baseDirectory.."Profiles/"..v2.ProfileName..saveplaceid..".vapeprofile.txt", game:HttpGet(profileurl, true))
  774. GuiLibrary.Profiles[v2.ProfileName] = {Keybind = "", Selected = false}
  775. local profiles = {}
  776. for i,v in pairs(GuiLibrary.Profiles) do
  777. table.insert(profiles, i)
  778. end
  779. table.sort(profiles, function(a, b) return b == "default" and true or a:lower() < b:lower() end)
  780. ProfilesTextList.RefreshValues(profiles)
  781. end)
  782. local profileround = Instance.new("UICorner")
  783. profileround.CornerRadius = UDim.new(0, 4)
  784. profileround.Parent = profilebox
  785. local profileTargetInfoMainInfoCorner = Instance.new("UICorner")
  786. profileTargetInfoMainInfoCorner.CornerRadius = UDim.new(0, 4)
  787. profileTargetInfoMainInfoCorner.Parent = profiledownload
  788. local profileTargetInfoHealthBackgroundCorner = Instance.new("UICorner")
  789. profileTargetInfoHealthBackgroundCorner.CornerRadius = UDim.new(0, 4)
  790. profileTargetInfoHealthBackgroundCorner.Parent = profiledownloadbkg
  791. end
  792. profilesloaded = true
  793. end
  794. end)
  795. OnlineProfilesExitButton.MouseButton1Click:Connect(function()
  796. GuiLibrary.MainGui.ScaledGui.OnlineProfiles.Visible = false
  797. GuiLibrary.MainGui.ScaledGui.ClickGui.Visible = true
  798. end)
  799. GUI.CreateDivider()
  800.  
  801. local TextGUI = GuiLibrary.CreateCustomWindow({
  802. Name = "Text GUI",
  803. Icon = "vape/assets/TextGUIIcon1.png",
  804. IconSize = 21
  805. })
  806. local TextGUICircleObject = {CircleList = {}}
  807. GUI.CreateCustomToggle({
  808. Name = "Text GUI",
  809. Icon = "vape/assets/TextGUIIcon3.png",
  810. Function = function(callback) TextGUI.SetVisible(callback) end,
  811. Priority = 2
  812. })
  813. local GUIColorSlider = {RainbowValue = false}
  814. local TextGUIMode = {Value = "Normal"}
  815. local TextGUISortMode = {Value = "Alphabetical"}
  816. local TextGUIBackgroundToggle = {Enabled = false}
  817. local TextGUIObjects = {Logo = {}, Labels = {}, ShadowLabels = {}, Backgrounds = {}}
  818. local TextGUIConnections = {}
  819. local TextGUIFormatted = {}
  820. local VapeLogoFrame = Instance.new("Frame")
  821. VapeLogoFrame.BackgroundTransparency = 1
  822. VapeLogoFrame.Size = UDim2.new(1, 0, 1, 0)
  823. VapeLogoFrame.Parent = TextGUI.GetCustomChildren()
  824. local VapeLogo = Instance.new("ImageLabel")
  825. VapeLogo.Parent = VapeLogoFrame
  826. VapeLogo.Name = "Logo"
  827. VapeLogo.Size = UDim2.new(0, 100, 0, 27)
  828. VapeLogo.Position = UDim2.new(1, -140, 0, 3)
  829. VapeLogo.BackgroundColor3 = Color3.new()
  830. VapeLogo.BorderSizePixel = 0
  831. VapeLogo.BackgroundTransparency = 1
  832. VapeLogo.Visible = true
  833. VapeLogo.Image = downloadVapeAsset("vape/assets/VapeLogo3.png")
  834. local VapeLogoV4 = Instance.new("ImageLabel")
  835. VapeLogoV4.Parent = VapeLogo
  836. VapeLogoV4.Size = UDim2.new(0, 41, 0, 24)
  837. VapeLogoV4.Name = "Logo2"
  838. VapeLogoV4.Position = UDim2.new(1, 0, 0, 1)
  839. VapeLogoV4.BorderSizePixel = 0
  840. VapeLogoV4.BackgroundColor3 = Color3.new()
  841. VapeLogoV4.BackgroundTransparency = 1
  842. VapeLogoV4.Image = downloadVapeAsset("vape/assets/VapeLogo4.png")
  843. local VapeLogoShadow = VapeLogo:Clone()
  844. VapeLogoShadow.ImageColor3 = Color3.new()
  845. VapeLogoShadow.ImageTransparency = 0.5
  846. VapeLogoShadow.ZIndex = 0
  847. VapeLogoShadow.Position = UDim2.new(0, 1, 0, 1)
  848. VapeLogoShadow.Visible = false
  849. VapeLogoShadow.Parent = VapeLogo
  850. VapeLogoShadow.Logo2.ImageColor3 = Color3.new()
  851. VapeLogoShadow.Logo2.ZIndex = 0
  852. VapeLogoShadow.Logo2.ImageTransparency = 0.5
  853. local VapeLogoGradient = Instance.new("UIGradient")
  854. VapeLogoGradient.Rotation = 90
  855. VapeLogoGradient.Parent = VapeLogo
  856. local VapeLogoGradient2 = Instance.new("UIGradient")
  857. VapeLogoGradient2.Rotation = 90
  858. VapeLogoGradient2.Parent = VapeLogoV4
  859. local VapeText = Instance.new("TextLabel")
  860. VapeText.Parent = VapeLogoFrame
  861. VapeText.Size = UDim2.new(1, 0, 1, 0)
  862. VapeText.Position = UDim2.new(1, -154, 0, 35)
  863. VapeText.TextColor3 = Color3.new(1, 1, 1)
  864. VapeText.RichText = true
  865. VapeText.BackgroundTransparency = 1
  866. VapeText.LineHeight = 1.2
  867. VapeText.TextXAlignment = Enum.TextXAlignment.Left
  868. VapeText.TextYAlignment = Enum.TextYAlignment.Top
  869. VapeText.BorderSizePixel = 0
  870. VapeText.BackgroundColor3 = Color3.new()
  871. VapeText.Font = Enum.Font.SourceSans
  872. VapeText.Text = ""
  873. VapeText.TextSize = 19
  874. local VapeTextExtra = Instance.new("TextLabel")
  875. VapeTextExtra.Name = "ExtraText"
  876. VapeTextExtra.Parent = VapeText
  877. VapeTextExtra.LineHeight = 1.2
  878. VapeTextExtra.Size = UDim2.new(1, 0, 1, 0)
  879. VapeTextExtra.Position = UDim2.new(0, 1, 0, 1)
  880. VapeTextExtra.BorderSizePixel = 0
  881. VapeTextExtra.Visible = false
  882. VapeTextExtra.ZIndex = 0
  883. VapeTextExtra.Text = ""
  884. VapeTextExtra.BackgroundTransparency = 1
  885. VapeTextExtra.TextTransparency = 0.5
  886. VapeTextExtra.TextXAlignment = Enum.TextXAlignment.Left
  887. VapeTextExtra.TextYAlignment = Enum.TextYAlignment.Top
  888. VapeTextExtra.TextColor3 = Color3.new()
  889. VapeTextExtra.Font = Enum.Font.SourceSans
  890. VapeTextExtra.TextSize = 19
  891. local VapeCustomText = Instance.new("TextLabel")
  892. VapeCustomText.TextSize = 30
  893. VapeCustomText.Font = Enum.Font.GothamBold
  894. VapeCustomText.Size = UDim2.new(1, 0, 1, 0)
  895. VapeCustomText.BackgroundTransparency = 1
  896. VapeCustomText.Position = UDim2.new(0, 0, 0, 35)
  897. VapeCustomText.TextXAlignment = Enum.TextXAlignment.Left
  898. VapeCustomText.TextYAlignment = Enum.TextYAlignment.Top
  899. VapeCustomText.Text = ""
  900. VapeCustomText.Parent = VapeLogoFrame
  901. local VapeCustomTextShadow = VapeCustomText:Clone()
  902. VapeCustomTextShadow.ZIndex = -1
  903. VapeCustomTextShadow.Size = UDim2.new(1, 0, 1, 0)
  904. VapeCustomTextShadow.TextTransparency = 0.5
  905. VapeCustomTextShadow.TextColor3 = Color3.new()
  906. VapeCustomTextShadow.Position = UDim2.new(0, 1, 0, 1)
  907. VapeCustomTextShadow.Parent = VapeCustomText
  908. VapeCustomText:GetPropertyChangedSignal("TextXAlignment"):Connect(function()
  909. VapeCustomTextShadow.TextXAlignment = VapeCustomText.TextXAlignment
  910. end)
  911. local VapeBackground = Instance.new("Frame")
  912. VapeBackground.BackgroundTransparency = 1
  913. VapeBackground.BorderSizePixel = 0
  914. VapeBackground.BackgroundColor3 = Color3.new()
  915. VapeBackground.Size = UDim2.new(1, 0, 1, 0)
  916. VapeBackground.Visible = false
  917. VapeBackground.Parent = VapeLogoFrame
  918. VapeBackground.ZIndex = 0
  919. local VapeBackgroundList = Instance.new("UIListLayout")
  920. VapeBackgroundList.FillDirection = Enum.FillDirection.Vertical
  921. VapeBackgroundList.SortOrder = Enum.SortOrder.LayoutOrder
  922. VapeBackgroundList.Padding = UDim.new(0, 0)
  923. VapeBackgroundList.Parent = VapeBackground
  924. local VapeBackgroundTable = {}
  925. local VapeScale = Instance.new("UIScale")
  926. VapeScale.Parent = VapeLogoFrame
  927. --why do other platforms do rendering differently
  928. local TextGUIOffsets = {
  929. [Enum.Platform.Android] = {
  930. 6,
  931. -10,
  932. 15,
  933. 12
  934. },
  935. [Enum.Platform.UWP] = {
  936. 1,
  937. 1,
  938. 23,
  939. 23
  940. }
  941. }
  942. TextGUIOffsets[Enum.Platform.IOS] = TextGUIOffsets[Enum.Platform.Android]
  943. local function TextGUIUpdate()
  944. local scaledgui = vapeInjected and GuiLibrary.MainGui.ScaledGui
  945. if scaledgui and scaledgui.Visible then
  946. local formattedText = ""
  947. local moduleList = {}
  948.  
  949. for i, v in pairs(GuiLibrary.ObjectsThatCanBeSaved) do
  950. if v.Type == "OptionsButton" and v.Api.Enabled then
  951. local blacklistedCheck = table.find(TextGUICircleObject.CircleList.ObjectList, v.Api.Name)
  952. blacklistedCheck = blacklistedCheck and TextGUICircleObject.CircleList.ObjectList[blacklistedCheck]
  953. if not blacklistedCheck then
  954. local extraText = v.Api.GetExtraText()
  955. table.insert(moduleList, {Text = v.Api.Name, ExtraText = extraText ~= "" and " "..extraText or ""})
  956. end
  957. end
  958. end
  959.  
  960. if TextGUISortMode.Value == "Alphabetical" then
  961. table.sort(moduleList, function(a, b) return a.Text:lower() < b.Text:lower() end)
  962. else
  963. table.sort(moduleList, function(a, b)
  964. return textService:GetTextSize(a.Text..a.ExtraText, VapeText.TextSize, VapeText.Font, Vector2.new(1000000, 1000000)).X > textService:GetTextSize(b.Text..b.ExtraText, VapeText.TextSize, VapeText.Font, Vector2.new(1000000, 1000000)).X
  965. end)
  966. end
  967.  
  968. local backgroundList = {}
  969. local first = true
  970. for i, v in pairs(moduleList) do
  971. local newEntryText = v.Text..v.ExtraText
  972. if first then
  973. formattedText = "\n"..newEntryText
  974. first = false
  975. else
  976. formattedText = formattedText..'\n'..newEntryText
  977. end
  978. table.insert(backgroundList, newEntryText)
  979. end
  980.  
  981. TextGUIFormatted = moduleList
  982. VapeTextExtra.Text = formattedText
  983. VapeText.Size = UDim2.fromOffset(154, (formattedText ~= "" and textService:GetTextSize(formattedText, VapeText.TextSize, VapeText.Font, Vector2.new(1000000, 1000000)) or Vector2.zero).Y)
  984.  
  985. local offsets = TextGUIOffsets[inputService:GetPlatform()] or {
  986. 5,
  987. 1,
  988. 23,
  989. 23
  990. }
  991. if TextGUI.GetCustomChildren().Parent then
  992. if (TextGUI.GetCustomChildren().Parent.Position.X.Offset + TextGUI.GetCustomChildren().Parent.Size.X.Offset / 2) >= (gameCamera.ViewportSize.X / 2) then
  993. VapeText.TextXAlignment = Enum.TextXAlignment.Right
  994. VapeTextExtra.TextXAlignment = Enum.TextXAlignment.Right
  995. VapeTextExtra.Position = UDim2.fromOffset(offsets[1], offsets[2])
  996. VapeLogo.Position = UDim2.new(1, -142, 0, 8)
  997. VapeText.Position = UDim2.new(1, -158, 0, (VapeLogo.Visible and (TextGUIBackgroundToggle.Enabled and 41 or 35) or 5) + 5 + (VapeCustomText.Visible and 25 or 0) - offsets[3])
  998. VapeCustomText.Position = UDim2.fromOffset(0, VapeLogo.Visible and 35 or 0)
  999. VapeCustomText.TextXAlignment = Enum.TextXAlignment.Right
  1000. VapeBackgroundList.HorizontalAlignment = Enum.HorizontalAlignment.Right
  1001. VapeBackground.Position = VapeText.Position + UDim2.fromOffset(-60, -2 + offsets[4])
  1002. else
  1003. VapeText.TextXAlignment = Enum.TextXAlignment.Left
  1004. VapeTextExtra.TextXAlignment = Enum.TextXAlignment.Left
  1005. VapeTextExtra.Position = UDim2.fromOffset(offsets[1], offsets[2])
  1006. VapeLogo.Position = UDim2.fromOffset(2, 8)
  1007. VapeText.Position = UDim2.fromOffset(6, (VapeLogo.Visible and (TextGUIBackgroundToggle.Enabled and 41 or 35) or 5) + 5 + (VapeCustomText.Visible and 25 or 0) - offsets[3])
  1008. VapeCustomText.Position = UDim2.fromOffset(0, VapeLogo.Visible and 35 or 0)
  1009. VapeCustomText.TextXAlignment = Enum.TextXAlignment.Left
  1010. VapeBackgroundList.HorizontalAlignment = Enum.HorizontalAlignment.Left
  1011. VapeBackground.Position = VapeText.Position + UDim2.fromOffset(-4, -2 + offsets[4])
  1012. end
  1013. end
  1014.  
  1015. if TextGUIMode.Value == "Drawing" then
  1016. for i,v in pairs(TextGUIObjects.Labels) do
  1017. v.Visible = false
  1018. v:Remove()
  1019. TextGUIObjects.Labels[i] = nil
  1020. end
  1021. for i,v in pairs(TextGUIObjects.ShadowLabels) do
  1022. v.Visible = false
  1023. v:Remove()
  1024. TextGUIObjects.ShadowLabels[i] = nil
  1025. end
  1026. for i,v in pairs(backgroundList) do
  1027. local textdraw = Drawing.new("Text")
  1028. textdraw.Text = v
  1029. textdraw.Size = 23 * VapeScale.Scale
  1030. textdraw.ZIndex = 2
  1031. textdraw.Position = VapeText.AbsolutePosition + Vector2.new(VapeText.TextXAlignment == Enum.TextXAlignment.Right and (VapeText.AbsoluteSize.X - textdraw.TextBounds.X), ((textdraw.Size - 3) * i) + 6)
  1032. textdraw.Visible = true
  1033. local textdraw2 = Drawing.new("Text")
  1034. textdraw2.Text = textdraw.Text
  1035. textdraw2.Size = 23 * VapeScale.Scale
  1036. textdraw2.Position = textdraw.Position + Vector2.new(1, 1)
  1037. textdraw2.Color = Color3.new()
  1038. textdraw2.Transparency = 0.5
  1039. textdraw2.Visible = VapeTextExtra.Visible
  1040. table.insert(TextGUIObjects.Labels, textdraw)
  1041. table.insert(TextGUIObjects.ShadowLabels, textdraw2)
  1042. end
  1043. end
  1044.  
  1045. for i,v in pairs(VapeBackground:GetChildren()) do
  1046. table.clear(VapeBackgroundTable)
  1047. if v:IsA("Frame") then v:Destroy() end
  1048. end
  1049. for i,v in pairs(backgroundList) do
  1050. local textsize = textService:GetTextSize(v, VapeText.TextSize, VapeText.Font, Vector2.new(1000000, 1000000))
  1051. local backgroundFrame = Instance.new("Frame")
  1052. backgroundFrame.BorderSizePixel = 0
  1053. backgroundFrame.BackgroundTransparency = 0.62
  1054. backgroundFrame.BackgroundColor3 = Color3.new()
  1055. backgroundFrame.Visible = true
  1056. backgroundFrame.ZIndex = 0
  1057. backgroundFrame.LayoutOrder = i
  1058. backgroundFrame.Size = UDim2.fromOffset(textsize.X + 8, textsize.Y + 3)
  1059. backgroundFrame.Parent = VapeBackground
  1060. local backgroundLineFrame = Instance.new("Frame")
  1061. backgroundLineFrame.Size = UDim2.new(0, 2, 1, 0)
  1062. backgroundLineFrame.Position = (VapeBackgroundList.HorizontalAlignment == Enum.HorizontalAlignment.Left and UDim2.new() or UDim2.new(1, -2, 0, 0))
  1063. backgroundLineFrame.BorderSizePixel = 0
  1064. backgroundLineFrame.Name = "ColorFrame"
  1065. backgroundLineFrame.Parent = backgroundFrame
  1066. local backgroundLineExtra = Instance.new("Frame")
  1067. backgroundLineExtra.BorderSizePixel = 0
  1068. backgroundLineExtra.BackgroundTransparency = 0.95
  1069. backgroundLineExtra.BackgroundColor3 = Color3.new()
  1070. backgroundLineExtra.ZIndex = 0
  1071. backgroundLineExtra.Size = UDim2.new(1, 0, 0, 2)
  1072. backgroundLineExtra.Position = UDim2.new(0, 0, 1, -1)
  1073. backgroundLineExtra.Parent = backgroundFrame
  1074. table.insert(VapeBackgroundTable, backgroundFrame)
  1075. end
  1076.  
  1077. GuiLibrary.UpdateUI(GUIColorSlider.Hue, GUIColorSlider.Sat, GUIColorSlider.Value)
  1078. end
  1079. end
  1080.  
  1081. TextGUI.GetCustomChildren().Parent:GetPropertyChangedSignal("Position"):Connect(TextGUIUpdate)
  1082. GuiLibrary.UpdateHudEvent.Event:Connect(TextGUIUpdate)
  1083. VapeScale:GetPropertyChangedSignal("Scale"):Connect(function()
  1084. local childrenobj = TextGUI.GetCustomChildren()
  1085. local check = (childrenobj.Parent.Position.X.Offset + childrenobj.Parent.Size.X.Offset / 2) >= (gameCamera.ViewportSize.X / 2)
  1086. childrenobj.Position = UDim2.new((check and -(VapeScale.Scale - 1) or 0), (check and 0 or -6 * (VapeScale.Scale - 1)), 1, -6 * (VapeScale.Scale - 1))
  1087. TextGUIUpdate()
  1088. end)
  1089. TextGUIMode = TextGUI.CreateDropdown({
  1090. Name = "Mode",
  1091. List = {"Normal", "Drawing"},
  1092. Function = function(val)
  1093. VapeLogoFrame.Visible = val == "Normal"
  1094. for i,v in pairs(TextGUIConnections) do
  1095. v:Disconnect()
  1096. end
  1097. for i,v in pairs(TextGUIObjects) do
  1098. for i2,v2 in pairs(v) do
  1099. v2.Visible = false
  1100. v2:Remove()
  1101. v[i2] = nil
  1102. end
  1103. end
  1104. if val == "Drawing" then
  1105. local VapeLogoDrawing = Drawing.new("Image")
  1106. VapeLogoDrawing.Data = readfile("vape/assets/VapeLogo3.png")
  1107. VapeLogoDrawing.Size = VapeLogo.AbsoluteSize
  1108. VapeLogoDrawing.Position = VapeLogo.AbsolutePosition + Vector2.new(0, 36)
  1109. VapeLogoDrawing.ZIndex = 2
  1110. VapeLogoDrawing.Visible = VapeLogo.Visible
  1111. local VapeLogoV4Drawing = Drawing.new("Image")
  1112. VapeLogoV4Drawing.Data = readfile("vape/assets/VapeLogo4.png")
  1113. VapeLogoV4Drawing.Size = VapeLogoV4.AbsoluteSize
  1114. VapeLogoV4Drawing.Position = VapeLogoV4.AbsolutePosition + Vector2.new(0, 36)
  1115. VapeLogoV4Drawing.ZIndex = 2
  1116. VapeLogoV4Drawing.Visible = VapeLogo.Visible
  1117. local VapeLogoShadowDrawing = Drawing.new("Image")
  1118. VapeLogoShadowDrawing.Data = readfile("vape/assets/VapeLogo3.png")
  1119. VapeLogoShadowDrawing.Size = VapeLogo.AbsoluteSize
  1120. VapeLogoShadowDrawing.Position = VapeLogo.AbsolutePosition + Vector2.new(1, 37)
  1121. VapeLogoShadowDrawing.Transparency = 0.5
  1122. VapeLogoShadowDrawing.Visible = VapeLogo.Visible and VapeLogoShadow.Visible
  1123. local VapeLogo4Drawing = Drawing.new("Image")
  1124. VapeLogo4Drawing.Data = readfile("vape/assets/VapeLogo4.png")
  1125. VapeLogo4Drawing.Size = VapeLogoV4.AbsoluteSize
  1126. VapeLogo4Drawing.Position = VapeLogoV4.AbsolutePosition + Vector2.new(1, 37)
  1127. VapeLogo4Drawing.Transparency = 0.5
  1128. VapeLogo4Drawing.Visible = VapeLogo.Visible and VapeLogoShadow.Visible
  1129. local VapeCustomDrawingText = Drawing.new("Text")
  1130. VapeCustomDrawingText.Size = 30
  1131. VapeCustomDrawingText.Text = VapeCustomText.Text
  1132. VapeCustomDrawingText.Color = VapeCustomText.TextColor3
  1133. VapeCustomDrawingText.ZIndex = 2
  1134. VapeCustomDrawingText.Position = VapeCustomText.AbsolutePosition + Vector2.new(VapeText.TextXAlignment == Enum.TextXAlignment.Right and (VapeCustomText.AbsoluteSize.X - VapeCustomDrawingText.TextBounds.X), 32)
  1135. VapeCustomDrawingText.Visible = VapeCustomText.Visible
  1136. local VapeCustomDrawingShadow = Drawing.new("Text")
  1137. VapeCustomDrawingShadow.Size = 30
  1138. VapeCustomDrawingShadow.Text = VapeCustomText.Text
  1139. VapeCustomDrawingShadow.Transparency = 0.5
  1140. VapeCustomDrawingShadow.Color = Color3.new()
  1141. VapeCustomDrawingShadow.Position = VapeCustomDrawingText.Position + Vector2.new(1, 1)
  1142. VapeCustomDrawingShadow.Visible = VapeCustomText.Visible and VapeTextExtra.Visible
  1143. pcall(function()
  1144. VapeLogoShadowDrawing.Color = Color3.new()
  1145. VapeLogo4Drawing.Color = Color3.new()
  1146. VapeLogoDrawing.Color = VapeLogoGradient.Color.Keypoints[1].Value
  1147. end)
  1148. table.insert(TextGUIObjects.Logo, VapeLogoDrawing)
  1149. table.insert(TextGUIObjects.Logo, VapeLogoV4Drawing)
  1150. table.insert(TextGUIObjects.Logo, VapeLogoShadowDrawing)
  1151. table.insert(TextGUIObjects.Logo, VapeLogo4Drawing)
  1152. table.insert(TextGUIObjects.Logo, VapeCustomDrawingText)
  1153. table.insert(TextGUIObjects.Logo, VapeCustomDrawingShadow)
  1154. table.insert(TextGUIConnections, VapeLogo:GetPropertyChangedSignal("AbsolutePosition"):Connect(function()
  1155. VapeLogoDrawing.Position = VapeLogo.AbsolutePosition + Vector2.new(0, 36)
  1156. VapeLogoShadowDrawing.Position = VapeLogo.AbsolutePosition + Vector2.new(1, 37)
  1157. end))
  1158. table.insert(TextGUIConnections, VapeLogo:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
  1159. VapeLogoDrawing.Size = VapeLogo.AbsoluteSize
  1160. VapeLogoShadowDrawing.Size = VapeLogo.AbsoluteSize
  1161. VapeCustomDrawingText.Size = 30 * VapeScale.Scale
  1162. VapeCustomDrawingShadow.Size = 30 * VapeScale.Scale
  1163. end))
  1164. table.insert(TextGUIConnections, VapeLogoV4:GetPropertyChangedSignal("AbsolutePosition"):Connect(function()
  1165. VapeLogoV4Drawing.Position = VapeLogoV4.AbsolutePosition + Vector2.new(0, 36)
  1166. VapeLogo4Drawing.Position = VapeLogoV4.AbsolutePosition + Vector2.new(1, 37)
  1167. end))
  1168. table.insert(TextGUIConnections, VapeLogoV4:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
  1169. VapeLogoV4Drawing.Size = VapeLogoV4.AbsoluteSize
  1170. VapeLogo4Drawing.Size = VapeLogoV4.AbsoluteSize
  1171. end))
  1172. table.insert(TextGUIConnections, VapeCustomText:GetPropertyChangedSignal("AbsolutePosition"):Connect(function()
  1173. VapeCustomDrawingText.Position = VapeCustomText.AbsolutePosition + Vector2.new(VapeText.TextXAlignment == Enum.TextXAlignment.Right and (VapeCustomText.AbsoluteSize.X - VapeCustomDrawingText.TextBounds.X), 32)
  1174. VapeCustomDrawingShadow.Position = VapeCustomDrawingText.Position + Vector2.new(1, 1)
  1175. end))
  1176. table.insert(TextGUIConnections, VapeLogoShadow:GetPropertyChangedSignal("Visible"):Connect(function()
  1177. VapeLogoShadowDrawing.Visible = VapeLogoShadow.Visible
  1178. VapeLogo4Drawing.Visible = VapeLogoShadow.Visible
  1179. end))
  1180. table.insert(TextGUIConnections, VapeTextExtra:GetPropertyChangedSignal("Visible"):Connect(function()
  1181. for i,textdraw in pairs(TextGUIObjects.ShadowLabels) do
  1182. textdraw.Visible = VapeTextExtra.Visible
  1183. end
  1184. VapeCustomDrawingShadow.Visible = VapeCustomText.Visible and VapeTextExtra.Visible
  1185. end))
  1186. table.insert(TextGUIConnections, VapeLogo:GetPropertyChangedSignal("Visible"):Connect(function()
  1187. VapeLogoDrawing.Visible = VapeLogo.Visible
  1188. VapeLogoV4Drawing.Visible = VapeLogo.Visible
  1189. VapeLogoShadowDrawing.Visible = VapeLogo.Visible and VapeTextExtra.Visible
  1190. VapeLogo4Drawing.Visible = VapeLogo.Visible and VapeTextExtra.Visible
  1191. end))
  1192. table.insert(TextGUIConnections, VapeCustomText:GetPropertyChangedSignal("Visible"):Connect(function()
  1193. VapeCustomDrawingText.Visible = VapeCustomText.Visible
  1194. VapeCustomDrawingShadow.Visible = VapeCustomText.Visible and VapeTextExtra.Visible
  1195. end))
  1196. table.insert(TextGUIConnections, VapeCustomText:GetPropertyChangedSignal("Text"):Connect(function()
  1197. VapeCustomDrawingText.Text = VapeCustomText.Text
  1198. VapeCustomDrawingShadow.Text = VapeCustomText.Text
  1199. VapeCustomDrawingText.Position = VapeCustomText.AbsolutePosition + Vector2.new(VapeText.TextXAlignment == Enum.TextXAlignment.Right and (VapeCustomText.AbsoluteSize.X - VapeCustomDrawingText.TextBounds.X), 32)
  1200. VapeCustomDrawingShadow.Position = VapeCustomDrawingText.Position + Vector2.new(1, 1)
  1201. end))
  1202. table.insert(TextGUIConnections, VapeCustomText:GetPropertyChangedSignal("TextColor3"):Connect(function()
  1203. VapeCustomDrawingText.Color = VapeCustomText.TextColor3
  1204. end))
  1205. table.insert(TextGUIConnections, VapeText:GetPropertyChangedSignal("AbsolutePosition"):Connect(function()
  1206. for i,textdraw in pairs(TextGUIObjects.Labels) do
  1207. textdraw.Position = VapeText.AbsolutePosition + Vector2.new(VapeText.TextXAlignment == Enum.TextXAlignment.Right and (VapeText.AbsoluteSize.X - textdraw.TextBounds.X), ((textdraw.Size - 3) * i) + 6)
  1208. end
  1209. for i,textdraw in pairs(TextGUIObjects.ShadowLabels) do
  1210. textdraw.Position = Vector2.new(1, 1) + (VapeText.AbsolutePosition + Vector2.new(VapeText.TextXAlignment == Enum.TextXAlignment.Right and (VapeText.AbsoluteSize.X - textdraw.TextBounds.X), ((textdraw.Size - 3) * i) + 6))
  1211. end
  1212. end))
  1213. table.insert(TextGUIConnections, VapeLogoGradient:GetPropertyChangedSignal("Color"):Connect(function()
  1214. pcall(function()
  1215. VapeLogoDrawing.Color = VapeLogoGradient.Color.Keypoints[1].Value
  1216. end)
  1217. end))
  1218. end
  1219. end
  1220. })
  1221. TextGUISortMode = TextGUI.CreateDropdown({
  1222. Name = "Sort",
  1223. List = {"Alphabetical", "Length"},
  1224. Function = function(val)
  1225. GuiLibrary.UpdateHudEvent:Fire()
  1226. end
  1227. })
  1228. local TextGUIFonts = {"Arial"}
  1229. local TextGUIFonts2 = {"GothamBold"}
  1230. for i,v in pairs(Enum.Font:GetEnumItems()) do
  1231. if v.Name ~= "Arial" then
  1232. table.insert(TextGUIFonts, v.Name)
  1233. end
  1234. if v.Name ~= "GothamBold" then
  1235. table.insert(TextGUIFonts2, v.Name)
  1236. end
  1237. end
  1238. TextGUI.CreateDropdown({
  1239. Name = "Font",
  1240. List = TextGUIFonts,
  1241. Function = function(val)
  1242. VapeText.Font = Enum.Font[val]
  1243. VapeTextExtra.Font = Enum.Font[val]
  1244. GuiLibrary.UpdateHudEvent:Fire()
  1245. end
  1246. })
  1247. TextGUI.CreateDropdown({
  1248. Name = "CustomTextFont",
  1249. List = TextGUIFonts2,
  1250. Function = function(val)
  1251. VapeCustomText.Font = Enum.Font[val]
  1252. VapeCustomTextShadow.Font = Enum.Font[val]
  1253. GuiLibrary.UpdateHudEvent:Fire()
  1254. end
  1255. })
  1256. TextGUI.CreateSlider({
  1257. Name = "Scale",
  1258. Min = 1,
  1259. Max = 50,
  1260. Default = 10,
  1261. Function = function(val)
  1262. VapeScale.Scale = val / 10
  1263. end
  1264. })
  1265. TextGUI.CreateToggle({
  1266. Name = "Shadow",
  1267. Function = function(callback)
  1268. VapeTextExtra.Visible = callback
  1269. VapeLogoShadow.Visible = callback
  1270. end,
  1271. HoverText = "Renders shadowed text."
  1272. })
  1273. TextGUI.CreateToggle({
  1274. Name = "Watermark",
  1275. Function = function(callback)
  1276. VapeLogo.Visible = callback
  1277. GuiLibrary.UpdateHudEvent:Fire()
  1278. end,
  1279. HoverText = "Renders a vape watermark"
  1280. })
  1281. TextGUIBackgroundToggle = TextGUI.CreateToggle({
  1282. Name = "Render background",
  1283. Function = function(callback)
  1284. VapeBackground.Visible = callback
  1285. GuiLibrary.UpdateHudEvent:Fire()
  1286. end
  1287. })
  1288. TextGUI.CreateToggle({
  1289. Name = "Hide Modules",
  1290. Function = function(callback)
  1291. if TextGUICircleObject.Object then
  1292. TextGUICircleObject.Object.Visible = callback
  1293. end
  1294. end
  1295. })
  1296. TextGUICircleObject = TextGUI.CreateCircleWindow({
  1297. Name = "Blacklist",
  1298. Type = "Blacklist",
  1299. UpdateFunction = function()
  1300. GuiLibrary.UpdateHudEvent:Fire()
  1301. end
  1302. })
  1303. TextGUICircleObject.Object.Visible = false
  1304. local TextGUIGradient = TextGUI.CreateToggle({
  1305. Name = "Gradient Logo",
  1306. Function = function()
  1307. GuiLibrary.UpdateHudEvent:Fire()
  1308. end
  1309. })
  1310. TextGUI.CreateToggle({
  1311. Name = "Alternate Text",
  1312. Function = function()
  1313. GuiLibrary.UpdateHudEvent:Fire()
  1314. end
  1315. })
  1316. local CustomText = {Value = "", Object = nil}
  1317. TextGUI.CreateToggle({
  1318. Name = "Add custom text",
  1319. Function = function(callback)
  1320. VapeCustomText.Visible = callback
  1321. CustomText.Object.Visible = callback
  1322. GuiLibrary.UpdateHudEvent:Fire()
  1323. end,
  1324. HoverText = "Renders a custom label"
  1325. })
  1326. CustomText = TextGUI.CreateTextBox({
  1327. Name = "Custom text",
  1328. FocusLost = function(enter)
  1329. VapeCustomText.Text = CustomText.Value
  1330. VapeCustomTextShadow.Text = CustomText.Value
  1331. end
  1332. })
  1333. CustomText.Object.Visible = false
  1334.  
  1335. local function newHealthColor(percent)
  1336. if percent > 0.5 then
  1337. return Color3.fromRGB(5, 134, 105):lerp(Color3.fromRGB(255, 255, 0), (0.5 - (percent - 0.5)) / 0.5)
  1338. end
  1339. return Color3.fromRGB(255, 255, 0):lerp(Color3.fromRGB(249, 57, 55), (0.5 - percent) / 0.5)
  1340. end
  1341.  
  1342. local TargetInfo = GuiLibrary.CreateCustomWindow({
  1343. Name = "Target Info",
  1344. Icon = "vape/assets/TargetInfoIcon1.png",
  1345. IconSize = 16
  1346. })
  1347. local TargetInfoBackground = {Enabled = false}
  1348. local TargetInfoMainFrame = Instance.new("Frame")
  1349. TargetInfoMainFrame.BackgroundColor3 = Color3.fromRGB(26, 25, 26)
  1350. TargetInfoMainFrame.BorderSizePixel = 0
  1351. TargetInfoMainFrame.BackgroundTransparency = 1
  1352. TargetInfoMainFrame.Size = UDim2.new(0, 220, 0, 72)
  1353. TargetInfoMainFrame.Position = UDim2.new(0, 0, 0, 5)
  1354. TargetInfoMainFrame.Parent = TargetInfo.GetCustomChildren()
  1355. local TargetInfoMainInfo = Instance.new("Frame")
  1356. TargetInfoMainInfo.BackgroundColor3 = Color3.fromRGB(31, 30, 31)
  1357. TargetInfoMainInfo.Size = UDim2.new(0, 220, 0, 80)
  1358. TargetInfoMainInfo.BackgroundTransparency = 0.25
  1359. TargetInfoMainInfo.Position = UDim2.new(0, 0, 0, 0)
  1360. TargetInfoMainInfo.Name = "MainInfo"
  1361. TargetInfoMainInfo.Parent = TargetInfoMainFrame
  1362. local TargetInfoName = Instance.new("TextLabel")
  1363. TargetInfoName.TextSize = 14
  1364. TargetInfoName.Font = Enum.Font.Arial
  1365. TargetInfoName.TextColor3 = Color3.fromRGB(162, 162, 162)
  1366. TargetInfoName.Position = UDim2.new(0, 70, 0, 10)
  1367. TargetInfoName.TextStrokeTransparency = 1
  1368. TargetInfoName.BackgroundTransparency = 1
  1369. TargetInfoName.Size = UDim2.new(0, 80, 0, 20)
  1370. TargetInfoName.Text = "Target name"
  1371. TargetInfoName.ZIndex = 2
  1372. TargetInfoName.TextXAlignment = Enum.TextXAlignment.Left
  1373. TargetInfoName.TextYAlignment = Enum.TextYAlignment.Top
  1374. TargetInfoName.Parent = TargetInfoMainInfo
  1375. local TargetInfoNameShadow = TargetInfoName:Clone()
  1376. TargetInfoNameShadow.Size = UDim2.new(1, 0, 1, 0)
  1377. TargetInfoNameShadow.TextTransparency = 0.5
  1378. TargetInfoNameShadow.TextColor3 = Color3.new()
  1379. TargetInfoNameShadow.ZIndex = 1
  1380. TargetInfoNameShadow.Position = UDim2.new(0, 1, 0, 1)
  1381. TargetInfoName:GetPropertyChangedSignal("Text"):Connect(function()
  1382. TargetInfoNameShadow.Text = TargetInfoName.Text
  1383. end)
  1384. TargetInfoNameShadow.Parent = TargetInfoName
  1385. local TargetInfoHealthBackground = Instance.new("Frame")
  1386. TargetInfoHealthBackground.BackgroundColor3 = Color3.fromRGB(54, 54, 54)
  1387. TargetInfoHealthBackground.Size = UDim2.new(0, 140, 0, 4)
  1388. TargetInfoHealthBackground.Position = UDim2.new(0, 72, 0, 32)
  1389. TargetInfoHealthBackground.Parent = TargetInfoMainInfo
  1390. local TargetInfoHealthBackgroundShadow = Instance.new("ImageLabel")
  1391. TargetInfoHealthBackgroundShadow.AnchorPoint = Vector2.new(0.5, 0.5)
  1392. TargetInfoHealthBackgroundShadow.Position = UDim2.new(0.5, 0, 0.5, 0)
  1393. TargetInfoHealthBackgroundShadow.Image = downloadVapeAsset("vape/assets/WindowBlur.png")
  1394. TargetInfoHealthBackgroundShadow.BackgroundTransparency = 1
  1395. TargetInfoHealthBackgroundShadow.ImageTransparency = 0.6
  1396. TargetInfoHealthBackgroundShadow.ZIndex = -1
  1397. TargetInfoHealthBackgroundShadow.Size = UDim2.new(1, 6, 1, 6)
  1398. TargetInfoHealthBackgroundShadow.ImageColor3 = Color3.new()
  1399. TargetInfoHealthBackgroundShadow.ScaleType = Enum.ScaleType.Slice
  1400. TargetInfoHealthBackgroundShadow.SliceCenter = Rect.new(10, 10, 118, 118)
  1401. TargetInfoHealthBackgroundShadow.Parent = TargetInfoHealthBackground
  1402. local TargetInfoHealth = Instance.new("Frame")
  1403. TargetInfoHealth.BackgroundColor3 = Color3.fromRGB(40, 137, 109)
  1404. TargetInfoHealth.Size = UDim2.new(1, 0, 1, 0)
  1405. TargetInfoHealth.ZIndex = 3
  1406. TargetInfoHealth.BorderSizePixel = 0
  1407. TargetInfoHealth.Parent = TargetInfoHealthBackground
  1408. local TargetInfoHealthExtra = Instance.new("Frame")
  1409. TargetInfoHealthExtra.BackgroundColor3 = Color3.fromRGB(255, 170, 0)
  1410. TargetInfoHealthExtra.Size = UDim2.new(0, 0, 1, 0)
  1411. TargetInfoHealthExtra.ZIndex = 4
  1412. TargetInfoHealthExtra.BorderSizePixel = 0
  1413. TargetInfoHealthExtra.AnchorPoint = Vector2.new(1, 0)
  1414. TargetInfoHealthExtra.Position = UDim2.new(1, 0, 0, 0)
  1415. TargetInfoHealthExtra.Parent = TargetInfoHealth
  1416. local TargetInfoImage = Instance.new("ImageLabel")
  1417. TargetInfoImage.Size = UDim2.new(0, 50, 0, 50)
  1418. TargetInfoImage.BackgroundTransparency = 1
  1419. TargetInfoImage.Image = 'rbxthumb://type=AvatarHeadShot&id='..playersService.LocalPlayer.UserId..'&w=420&h=420'
  1420. TargetInfoImage.Position = UDim2.new(0, 10, 0, 16)
  1421. TargetInfoImage.Parent = TargetInfoMainInfo
  1422. local TargetInfoMainInfoCorner = Instance.new("UICorner")
  1423. TargetInfoMainInfoCorner.CornerRadius = UDim.new(0, 4)
  1424. TargetInfoMainInfoCorner.Parent = TargetInfoMainInfo
  1425. local TargetInfoHealthBackgroundCorner = Instance.new("UICorner")
  1426. TargetInfoHealthBackgroundCorner.CornerRadius = UDim.new(0, 2048)
  1427. TargetInfoHealthBackgroundCorner.Parent = TargetInfoHealthBackground
  1428. local TargetInfoHealthCorner = Instance.new("UICorner")
  1429. TargetInfoHealthCorner.CornerRadius = UDim.new(0, 2048)
  1430. TargetInfoHealthCorner.Parent = TargetInfoHealth
  1431. local TargetInfoHealthCorner2 = Instance.new("UICorner")
  1432. TargetInfoHealthCorner2.CornerRadius = UDim.new(0, 2048)
  1433. TargetInfoHealthCorner2.Parent = TargetInfoHealthExtra
  1434. local TargetInfoHealthExtraCorner = Instance.new("UICorner")
  1435. TargetInfoHealthExtraCorner.CornerRadius = UDim.new(0, 4)
  1436. TargetInfoHealthExtraCorner.Parent = TargetInfoImage
  1437. TargetInfo.CreateDropdown({
  1438. Name = "Font",
  1439. List = TextGUIFonts,
  1440. Function = function(val)
  1441. TargetInfoName.Font = Enum.Font[val]
  1442. TargetInfoNameShadow.Font = Enum.Font[val]
  1443. end
  1444. })
  1445.  
  1446. TargetInfoBackground = TargetInfo.CreateToggle({
  1447. Name = "Use Background",
  1448. Function = function(callback)
  1449. TargetInfoMainInfo.BackgroundTransparency = callback and 0.25 or 1
  1450. TargetInfoName.TextColor3 = callback and Color3.fromRGB(162, 162, 162) or Color3.new(1, 1, 1)
  1451. TargetInfoName.Size = UDim2.new(0, 80, 0, callback and 16 or 18)
  1452. TargetInfoName.TextSize = callback and 14 or 15
  1453. TargetInfoHealthBackground.Size = UDim2.new(0, 138, 0, callback and 4 or 7)
  1454. end,
  1455. Default = true
  1456. })
  1457. local TargetInfoDisplayNames = TargetInfo.CreateToggle({
  1458. Name = "Use Display Names",
  1459. Function = function(callback) end,
  1460. Default = true
  1461. })
  1462. local TargetInfoHealthTween
  1463. TargetInfo.GetCustomChildren().Parent:GetPropertyChangedSignal("Size"):Connect(function()
  1464. TargetInfoMainInfo.Position = UDim2.fromOffset(0, TargetInfo.GetCustomChildren().Parent.Size ~= UDim2.fromOffset(220, 0) and -5 or 40)
  1465. end)
  1466. shared.VapeTargetInfo = {
  1467. UpdateInfo = function(tab, targetsize)
  1468. if TargetInfo.GetCustomChildren().Parent then
  1469. local hasTarget = false
  1470. for _, v in pairs(shared.VapeTargetInfo.Targets) do
  1471. hasTarget = true
  1472. TargetInfoImage.Image = 'rbxthumb://type=AvatarHeadShot&id='..v.Player.UserId..'&w=420&h=420'
  1473. TargetInfoHealth:TweenSize(UDim2.new(math.clamp(v.Humanoid.Health / v.Humanoid.MaxHealth, 0, 1), 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, 0.25, true)
  1474. TargetInfoHealthExtra:TweenSize(UDim2.new(math.clamp((v.Humanoid.Health / v.Humanoid.MaxHealth) - 1, 0, 1), 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, 0.25, true)
  1475. if TargetInfoHealthTween then TargetInfoHealthTween:Cancel() end
  1476. TargetInfoHealthTween = game:GetService("TweenService"):Create(TargetInfoHealth, TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {BackgroundColor3 = newHealthColor(math.clamp(v.Humanoid.Health / v.Humanoid.MaxHealth, 0, 1))})
  1477. TargetInfoHealthTween:Play()
  1478. TargetInfoName.Text = (TargetInfoDisplayNames.Enabled and v.Player.DisplayName or v.Player.Name)
  1479. break
  1480. end
  1481. TargetInfoMainInfo.Visible = hasTarget or (TargetInfo.GetCustomChildren().Parent.Size ~= UDim2.new(0, 220, 0, 0))
  1482. end
  1483. end,
  1484. Targets = {},
  1485. Object = TargetInfo
  1486. }
  1487. task.spawn(function()
  1488. repeat
  1489. if shared.VapeTargetInfo then
  1490. shared.VapeTargetInfo.UpdateInfo()
  1491. end
  1492. task.wait()
  1493. until not vapeInjected
  1494. end)
  1495. GUI.CreateCustomToggle({
  1496. Name = "Target Info",
  1497. Icon = "vape/assets/TargetInfoIcon2.png",
  1498. Function = function(callback) TargetInfo.SetVisible(callback) end,
  1499. Priority = 1
  1500. })
  1501. local GeneralSettings = GUI.CreateDivider2("General Settings")
  1502. local ModuleSettings = GUI.CreateDivider2("Module Settings")
  1503. local GUISettings = GUI.CreateDivider2("GUI Settings")
  1504. local TeamsByColorToggle = {Enabled = false}
  1505. TeamsByColorToggle = ModuleSettings.CreateToggle({
  1506. Name = "Teams by color",
  1507. Function = function() if TeamsByColorToggle.Refresh then TeamsByColorToggle.Refresh:Fire() end end,
  1508. Default = true,
  1509. HoverText = "Ignore players on your team designated by the game"
  1510. })
  1511. TeamsByColorToggle.Refresh = Instance.new("BindableEvent")
  1512. local MiddleClickInput
  1513. ModuleSettings.CreateToggle({
  1514. Name = "MiddleClick friends",
  1515. Function = function(callback)
  1516. if callback then
  1517. MiddleClickInput = inputService.InputBegan:Connect(function(input1)
  1518. if input1.UserInputType == Enum.UserInputType.MouseButton3 then
  1519. local entityLibrary = shared.vapeentity
  1520. if entityLibrary then
  1521. local rayparams = RaycastParams.new()
  1522. rayparams.FilterType = Enum.RaycastFilterType.Whitelist
  1523. local chars = {}
  1524. for i,v in pairs(entityLibrary.entityList) do
  1525. table.insert(chars, v.Character)
  1526. end
  1527. rayparams.FilterDescendantsInstances = chars
  1528. local mouseunit = playersService.LocalPlayer:GetMouse().UnitRay
  1529. local ray = workspace:Raycast(mouseunit.Origin, mouseunit.Direction * 10000, rayparams)
  1530. if ray then
  1531. for i,v in pairs(entityLibrary.entityList) do
  1532. if ray.Instance:IsDescendantOf(v.Character) then
  1533. local found = table.find(FriendsTextList.ObjectList, v.Player.Name)
  1534. if not found then
  1535. table.insert(FriendsTextList.ObjectList, v.Player.Name)
  1536. table.insert(FriendsTextList.ObjectListEnabled, true)
  1537. FriendsTextList.RefreshValues(FriendsTextList.ObjectList)
  1538. else
  1539. table.remove(FriendsTextList.ObjectList, found)
  1540. table.remove(FriendsTextList.ObjectListEnabled, found)
  1541. FriendsTextList.RefreshValues(FriendsTextList.ObjectList)
  1542. end
  1543. break
  1544. end
  1545. end
  1546. end
  1547. end
  1548. end
  1549. end)
  1550. else
  1551. if MiddleClickInput then MiddleClickInput:Disconnect() end
  1552. end
  1553. end,
  1554. HoverText = "Click middle mouse button to add the player you are hovering over as a friend"
  1555. })
  1556. ModuleSettings.CreateToggle({
  1557. Name = "Lobby Check",
  1558. Function = function() end,
  1559. Default = true,
  1560. HoverText = "Temporarily disables certain features in server lobbies."
  1561. })
  1562. GUIColorSlider = GUI.CreateColorSlider("GUI Theme", function(h, s, v)
  1563. GuiLibrary.UpdateUI(h, s, v)
  1564. end)
  1565. local BlatantModeToggle = GUI.CreateToggle({
  1566. Name = "Blatant mode",
  1567. Function = function() end,
  1568. HoverText = "Required for certain features."
  1569. })
  1570. local windowSortOrder = {
  1571. CombatButton = 1,
  1572. BlatantButton = 2,
  1573. RenderButton = 3,
  1574. UtilityButton = 4,
  1575. WorldButton = 5,
  1576. FriendsButton = 6,
  1577. TargetsButton = 7,
  1578. ProfilesButton = 8
  1579. }
  1580. local windowSortOrder2 = {"Combat", "Blatant", "Render", "Utility", "World"}
  1581.  
  1582. local function getVapeSaturation(val)
  1583. local sat = 0.9
  1584. if val < 0.03 then
  1585. sat = 0.75 + (0.15 * math.clamp(val / 0.03, 0, 1))
  1586. end
  1587. if val > 0.59 then
  1588. sat = 0.9 - (0.4 * math.clamp((val - 0.59) / 0.07, 0, 1))
  1589. end
  1590. if val > 0.68 then
  1591. sat = 0.5 + (0.4 * math.clamp((val - 0.68) / 0.14, 0, 1))
  1592. end
  1593. if val > 0.89 then
  1594. sat = 0.9 - (0.15 * math.clamp((val - 0.89) / 0.1, 0, 1))
  1595. end
  1596. return sat
  1597. end
  1598.  
  1599. GuiLibrary.UpdateUI = function(h, s, val, bypass)
  1600. pcall(function()
  1601. local rainbowGUICheck = GUIColorSlider.RainbowValue
  1602. local mainRainbowSaturation = rainbowGUICheck and getVapeSaturation(h) or s
  1603. local mainRainbowGradient = h + (rainbowGUICheck and -0.05 or 0)
  1604. mainRainbowGradient = mainRainbowGradient % 1
  1605.  
  1606. GuiLibrary.ObjectsThatCanBeSaved.GUIWindow.Object.Logo1.Logo2.ImageColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1607. VapeText.TextColor3 = Color3.fromHSV(TextGUIGradient.Enabled and mainRainbowGradient or h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1608. VapeCustomText.TextColor3 = VapeText.TextColor3
  1609. VapeLogoGradient.Color = ColorSequence.new({
  1610. ColorSequenceKeypoint.new(0, Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)),
  1611. ColorSequenceKeypoint.new(1, VapeText.TextColor3)
  1612. })
  1613. VapeLogoGradient2.Color = ColorSequence.new({
  1614. ColorSequenceKeypoint.new(0, Color3.fromHSV(h, TextGUIGradient.Enabled and rainbowGUICheck and mainRainbowSaturation or 0, 1)),
  1615. ColorSequenceKeypoint.new(1, Color3.fromHSV(TextGUIGradient.Enabled and mainRainbowGradient or h, TextGUIGradient.Enabled and rainbowGUICheck and mainRainbowSaturation or 0, 1))
  1616. })
  1617.  
  1618. local newTextGUIText = "\n"
  1619. local backgroundTable = {}
  1620. for i, v in pairs(TextGUIFormatted) do
  1621. local rainbowcolor = h + (rainbowGUICheck and (-0.025 * (i + (TextGUIGradient.Enabled and 2 or 0))) or 0)
  1622. rainbowcolor = rainbowcolor % 1
  1623. local newcolor = Color3.fromHSV(rainbowcolor, rainbowGUICheck and getVapeSaturation(rainbowcolor) or mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1624. newTextGUIText = newTextGUIText..'<font color="rgb('..math.floor(newcolor.R * 255)..","..math.floor(newcolor.G * 255)..","..math.floor(newcolor.B * 255)..')">'..v.Text..'</font><font color="rgb(170, 170, 170)">'..v.ExtraText..'</font>\n'
  1625. backgroundTable[i] = newcolor
  1626. end
  1627.  
  1628. if TextGUIMode.Value == "Drawing" then
  1629. for i,v in pairs(TextGUIObjects.Labels) do
  1630. if backgroundTable[i] then
  1631. v.Color = backgroundTable[i]
  1632. end
  1633. end
  1634. end
  1635.  
  1636. if TextGUIBackgroundToggle.Enabled then
  1637. for i, v in pairs(VapeBackgroundTable) do
  1638. v.ColorFrame.BackgroundColor3 = backgroundTable[v.LayoutOrder] or Color3.new()
  1639. end
  1640. end
  1641. VapeText.Text = newTextGUIText
  1642.  
  1643. if (not GuiLibrary.MainGui.ScaledGui.ClickGui.Visible) and (not GuiLibrary.MainGui.ScaledGui.LegitGui.Visible) and (not bypass) then return end
  1644. GuiLibrary.MainGui.ScaledGui.ClickGui.SearchBar.LegitMode.ImageColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1645. local buttonColorIndex = 0
  1646. for i, v in pairs(GuiLibrary.ObjectsThatCanBeSaved) do
  1647. if v.Type == "TargetFrame" then
  1648. if v.Object2.Visible then
  1649. v.Object.TextButton.Frame.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1650. end
  1651. elseif v.Type == "TargetButton" then
  1652. if v.Api.Enabled then
  1653. v.Object.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1654. end
  1655. elseif v.Type == "CircleListFrame" then
  1656. if v.Object2.Visible then
  1657. v.Object.TextButton.Frame.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1658. end
  1659. elseif v.Type == "LegitModule" then
  1660. if v.Toggle.Visible and v.Api.Enabled then
  1661. v.Toggle.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1662. end
  1663. elseif (v.Type == "Button" or v.Type == "ButtonMain") and v.Api.Enabled then
  1664. buttonColorIndex = buttonColorIndex + 1
  1665. local rainbowcolor = h + (rainbowGUICheck and (-0.025 * windowSortOrder[i]) or 0)
  1666. rainbowcolor = rainbowcolor % 1
  1667. local newcolor = Color3.fromHSV(rainbowcolor, rainbowGUICheck and getVapeSaturation(rainbowcolor) or mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1668. v.Object.ButtonText.TextColor3 = newcolor
  1669. if v.Object:FindFirstChild("ButtonIcon") then
  1670. v.Object.ButtonIcon.ImageColor3 = newcolor
  1671. end
  1672. elseif v.Type == "OptionsButton" then
  1673. if v.Api.Enabled then
  1674. local newcolor = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1675. if (not oldrainbow) then
  1676. local mainRainbowGradient = table.find(windowSortOrder2, v.Object.Parent.Parent.Name)
  1677. mainRainbowGradient = mainRainbowGradient and (mainRainbowGradient - 1) > 0 and GuiLibrary.ObjectsThatCanBeSaved[windowSortOrder2[mainRainbowGradient - 1].."Window"].SortOrder or 0
  1678. local rainbowcolor = h + (rainbowGUICheck and (-0.025 * (mainRainbowGradient + v.SortOrder)) or 0)
  1679. rainbowcolor = rainbowcolor % 1
  1680. newcolor = Color3.fromHSV(rainbowcolor, rainbowGUICheck and getVapeSaturation(rainbowcolor) or mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1681. end
  1682. v.Object.BackgroundColor3 = newcolor
  1683. end
  1684. elseif v.Type == "ExtrasButton" then
  1685. if v.Api.Enabled then
  1686. local rainbowcolor = h + (rainbowGUICheck and (-0.025 * buttonColorIndex) or 0)
  1687. rainbowcolor = rainbowcolor % 1
  1688. local newcolor = Color3.fromHSV(rainbowcolor, rainbowGUICheck and getVapeSaturation(rainbowcolor) or mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1689. v.Object.ImageColor3 = newcolor
  1690. end
  1691. elseif (v.Type == "Toggle" or v.Type == "ToggleMain") and v.Api.Enabled then
  1692. v.Object.ToggleFrame1.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1693. elseif v.Type == "Slider" or v.Type == "SliderMain" then
  1694. v.Object.Slider.FillSlider.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1695. v.Object.Slider.FillSlider.ButtonSlider.ImageColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1696. elseif v.Type == "TwoSlider" then
  1697. v.Object.Slider.FillSlider.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1698. v.Object.Slider.ButtonSlider.ImageColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1699. v.Object.Slider.ButtonSlider2.ImageColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1700. end
  1701. end
  1702.  
  1703. local rainbowcolor = h + (rainbowGUICheck and (-0.025 * buttonColorIndex) or 0)
  1704. rainbowcolor = rainbowcolor % 1
  1705. GuiLibrary.ObjectsThatCanBeSaved.GUIWindow.Object.Children.Extras.MainButton.ImageColor3 = (GUI.GetVisibleIcons() > 0 and Color3.fromHSV(rainbowcolor, getVapeSaturation(rainbowcolor), 1) or Color3.fromRGB(199, 199, 199))
  1706.  
  1707. for i, v in pairs(ProfilesTextList.ScrollingObject.ScrollingFrame:GetChildren()) do
  1708. if v:IsA("TextButton") and v.ItemText.Text == GuiLibrary.CurrentProfile then
  1709. v.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1710. v.ImageButton.BackgroundColor3 = Color3.fromHSV(h, mainRainbowSaturation, rainbowGUICheck and 1 or val)
  1711. v.ItemText.TextColor3 = Color3.new(1, 1, 1)
  1712. v.ItemText.TextStrokeTransparency = 0.75
  1713. end
  1714. end
  1715. end)
  1716. end
  1717.  
  1718. GUISettings.CreateToggle({
  1719. Name = "Blur Background",
  1720. Function = function(callback)
  1721. GuiLibrary.MainBlur.Size = (callback and 25 or 0)
  1722. game:GetService("RunService"):SetRobloxGuiFocused(GuiLibrary.MainGui.ScaledGui.ClickGui.Visible and callback)
  1723. end,
  1724. Default = true,
  1725. HoverText = "Blur the background of the GUI"
  1726. })
  1727. local welcomeMessage = GUISettings.CreateToggle({
  1728. Name = "GUI bind indicator",
  1729. Function = function() end,
  1730. Default = true,
  1731. HoverText = 'Displays a message indicating your GUI keybind upon injecting.\nI.E "Press RIGHTSHIFT to open GUI"'
  1732. })
  1733. GUISettings.CreateToggle({
  1734. Name = "Old Rainbow",
  1735. Function = function(callback) oldrainbow = callback end,
  1736. HoverText = "Reverts to old rainbow"
  1737. })
  1738. GUISettings.CreateToggle({
  1739. Name = "Show Tooltips",
  1740. Function = function(callback) GuiLibrary.ToggleTooltips = callback end,
  1741. Default = true,
  1742. HoverText = "Toggles visibility of these"
  1743. })
  1744. local GUIRescaleToggle = GUISettings.CreateToggle({
  1745. Name = "Rescale",
  1746. Function = function(callback)
  1747. task.spawn(function()
  1748. GuiLibrary.MainRescale.Scale = (callback and math.clamp(gameCamera.ViewportSize.X / 1920, 0.5, 1) or 0.99)
  1749. task.wait(0.01)
  1750. GuiLibrary.MainRescale.Scale = (callback and math.clamp(gameCamera.ViewportSize.X / 1920, 0.5, 1) or 1)
  1751. end)
  1752. end,
  1753. Default = true,
  1754. HoverText = "Rescales the GUI"
  1755. })
  1756. gameCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function()
  1757. if GUIRescaleToggle.Enabled then
  1758. GuiLibrary.MainRescale.Scale = math.clamp(gameCamera.ViewportSize.X / 1920, 0.5, 1)
  1759. end
  1760. end)
  1761. GUISettings.CreateToggle({
  1762. Name = "Notifications",
  1763. Function = function(callback)
  1764. GuiLibrary.Notifications = callback
  1765. end,
  1766. Default = true,
  1767. HoverText = "Shows notifications"
  1768. })
  1769. local ToggleNotifications
  1770. ToggleNotifications = GUISettings.CreateToggle({
  1771. Name = "Toggle Alert",
  1772. Function = function(callback) GuiLibrary.ToggleNotifications = callback end,
  1773. Default = true,
  1774. HoverText = "Notifies you if a module is enabled/disabled."
  1775. })
  1776. ToggleNotifications.Object.BackgroundTransparency = 0
  1777. ToggleNotifications.Object.BorderSizePixel = 0
  1778. ToggleNotifications.Object.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
  1779. GUISettings.CreateSlider({
  1780. Name = "Rainbow Speed",
  1781. Function = function(val)
  1782. GuiLibrary.RainbowSpeed = math.max((val / 10) - 0.4, 0)
  1783. end,
  1784. Min = 1,
  1785. Max = 100,
  1786. Default = 10
  1787. })
  1788.  
  1789. local GUIbind = GUI.CreateGUIBind()
  1790. local teleportConnection = playersService.LocalPlayer.OnTeleport:Connect(function(State)
  1791. if (not teleportedServers) and (not shared.VapeIndependent) then
  1792. teleportedServers = true
  1793. local teleportScript = [[
  1794. shared.VapeSwitchServers = true
  1795. if shared.VapeDeveloper then
  1796. loadstring(readfile("vape/NewMainScript.lua"))()
  1797. else
  1798. loadstring(game:HttpGet("https://raw.githubusercontent.com/7GrandDadPGN/VapeV4ForRoblox/"..readfile("vape/commithash.txt").."/NewMainScript.lua", true))()
  1799. end
  1800. ]]
  1801. if shared.VapeDeveloper then
  1802. teleportScript = 'shared.VapeDeveloper = true\n'..teleportScript
  1803. end
  1804. if shared.VapePrivate then
  1805. teleportScript = 'shared.VapePrivate = true\n'..teleportScript
  1806. end
  1807. if shared.VapeCustomProfile then
  1808. teleportScript = "shared.VapeCustomProfile = '"..shared.VapeCustomProfile.."'\n"..teleportScript
  1809. end
  1810. GuiLibrary.SaveSettings()
  1811. queueonteleport(teleportScript)
  1812. end
  1813. end)
  1814.  
  1815. GuiLibrary.SelfDestruct = function()
  1816. task.spawn(function()
  1817. coroutine.close(saveSettingsLoop)
  1818. end)
  1819. if GuiLibrary.ColorStepped then GuiLibrary.ColorStepped:Disconnect() end
  1820.  
  1821. if vapeInjected then
  1822. GuiLibrary.SaveSettings()
  1823. end
  1824. vapeInjected = false
  1825. inputService.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.None
  1826.  
  1827. for i,v in pairs(GuiLibrary.ObjectsThatCanBeSaved) do
  1828. if (v.Type == "Button" or v.Type == "OptionsButton" or v.Type == "LegitModule") and v.Api.Enabled then
  1829. v.Api.ToggleButton(false)
  1830. end
  1831. end
  1832.  
  1833. for i,v in pairs(TextGUIConnections) do
  1834. v:Disconnect()
  1835. end
  1836. for i,v in pairs(TextGUIObjects) do
  1837. for i2,v2 in pairs(v) do
  1838. v2.Visible = false
  1839. v2:Destroy()
  1840. v[i2] = nil
  1841. end
  1842. end
  1843.  
  1844. GuiLibrary.SelfDestructEvent:Fire()
  1845. shared.VapeExecuted = nil
  1846. shared.VapePrivate = nil
  1847. shared.VapeFullyLoaded = nil
  1848. shared.VapeSwitchServers = nil
  1849. shared.GuiLibrary = nil
  1850. shared.VapeIndependent = nil
  1851. shared.VapeManualLoad = nil
  1852. shared.CustomSaveVape = nil
  1853. GuiLibrary.KeyInputHandler:Disconnect()
  1854. GuiLibrary.KeyInputHandler2:Disconnect()
  1855. if MiddleClickInput then
  1856. MiddleClickInput:Disconnect()
  1857. end
  1858. teleportConnection:Disconnect()
  1859. GuiLibrary.MainGui:Destroy()
  1860. game:GetService("RunService"):SetRobloxGuiFocused(false)
  1861. end
  1862.  
  1863. GeneralSettings.CreateButton2({
  1864. Name = "RESET CURRENT PROFILE",
  1865. Function = function()
  1866. local vapePrivateCheck = shared.VapePrivate
  1867. GuiLibrary.SelfDestruct()
  1868. if delfile then
  1869. delfile(baseDirectory.."Profiles/"..(GuiLibrary.CurrentProfile ~= "default" and GuiLibrary.CurrentProfile or "")..(shared.CustomSaveVape or game.PlaceId)..".vapeprofile.txt")
  1870. else
  1871. writefile(baseDirectory.."Profiles/"..(GuiLibrary.CurrentProfile ~= "default" and GuiLibrary.CurrentProfile or "")..(shared.CustomSaveVape or game.PlaceId)..".vapeprofile.txt", "")
  1872. end
  1873. shared.VapeSwitchServers = true
  1874. shared.VapeOpenGui = true
  1875. shared.VapePrivate = vapePrivateCheck
  1876. loadstring(vapeGithubRequest("NewMainScript.lua"))()
  1877. end
  1878. })
  1879. GUISettings.CreateButton2({
  1880. Name = "RESET GUI POSITIONS",
  1881. Function = function()
  1882. for i,v in pairs(GuiLibrary.ObjectsThatCanBeSaved) do
  1883. if (v.Type == "Window" or v.Type == "CustomWindow") then
  1884. v.Object.Position = (i == "GUIWindow" and UDim2.new(0, 6, 0, 6) or UDim2.new(0, 223, 0, 6))
  1885. end
  1886. end
  1887. end
  1888. })
  1889. GUISettings.CreateButton2({
  1890. Name = "SORT GUI",
  1891. Function = function()
  1892. local sorttable = {}
  1893. local movedown = false
  1894. local sortordertable = {
  1895. GUIWindow = 1,
  1896. CombatWindow = 2,
  1897. BlatantWindow = 3,
  1898. RenderWindow = 4,
  1899. UtilityWindow = 5,
  1900. WorldWindow = 6,
  1901. FriendsWindow = 7,
  1902. TargetsWindow = 8,
  1903. ProfilesWindow = 9,
  1904. ["Text GUICustomWindow"] = 10,
  1905. TargetInfoCustomWindow = 11,
  1906. RadarCustomWindow = 12,
  1907. }
  1908. local storedpos = {}
  1909. local num = 6
  1910. for i,v in pairs(GuiLibrary.ObjectsThatCanBeSaved) do
  1911. local obj = GuiLibrary.ObjectsThatCanBeSaved[i]
  1912. if obj then
  1913. if v.Type == "Window" and v.Object.Visible then
  1914. local sortordernum = (sortordertable[i] or #sorttable)
  1915. sorttable[sortordernum] = v.Object
  1916. end
  1917. end
  1918. end
  1919. for i2,v2 in pairs(sorttable) do
  1920. if num > 1697 then
  1921. movedown = true
  1922. num = 6
  1923. end
  1924. v2.Position = UDim2.new(0, num, 0, (movedown and (storedpos[num] and (storedpos[num] + 9) or 400) or 39))
  1925. if not storedpos[num] then
  1926. storedpos[num] = v2.AbsoluteSize.Y
  1927. if v2.Name == "MainWindow" then
  1928. storedpos[num] = 400
  1929. end
  1930. end
  1931. num = num + 223
  1932. end
  1933. end
  1934. })
  1935. GeneralSettings.CreateButton2({
  1936. Name = "UNINJECT",
  1937. Function = GuiLibrary.SelfDestruct
  1938. })
  1939.  
  1940. local function loadVape()
  1941. if not shared.VapeIndependent then
  1942. loadstring(vapeGithubRequest("Universal.lua"))()
  1943. if isfile("vape/CustomModules/"..game.PlaceId..".lua") then
  1944. loadstring(readfile("vape/CustomModules/"..game.PlaceId..".lua"))()
  1945. else
  1946. if not shared.VapeDeveloper then
  1947. local suc, publicrepo = pcall(function() return game:HttpGet("https://raw.githubusercontent.com/7GrandDadPGN/VapeV4ForRoblox/"..readfile("vape/commithash.txt").."/CustomModules/"..game.PlaceId..".lua") end)
  1948. if suc and publicrepo and publicrepo ~= "404: Not Found" then
  1949. writefile("vape/CustomModules/"..game.PlaceId..".lua", "--This watermark is used to delete the file if its cached, remove it to make the file persist after commits.\n"..publicrepo)
  1950. loadstring(readfile("vape/CustomModules/"..game.PlaceId..".lua"))()
  1951. end
  1952. end
  1953. end
  1954. if shared.VapePrivate then
  1955. if isfile("vapeprivate/CustomModules/"..game.PlaceId..".lua") then
  1956. loadstring(readfile("vapeprivate/CustomModules/"..game.PlaceId..".lua"))()
  1957. end
  1958. end
  1959. else
  1960. repeat task.wait() until shared.VapeManualLoad
  1961. end
  1962. if #ProfilesTextList.ObjectList == 0 then
  1963. table.insert(ProfilesTextList.ObjectList, "default")
  1964. ProfilesTextList.RefreshValues(ProfilesTextList.ObjectList)
  1965. end
  1966. GuiLibrary.LoadSettings(shared.VapeCustomProfile)
  1967. local profiles = {}
  1968. for i,v in pairs(GuiLibrary.Profiles) do
  1969. table.insert(profiles, i)
  1970. end
  1971. table.sort(profiles, function(a, b) return b == "default" and true or a:lower() < b:lower() end)
  1972. ProfilesTextList.RefreshValues(profiles)
  1973. GUIbind.Reload()
  1974. TextGUIUpdate()
  1975. GuiLibrary.UpdateUI(GUIColorSlider.Hue, GUIColorSlider.Sat, GUIColorSlider.Value, true)
  1976. if not shared.VapeSwitchServers then
  1977. if BlatantModeToggle.Enabled then
  1978. pcall(function()
  1979. local frame = GuiLibrary.CreateNotification("Blatant Enabled", "Vape is now in Blatant Mode.", 5.5, "assets/WarningNotification.png")
  1980. frame.Frame.Frame.ImageColor3 = Color3.fromRGB(236, 129, 44)
  1981. end)
  1982. end
  1983. GuiLibrary.LoadedAnimation(welcomeMessage.Enabled)
  1984. else
  1985. shared.VapeSwitchServers = nil
  1986. end
  1987. if shared.VapeOpenGui then
  1988. GuiLibrary.MainGui.ScaledGui.ClickGui.Visible = true
  1989. GuiLibrary.MainGui.ScaledGui.LegitGui.Visible = false
  1990. game:GetService("RunService"):SetRobloxGuiFocused(GuiLibrary.MainBlur.Size ~= 0)
  1991. shared.VapeOpenGui = nil
  1992. end
  1993.  
  1994. coroutine.resume(saveSettingsLoop)
  1995. shared.VapeFullyLoaded = true
  1996. end
  1997.  
  1998. if shared.VapeIndependent then
  1999. task.spawn(loadVape)
  2000. shared.VapeFullyLoaded = true
  2001. return GuiLibrary
  2002. else
  2003. loadVape()
  2004. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement