R&d script beta
Key Required

R&d script beta

Rooms & Doors (Hidden & Tactics)BodesBodes 499 views 1.1K executesUpdated Sep 30, 2026
Unrated
00
Lua Script•547 lines (18166 chars)
--════════════════════════════════════════════════════════════════
--   🔴 GLOW THROW v12 
--════════════════════════════════════════════════════════════════

repeat task.wait() until game:IsLoaded()

local Players          = game:GetService("Players")
local RunService       = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService     = game:GetService("TweenService")

repeat task.wait() until Players.LocalPlayer
local LocalPlayer = Players.LocalPlayer
local playerGui = LocalPlayer:WaitForChild("PlayerGui")
local camera = workspace.CurrentCamera

local CONFIG = {
    throwSpeed      = 90,
    throwUpward     = 12,
    size            = 1.2,
    colorRed        = Color3.fromRGB(255, 40, 40),
    colorWhite      = Color3.fromRGB(255, 255, 255),
    lightColorRed   = Color3.fromRGB(255, 80, 80),
    lightColorWhite = Color3.fromRGB(255, 255, 255),
    lightRange      = 30,
    lightBrightness = 3,
    cooldown        = 0.8,
    glowTime        = 8,
    fadeTime        = 1.5,
    beamThickness   = 0.25,
    fakeParent      = true,
    
    -- 🔥 effect
    flingForward    = 40,
    flingUp         = 25,
    burnTime        = 4,
    ragdollTime     = 0.5,
}

local canThrow = true

local oldGui = playerGui:FindFirstChild("GlowThrowGui")
if oldGui then oldGui:Destroy() end

local throwSound = Instance.new("Sound")
throwSound.SoundId = "rbxassetid://6042053626"
throwSound.Volume = 2
throwSound.PlaybackSpeed = 1.3
throwSound.Parent = playerGui

-- ═════════ GUI ═════════
local gui = Instance.new("ScreenGui")
gui.Name = "GlowThrowGui"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.DisplayOrder = 150
gui.Parent = playerGui

local throwBtn = Instance.new("TextButton")
throwBtn.Size = UDim2.new(0, 80, 0, 80)
throwBtn.Position = UDim2.new(1, -100, 1, -320)
throwBtn.AnchorPoint = Vector2.new(1, 1)
throwBtn.BackgroundColor3 = Color3.fromRGB(180, 30, 30)
throwBtn.BackgroundTransparency = 0.15
throwBtn.Text = "🔴"
throwBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
throwBtn.TextSize = 36
throwBtn.Font = Enum.Font.GothamBold
throwBtn.BorderSizePixel = 0
throwBtn.AutoButtonColor = false
throwBtn.Parent = gui
Instance.new("UICorner", throwBtn).CornerRadius = UDim.new(1, 0)

local throwStroke = Instance.new("UIStroke")
throwStroke.Color = Color3.fromRGB(255, 100, 100)
throwStroke.Thickness = 3
throwStroke.Transparency = 0.3
throwStroke.Parent = throwBtn

task.spawn(function()
    while gui.Parent do
        if canThrow then
            throwStroke.Transparency = 0.1 + math.abs(math.sin(tick() * 3)) * 0.4
            throwBtn.BackgroundTransparency = 0.05 + math.abs(math.sin(tick() * 3)) * 0.15
        end
        task.wait(0.05)
    end
end)

--════════════════════════════════════════════════════════════════
--   🎯 MONSTER
--════════════════════════════════════════════════════════════════

local function findMonster()
    for _, obj in ipairs(workspace:GetDescendants()) do
        if (obj:IsA("BasePart") or obj:IsA("Model")) 
        and obj.Name:lower() == "monster" then
            return obj
        end
    end
    return nil
end

local function getMonsterPart(monster)
    if not monster or not monster.Parent then return nil end
    if monster:IsA("BasePart") then return monster end
    if monster:IsA("Model") then
        if monster.PrimaryPart then return monster.PrimaryPart end
        return monster:FindFirstChildWhichIsA("BasePart", true)
    end
    return nil
end

--════════════════════════════════════════════════════════════════
--   📏 BEAM LINE
--════════════════════════════════════════════════════════════════

local function createBeamLine(ball, monster)
    local ballAtt = Instance.new("Attachment")
    ballAtt.Position = Vector3.zero
    ballAtt.Parent = ball
    
    local beam = Instance.new("Beam")
    beam.Attachment0 = ballAtt
    beam.Attachment1 = nil
    beam.Width0 = CONFIG.beamThickness
    beam.Width1 = CONFIG.beamThickness
    beam.Color = ColorSequence.new(Color3.fromRGB(255, 255, 255))
    beam.Transparency = NumberSequence.new(0)
    beam.FaceCamera = true
    beam.LightEmission = 1
    beam.Segments = 2
    beam.Parent = ball
    
    local monsterAtt = nil
    local conn
    conn = RunService.Heartbeat:Connect(function()
        if not ball or not ball.Parent then
            if conn then conn:Disconnect() end
            if monsterAtt then monsterAtt:Destroy() end
            return
        end
        
        local currentMonster = monster
        if not currentMonster or not currentMonster.Parent then
            currentMonster = findMonster()
        end
        
        if not currentMonster then
            if monsterAtt then pcall(function() monsterAtt:Destroy() end) monsterAtt = nil end
            beam.Enabled = false
            return
        end
        
        local monsterPart = getMonsterPart(currentMonster)
        if not monsterPart then beam.Enabled = false return end
        
        if not monsterAtt or monsterAtt.Parent ~= monsterPart then
            if monsterAtt then monsterAtt:Destroy() end
            monsterAtt = Instance.new("Attachment")
            monsterAtt.Position = Vector3.zero
            monsterAtt.Parent = monsterPart
            beam.Attachment1 = monsterAtt
        end
        
        beam.Enabled = true
    end)
    
    return beam, conn
end

--════════════════════════════════════════════════════════════════
--   effects
--════════════════════════════════════════════════════════════════

local function applyHitEffect(plr, hitPart)
    local char = plr.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    local hum = char:FindFirstChildOfClass("Humanoid")
    if not hrp or not hum then return end
    
    -- 
    local originalCFrame = hrp.CFrame
    
    -- 
    local direction = camera.CFrame.LookVector
    hrp.AssemblyLinearVelocity = direction * CONFIG.flingForward + Vector3.new(0, CONFIG.flingUp, 0)
    hrp.AssemblyAngularVelocity = Vector3.new(
        (math.random() - 0.5) * 20,
        (math.random() - 0.5) * 20,
        (math.random() - 0.5) * 20
    )
    
    -- 
    hum.PlatformStand = true
    task.delay(CONFIG.ragdollTime, function()
        if hum and hum.Parent then
            hum.PlatformStand = false
        end
    end)
    
    --
    local fireObjects = {}
    
    for _, part in ipairs(char:GetDescendants()) do
        if part:IsA("BasePart") then
            local fire = Instance.new("Fire")
            fire.Name = "HitFire"
            fire.Heat = 20
            fire.Size = 5
            fire.Color = Color3.fromRGB(255, 180, 60)
            fire.SecondaryColor = Color3.fromRGB(255, 80, 20)
            fire.Parent = part
            table.insert(fireObjects, fire)
            
            local light = Instance.new("PointLight")
            light.Name = "HitFireLight"
            light.Color = Color3.fromRGB(255, 120, 40)
            light.Range = 12
            light.Brightness = 4
            light.Shadows = false
            light.Parent = part
            table.insert(fireObjects, light)
        end
    end
    
    -- 🔊 Звук огня
    local fireSound = Instance.new("Sound")
    fireSound.SoundId = "rbxassetid://6042053626"
    fireSound.Volume = 1.5
    fireSound.PlaybackSpeed = 0.8
    fireSound.Looped = true
    fireSound.Parent = hrp
    fireSound:Play()
    table.insert(fireObjects, fireSound)
    
    -- thing
    local fireEmitter = Instance.new("ParticleEmitter")
    fireEmitter.Texture = "rbxasset://textures/particles/fire_main.dds"
    fireEmitter.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 220, 100)),
        ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 120, 30)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 40, 10))
    })
    fireEmitter.Size = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 1),
        NumberSequenceKeypoint.new(1, 0)
    })
    fireEmitter.Transparency = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 0.3),
        NumberSequenceKeypoint.new(1, 1)
    })
    fireEmitter.Lifetime = NumberRange.new(0.5, 1)
    fireEmitter.Speed = NumberRange.new(3, 8)
    fireEmitter.SpreadAngle = Vector2.new(180, 180)
    fireEmitter.Rate = 50
    fireEmitter.LightEmission = 1
    fireEmitter.Parent = hrp
    table.insert(fireObjects, fireEmitter)
    
    task.delay(CONFIG.burnTime, function()
        if not char or not char.Parent then return end
        if not hrp or not hrp.Parent then return end
        
        hrp.Anchored = true
        hrp.AssemblyLinearVelocity = Vector3.zero
        hrp.AssemblyAngularVelocity = Vector3.zero
        hrp.CFrame = originalCFrame
        
        task.wait(0.05)
        hrp.Anchored = false
        
      
        for _, obj in ipairs(fireObjects) do
            if obj and obj.Parent then
                if obj:IsA("Fire") then
                    TweenService:Create(obj, TweenInfo.new(0.5), {Size = 0}):Play()
                    task.delay(0.5, function() if obj.Parent then obj:Destroy() end end)
                elseif obj:IsA("PointLight") then
                    TweenService:Create(obj, TweenInfo.new(0.5), {Brightness = 0}):Play()
                    task.delay(0.5, function() if obj.Parent then obj:Destroy() end end)
                elseif obj:IsA("ParticleEmitter") then
                    obj.Enabled = false
                    task.delay(1, function() if obj.Parent then obj:Destroy() end end)
                elseif obj:IsA("Sound") then
                    obj:Stop()
                    task.delay(0.5, function() if obj.Parent then obj:Destroy() end end)
                end
            end
        end
    end)
end

--════════════════════════════════════════════════════════════════
--   ball create
--════════════════════════════════════════════════════════════════

local function createGlowBall()
    local char = LocalPlayer.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    local monster = findMonster()
    local hasMonster = monster ~= nil
    
    local ballColor = hasMonster and CONFIG.colorWhite or CONFIG.colorRed
    local lightColor = hasMonster and CONFIG.lightColorWhite or CONFIG.lightColorRed

    local direction = camera.CFrame.LookVector
    local startPos = hrp.Position + direction * 2 + Vector3.new(0, 1.5, 0)

    local container = Instance.new("Folder")
    container.Name = CONFIG.fakeParent and ("Effect" .. math.random(1000, 9999)) or "GlowBall"
    container.Parent = workspace

    local ball = Instance.new("Part")
    ball.Name = "Ball"
    ball.Shape = Enum.PartType.Ball
    ball.Size = Vector3.new(CONFIG.size, CONFIG.size, CONFIG.size)
    ball.Material = Enum.Material.Neon
    ball.Color = ballColor
    ball.CanCollide = true
    ball.Anchored = false
    ball.CFrame = CFrame.new(startPos)
    ball.Parent = container

    local core = Instance.new("Part")
    core.Name = "Core"
    core.Shape = Enum.PartType.Ball
    core.Size = Vector3.new(CONFIG.size * 1.2, CONFIG.size * 1.2, CONFIG.size * 1.2)
    core.Material = Enum.Material.Neon
    core.Color = hasMonster and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(255, 200, 200)
    core.CanCollide = false
    core.CanQuery = false
    core.CanTouch = false
    core.Anchored = false
    core.Massless = true
    core.Transparency = 0.4
    core.CFrame = ball.CFrame
    core.Parent = container
    local cw = Instance.new("WeldConstraint")
    cw.Part0 = core; cw.Part1 = ball; cw.Parent = core

    local light = Instance.new("PointLight")
    light.Color = lightColor
    light.Range = CONFIG.lightRange
    light.Brightness = CONFIG.lightBrightness
    light.Shadows = true
    light.Parent = ball

    local smoke = Instance.new("ParticleEmitter")
    smoke.Texture = "rbxasset://textures/particles/smoke_main.dds"
    smoke.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 80, 80)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 180, 180))
    })
    smoke.Size = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 0.8),
        NumberSequenceKeypoint.new(1, 2)
    })
    smoke.Transparency = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 0.5),
        NumberSequenceKeypoint.new(1, 1)
    })
    smoke.Lifetime = NumberRange.new(1.2, 2)
    smoke.Speed = NumberRange.new(2, 5)
    smoke.SpreadAngle = Vector2.new(180, 180)
    smoke.Rate = 8
    smoke.LightEmission = 0.3
    smoke.Parent = ball

    local sparks = Instance.new("ParticleEmitter")
    sparks.Texture = "rbxassetid://287090261"
    sparks.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 220, 120)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 80, 40))
    })
    sparks.Size = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 0.4),
        NumberSequenceKeypoint.new(1, 0)
    })
    sparks.Transparency = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 0),
        NumberSequenceKeypoint.new(1, 1)
    })
    sparks.Lifetime = NumberRange.new(0.5, 1)
    sparks.Speed = NumberRange.new(6, 15)
    sparks.SpreadAngle = Vector2.new(180, 180)
    sparks.Rate = 10
    sparks.LightEmission = 1
    sparks.Acceleration = Vector3.new(0, -20, 0)
    sparks.Parent = ball

    local att0 = Instance.new("Attachment")
    att0.Position = Vector3.new(0, 0.5, 0)
    att0.Parent = ball
    local att1 = Instance.new("Attachment")
    att1.Position = Vector3.new(0, -0.5, 0)
    att1.Parent = ball

    local trail = Instance.new("Trail")
    trail.Attachment0 = att0
    trail.Attachment1 = att1
    trail.Lifetime = 0.5
    trail.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, ballColor),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 220, 220))
    })
    trail.Transparency = NumberSequence.new({
        NumberSequenceKeypoint.new(0, 0.2),
        NumberSequenceKeypoint.new(1, 1)
    })
    trail.WidthScale = NumberSequence.new(2)
    trail.LightEmission = 1
    trail.Parent = ball

    ball.AssemblyLinearVelocity = direction * CONFIG.throwSpeed + Vector3.new(0, CONFIG.throwUpward, 0)
    ball.AssemblyAngularVelocity = Vector3.new(
        (math.random() - 0.5) * 10,
        (math.random() - 0.5) * 10,
        (math.random() - 0.5) * 10
    )

    local line, lineConn = nil, nil
    if hasMonster then
        line, lineConn = createBeamLine(ball, monster)
    end

    return container, ball, light, core, line, lineConn
end

--════════════════════════════════════════════════════════════════
--   stop
--════════════════════════════════════════════════════════════════

local function startGlowing(container, ball, light, core, line, lineConn)
    if not container or not container.Parent then return end

    ball.Anchored = true
    ball.AssemblyLinearVelocity = Vector3.zero
    ball.AssemblyAngularVelocity = Vector3.zero

    local pulseConn
    pulseConn = RunService.Heartbeat:Connect(function()
        if not container or not container.Parent then
            if pulseConn then pulseConn:Disconnect() end
            return
        end
        if light and light.Parent then
            light.Brightness = CONFIG.lightBrightness + math.sin(tick() * 4) * 1.5
        end
    end)

    task.delay(CONFIG.glowTime, function()
        if not container or not container.Parent then return end

        if pulseConn then pulseConn:Disconnect() end
        if lineConn then lineConn:Disconnect() end

        local fadeInfo = TweenInfo.new(CONFIG.fadeTime, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
        TweenService:Create(ball, fadeInfo, {Transparency = 1}):Play()
        TweenService:Create(core, fadeInfo, {Transparency = 1}):Play()
        TweenService:Create(light, fadeInfo, {Brightness = 0}):Play()

        for _, obj in ipairs(container:GetDescendants()) do
            if obj:IsA("ParticleEmitter") then obj.Enabled = false end
        end

        task.wait(CONFIG.fadeTime + 0.2)
        if container then container:Destroy() end
    end)
end

--════════════════════════════════════════════════════════════════
--   throw
--════════════════════════════════════════════════════════════════

local function doThrow()
    if not canThrow then return end
    canThrow = false

    local s = throwSound:Clone()
    s.Parent = playerGui
    s:Play()
    task.delay(2, function() s:Destroy() end)

    local origG = workspace.Gravity
    workspace.Gravity = origG * 0.5
    task.delay(0.15, function() workspace.Gravity = origG end)

    local container, ball, light, core, line, lineConn = createGlowBall()
    if not container then
        canThrow = true
        return
    end

    local stopped = false
    local hitPlayers = {}

    ball.Touched:Connect(function(hit)
        if stopped then return end
        if hit:IsDescendantOf(LocalPlayer.Character) then return end
        if hit:IsDescendantOf(container) then return end
        
        -- player check
        local hitChar = hit:FindFirstAncestorOfClass("Model")
        local hitPlayer = hitChar and Players:GetPlayerFromCharacter(hitChar)
        
        if hitPlayer and not hitPlayers[hitPlayer] then
            hitPlayers[hitPlayer] = true
            applyHitEffect(hitPlayer, hit)
        end
        
        stopped = true
        task.wait(0.05)
        startGlowing(container, ball, light, core, line, lineConn)
    end)

    task.delay(6, function()
        if not stopped and container and container.Parent then
            stopped = true
            startGlowing(container, ball, light, core, line, lineConn)
        end
    end)

    task.delay(CONFIG.cooldown, function()
        canThrow = true
    end)
end

--════════════════════════════════════════════════════════════════
--   ow
--════════════════════════════════════════════════════════════════

throwBtn.MouseButton1Click:Connect(doThrow)
throwBtn.TouchTap:Connect(doThrow)

UserInputService.InputBegan:Connect(function(input, gp)
    if gp then return end
    if input.KeyCode == Enum.KeyCode.E then
        doThrow()
    end
end)

print("[Glow Throw v12]")

Features & Information

This is a rooms & doors script, like u throw a thing and when there is a entity the color will turn white and a tracer will show where the entity is <WARNING⚠️⚠️⚠️> THIS ONLY WORKS ON A-60 CURRENTLY SOONER I WILL ADD MORE ENTETIES
#script#rooms and doors#roomsanddoors#rd

Community Comments (2)

ChaosDevChaosDevOct 7, 2026

so because i couldnt contact you in private, i need to warn people using this, this script has a serious memory leak problem that can make you lag when u play a while (30 min-1 hour which is normal for r&d) and after that period of time it can take up to six or even NINE gigs of ram

MocjEscanorMocjEscanormodOct 9, 2026

Hello! Please remove the game name in the title. Thankyou!

More Scripts for Rooms & Doors (Hidden & Tactics)