Tarkov Realism script
Key RequiredUniversal

Tarkov Realism script

Universal ScriptRSCRIPTS_FALSEBAN_MERSCRIPTS_FALSEBAN_ME 430 views 173 executesUpdated Mar 1, 2026
Unrated
00
Lua Script•244 lines (7994 chars)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local SoundService = game:GetService("SoundService")
local Debris = game:GetService("Debris")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

print("⚫ HealthUI GRAYSCALE + DYNAMIC VOLUME + BLINK - LOADED!")

-- Remove old GUI if exists
local oldGui = playerGui:FindFirstChild("HealthUI")
if oldGui then oldGui:Destroy() end

-- Screen GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "HealthUI"
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
screenGui.Parent = playerGui

-- Health frame
local healthFrame = Instance.new("Frame")
healthFrame.Name = "HealthFrame"
healthFrame.Size = UDim2.new(0, 240, 0, 36)
healthFrame.Position = UDim2.new(0, 16, 1, -50)
healthFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
healthFrame.BackgroundTransparency = 0.15
healthFrame.BorderSizePixel = 0
healthFrame.ClipsDescendants = true
healthFrame.Parent = screenGui

local healthCorner = Instance.new("UICorner")
healthCorner.CornerRadius = UDim.new(0, 16)
healthCorner.Parent = healthFrame

-- Health bar background
local healthBarBg = Instance.new("Frame")
healthBarBg.Name = "HealthBarBg"
healthBarBg.AnchorPoint = Vector2.new(0, 0.5)
healthBarBg.Position = UDim2.new(0, 8, 0.5, 0)
healthBarBg.Size = UDim2.new(0, 200, 0, 22)
healthBarBg.BackgroundColor3 = Color3.fromRGB(40, 0, 0)
healthBarBg.BorderSizePixel = 0
healthBarBg.Parent = healthFrame

local bgCorner = Instance.new("UICorner")
bgCorner.CornerRadius = UDim.new(0, 11)
bgCorner.Parent = healthBarBg

-- Health bar
local healthBar = Instance.new("Frame")
healthBar.Name = "HealthBar"
healthBar.AnchorPoint = Vector2.new(0, 0.5)
healthBar.Position = UDim2.new(0, 0, 0.5, 0)
healthBar.Size = UDim2.new(1, 0, 1, 0)
healthBar.BackgroundColor3 = Color3.fromHSV(1/3, 1, 1)
healthBar.BorderSizePixel = 0
healthBar.Parent = healthBarBg

local healthBarCorner = Instance.new("UICorner")
healthBarCorner.CornerRadius = UDim.new(0, 11)
healthBarCorner.Parent = healthBar

-- Health text
local healthText = Instance.new("TextLabel")
healthText.Name = "HealthText"
healthText.Size = UDim2.new(0, 110, 1, 0)
healthText.Position = UDim2.new(1, -118, 0, 0)
healthText.BackgroundTransparency = 1
healthText.Text = "100/100"
healthText.TextColor3 = Color3.fromRGB(255, 255, 255)
healthText.TextStrokeTransparency = 0
healthText.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
healthText.Font = Enum.Font.GothamBold
healthText.TextScaled = true
healthText.TextXAlignment = Enum.TextXAlignment.Right
healthText.Parent = healthFrame

-- Death screen
local deathScreen = Instance.new("Frame")
deathScreen.Name = "DeathScreen"
deathScreen.Size = UDim2.new(1, 0, 1, 0)
deathScreen.BackgroundColor3 = Color3.new(0,0,0)
deathScreen.BackgroundTransparency = 1
deathScreen.ZIndex = 100
deathScreen.Parent = screenGui

-- Color correction effect
local cce = Lighting:FindFirstChild("HealthDesat")
if cce then cce:Destroy() end
cce = Instance.new("ColorCorrectionEffect")
cce.Name = "HealthDesat"
cce.Saturation = 0
cce.Parent = Lighting

-- Blur effect
local blur = Lighting:FindFirstChild("HealthBlur")
if blur then blur:Destroy() end
blur = Instance.new("BlurEffect")
blur.Name = "HealthBlur"
blur.Size = 0
blur.Parent = Lighting

-- Sound group for dynamic volume
local healthSoundGroup = Instance.new("SoundGroup")
healthSoundGroup.Name = "HealthVolumeGroup"
healthSoundGroup.Volume = 1  
healthSoundGroup.Parent = SoundService

local function assignToGroup(parent)
    for _, obj in ipairs(parent:GetDescendants()) do
        if obj:IsA("Sound") and not obj:IsDescendantOf(playerGui) then
            obj.SoundGroup = healthSoundGroup
        end
    end
end

assignToGroup(workspace)
assignToGroup(game.Players)
workspace.DescendantAdded:Connect(function(desc)
    if desc:IsA("Sound") then
        desc.SoundGroup = healthSoundGroup
    end
end)

-- Health update
local connections = {}
local function updateHealth(hp, maxHp)
    local percent = hp / maxHp
    
    local hue = (percent / 3)
    TweenService:Create(healthBar, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
        Size = UDim2.new(percent, 0, 1, 0),
        BackgroundColor3 = Color3.fromHSV(hue, 1, 1)
    }):Play()
    
    healthText.Text = math.floor(hp).."/"..maxHp
    
    -- Grayscale
    local desatAmount = math.min((1 - percent) * 1.2, 1) * -1
    TweenService:Create(cce, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {Saturation = desatAmount}):Play()

    -- Optional contrast tweak for low health
    if percent < 0.2 then
        TweenService:Create(cce, TweenInfo.new(0.5), {Contrast = 0.1}):Play()
    else
        TweenService:Create(cce, TweenInfo.new(0.5), {Contrast = 0}):Play()
    end

    -- Blur effect
    local blurAmount = math.clamp((0.2 - percent) * 50, 0, 8)
    TweenService:Create(blur, TweenInfo.new(0.5), {Size = blurAmount}):Play()
    
    -- Volume fade
    local minVolume = 0.2
    local targetVol = minVolume + (1 - minVolume) * percent
    TweenService:Create(healthSoundGroup, TweenInfo.new(0.6, Enum.EasingStyle.Quart), {Volume = targetVol}):Play()
end

-- Death
local function onDied()
    healthSoundGroup.Volume = 0
    TweenService:Create(cce, TweenInfo.new(1), {Saturation = -1}):Play()
    TweenService:Create(blur, TweenInfo.new(1), {Size = 8}):Play()
    task.delay(1, function()
        TweenService:Create(deathScreen, TweenInfo.new(0.6), {BackgroundTransparency = 0}):Play()
    end)
end

-- Character setup
local function setupCharacter(char)
    TweenService:Create(cce, TweenInfo.new(0.5), {Saturation = 0}):Play()
    healthSoundGroup.Volume = 1
    
    for _, conn in pairs(connections) do conn:Disconnect() end
    connections = {}
    
    local hum = char:WaitForChild("Humanoid", 10)
    if not hum then return end
    
    assignToGroup(char)
    
    task.wait(0.5)
    updateHealth(hum.Health, hum.MaxHealth)

    local lastHp = hum.Health

    connections[#connections+1] = hum.HealthChanged:Connect(function(hp)
        updateHealth(hp, hum.MaxHealth)

        if hp < lastHp then
            -- Red flash for damage
            local flash = Instance.new("Frame")
            flash.Size = UDim2.new(1,0,1,0)
            flash.BackgroundColor3 = Color3.fromRGB(255,0,0)
            flash.BackgroundTransparency = 0.7
            flash.ZIndex = 200
            flash.Parent = screenGui
            TweenService:Create(flash, TweenInfo.new(0.3), {BackgroundTransparency = 1}):Play()
            Debris:AddItem(flash, 0.35)
        end
        lastHp = hp
    end)

    connections[#connections+1] = hum.Died:Connect(onDied)
    
    TweenService:Create(deathScreen, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
end

player.CharacterAdded:Connect(setupCharacter)
if player.Character then
    setupCharacter(player.Character)
end

-- Blink mechanic
local blinkTimer = 0
local blinkInterval = 5 + math.random() * 5

RunService.RenderStepped:Connect(function(dt)
    blinkTimer += dt
    if blinkTimer >= blinkInterval then
        local blinkOverlay = Instance.new("Frame")
        blinkOverlay.Size = UDim2.new(1,0,1,0)
        blinkOverlay.BackgroundColor3 = Color3.new(0,0,0)
        blinkOverlay.BackgroundTransparency = 1
        blinkOverlay.ZIndex = 1000
        blinkOverlay.Parent = screenGui

        local tweenInfo = TweenInfo.new(0.1, Enum.EasingStyle.Quad)
        TweenService:Create(blinkOverlay, tweenInfo, {BackgroundTransparency = 0}):Play()
        task.delay(0.1, function()
            TweenService:Create(blinkOverlay, tweenInfo, {BackgroundTransparency = 1}):Play()
            Debris:AddItem(blinkOverlay, 0.2)
        end)

        blinkTimer = 0
        blinkInterval = 5 + math.random() * 5
    end
end)

print("✅ GRAYSCALE + WORLD VOLUME FADES + BLINK LIVE! Take damage & feel it! ⚫🔇")

Features & Information

Just a more realistic way of fighting to immerse yourself Features Bottom left health bar Desaturation (grayscale) and blur effects scaling with health Dynamic volume for all sounds in the world Red flash overlay on damage Death screen fades to black Random blink every 5–10 seconds

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts