DuyOnline101

doors esp

Jan 31st, 2023
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.37 KB | None | 0 0
  1. local a = game:GetService "HttpService"
  2. local b = game:GetService "Players"
  3. local c = game:GetService "ReplicatedStorage"
  4. local d = game:GetService "RunService"
  5. local e = game:GetService "SoundService"
  6. local f = game:GetService "Workspace"
  7. local g = "Doors"
  8. local h = "Hotel v5.0"
  9. local i = "OminousVibes/doors"
  10. local j = "hotel"
  11. local k = {
  12. [6839171747] = 5894
  13. }
  14. do
  15. local l = game.PlaceId
  16. local m = game.PlaceVersion
  17. local n = k[l]
  18. if not n then
  19. warn "Script does not support this place instance."
  20. warn [[The PlaceID and version has been set to your clipboard. Please report this to the developer.]]
  21. return setclipboard("[" .. tostring(l) .. "] = " .. tostring(m) .. ",")
  22. end
  23. end
  24. do
  25. local l = j .. h
  26. if getgenv()[l] then
  27. return
  28. end
  29. getgenv()[l] = true
  30. end
  31. local l = [[https://raw.githubusercontent.com/wally-rblx/LinoriaLib/main/]]
  32. local m = loadstring(game:HttpGet(l .. "Library.lua"))()
  33. local n = loadstring(game:HttpGet(l .. "addons/SaveManager.lua"))()
  34. local o = loadstring(game:HttpGet(l .. "addons/ThemeManager.lua"))()
  35. local p
  36. do
  37. local q, r = type, typeof
  38. p =
  39. setmetatable(
  40. {},
  41. {__tostring = function()
  42. return "Bin"
  43. end}
  44. )
  45. p.__index = p
  46. function p.new(...)
  47. local s = setmetatable({}, p)
  48. return s:constructor(...) or s
  49. end
  50. function p.constructor(s)
  51. end
  52. function p.add(s, t)
  53. local u = {item = t}
  54. if s.head == nil then
  55. s.head = u
  56. end
  57. if s.tail then
  58. s.tail.next = u
  59. end
  60. s.tail = u
  61. return t
  62. end
  63. function p.destroy(s)
  64. while s.head do
  65. local t = s.head.item
  66. if q(t) == "function" then
  67. t()
  68. elseif r(t) == "RBXScriptConnection" then
  69. t:Disconnect()
  70. elseif q(t) == "thread" then
  71. task.cancel(t)
  72. elseif t.destroy ~= nil then
  73. t:destroy()
  74. elseif t.Destroy ~= nil then
  75. t:Destroy()
  76. end
  77. s.head = s.head.next
  78. end
  79. end
  80. function p.isEmpty(s)
  81. return s.head == nil
  82. end
  83. end
  84. local q
  85. do
  86. q = {}
  87. q.__index = q
  88. function q.__tostring(r)
  89. return "BaseComponent - " .. r.instance:GetFullName()
  90. end
  91. local r, s, t = setmetatable, assert, task.defer
  92. function q.new(u, ...)
  93. local v = r({}, q)
  94. v = v:constructor(u, ...) or v
  95. v:run()
  96. return v
  97. end
  98. function q.constructor(u, v, ...)
  99. u.instance = v
  100. u.running = false
  101. u.destructed = false
  102. u._maid = p.new()
  103. u._maid:add(
  104. v.Destroying:Connect(
  105. function()
  106. if not u.destructed then
  107. u:destroy()
  108. end
  109. end
  110. )
  111. )
  112. end
  113. function q.onStart(u)
  114. end
  115. function q.run(u)
  116. s(not u.running, "[" .. u:__tostring() .. "] is already running")
  117. t(
  118. function()
  119. u.running = true
  120. if not u.destructed then
  121. u:onStart()
  122. end
  123. end
  124. )
  125. end
  126. function q.destroy(u)
  127. s(not u.destructed, "[" .. u:__tostring() .. "] is already destroyed")
  128. u.running = false
  129. u.destructed = true
  130. u._maid:destroy()
  131. end
  132. end
  133. local r = b.LocalPlayer
  134. local s = f.CurrentCamera
  135. local t = c:WaitForChild "GameData"
  136. local u = {}
  137. do
  138. local v = c:WaitForChild "EntityInfo"
  139. local w = {
  140. PadlockHint = v:WaitForChild "PadlockHint",
  141. EngageMinigame = v:WaitForChild "EngageMinigame",
  142. ClutchHeartbeat = v:WaitForChild "ClutchHeartbeat",
  143. Screech = v:WaitForChild "Screech"
  144. }
  145. for x, y in pairs(w) do
  146. u[x] = y.OnClientEvent
  147. end
  148. end
  149. local v = Instance.new "Sound"
  150. local w = {}
  151. local x = {}
  152. local y
  153. local z
  154. local A
  155. local B
  156. local C
  157. local D
  158. local E
  159. local F
  160. local G
  161. local H
  162. local I
  163. local J
  164. local K = {}
  165. local L = {}
  166. local M = {}
  167. local N = function(N, O)
  168. if N and Toggles["alerts.enabled"].Value then
  169. local P = {message = O.message or "", audio = O.audio or false, duration = O.duration or 5}
  170. m:Notify(P.message, P.duration)
  171. if P.audio and Toggles["alerts.audio"].Value then
  172. v.TimePosition = 0.25
  173. v:Play()
  174. end
  175. end
  176. end
  177. do
  178. local O = q
  179. y =
  180. setmetatable(
  181. {},
  182. {
  183. __index = O
  184. }
  185. )
  186. y.__index = y
  187. function y.__tostring(P)
  188. return "CharacterComponent - " .. P.instance:GetFullName()
  189. end
  190. y.attached = {}
  191. function y.new(P, ...)
  192. local Q = setmetatable({}, y)
  193. Q = Q:constructor(P, ...) or Q
  194. Q:run()
  195. return Q
  196. end
  197. function y.constructor(P, Q)
  198. O.constructor(P, Q)
  199. P.client = B.attached[b:GetPlayerFromCharacter(Q)]
  200. P.root = Q:WaitForChild("HumanoidRootPart", 5)
  201. P.humanoid = Q:WaitForChild("Humanoid", 5)
  202. assert(P.client ~= nil, "[" .. P:__tostring() .. "] is not a client's character")
  203. assert(P.root ~= nil, "[" .. P:__tostring() .. "] is missing a HumanoidRootPart")
  204. assert(P.humanoid ~= nil, "[" .. P:__tostring() .. "] is missing a Humanoid")
  205. P._maid:add(
  206. Q.AncestryChanged:Connect(
  207. function(R, S)
  208. if S == nil then
  209. P:destroy()
  210. end
  211. end
  212. )
  213. )
  214. end
  215. function y.onStart(P)
  216. y.attached[P.instance] = P
  217. O.onStart(P)
  218. end
  219. function y.destroy(P)
  220. y.attached[P.instance] = nil
  221. O.destroy(P)
  222. end
  223. end
  224. do
  225. local O = Vector3.new(1, 0, 1)
  226. local P = y
  227. z = setmetatable({}, {__index = P})
  228. z.__index = z
  229. function z.__tostring(Q)
  230. return "AvatarComponent - " .. Q.instance:GetFullName()
  231. end
  232. z.attached = nil
  233. function z.new(Q, ...)
  234. local R = setmetatable({}, z)
  235. R = R:constructor(Q, ...) or R
  236. R:run()
  237. return R
  238. end
  239. function z.constructor(Q, R)
  240. P.constructor(Q, R)
  241. Q.light = Instance.new "PointLight"
  242. end
  243. function z.onStart(Q)
  244. z.attached = Q
  245. P.onStart(Q)
  246. local R = Q.light
  247. R.Enabled = false
  248. R.Range = 100
  249. R.Color = Color3.fromRGB(255, 255, 255)
  250. R.Shadows = false
  251. R.Parent = Q.root
  252. while Q.running do
  253. R.Enabled = Toggles["character.glow.enabled"].Value
  254. R.Brightness = Options["character.glow.brightness"].Value / 50
  255. task.wait(0.5)
  256. end
  257. end
  258. function z.onPhysics(Q, R, S)
  259. local T = Options["character.sprint.speed"].Value
  260. if T > 0 and Toggles["character.sprint.enabled"].Value and Options["character.sprint.keybind"]:GetState() then
  261. local U = Q.humanoid.MoveDirection * O
  262. if U.Magnitude > 0 then
  263. Q.instance:TranslateBy(U * T * S)
  264. end
  265. end
  266. end
  267. function z.destroy(Q)
  268. z.attached = nil
  269. P.destroy(Q)
  270. end
  271. end
  272. do
  273. local O = Vector3.new(5, 7, 0)
  274. local P = Vector3.new(0, -0.25, 0)
  275. local Q, R, S, T =
  276. CFrame.new(P.X - (O.X / 2), P.Y + (O.Y / 2), P.Z),
  277. CFrame.new(P.X + (O.X / 2), P.Y + (O.Y / 2), P.Z),
  278. CFrame.new(P.X - (O.X / 2), P.Y - (O.Y / 2), P.Z),
  279. CFrame.new(P.X + (O.X / 2), P.Y - (O.Y / 2), P.Z)
  280. local U = s.WorldToViewportPoint
  281. local V = Vector2.new
  282. local W = math.min
  283. local X = y
  284. A = setmetatable({}, {__index = X})
  285. A.__index = A
  286. function A.__tostring(Y)
  287. return "FriendComponent - " .. Y.instance:GetFullName()
  288. end
  289. A.attached = {}
  290. function A.new(Y, ...)
  291. local Z = setmetatable({}, A)
  292. Z = Z:constructor(Y, ...) or Z
  293. Z:run()
  294. return Z
  295. end
  296. function A.constructor(Y, Z)
  297. X.constructor(Y, Z)
  298. Y.quad = Drawing.new "Quad"
  299. Y._maid:add(
  300. function()
  301. Y.quad:Remove()
  302. end
  303. )
  304. end
  305. function A.onStart(Y)
  306. A.attached[Y.instance] = Y
  307. X.onStart(Y)
  308. local Z = Y.quad
  309. Z.Visible = false
  310. Z.Thickness = 1
  311. Z.Transparency = 0.75
  312. end
  313. function A.onRender(Y, Z)
  314. local _ = Y.quad
  315. if Toggles["esp.player.enabled"].Value then
  316. local aa = Y.root.CFrame
  317. local ab = U(s, (aa * Q).Position)
  318. local ac = U(s, (aa * R).Position)
  319. local ad = U(s, (aa * T).Position)
  320. local ae = U(s, (aa * S).Position)
  321. if W(ab.Z, ac.Z, ad.Z, ae.Z) > 0 then
  322. _.PointA = V(ac.X, ac.Y)
  323. _.PointB = V(ab.X, ab.Y)
  324. _.PointC = V(ae.X, ae.Y)
  325. _.PointD = V(ad.X, ad.Y)
  326. _.Color = Options["esp.player.color"].Value
  327. _.Visible = true
  328. else
  329. _.Visible = false
  330. end
  331. else
  332. _.Visible = false
  333. end
  334. end
  335. function A.destroy(aa)
  336. A.attached[aa.instance] = nil
  337. X.destroy(aa)
  338. end
  339. end
  340. do
  341. local aa = q
  342. B = setmetatable({}, {__index = aa})
  343. B.__index = B
  344. function B.__tostring(ab)
  345. return "ClientComponent - " .. ab.instance:GetFullName()
  346. end
  347. B.attached = {}
  348. function B.new(ab, ...)
  349. local ac = setmetatable({}, B)
  350. ac = ac:constructor(ab, ...) or ac
  351. ac:run()
  352. return ac
  353. end
  354. function B.constructor(ab, ac)
  355. aa.constructor(ab, ac)
  356. end
  357. function B.onStart(ab)
  358. B.attached[ab.instance] = ab
  359. aa.onStart(ab)
  360. ab._maid:add(
  361. ab.instance.CharacterAdded:Connect(
  362. function(ac)
  363. ab:onCharacter(ac)
  364. end
  365. )
  366. )
  367. ab._maid:add(
  368. ab.instance.Backpack.ChildAdded:Connect(
  369. function(ac)
  370. if ac:IsA "Tool" then
  371. ab:onTool(ac)
  372. end
  373. end
  374. )
  375. )
  376. task.defer(
  377. function()
  378. local ac = ab.instance.Character
  379. if ac then
  380. ab:onCharacter(ac)
  381. end
  382. end
  383. )
  384. task.defer(
  385. function()
  386. for ac, ad in ipairs(ab.instance.Backpack:GetChildren()) do
  387. if ad:IsA "Tool" then
  388. ab:onTool(ad)
  389. end
  390. end
  391. end
  392. )
  393. end
  394. function B.onCharacter(ab, ac)
  395. if ab.instance == r then
  396. ab.character = z.new(ac)
  397. else
  398. ab.character = A.new(ac)
  399. end
  400. end
  401. function B.onTool(ab, ac)
  402. if ac.Name == "LibraryHintPaper" then
  403. local ad = ac:WaitForChild("UI", 1)
  404. if ad then
  405. local ae = {}
  406. for O = 1, 5 do
  407. local P = ad:FindFirstChild(tostring(O))
  408. if P then
  409. local Q = P.ImageRectOffset.X / 50
  410. ae[O] = Q
  411. end
  412. end
  413. x = ae
  414. end
  415. end
  416. end
  417. function B.destroy(ab)
  418. B.attached[ab.instance] = nil
  419. aa.destroy(ab)
  420. end
  421. local ab = function(ab)
  422. B.new(ab)
  423. end
  424. b.PlayerAdded:Connect(ab)
  425. for ac, ad in ipairs(b:GetPlayers()) do
  426. task.defer(ab, ad)
  427. end
  428. end
  429. do
  430. local aa = s.WorldToViewportPoint
  431. local ab, ac, ad = Vector2.new, Vector3.new, CFrame.Angles
  432. local ae = q
  433. C = setmetatable({}, {__index = ae})
  434. C.__index = C
  435. function C.__tostring(O)
  436. return "ScreechComponent - " .. O.instance:GetFullName()
  437. end
  438. C.attached = {}
  439. function C.new(O, ...)
  440. local P = setmetatable({}, C)
  441. P = P:constructor(O, ...) or P
  442. P:run()
  443. return P
  444. end
  445. function C.constructor(O, P)
  446. ae.constructor(O, P)
  447. O.root = P:WaitForChild "Root"
  448. O.line = Drawing.new "Line"
  449. O.outline = Drawing.new "Line"
  450. O._maid:add(
  451. function()
  452. O.line:Remove()
  453. O.outline:Remove()
  454. end
  455. )
  456. end
  457. function C.onStart(O)
  458. C.attached[O.instance] = O
  459. ae.onStart(O)
  460. local P, Q = O.line, O.outline
  461. P.Visible = false
  462. P.Color = Options["esp.screech.color"].Value
  463. P.ZIndex = 1
  464. P.Thickness = 1
  465. Q.Visible = false
  466. Q.Color = Color3.new()
  467. Q.ZIndex = 0
  468. Q.Thickness = 2
  469. end
  470. function C.onRender(O, P)
  471. local Q = Toggles["esp.screech.enabled"].Value
  472. local R, S = O.line, O.outline
  473. if Q then
  474. local T = O.root.Position
  475. local U = aa(s, T)
  476. if U.Z < 0 then
  477. local V = s.CFrame:PointToObjectSpace(T)
  478. local W = math.atan2(V.Y, V.X) + math.pi
  479. V = ad(0, 0, W):VectorToWorldSpace((ad(0, math.rad(89.9), 0):VectorToWorldSpace(ac(0, 0, -1))))
  480. U = aa(s, s.CFrame:PointToWorldSpace(V))
  481. end
  482. local V = s.ViewportSize
  483. R.From = ab(V.X / 2, V.Y - 50)
  484. R.To = ab(U.X, U.Y)
  485. S.From = R.From
  486. S.To = R.To
  487. end
  488. R.Visible = Q
  489. S.Visible = Q
  490. end
  491. function C.destroy(O)
  492. C.attached[O.instance] = nil
  493. ae.destroy(O)
  494. end
  495. end
  496. do
  497. local aa = Vector3.new(4, 6, 0)
  498. local ab = Vector3.new(0, 0, 0)
  499. local ac, ad, ae, O =
  500. CFrame.new(ab.X - (aa.X / 2), ab.Y + (aa.Y / 2), ab.Z),
  501. CFrame.new(ab.X + (aa.X / 2), ab.Y + (aa.Y / 2), ab.Z),
  502. CFrame.new(ab.X - (aa.X / 2), ab.Y - (aa.Y / 2), ab.Z),
  503. CFrame.new(ab.X + (aa.X / 2), ab.Y - (aa.Y / 2), ab.Z)
  504. local P = s.WorldToViewportPoint
  505. local Q = Vector2.new
  506. local R = math.min
  507. local S = q
  508. D = setmetatable({}, {__index = S})
  509. D.__index = D
  510. function D.__tostring(T)
  511. return "RushComponent - " .. T.instance:GetFullName()
  512. end
  513. D.attached = {}
  514. function D.new(T, ...)
  515. local U = setmetatable({}, D)
  516. U = U:constructor(T, ...) or U
  517. U:run()
  518. return U
  519. end
  520. function D.constructor(T, U)
  521. S.constructor(T, U)
  522. T.root = U.PrimaryPart or U:WaitForChild("RushNew", 5)
  523. assert(T.root, "[" .. T:__tostring() .. "] is missing a root part!")
  524. T.name = T.instance.Name == "RushMoving" and "Rush" or "Ambush"
  525. T.quad = Drawing.new "Quad"
  526. T._maid:add(
  527. function()
  528. T.quad:Remove()
  529. end
  530. )
  531. end
  532. function D.onStart(T)
  533. D.attached[T.instance] = T
  534. S.onStart(T)
  535. local U = T.quad
  536. U.Visible = false
  537. U.Thickness = 1
  538. U.Color = T.name == "Rush" and Options["esp.rush.rush-color"].Value or Options["esp.rush.ambush-color"].Value
  539. task.delay(
  540. 0.5,
  541. function()
  542. local V = (z.attached.root.Position - T.root.Position).Magnitude
  543. if V <= 750 then
  544. N(
  545. Toggles["alerts.entity"].Value,
  546. {
  547. message = T.name == "Rush" and "Rush spawned, hide in a Wardrobe or get behind cover!" or
  548. [[Ambush spawned, hide in a Wardrobe or get behind cover! Ambush can return up to 4 times.]],
  549. audio = true,
  550. duration = 10
  551. }
  552. )
  553. else
  554. T:destroy()
  555. end
  556. end
  557. )
  558. end
  559. function D.onRender(T, U)
  560. local V = T.quad
  561. if Toggles["esp.rush.enabled"].Value then
  562. local W = T.root.CFrame
  563. local X = P(s, (W * ac).Position)
  564. local Y = P(s, (W * ad).Position)
  565. local Z = P(s, (W * O).Position)
  566. local _ = P(s, (W * ae).Position)
  567. if R(X.Z, Y.Z, Z.Z, _.Z) > 0 then
  568. V.PointA = Q(Y.X, Y.Y)
  569. V.PointB = Q(X.X, X.Y)
  570. V.PointC = Q(_.X, _.Y)
  571. V.PointD = Q(Z.X, Z.Y)
  572. V.Visible = true
  573. else
  574. V.Visible = false
  575. end
  576. else
  577. V.Visible = false
  578. end
  579. end
  580. function D.destroy(T)
  581. D.attached[T.instance] = nil
  582. S.destroy(T)
  583. end
  584. end
  585. do
  586. local aa = Vector3.new(6, 13, 0)
  587. local ab = Vector3.new(0, -1, 0)
  588. local ac, ad, ae, O =
  589. CFrame.new(ab.X - (aa.X / 2), ab.Y + (aa.Y / 2), ab.Z),
  590. CFrame.new(ab.X + (aa.X / 2), ab.Y + (aa.Y / 2), ab.Z),
  591. CFrame.new(ab.X - (aa.X / 2), ab.Y - (aa.Y / 2), ab.Z),
  592. CFrame.new(ab.X + (aa.X / 2), ab.Y - (aa.Y / 2), ab.Z)
  593. local P = s.WorldToViewportPoint
  594. local Q = Vector2.new
  595. local R = math.min
  596. local S = q
  597. E = setmetatable({}, {__index = S})
  598. E.__index = E
  599. function E.__tostring(T)
  600. return "FigureComponent - " .. T.instance:GetFullName()
  601. end
  602. E.attached = {}
  603. function E.new(T, ...)
  604. local U = setmetatable({}, E)
  605. U = U:constructor(T, ...) or U
  606. U:run()
  607. return U
  608. end
  609. function E.constructor(T, U)
  610. S.constructor(T, U)
  611. T.ragdoll = U:WaitForChild("FigureRagdoll", 2.5)
  612. assert(T.ragdoll ~= nil, "[" .. T:__tostring() .. "] is missing its ragdoll!")
  613. T.root = T.ragdoll:WaitForChild("Root", 2.5)
  614. assert(T.root ~= nil, "[" .. T:__tostring() .. "] is missing its root part!")
  615. T.quad = Drawing.new "Quad"
  616. T._maid:add(
  617. function()
  618. T.quad:Remove()
  619. end
  620. )
  621. end
  622. function E.onStart(T)
  623. E.attached[T.instance] = T
  624. S.onStart(T)
  625. local U = T.quad
  626. U.Visible = false
  627. U.Thickness = 2
  628. end
  629. function E.onRender(T, U)
  630. local V = T.quad
  631. if Toggles["esp.figure.enabled"].Value then
  632. local W = T.root.CFrame
  633. local X = P(s, (W * ac).Position)
  634. local Y = P(s, (W * ad).Position)
  635. local Z = P(s, (W * O).Position)
  636. local _ = P(s, (W * ae).Position)
  637. if R(X.Z, Y.Z, Z.Z, _.Z) > 0 then
  638. V.PointA = Q(Y.X, Y.Y)
  639. V.PointB = Q(X.X, X.Y)
  640. V.PointC = Q(_.X, _.Y)
  641. V.PointD = Q(Z.X, Z.Y)
  642. V.Color = Options["esp.figure.color"].Value
  643. V.Visible = true
  644. else
  645. V.Visible = false
  646. end
  647. else
  648. V.Visible = false
  649. end
  650. end
  651. function E.destroy(T)
  652. E.attached[T.instance] = nil
  653. S.destroy(T)
  654. end
  655. end
  656. do
  657. local aa = CFrame.new(0, 0, 1)
  658. local ab = s.WorldToViewportPoint
  659. local ac = Vector2.new
  660. local ad = math.min
  661. local ae = q
  662. F = setmetatable({}, {__index = ae})
  663. F.__index = F
  664. function F.__tostring(O)
  665. return "DoorComponent - " .. O.instance:GetFullName()
  666. end
  667. F.attached = {}
  668. function F.new(O, ...)
  669. local P = setmetatable({}, F)
  670. P = P:constructor(O, ...) or P
  671. P:run()
  672. return P
  673. end
  674. function F.constructor(O, P, Q)
  675. ae.constructor(O, P)
  676. O.id = Q or 0
  677. local R = P.Size * 0.5
  678. local S = P.CFrame * aa
  679. O.tl = (S * CFrame.new(R.X, R.Y, 0)).Position
  680. O.tr = (S * CFrame.new(-R.X, R.Y, 0)).Position
  681. O.bl = (S * CFrame.new(R.X, -R.Y, 0)).Position
  682. O.br = (S * CFrame.new(-R.X, -R.Y, 0)).Position
  683. O.quad = Drawing.new "Quad"
  684. O._maid:add(
  685. function()
  686. O.quad:Remove()
  687. end
  688. )
  689. end
  690. function F.onStart(O)
  691. F.attached[O.instance] = O
  692. ae.onStart(O)
  693. local P = O.quad
  694. P.Visible = false
  695. P.Thickness = 2
  696. end
  697. function F.onRender(O, P)
  698. local Q = O.quad
  699. if Toggles["esp.door.enabled"].Value then
  700. local R = ab(s, O.tl)
  701. local S = ab(s, O.tr)
  702. local T = ab(s, O.br)
  703. local U = ab(s, O.bl)
  704. if ad(R.Z, S.Z, T.Z, U.Z) > 0 then
  705. Q.PointA = ac(S.X, S.Y)
  706. Q.PointB = ac(R.X, R.Y)
  707. Q.PointC = ac(U.X, U.Y)
  708. Q.PointD = ac(T.X, T.Y)
  709. local V = O.id - t.LatestRoom.Value
  710. if V == 0 then
  711. Q.Color = Options["esp.door.target-color"].Value
  712. else
  713. Q.Color = Options["esp.door.default-color"].Value
  714. if V < 0 then
  715. Q.Transparency = 0.5
  716. else
  717. Q.Transparency = 1
  718. end
  719. end
  720. Q.Visible = true
  721. else
  722. Q.Visible = false
  723. end
  724. else
  725. Q.Visible = false
  726. end
  727. end
  728. function F.destroy(O)
  729. F.attached[O.instance] = nil
  730. ae.destroy(O)
  731. end
  732. end
  733. do
  734. local aa = Vector3.new(6.4, 9.5, 0)
  735. local ab = Vector3.new(0, 0, -0.5)
  736. local ac, ad, ae, O =
  737. CFrame.new(ab.X - (aa.X / 2), ab.Y + (aa.Y / 2), ab.Z),
  738. CFrame.new(ab.X + (aa.X / 2), ab.Y + (aa.Y / 2), ab.Z),
  739. CFrame.new(ab.X - (aa.X / 2), ab.Y - (aa.Y / 2), ab.Z),
  740. CFrame.new(ab.X + (aa.X / 2), ab.Y - (aa.Y / 2), ab.Z)
  741. local P = s.WorldToViewportPoint
  742. local Q = Vector2.new
  743. local R = math.min
  744. local S = q
  745. G = setmetatable({}, {__index = S})
  746. G.__index = G
  747. function G.__tostring(T)
  748. return "WardrobeComponent - " .. T.instance:GetFullName()
  749. end
  750. G.attached = {}
  751. function G.new(T, ...)
  752. local U = setmetatable({}, G)
  753. U = U:constructor(T, ...) or U
  754. U:run()
  755. return U
  756. end
  757. function G.constructor(T, U, V)
  758. S.constructor(T, U)
  759. T.id = V
  760. T.root = U:WaitForChild("Main", 5)
  761. T.occupant = U:WaitForChild("HiddenPlayer", 5)
  762. T.quad = Drawing.new "Quad"
  763. T._maid:add(
  764. function()
  765. T.quad:Remove()
  766. end
  767. )
  768. end
  769. function G.onStart(T)
  770. G.attached[T.instance] = T
  771. S.onStart(T)
  772. local U = T.quad
  773. U.Visible = false
  774. U.Thickness = 2
  775. end
  776. function G.onRender(T, U)
  777. local V = T.quad
  778. if Toggles["esp.wardrobe.enabled"].Value then
  779. local W = T.root.CFrame
  780. local X = P(s, (W * ac).Position)
  781. local Y = P(s, (W * ad).Position)
  782. local Z = P(s, (W * O).Position)
  783. local _ = P(s, (W * ae).Position)
  784. if R(X.Z, Y.Z, Z.Z, _.Z) > 0 then
  785. V.PointA = Q(Y.X, Y.Y)
  786. V.PointB = Q(X.X, X.Y)
  787. V.PointC = Q(_.X, _.Y)
  788. V.PointD = Q(Z.X, Z.Y)
  789. V.Color = Options["esp.wardrobe.color"].Value
  790. if T.occupant.Value then
  791. V.Transparency = 0.1
  792. elseif t.LatestRoom.Value - T.id > 1 then
  793. V.Transparency = 0.25
  794. else
  795. V.Transparency = 0.6
  796. end
  797. V.Visible = true
  798. else
  799. V.Visible = false
  800. end
  801. else
  802. V.Visible = false
  803. end
  804. end
  805. function G.destroy(T)
  806. G.attached[T.instance] = nil
  807. S.destroy(T)
  808. end
  809. end
  810. do
  811. local aa = s.WorldToViewportPoint
  812. local ab = Vector2.new
  813. local ac = ab(0, 3)
  814. local ad = q
  815. H = setmetatable({}, {__index = ad})
  816. H.__index = H
  817. function H.__tostring(ae)
  818. return "InteractableComponent - " .. ae.instance:GetFullName()
  819. end
  820. H.attached = {}
  821. function H.new(ae, O, ...)
  822. local P = setmetatable({}, H)
  823. P = P:constructor(ae, O, ...) or P
  824. P:run()
  825. return P
  826. end
  827. function H.constructor(ae, O, P)
  828. ad.constructor(ae, O)
  829. ae.name = P
  830. ae.label = Drawing.new "Text"
  831. ae.circle = Drawing.new "Circle"
  832. ae.outline = Drawing.new "Circle"
  833. ae._maid:add(
  834. function()
  835. ae.label:Remove()
  836. ae.circle:Remove()
  837. ae.outline:Remove()
  838. end
  839. )
  840. ae._maid:add(
  841. O.AncestryChanged:Connect(
  842. function(Q, R)
  843. if R == nil then
  844. ae:destroy()
  845. end
  846. end
  847. )
  848. )
  849. end
  850. function H.onStart(ae)
  851. H.attached[ae.instance] = ae
  852. ad.onStart(ae)
  853. local O, P, Q = ae.label, ae.circle, ae.outline
  854. O.Text = ae.name
  855. O.Size = 18
  856. O.Center = true
  857. O.Outline = true
  858. O.Visible = false
  859. P.Thickness = 1
  860. P.NumSides = 6
  861. P.Radius = 5
  862. P.Filled = true
  863. P.Visible = false
  864. Q.Color = Color3.new()
  865. Q.Thickness = 1.5
  866. Q.NumSides = 6
  867. Q.Radius = 5
  868. Q.Filled = false
  869. Q.Visible = false
  870. Q.ZIndex = 2
  871. end
  872. function H.onRender(ae, O)
  873. local P, Q, R = ae.label, ae.circle, ae.outline
  874. if ae:isVisualEnabled() then
  875. local S = aa(s, ae.instance.Position)
  876. local T = S.Z > 0
  877. if T then
  878. local U = ab(S.X, S.Y)
  879. P.Position = U + ac
  880. Q.Position = U
  881. R.Position = U
  882. local V = ae:getColor()
  883. P.Color = V
  884. Q.Color = V
  885. end
  886. P.Visible = T
  887. Q.Visible = T
  888. R.Visible = T
  889. else
  890. P.Visible = false
  891. Q.Visible = false
  892. R.Visible = false
  893. end
  894. end
  895. function H.isVisualEnabled(ae)
  896. return Toggles["esp.interactable.enabled"].Value
  897. end
  898. function H.getColor(ae)
  899. return Options["esp.interactable.color"].Value
  900. end
  901. function H.destroy(ae)
  902. H.attached[ae.instance] = nil
  903. ad.destroy(ae)
  904. end
  905. end
  906. do
  907. local aa = H
  908. I = setmetatable({}, {__index = aa})
  909. I.__index = I
  910. function I.__tostring(ab)
  911. return "ObtainableComponent - " .. ab.instance:GetFullName()
  912. end
  913. I.attached = {}
  914. function I.new(ab, ac, ...)
  915. local ad = setmetatable({}, I)
  916. ad = ad:constructor(ab, ac, ...) or ad
  917. ad:run()
  918. return ad
  919. end
  920. function I.constructor(ab, ac, ad)
  921. aa.constructor(ab, ac, ad)
  922. end
  923. function I.onStart(ab)
  924. I.attached[ab.instance] = ab
  925. aa.onStart(ab)
  926. local ac, ad, ae = ab.label, ab.circle, ab.outline
  927. ad.NumSides = 5
  928. ae.NumSides = 5
  929. end
  930. function I.isVisualEnabled(ab)
  931. return Toggles["esp.obtainable.enabled"].Value
  932. end
  933. function I.getColor(ab)
  934. return Options["esp.obtainable.color"].Value
  935. end
  936. function I.destroy(ab)
  937. I.attached[ab.instance] = nil
  938. aa.destroy(ab)
  939. end
  940. end
  941. do
  942. local aa = q
  943. J = setmetatable({}, {__index = aa})
  944. J.__index = J
  945. function J.__tostring(ab)
  946. return "RoomComponent - " .. ab.instance:GetFullName()
  947. end
  948. J.attached = {}
  949. function J.new(ab, ...)
  950. local ac = setmetatable({}, J)
  951. ac = ac:constructor(ab, ...) or ac
  952. ac:run()
  953. return ac
  954. end
  955. function J.constructor(ab, ac)
  956. aa.constructor(ab, ac)
  957. ab.id = tonumber(ac.Name)
  958. ab.assets = ac:WaitForChild("Assets", 5)
  959. end
  960. function J.onStart(ab)
  961. J.attached[ab.instance] = ab
  962. aa.onStart(ab)
  963. if ab.id == 50 or ab.id == 100 then
  964. task.defer(ab.onFigure, ab)
  965. end
  966. local ac = ab.instance:WaitForChild("RoomExit", 5)
  967. if ac then
  968. F.new(ac, ab.id)
  969. end
  970. ab._maid:add(
  971. ab.instance.DescendantAdded:Connect(
  972. function(ad)
  973. ab:onDescendant(ad)
  974. end
  975. )
  976. )
  977. for ad, ae in ipairs(ab.instance:GetDescendants()) do
  978. ab:onDescendant(ae)
  979. if ad % 1000 == 0 then
  980. task.wait()
  981. end
  982. end
  983. end
  984. function J.onDescendant(ab, ac)
  985. local ad = ac.Parent
  986. local ae = ad.Name
  987. local O = ac.Name
  988. if O == "Main" then
  989. if ae == "LeverForGate" then
  990. H.new(ac, "Lever")
  991. elseif ae == "Lighter" then
  992. I.new(ac, "Lighter")
  993. elseif ae == "Vitamins" then
  994. I.new(ac, "Vitamins")
  995. elseif ae == "Lockpick" then
  996. I.new(ac, "Lockpicks")
  997. elseif ae == "Bandage" then
  998. I.new(ac, "Bandages")
  999. end
  1000. elseif O == "Base" then
  1001. if ae == "LiveHintBook" then
  1002. I.new(ac, "Book")
  1003. elseif ae == "LiveBreakerPolePickup" then
  1004. I.new(ac, "Fuse")
  1005. end
  1006. elseif O == "Holder" then
  1007. if ae == "CrucifixOnTheWall" then
  1008. I.new(ac, "Crucifix")
  1009. end
  1010. elseif O == "Lock" then
  1011. if ae == "Door" then
  1012. H.new(ac, "Lock")
  1013. end
  1014. elseif ae == "KeyObtain" then
  1015. if O == "Hitbox" then
  1016. I.new(ac, "Key")
  1017. end
  1018. elseif O == "Wardrobe" then
  1019. G.new(ac, ab.id)
  1020. elseif O == "Toolshed" then
  1021. G.new(ac, ab.id)
  1022. end
  1023. end
  1024. function J.onFigure(ab)
  1025. local ac = ab.instance:WaitForChild("FigureSetup", 5)
  1026. E.new(ac)
  1027. end
  1028. function J.destroy(ab)
  1029. J.attached[ab.instance] = nil
  1030. aa.destroy(ab)
  1031. end
  1032. end
  1033. m:SetWatermark "Linoria Community (OminousVibes)"
  1034. m:Notify "Loading UI..."
  1035. do
  1036. local aa = m:CreateWindow(g .. " (" .. h .. ")")
  1037. do
  1038. local ab = aa:AddTab "Gameplay"
  1039. do
  1040. local ac = ab:AddLeftGroupbox "Character Mods"
  1041. ac:AddToggle(
  1042. "character.sprint.enabled",
  1043. {
  1044. Text = "Sprint Enabled",
  1045. Default = false,
  1046. Tooltip = "Enables Sprinting by pressing the Keybind"
  1047. }
  1048. ):AddKeyPicker("character.sprint.keybind", {Text = "Sprint", Default = "LeftShift"})
  1049. ac:AddSlider(
  1050. "character.sprint.speed",
  1051. {
  1052. Text = "Sprint Boost (in seconds)",
  1053. Min = 0,
  1054. Max = 7.5,
  1055. Default = 0,
  1056. Rounding = 1,
  1057. Suffix = " studs"
  1058. }
  1059. )
  1060. ac:AddToggle(
  1061. "character.glow.enabled",
  1062. {
  1063. Text = "Body Glow",
  1064. Default = false,
  1065. Tooltip = "Adds a subtle glow for better vision"
  1066. }
  1067. )
  1068. ac:AddSlider(
  1069. "character.glow.brightness",
  1070. {
  1071. Text = "Glow Brightness",
  1072. Min = 0,
  1073. Max = 100,
  1074. Default = 0,
  1075. Rounding = 0,
  1076. Suffix = ""
  1077. }
  1078. )
  1079. end
  1080. do
  1081. local ac = ab:AddLeftGroupbox "Gameplay Mods"
  1082. ac:AddToggle(
  1083. "gameplay.parser.enabled",
  1084. {
  1085. Text = "Parser Enabled",
  1086. Default = false,
  1087. Tooltip = [[Automatically parses the Library padlock code as you obtain clues.]]
  1088. }
  1089. ):AddKeyPicker(
  1090. "gameplay.parser.keybind",
  1091. {
  1092. Text = "Parse Code",
  1093. Default = "P",
  1094. NoUI = true,
  1095. Mode = "Toggle"
  1096. }
  1097. )
  1098. end
  1099. do
  1100. local ac = ab:AddRightTabbox "Alerts"
  1101. local ad = ac:AddTab "Alerts"
  1102. ad:AddToggle(
  1103. "alerts.enabled",
  1104. {
  1105. Text = "Alerts Enabled",
  1106. Default = true,
  1107. Tooltip = "Master toggle for all script alerts."
  1108. }
  1109. )
  1110. ad:AddToggle(
  1111. "alerts.audio",
  1112. {
  1113. Text = "Enable Sound",
  1114. Default = true,
  1115. Tooltip = "Plays a sound when an important alert is triggered."
  1116. }
  1117. )
  1118. local ae = ac:AddTab "Advanced"
  1119. ae:AddToggle(
  1120. "alerts.debug",
  1121. {
  1122. Text = "Debug Alerts",
  1123. Default = true,
  1124. Tooltip = "Enabled alerts related to script status."
  1125. }
  1126. )
  1127. ae:AddToggle(
  1128. "alerts.entity",
  1129. {
  1130. Text = "Entity Alerts",
  1131. Default = true,
  1132. Tooltip = "Enabled alerts about entities spawning."
  1133. }
  1134. )
  1135. end
  1136. end
  1137. do
  1138. local ab = aa:AddTab "Visuals"
  1139. do
  1140. local ac = ab:AddLeftTabbox "ESP"
  1141. local ad = ac:AddTab "Entity ESP"
  1142. do
  1143. ad:AddToggle(
  1144. "esp.player.enabled",
  1145. {
  1146. Text = "Player ESP",
  1147. Default = true,
  1148. Tooltip = "ESP for other players"
  1149. }
  1150. ):AddColorPicker("esp.player.color", {Title = "Player ESP Color", Default = Color3.new(1, 1, 1)})
  1151. ad:AddToggle(
  1152. "esp.screech.enabled",
  1153. {
  1154. Text = "Screech ESP",
  1155. Default = true,
  1156. Tooltip = "Tracer ESP for Screech entities"
  1157. }
  1158. ):AddColorPicker(
  1159. "esp.screech.color",
  1160. {
  1161. Title = "Screech ESP Color",
  1162. Default = Color3.new(1, 0, 0)
  1163. }
  1164. )
  1165. ad:AddToggle(
  1166. "esp.rush.enabled",
  1167. {
  1168. Text = "Rush/Ambush ESP",
  1169. Default = true,
  1170. Tooltip = "ESP for both Rush and Ambush entities"
  1171. }
  1172. ):AddColorPicker(
  1173. "esp.rush.rush-color",
  1174. {
  1175. Title = "Rush ESP Color",
  1176. Default = Color3.new(1, 0, 0)
  1177. }
  1178. ):AddColorPicker("esp.rush.ambush-color", {Title = "Ambush ESP Color", Default = Color3.new(0, 1, 0)})
  1179. ad:AddToggle(
  1180. "esp.figure.enabled",
  1181. {
  1182. Text = "Figure ESP",
  1183. Default = true,
  1184. Tooltip = "ESP for the Figure entity"
  1185. }
  1186. ):AddColorPicker(
  1187. "esp.figure.color",
  1188. {
  1189. Title = "Figure ESP Color",
  1190. Default = Color3.new(0.75, 0.25, 0.25)
  1191. }
  1192. )
  1193. ad:AddToggle(
  1194. "esp.snare.enabled",
  1195. {
  1196. Text = "Snare ESP",
  1197. Default = true,
  1198. Tooltip = "ESP for snare traps"
  1199. }
  1200. ):AddColorPicker(
  1201. "esp.snare.color",
  1202. {
  1203. Title = "Snare ESP Color",
  1204. Default = Color3.new(1, 0, 0)
  1205. }
  1206. )
  1207. end
  1208. local ae = ac:AddTab "Object ESP"
  1209. do
  1210. ae:AddToggle(
  1211. "esp.door.enabled",
  1212. {
  1213. Text = "Door ESP",
  1214. Default = false,
  1215. Tooltip = "ESP for doors"
  1216. }
  1217. ):AddColorPicker(
  1218. "esp.door.default-color",
  1219. {
  1220. Title = "Other Doors ESP Color",
  1221. Default = Color3.new(0, 0.3, 0.75)
  1222. }
  1223. ):AddColorPicker(
  1224. "esp.door.target-color",
  1225. {
  1226. Title = "Current Door ESP Color",
  1227. Default = Color3.new(0, 1, 0)
  1228. }
  1229. )
  1230. ae:AddToggle(
  1231. "esp.wardrobe.enabled",
  1232. {
  1233. Text = "Wardrobe ESP",
  1234. Default = false,
  1235. Tooltip = "ESP for Wardrobe"
  1236. }
  1237. ):AddColorPicker("esp.wardrobe.color", {Title = "Wardrobe ESP Color", Default = Color3.new(0, 1, 0.9)})
  1238. ae:AddToggle(
  1239. "esp.interactable.enabled",
  1240. {
  1241. Text = "Interactable ESP",
  1242. Default = true,
  1243. Tooltip = "ESP for interactable items"
  1244. }
  1245. ):AddColorPicker(
  1246. "esp.interactable.color",
  1247. {
  1248. Title = "Interactable ESP Color",
  1249. Default = Color3.new(1, 1, 1)
  1250. }
  1251. )
  1252. ae:AddToggle(
  1253. "esp.obtainable.enabled",
  1254. {
  1255. Text = "Obtainable ESP",
  1256. Default = true,
  1257. Tooltip = "ESP for items that can be picked up"
  1258. }
  1259. ):AddColorPicker(
  1260. "esp.obtainable.color",
  1261. {
  1262. Title = "Obtainable ESP Color",
  1263. Default = Color3.new(1, 1, 0)
  1264. }
  1265. )
  1266. end
  1267. end
  1268. end
  1269. do
  1270. local ab = aa:AddTab "Credits"
  1271. local ac = ab:AddLeftGroupbox "Credits"
  1272. ac:AddLabel "OminousVibes - Creator"
  1273. ac:AddLabel "Inori @v3rm - UI Library"
  1274. ac:AddDivider()
  1275. ac:AddLabel "Contributors:"
  1276. ac:AddLabel "> IAmAGoodScammer @v3rm"
  1277. ac:AddLabel "> brickmane @v3rm"
  1278. ac:AddLabel "> yuuiz#1336 @Discord"
  1279. ac:AddDivider()
  1280. ac:AddLabel "Donators:"
  1281. ac:AddLabel "> reversing#2937 @Discord"
  1282. local ad = ab:AddRightGroupbox "Socials"
  1283. ad:AddButton {
  1284. Text = "Discord Server",
  1285. Func = function()
  1286. setclipboard "https://discord.gg/8PATx7UKXZ"
  1287. end
  1288. }
  1289. end
  1290. do
  1291. local ab = aa:AddTab "Settings"
  1292. o:SetLibrary(m)
  1293. n:SetLibrary(m)
  1294. o:SetFolder(i)
  1295. n:SetFolder(i .. "/" .. j)
  1296. n:IgnoreThemeSettings()
  1297. n:SetIgnoreIndexes {"MenuKeybind"}
  1298. n:BuildConfigSection(ab)
  1299. o:ApplyToTab(ab)
  1300. local ac = ab:AddLeftGroupbox "Menu"
  1301. ac:AddButton(
  1302. "Unload",
  1303. function()
  1304. m:Unload()
  1305. end
  1306. )
  1307. ac:AddLabel "Menu bind":AddKeyPicker(
  1308. "MenuKeybind",
  1309. {
  1310. Default = "End",
  1311. NoUI = true,
  1312. Text = "Menu keybind"
  1313. }
  1314. )
  1315. ac:AddToggle(
  1316. "Keybinds",
  1317. {
  1318. Text = "Show Keybinds Menu",
  1319. Default = true
  1320. }
  1321. ):OnChanged(
  1322. function()
  1323. m.KeybindFrame.Visible = Toggles.Keybinds.Value
  1324. end
  1325. )
  1326. ac:AddToggle(
  1327. "Watermark",
  1328. {
  1329. Text = "Show Watermark",
  1330. Default = true
  1331. }
  1332. ):OnChanged(
  1333. function()
  1334. m:SetWatermarkVisibility(Toggles.Watermark.Value)
  1335. end
  1336. )
  1337. end
  1338. end
  1339. m:Notify "UI Built! [Right Ctrl or Right Shift]"
  1340. n:LoadAutoloadConfig()
  1341. local aa = function()
  1342. s = f.CurrentCamera or s
  1343. end
  1344. f:GetPropertyChangedSignal "CurrentCamera":Connect(aa)
  1345. local ab = function(ab)
  1346. if ab.Name == "Screech" then
  1347. C.new(ab)
  1348. end
  1349. end
  1350. s.ChildAdded:Connect(ab)
  1351. local ac = function(ac)
  1352. local ad = ac.Name
  1353. if ad == "RushMoving" or ac.Name == "AmbushMoving" then
  1354. D.new(ac)
  1355. elseif ad == "Eyes" then
  1356. N(
  1357. Toggles["alerts.entity"].Value,
  1358. {
  1359. message = "Eyes spawned, look away from it!",
  1360. audio = true,
  1361. duration = 5
  1362. }
  1363. )
  1364. end
  1365. end
  1366. f.ChildAdded:Connect(ac)
  1367. local ad = function(ad)
  1368. J.new(ad)
  1369. end
  1370. f.CurrentRooms.ChildAdded:Connect(ad)
  1371. for ae, O in ipairs(f.CurrentRooms:GetChildren()) do
  1372. ad(O)
  1373. end
  1374. local P = function()
  1375. N(
  1376. Toggles["alerts.entity"].Value,
  1377. {
  1378. message = "Screech spawned, turn around and look at it!",
  1379. audio = true,
  1380. duration = 5
  1381. }
  1382. )
  1383. end
  1384. u.Screech:Connect(P)
  1385. local Q = function(Q, R)
  1386. if Q and R then
  1387. w[Q] = tostring(R)
  1388. else
  1389. w = {}
  1390. end
  1391. end
  1392. u.PadlockHint:Connect(Q)
  1393. local R = function(R)
  1394. for S, T in ipairs(K) do
  1395. for U, V in pairs(T.attached) do
  1396. V:onTick(R)
  1397. end
  1398. end
  1399. end
  1400. local S = function(S)
  1401. for T, U in ipairs(L) do
  1402. for V, W in pairs(U.attached) do
  1403. W:onRender(S)
  1404. end
  1405. end
  1406. end
  1407. local T = function(T, U)
  1408. for V, W in ipairs(M) do
  1409. for X, Y in pairs(W.attached) do
  1410. Y:onPhysics(T, U)
  1411. end
  1412. end
  1413. local X = z.attached
  1414. if X then
  1415. X:onPhysics(T, U)
  1416. end
  1417. end
  1418. d.Heartbeat:Connect(R)
  1419. d.RenderStepped:Connect(S)
  1420. d.Stepped:Connect(T)
  1421. Options["gameplay.parser.keybind"]:OnClick(
  1422. function()
  1423. local U = ""
  1424. for V = 1, 5 do
  1425. local W = w[x[V]]
  1426. U = U .. (W ~= nil and W or "_")
  1427. end
  1428. N(
  1429. Toggles["gameplay.parser.enabled"].Value,
  1430. {
  1431. message = "[Code Parser]: " .. U,
  1432. audio = false,
  1433. duration = 7.5
  1434. }
  1435. )
  1436. end
  1437. )
  1438. table.insert(L, A)
  1439. table.insert(L, C)
  1440. table.insert(L, D)
  1441. table.insert(L, E)
  1442. table.insert(L, F)
  1443. table.insert(L, G)
  1444. table.insert(L, H)
  1445. v.Name = "Main"
  1446. v.SoundId = "rbxassetid://6026984224"
  1447. v.Volume = 6
  1448. v.Parent = e
  1449. do
  1450. local U = game.PlaceId
  1451. local V = game.PlaceVersion
  1452. local W = k[U]
  1453. if V > W then
  1454. m:Notify [[Game has been updated! Please be careful when using this script.]]
  1455. m:Notify "The place ID and Version has been copied to your clipboard."
  1456. setclipboard("[" .. tostring(U) .. "] = " .. tostring(V) .. ",")
  1457. end
  1458. end
  1459. return m:Notify("[" .. g .. "] Loaded! (" .. h .. ")")
  1460.  
Add Comment
Please, Sign In to add comment