Advertisement
PpRoStOo

doors UPER EASY MODE by w a e

Apr 3rd, 2023
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.56 KB | None | 0 0
  1. -- Constants
  2.  
  3. local REMOVE_BANANA_PEELS = true
  4. local REMOVE_JEFFTHEKILLER_HITBOX = true -- makes jeff unable to deal damage
  5. local REMOVE_GREED_RISK = true -- makes you unable to collect gold when you risk taking damage from greed
  6. local REMOVE_AMBIENCE_SOUNDS = true -- not that necessary but if you want to hear better keep it
  7. local REMOVE_EYES_DAMAGE = true -- makes eyes deal no damage
  8. local REMOVE_SCREECH = true
  9. local REMOVE_LIGHT_SHATTER = true -- makes lights not shatter from any entity moving (screech will still appear unless removed)
  10. -- creates a guiding light so you know where to go
  11. local MARK_NEXT_DOOR = true
  12. local MARK_GATE_LEVER = true
  13. local MARK_HINT_BOOKS = true
  14.  
  15. local SPEED_BOOST_ENABLED = true
  16. local BOOST_EXTRA_WALKSPEED = 5.75 -- above makes you teleport back by anticheat
  17.  
  18. local CREATE_ENTITY_HINTS = true -- watch your topbar for hints when entities spawn
  19.  
  20. --- don't touch below (you can however change light properties, color is (red, green, blue) up to 255)
  21.  
  22. -- Services
  23.  
  24. local PlayersService = game:GetService("Players")
  25. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  26.  
  27. -- Vars
  28.  
  29. local CurrentRooms = workspace:WaitForChild("CurrentRooms")
  30.  
  31. local LocalPlayer = PlayersService.LocalPlayer
  32.  
  33. --
  34.  
  35. local Hint
  36. local function HandleModels(model)
  37. task.wait(0.1)
  38.  
  39. local modelIdentifier = model.Name
  40.  
  41. if modelIdentifier == "BananaPeel" and REMOVE_BANANA_PEELS then
  42. model:Destroy()
  43. elseif modelIdentifier == "JeffTheKiller" and REMOVE_JEFFTHEKILLER_HITBOX then
  44. local knife = model:WaitForChild("Knife", 10)
  45. if not knife then
  46. return
  47. end
  48.  
  49. for _, descendant in ipairs(model:GetDescendants()) do
  50. if descendant:IsA("BasePart") then
  51. descendant.CanTouch = false
  52. descendant.CanQuery = false
  53. end
  54. end
  55. elseif (modelIdentifier == "RushMoving" or modelIdentifier == "AmbushMoving") and CREATE_ENTITY_HINTS then
  56. if Hint then
  57. return
  58. end
  59.  
  60. task.wait(0.15)
  61.  
  62. local primaryPart = model.PrimaryPart
  63. if not primaryPart or primaryPart.Position.Y < -100 then -- don't watch fake ones
  64. return
  65. end
  66.  
  67. local entityIdentifier = primaryPart.Name
  68.  
  69. local resultName = entityIdentifier == "RushNew" and string.gsub(model.Name, "Moving", "") or entityIdentifier
  70. Hint = Instance.new("Hint")
  71. Hint.Text = resultName.. " is coming! hide!!!"
  72. Hint.Parent = workspace
  73.  
  74. -- yield until the entity is destroyed completely
  75. model:GetPropertyChangedSignal("Parent"):Wait()
  76.  
  77. Hint:Destroy()
  78. Hint = nil
  79. end
  80. end
  81.  
  82. local function HandleRooms(room)
  83. task.wait(2)
  84.  
  85. local nextRoomId = tonumber(room.Name) + 1
  86.  
  87. for _, descendant in ipairs(room:GetDescendants()) do
  88. local guidingLight = Instance.new("PointLight")
  89. if MARK_GATE_LEVER and descendant.Name == "LeverForGate" then
  90. guidingLight.Range = 60
  91. guidingLight.Color = Color3.fromRGB(0, 255, 255)
  92. guidingLight.Shadows = true
  93. guidingLight.Parent = descendant:WaitForChild("Main", 5)
  94. elseif MARK_HINT_BOOKS and descendant.Name == "LiveHintBook" then
  95. guidingLight.Range = 20
  96. guidingLight.Color = Color3.fromRGB(255, 0, 255)
  97. guidingLight.Shadows = false
  98. guidingLight.Parent = descendant:WaitForChild("Base", 5)
  99. elseif MARK_NEXT_DOOR and descendant:GetAttribute("RoomID") == nextRoomId then
  100. guidingLight.Range = 40
  101. guidingLight.Color = Color3.fromRGB(255, 255, 255)
  102. guidingLight.Shadows = false
  103. guidingLight.Parent = descendant:WaitForChild("Door", 5)
  104. end
  105. end
  106. end
  107.  
  108. local function HandleLoot(prompt)
  109. if not REMOVE_GREED_RISK then
  110. return
  111. end
  112.  
  113. if prompt.Name ~= "LootPrompt" or prompt.ActionText ~= "Collect" then
  114. return
  115. end
  116. -- if this isn't done script won't be able to use holdbegan signal to prevent collecting
  117. prompt.HoldDuration = 0.025
  118.  
  119. local holdBeganConnection
  120. local ancestryChangedConnection
  121.  
  122. holdBeganConnection = prompt.PromptButtonHoldBegan:Connect(function(playerWhoTriggered)
  123. if LocalPlayer ~= playerWhoTriggered or LocalPlayer:GetAttribute("Greed") ~= 6 or prompt.HoldDuration == 999999 then
  124. return
  125. end
  126.  
  127. prompt.HoldDuration = 999999
  128. -- yield until greed level changes
  129. LocalPlayer:GetAttributeChangedSignal("Greed"):Wait()
  130.  
  131. prompt.HoldDuration = 0.025
  132.  
  133. end)
  134. ancestryChangedConnection = game.AncestryChanged:Connect(function()
  135. if prompt:IsDescendantOf(CurrentRooms) then
  136. return
  137. end
  138. -- prompt was removed from workspace; these connections will only take memory
  139. holdBeganConnection:Disconnect()
  140. ancestryChangedConnection:Disconnect()
  141.  
  142. holdBeganConnection = nil
  143. ancestryChangedConnection = nil
  144. end)
  145. end
  146.  
  147. local function HandleEntities()
  148. local entitiesFolder = ReplicatedStorage:WaitForChild("Entities", 5)
  149. if not entitiesFolder then
  150. return
  151. end
  152.  
  153. if REMOVE_SCREECH then
  154. local screechModel = entitiesFolder:WaitForChild("Screech", 5)
  155. if not screechModel then
  156. return
  157. end
  158.  
  159. screechModel:Destroy()
  160. end
  161. end
  162.  
  163. local function HandleAmbience()
  164. if not REMOVE_AMBIENCE_SOUNDS then
  165. return
  166. end
  167.  
  168. local ambience_dark = workspace:WaitForChild("Ambience_Dark", 5)
  169. if ambience_dark then
  170. ambience_dark.Volume = 0
  171. end
  172.  
  173. local ambienceFolder = workspace:WaitForChild("Ambience", 5)
  174. if not ambienceFolder then
  175. return
  176. end
  177.  
  178. for _, descendant in ipairs(ambienceFolder:GetDescendants()) do
  179. if descendant.ClassName == "Sound" then
  180. descendant.Volume = 0
  181. end
  182. end
  183. end
  184.  
  185. local function HandleSpeedBoost()
  186. if not SPEED_BOOST_ENABLED then
  187. return
  188. end
  189.  
  190. local function handleCharacter(character)
  191. local humanoid = character:WaitForChild("Humanoid")
  192.  
  193. local updating = false
  194. local function updateSpeedBoost()
  195. if updating then
  196. return
  197. end
  198. -- basic debounce
  199. updating = true
  200.  
  201. humanoid:SetAttribute("SpeedBoostBehind", BOOST_EXTRA_WALKSPEED)
  202.  
  203. updating = false
  204. end
  205.  
  206. humanoid:GetAttributeChangedSignal("SpeedBoostBehind"):Connect(updateSpeedBoost)
  207.  
  208. updateSpeedBoost()
  209. end
  210. -- on revive
  211. LocalPlayer.CharacterAdded:Connect(handleCharacter)
  212.  
  213. handleCharacter(LocalPlayer.Character)
  214. end
  215.  
  216. local function HandleGameEvents()
  217. local function isValid(func)
  218. return type(func) == "function" and islclosure(func) and not is_synapse_function(func)
  219. end
  220.  
  221. local gc = getgc()
  222.  
  223. for _, value in pairs(gc) do
  224. if REMOVE_LIGHT_SHATTER then
  225. if isValid(value) then
  226. local info = debug.getinfo(value)
  227. if info.currentline == 14 and string.find(info.short_src, "Module_Events") then
  228. local functionEnvironment = getfenv(value)
  229. -- remove luau optimizations (thats necessary)
  230. setuntouched(functionEnvironment, false)
  231. -- overwrite spawn
  232. functionEnvironment.spawn = function()end
  233. break
  234. end
  235. end
  236. end
  237. end
  238. end
  239.  
  240. local function HandleRemotes()
  241. local entityInfo = ReplicatedStorage:WaitForChild("EntityInfo", 5)
  242. if not entityInfo then
  243. return
  244. end
  245.  
  246. if REMOVE_EYES_DAMAGE then
  247. local motorReplicationEvent = entityInfo:WaitForChild("MotorReplication", 5)
  248. if not motorReplicationEvent then
  249. return
  250. end
  251.  
  252. local findFirstChild = game.FindFirstChild
  253.  
  254. local originalNC
  255. originalNC = hookmetamethod(game, "__namecall", function(self, ...)
  256. if self and rawequal(self, motorReplicationEvent) then
  257. if findFirstChild(workspace, "Eyes") then
  258. local function filter(x, y, ...) -- x, y, z, crouching
  259. return x, -89 - math.random(), ...
  260. end
  261.  
  262. return originalNC(self, filter(...))
  263. end
  264. end
  265.  
  266. return originalNC(self, ...)
  267. end, true)
  268. end
  269. end
  270.  
  271. local function SetUp()
  272. workspace.ChildAdded:Connect(HandleModels)
  273.  
  274. for _, child in ipairs(workspace:GetChildren()) do
  275. task.spawn(HandleModels, child)
  276. end
  277.  
  278. --
  279.  
  280. CurrentRooms.ChildAdded:Connect(HandleRooms)
  281.  
  282. --
  283.  
  284. game.DescendantAdded:Connect(HandleLoot)
  285.  
  286. for _, descendant in ipairs(game:GetDescendants()) do
  287. task.spawn(HandleLoot, descendant)
  288. end
  289.  
  290. --
  291.  
  292. task.spawn(HandleEntities)
  293. task.spawn(HandleAmbience)
  294. task.spawn(HandleSpeedBoost)
  295. task.spawn(HandleGameEvents)
  296. task.spawn(HandleRemotes)
  297. end
  298.  
  299. SetUp()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement