Advertisement
RobloxScripTTPoster

(Doors) Editable Skeleton Key Room

Dec 18th, 2022 (edited)
471
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. --Tysm for using <3
  2. function MakeDoor(Point)
  3. local Model = game:GetObjects("rbxassetid://11745567382")[1]
  4. Model.Parent = Point.Parent
  5. Model:SetPrimaryPartCFrame(Point.CFrame * CFrame.new(0, 0, .5))
  6.  
  7. local Prompt = Model.Knob.PromptAtt.DoorOpen
  8.  
  9. local function Open()
  10. Prompt.Enabled = false
  11.  
  12.  
  13.  
  14. task.spawn(function()
  15. local knobC1 = Model.Hinge.Knob.C1
  16.  
  17. --Eye glow
  18.  
  19. for _,v in pairs(Model.Skull:GetChildren()) do
  20. if string.match(v.Name,"Eye") then
  21. game:GetService("TweenService"):Create(v, TweenInfo.new(.2, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  22. Color = Color3.fromRGB(91, 163, 71),
  23. }):Play()
  24. end
  25. end
  26.  
  27. game:GetService("TweenService"):Create(Model.Hinge.Knob, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {C1 = knobC1 * CFrame.Angles(0, 0, math.rad(-35))}):Play()
  28. task.wait(.15)
  29. Model.Door.CanCollide = false
  30. Model.Door.Open:Play()
  31. Model.Hidden:Destroy()
  32.  
  33. for _,v in pairs(Model.Skull:GetChildren()) do
  34. if string.match(v.Name,"Eye") then
  35. game:GetService("TweenService"):Create(v, TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  36. Color = Color3.fromRGB(0, 0, 0),
  37. }):Play()
  38. end
  39. end
  40.  
  41. game:GetService("TweenService"):Create(Model.Hinge.Knob, TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {C1 = knobC1}):Play()
  42.  
  43. game:GetService("TweenService"):Create(Model.Hinge, TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {CFrame = Model.Hinge.CFrame * CFrame.Angles(0, math.rad(-90), 0)}):Play()
  44. end)
  45.  
  46.  
  47.  
  48. end
  49.  
  50.  
  51. Prompt.Triggered:Connect(Open)
  52.  
  53.  
  54. end
  55.  
  56. function MakeChest(Chest)
  57. local Model = Chest.Chest
  58.  
  59. local Sound = Model.ChestTop.Sound
  60. local Skull = Chest.Skull
  61.  
  62. local Prompt = Model.Prompt.ModulePrompt
  63.  
  64. local Open = false
  65.  
  66.  
  67.  
  68.  
  69. local function ChestOpenUp()
  70. if Open then return end
  71.  
  72. Open = true
  73.  
  74. Sound.Open:Play()
  75.  
  76. Prompt.Enabled = false
  77.  
  78.  
  79. game:GetService("TweenService"):Create(Model.Hinge, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  80. CFrame = Model.Hinge.CFrame * CFrame.Angles(0,math.rad(-90),0),
  81. }):Play()
  82.  
  83. loadstring(game:HttpGet("https://raw.githubusercontent.com/ChronoAccelerator/CometV4/main/Items/Skeletonkey.lua"))()
  84. local Achievements = loadstring(game:HttpGet("https://raw.githubusercontent.com/RegularVynixu/Utilities/main/Doors/Custom%20Achievements/Source.lua"))()
  85.  
  86. Achievements.Get({
  87. Title = "Cursed Key",
  88. Desc = "Key of the cursed...",
  89. Reason = "You got lucky with the chest!",
  90. Image = "https://cdn.discordapp.com/attachments/1030679746675232859/1049039646740451480/Skeletonkey.png",
  91. })
  92. end
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99. local function Denied()
  100. --Unlucky LMAOOO
  101.  
  102. for _,v in pairs(Skull:GetChildren()) do
  103. if v.Name == "Eye" then
  104. game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  105. Color = Color3.fromRGB(163, 70, 70),
  106. }):Play()
  107. end
  108. end
  109.  
  110. Sound.Denied:Play()
  111.  
  112. task.wait(2)
  113.  
  114. --Fade eyes out
  115.  
  116. for _,v in pairs(Skull:GetChildren()) do
  117. if v.Name == "Eye" then
  118. game:GetService("TweenService"):Create(v, TweenInfo.new(5, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  119. Color = Color3.fromRGB(0, 0, 0),
  120. }):Play()
  121. end
  122. end
  123.  
  124.  
  125.  
  126. end
  127.  
  128. local function Accepted()
  129. for _,v in pairs(Skull:GetChildren()) do
  130. if v.Name == "Eye" then
  131. game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  132. Color = Color3.fromRGB(91, 163, 71),
  133. }):Play()
  134. end
  135. end
  136.  
  137. task.wait(1)
  138.  
  139. Sound.Fall:Play()
  140. Sound.Unlock:Play()
  141.  
  142. task.wait(1)
  143.  
  144. ChestOpenUp()
  145. end
  146.  
  147.  
  148. local function DecideFate()
  149. local Chance = math.random(1,5)
  150.  
  151. Prompt.Enabled = false
  152.  
  153. firesignal(game.ReplicatedStorage.Bricks.Caption.OnClientEvent, "Deciding your fate...")
  154.  
  155.  
  156. for _,v in pairs(Skull:GetChildren()) do
  157. if v.Name == "Eye" then
  158. game:GetService("TweenService"):Create(v, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {
  159. Color = Color3.fromRGB(163, 156, 63),
  160. }):Play()
  161. end
  162. end
  163.  
  164.  
  165. task.wait(math.random(5,12))
  166.  
  167. if Chance == 1 then
  168. Denied()
  169. else
  170. Accepted()
  171. end
  172.  
  173.  
  174. end
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183. Prompt.Triggered:Connect(DecideFate)
  184.  
  185. end
  186.  
  187. function ReturnLatestRoom()
  188. return workspace.CurrentRooms:FindFirstChild(game.ReplicatedStorage.GameData.LatestRoom.Value)
  189. end
  190.  
  191. function FixRoomPoint(Point)
  192. if Point and Point:IsA("BasePart") then
  193. Point.Size = Vector3.new(5, 8, 0.5)
  194. Point.Orientation += Vector3.new(0,180,0)
  195. Point.CFrame *= CFrame.new(0,0,-1)
  196. Point.Name = "THE SKELETON KEY APPEARS"
  197.  
  198. return Point
  199. end
  200. end
  201.  
  202. function GenerateTheSkeletonAppears(Point)
  203. local Room = game:GetObjects("rbxassetid://11746167697")[1]
  204. Room.Parent = workspace
  205. Room.Name = "THE SKELETON APPEARS"
  206. Room:SetPrimaryPartCFrame(Point.CFrame)
  207.  
  208. GetNearestPlankedDoor(Point.Parent.Parent,Point)
  209.  
  210.  
  211. MakeDoor(Point)
  212.  
  213.  
  214. MakeChest(Room.Animated:WaitForChild("SkullChest",2))
  215. end
  216.  
  217. function GetNearestPlankedDoor(Room,Point)
  218. for _,v in pairs(Room:GetDescendants()) do
  219. if v.Name == "FakeDoor_Hotel" then
  220. local dist = (Point.Position - v.FakeDoor.Position).Magnitude
  221.  
  222. if dist < 5 then
  223. for _,z in pairs(v:GetDescendants()) do
  224. if z:IsA("BasePart") then
  225. z.Transparency = 1
  226. z.CanCollide = false
  227. end
  228. end
  229. end
  230.  
  231. end
  232. end
  233.  
  234. end
  235.  
  236.  
  237. function CheckRoom(Room)
  238. if Room:FindFirstChild("RandomDoor") then
  239. local Doors = Room:FindFirstChild("RandomDoor"):GetChildren()
  240.  
  241. if #Doors > 1 then
  242. local ChosenPoint = Doors[math.random(1,#Doors)]
  243.  
  244. local NewPoint = FixRoomPoint(ChosenPoint)
  245. GenerateTheSkeletonAppears(NewPoint)
  246. else
  247.  
  248. local NewPoint = FixRoomPoint(Doors[1])
  249. GenerateTheSkeletonAppears(NewPoint)
  250. end
  251.  
  252. end
  253. end
  254.  
  255. game.ReplicatedStorage.GameData.LatestRoom.Changed:Connect(function()
  256. task.wait(.1)
  257. CheckRoom(ReturnLatestRoom())
  258. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement