-- Services
local Lighting = game:GetService("Lighting")
local Debris = game:GetService("Debris")
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
-- Room Tracking Variables
local gameData = ReplicatedStorage:WaitForChild("GameData")
local latestRoom = gameData:WaitForChild("LatestRoom")
local spawnCount = 0
local maxSpawn = math.random(8, 9)
-- Camera Shake Setup
local CameraShaker = require(ReplicatedStorage:WaitForChild("CameraShaker"))
local camara = Workspace.CurrentCamera
local camShake = CameraShaker.new(Enum.RenderPriority.Camera.Value, function(shakeCf)
camara.CFrame = camara.CFrame * shakeCf
end)
camShake:Start()
-- Audio Functions
local function GitAud(soundgit, filename)
local url = soundgit
local FileName = filename
if writefile and game.HttpGet then
writefile(FileName .. ".mp3", game:HttpGet(url))
local getAsset = getcustomasset or getsynasset
if getAsset then
return getAsset(FileName .. ".mp3")
end
end
return ""
end
local function CustomGitSound(soundlink, vol, filename)
local Sound = Instance.new("Sound")
Sound.SoundId = GitAud(soundlink, filename)
Sound.Volume = vol or 1
Sound.Parent = Workspace
Sound:Play()
Debris:AddItem(Sound, 15)
end
-- Isolated Warning Sequence (Triggers only once)
local function PlayFirstSpawnWarning()
-- Color Correction Warning Effect
local Reboundcolor = Instance.new("ColorCorrectionEffect")
Reboundcolor.Name = "Warn"
Reboundcolor.TintColor = Color3.fromRGB(65, 138, 255)
Reboundcolor.Saturation = -0.7
Reboundcolor.Contrast = 0.2
Reboundcolor.Parent = Lighting
Debris:AddItem(Reboundcolor, 24)
TweenService:Create(Reboundcolor, TweenInfo.new(15), {
TintColor = Color3.fromRGB(255, 255, 255),
Saturation = 0,
Contrast = 0
}):Play()
-- Camera Shake
camShake:ShakeOnce(10, 3, 0.1, 6, 2, 0.5)
-- Play Warning Sound
CustomGitSound("https://github.com/Isth4t/ReboundMain/raw/main/ReboundWarning.mp3", 3, "ReboundWarning")
end
-- Entity Spawner Setup
local spawner = loadstring(game:HttpGet("https://raw.githubusercontent.com/RegularVynixu/Utilities/main/Doors/Entity%20Spawner/V2/Source.lua"))()
-- Wrapped in a function to allow repetitive automated spawning
local function SpawnEntity()
spawnCount = spawnCount + 1
print("Spawning entity. Count: " .. tostring(spawnCount) .. " / " .. tostring(maxSpawn))
-- CRITICAL: Only fire the entire warning setup if this is the very first entity loop
if spawnCount == 1 then
PlayFirstSpawnWarning()
end
local entity = spawner.Create({
Entity = {
Name = "Rebound",
Asset = "rbxassetid://14252931223",
HeightOffset = 0
},
Lights = {
Flicker = {
Enabled = false,
Duration = 1
},
Shatter = false,
Repair = false
},
Earthquake = {
Enabled = false
},
CameraShake = {
Enabled = false,
Range = 100,
Values = {1.5, 20, 0.1, 1}
},
Movement = {
Speed = 100,
Delay = 5,
Reversed = true
},
Rebounding = {
Enabled = false,
Type = "Ambush",
Min = 1,
Max = 1,
Delay = 1
},
Damage = {
Enabled = true,
Range = 40,
Amount = 125
},
Crucifixion = {
Enabled = true,
Range = 40,
Resist = false,
Break = true
},
Death = {
Type = "Guiding",
Hints = {"You Died to who you call..", "Dread!", "First his watch appears, Then he appears too!", "Better luck next time!"},
Cause = ""
}
})
-- Callbacks
entity:SetCallback("OnSpawned", function()
print("Entity has spawned")
local gameDataObj = ReplicatedStorage:WaitForChild("GameData", 5)
if gameDataObj then
local latestRoomObj = gameDataObj:WaitForChild("LatestRoom", 5)
if latestRoomObj then
latestRoomObj.Changed:Wait()
end
end
loadstring(game:HttpGet("https://gist.github.com/Kotyara19k-Doorsspawner/47bd9e8cbc8366757c3d957ef91aaf6b/raw/98fa45756ff27937edb379ae72f0b60ae897a0aa/Rebound2"))()
end)
entity:SetCallback("OnStartMoving", function()
print("Entity has started moving")
CustomGitSound("https://github.com/Kotyara19k-Doorsspawner/Random-files/raw/main/Y2meta.app%20-%20DOORS%20HARDCORE_REBOUND%20MOVING%20START%20(320%20kbps).mp3", 2, "ReboundMoving")
end)
entity:SetCallback("OnEnterRoom", function(room, firstTime)
if firstTime == true then
print("Entity has entered room: ".. room.Name.. " for the first time")
else
print("Entity has entered room: ".. room.Name.. " again")
end
end)
entity:SetCallback("OnLookAt", function(lineOfSight)
if lineOfSight == true then
print("Player is looking at entity")
else
print("Player view is obstructed by something")
end
end)
entity:SetCallback("OnRebounding", function(startOfRebound)
if startOfRebound == true then
print("Entity has started rebounding")
else
print("Entity has finished rebounding")
end
end)
entity:SetCallback("OnDespawning", function()
print("Entity is despawning")
end)
entity:SetCallback("OnDespawned", function()
print("Entity has despawned")
end)
entity:SetCallback("OnDamagePlayer", function(newHealth)
if newHealth == 0 then
loadstring(game:HttpGet('https://pastefy.app/RtjDtwEJ/raw'))()
end
end)
entity:Run()
end
-- Chain Spawning Event Listener
latestRoom.Changed:Connect(function()
if spawnCount < maxSpawn then
task.wait(1)
SpawnEntity()
end
end)
---====== Start Chain ======---
SpawnEntity()