get paid to paste

DOORS Script | SUPER EASY MODE SCRIPT – V1.1

-- Constants

local REMOVE_BANANA_PEELS = true
local REMOVE_JEFFTHEKILLER_HITBOX = true -- makes jeff unable to deal damage
local REMOVE_GREED_RISK = true -- makes you unable to collect gold when you risk taking damage from greed
local REMOVE_AMBIENCE_SOUNDS = true -- not that necessary but if you want to hear better keep it
local REMOVE_EYES_DAMAGE = true -- makes eyes deal no damage
local REMOVE_SCREECH = true
local REMOVE_LIGHT_SHATTER = true -- makes lights not shatter from any entity moving (screech will still appear unless removed)
-- creates a guiding light so you know where to go
local MARK_NEXT_DOOR = true
local MARK_GATE_LEVER = true
local MARK_HINT_BOOKS = true

local SPEED_BOOST_ENABLED = true
local BOOST_EXTRA_WALKSPEED = 6 -- above makes you teleport back by anticheat

local CREATE_ENTITY_HINTS = true -- watch your topbar for hints when entities spawn

--- don't touch below (you can however change light properties, color is (red, green, blue) up to 255)

-- Services

local PlayersService = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- Vars

local CurrentRooms = workspace:WaitForChild("CurrentRooms")

local LocalPlayer = PlayersService.LocalPlayer

--

local Hint
local function HandleModels(model)
task.wait(0.1)

local modelIdentifier = model.Name

if modelIdentifier == "BananaPeel" and REMOVE_BANANA_PEELS then
model:Destroy()
elseif modelIdentifier == "JeffTheKiller" and REMOVE_JEFFTHEKILLER_HITBOX then
local knife = model:WaitForChild("Knife", 10)
if not knife then
return
end

for _, descendant in ipairs(model:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.CanTouch = false
descendant.CanQuery = false
end
end
elseif (modelIdentifier == "RushMoving" or modelIdentifier == "AmbushMoving") and CREATE_ENTITY_HINTS then
if Hint then
return
end

task.wait(0.15)

local primaryPart = model.PrimaryPart
if not primaryPart or primaryPart.Position.Y < -100 then -- don't watch fake ones
return
end

local entityIdentifier = primaryPart.Name

local resultName = entityIdentifier == "RushNew" and string.gsub(model.Name, "Moving", "") or entityIdentifier
Hint = Instance.new("Hint")
Hint.Text = resultName.. " is coming! hide!!!"
Hint.Parent = workspace

-- yield until the entity is destroyed completely
model:GetPropertyChangedSignal("Parent"):Wait()

Hint:Destroy()
Hint = nil
end
end

local function HandleRooms(room)
task.wait(2)

local nextRoomId = tonumber(room.Name) + 1

for _, descendant in ipairs(room:GetDescendants()) do
local guidingLight = Instance.new("PointLight")
if MARK_GATE_LEVER and descendant.Name == "LeverForGate" then
guidingLight.Range = 60
guidingLight.Color = Color3.fromRGB(0, 255, 255)
guidingLight.Shadows = true
guidingLight.Parent = descendant:WaitForChild("Main", 5)
elseif MARK_HINT_BOOKS and descendant.Name == "LiveHintBook" then
guidingLight.Range = 20
guidingLight.Color = Color3.fromRGB(255, 0, 255)
guidingLight.Shadows = false
guidingLight.Parent = descendant:WaitForChild("Base", 5)
elseif MARK_NEXT_DOOR and descendant:GetAttribute("RoomID") == nextRoomId then
guidingLight.Range = 40
guidingLight.Color = Color3.fromRGB(255, 255, 255)
guidingLight.Shadows = false
guidingLight.Parent = descendant:WaitForChild("Door", 5)
end
end
end

local function HandleLoot(prompt)
if not REMOVE_GREED_RISK then
return
end

if prompt.Name ~= "LootPrompt" or prompt.ActionText ~= "Collect" then
return
end
-- if this isn't done script won't be able to use holdbegan signal to prevent collecting
prompt.HoldDuration = 0.025

local holdBeganConnection
local ancestryChangedConnection

holdBeganConnection = prompt.PromptButtonHoldBegan:Connect(function(playerWhoTriggered)
if LocalPlayer ~= playerWhoTriggered or LocalPlayer:GetAttribute("Greed") ~= 6 or prompt.HoldDuration == 999999 then
return
end

prompt.HoldDuration = 999999
-- yield until greed level changes
LocalPlayer:GetAttributeChangedSignal("Greed"):Wait()

prompt.HoldDuration = 0.025

end)
ancestryChangedConnection = game.AncestryChanged:Connect(function()
if prompt:IsDescendantOf(CurrentRooms) then
return
end
-- prompt was removed from workspace; these connections will only take memory
holdBeganConnection:Disconnect()
ancestryChangedConnection:Disconnect()

holdBeganConnection = nil
ancestryChangedConnection = nil
end)
end

local function HandleEntities()
local entitiesFolder = ReplicatedStorage:WaitForChild("Entities", 5)
if not entitiesFolder then
return
end

if REMOVE_SCREECH then
local screechModel = entitiesFolder:WaitForChild("Screech", 5)
if not screechModel then
return
end

screechModel:Destroy()
end
end

local function HandleAmbience()
if not REMOVE_AMBIENCE_SOUNDS then
return
end

local ambience_dark = workspace:WaitForChild("Ambience_Dark", 5)
if ambience_dark then
ambience_dark.Volume = 0
end

local ambienceFolder = workspace:WaitForChild("Ambience", 5)
if not ambienceFolder then
return
end

for _, descendant in ipairs(ambienceFolder:GetDescendants()) do
if descendant.ClassName == "Sound" then
descendant.Volume = 0
end
end
end

local function HandleSpeedBoost()
if not SPEED_BOOST_ENABLED then
return
end

local function handleCharacter(character)
local humanoid = character:WaitForChild("Humanoid")

local updating = false
local function updateSpeedBoost()
if updating then
return
end
-- basic debounce
updating = true

humanoid:SetAttribute("SpeedBoostBehind", BOOST_EXTRA_WALKSPEED)

updating = false
end

humanoid:GetAttributeChangedSignal("SpeedBoostBehind"):Connect(updateSpeedBoost)

updateSpeedBoost()
end
-- on revive
LocalPlayer.CharacterAdded:Connect(handleCharacter)

handleCharacter(LocalPlayer.Character)
end

local function HandleGameEvents()
local function isValid(func)
return type(func) == "function" and islclosure(func) and not is_synapse_function(func)
end

local gc = getgc()

for _, value in pairs(gc) do
if REMOVE_LIGHT_SHATTER then
if isValid(value) then
local info = debug.getinfo(value)
if info.currentline == 14 and string.find(info.short_src, "Module_Events") then
local functionEnvironment = getfenv(value)
-- remove luau optimizations (thats necessary)
setuntouched(functionEnvironment, false)
-- overwrite spawn
functionEnvironment.spawn = function()end
break
end
end
end
end
end

local function HandleRemotes()
local entityInfo = ReplicatedStorage:WaitForChild("EntityInfo", 5)
if not entityInfo then
return
end

if REMOVE_EYES_DAMAGE then
local motorReplicationEvent = entityInfo:WaitForChild("MotorReplication", 5)
if not motorReplicationEvent then
return
end

local findFirstChild = game.FindFirstChild

local originalNC
originalNC = hookmetamethod(game, "__namecall", function(self, ...)
if self and rawequal(self, motorReplicationEvent) then
if findFirstChild(workspace, "Eyes") then
local function filter(x, y, ...) -- x, y, z, crouching
return x, -89 - math.random(), ...
end

return originalNC(self, filter(...))
end
end

return originalNC(self, ...)
end, true)
end
end

local function SetUp()
workspace.ChildAdded:Connect(HandleModels)

for _, child in ipairs(workspace:GetChildren()) do
task.spawn(HandleModels, child)
end

--

CurrentRooms.ChildAdded:Connect(HandleRooms)

--

game.DescendantAdded:Connect(HandleLoot)

for _, descendant in ipairs(game:GetDescendants()) do
task.spawn(HandleLoot, descendant)
end

--

task.spawn(HandleEntities)
task.spawn(HandleAmbience)
task.spawn(HandleSpeedBoost)
task.spawn(HandleGameEvents)
task.spawn(HandleRemotes)
end

SetUp()

Pasted: Apr 4, 2023, 1:16:02 pm
Views: 78