-- Ahmetcc_701's shaders -- Motion Blur: 0.1s fade-in / 0.1s fade-out local Lighting = game:GetService("Lighting") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local Players = game:GetService("Players") local player = Players.LocalPlayer local Terrain = Workspace.Terrain -- SETTINGS local FADE_IN_TIME = 0.1 local FADE_OUT_TIME = 0.1 local MOTION_THRESHOLD = 0.8 local MAX_BLUR = 8 -- Create or reuse effects local function getEffect(className, name, parent) local effect = parent:FindFirstChild(name) if effect and not effect:IsA(className) then effect:Destroy() effect = nil end if not effect then effect = Instance.new(className) effect.Name = name effect.Parent = parent end effect.Enabled = true return effect end local function setupEffects() -- Lighting Lighting.ClockTime = 14 Lighting.GeographicLatitude = 0 Lighting.GlobalShadows = true Lighting.Brightness = 2.5 Lighting.ExposureCompensation = 0.1 Lighting.EnvironmentDiffuseScale = 1 Lighting.EnvironmentSpecularScale = 1 Lighting.ShadowSoftness = 0.2 -- Sky local sky = Lighting:FindFirstChildOfClass("Sky") if not sky then sky = Instance.new("Sky") sky.Parent = Lighting end sky.CelestialBodiesShown = true sky.SunAngularSize = 16 sky.MoonAngularSize = 11 sky.StarCount = 0 -- Color correction local cc = getEffect( "ColorCorrectionEffect", "Ahmet_ColorCorrection", Lighting ) cc.Saturation = 0.8 cc.Contrast = 0.35 cc.Brightness = 0.03 cc.TintColor = Color3.fromRGB(255, 248, 240) -- Bloom local bloom = getEffect( "BloomEffect", "Ahmet_Bloom", Lighting ) bloom.Intensity = 1 bloom.Size = 56 bloom.Threshold = 2.64 -- Sun rays local rays = getEffect( "SunRaysEffect", "Ahmet_SunRays", Lighting ) rays.Intensity = 0.5 rays.Spread = 0.85 -- Atmosphere local atmosphere = Lighting:FindFirstChildOfClass("Atmosphere") if not atmosphere then atmosphere = Instance.new("Atmosphere") atmosphere.Parent = Lighting end atmosphere.Density = 0.12 atmosphere.Offset = 0.1 atmosphere.Color = Color3.fromRGB(210, 230, 255) atmosphere.Decay = Color3.fromRGB(150, 170, 210) atmosphere.Glare = 0.5 atmosphere.Haze = 0.5 -- Depth of Field local dof = getEffect( "DepthOfFieldEffect", "Ahmet_SoftDOF", Lighting ) dof.FocusDistance = 25 dof.InFocusRadius = 35 dof.NearIntensity = 0.05 dof.FarIntensity = 0.12 -- Motion blur local blur = getEffect( "BlurEffect", "Ahmet_MotionBlur", Lighting ) blur.Size = 0 return blur end local blur = setupEffects() -- Terrain water Terrain.WaterWaveSpeed = 100 Terrain.WaterWaveSize = 40 Terrain.WaterTransparency = 1 Terrain.WaterReflectance = 0.6 -- Clouds local clouds = Terrain:FindFirstChildOfClass("Clouds") if not clouds then clouds = Instance.new("Clouds") clouds.Parent = Terrain end clouds.Cover = 0.3 clouds.Density = 0.4 clouds.Color = Color3.fromRGB(240, 245, 255) -- Reflective appearance local function applyReflectance(obj) if obj:IsA("BasePart") then obj.Reflectance = 0.6 end end for _, obj in ipairs(Workspace:GetDescendants()) do applyReflectance(obj) end Workspace.DescendantAdded:Connect(applyReflectance) -- Motion blur transition state local camera = Workspace.CurrentCamera local previousCFrame = nil local wasMoving = false local currentBlur = 0 local transitionFrom = 0 local transitionTo = 0 local transitionStart = 0 local transitionDuration = FADE_OUT_TIME local transitioning = false local function beginTransition(target, duration) transitionFrom = currentBlur transitionTo = target transitionStart = os.clock() transitionDuration = math.max(duration, 0.001) transitioning = true end RunService.RenderStepped:Connect(function(dt) -- Recreate effects if a game removes them if not blur or not blur.Parent then blur = getEffect( "BlurEffect", "Ahmet_MotionBlur", Lighting ) blur.Size = currentBlur end camera = Workspace.CurrentCamera if not camera then return end local angularSpeed = 0 if previousCFrame then local delta = previousCFrame:ToObjectSpace(camera.CFrame) local _, angle = delta:ToAxisAngle() if dt > 0 then angularSpeed = math.abs(angle) / dt end end previousCFrame = camera.CFrame local moving = angularSpeed > MOTION_THRESHOLD if moving and not wasMoving then -- Fade in over 0.1 seconds local target = math.clamp( (angularSpeed - MOTION_THRESHOLD) * 0.42, 0, MAX_BLUR ) if target < 1 then target = 1 end beginTransition(target, FADE_IN_TIME) elseif not moving and wasMoving then -- Fade out over 0.1 seconds beginTransition(0, FADE_OUT_TIME) end wasMoving = moving if transitioning then local elapsed = os.clock() - transitionStart local alpha = math.clamp( elapsed / transitionDuration, 0, 1 ) -- Linear transition currentBlur = transitionFrom + (transitionTo - transitionFrom) * alpha if alpha >= 1 then currentBlur = transitionTo transitioning = false end end blur.Size = currentBlur end) -- Restore visual effects after respawn player.CharacterAdded:Connect(function() task.wait(0.5) blur = setupEffects() blur.Size = currentBlur end) print("Ahmetcc_701's shaders loaded") print("Motion Blur fade-in: 0.1s | fade-out: 0.1s")