Run it
Copy the script and paste it into your executor.
RAY_IMAGE =
SUN_IMAGE =
RAY_COLOR = .(, , )
RAY_ROTATION = -
MIN_BRIGHT_TRANS =
SUN_SIZE = .(, )
SUN_OFFSET = .(, )
TWEEN_SPEED =
RAY_DIST = {; ; -; -;}
RAY_SIZES = {; ; ; ;}
RAY_TRANS = {; ; ; ;}
SUN_RAY_SIZE =
SUN_RAY_TRANS =
SUN_RAY_COLOR = .(, , )
lighting = :()
runService = :()
player = .Players.LocalPlayer
playerGui = player:()
camera = .CurrentCamera
realMod =
(n, l, h)
n < l l
n > h h
n
()
screenPoint = camera:(camera.CoordinateFrame.p + lighting:())
.(screenPoint.x, screenPoint.y), screenPoint.z >
()
camera.ViewportSize /
(ignore)
:(Ray.(camera.CoordinateFrame.p, lighting:() * ), ignore) ~=
(x)
( - ( - MIN_BRIGHT_TRANS) * x, , )
(character)
root = character:()
rays = {}
screenGui
_, child (.Parent:())
child:()
screenGui = child
screenGui screenGui = .(, playerGui)
brightScreen = .(, screenGui)
brightScreen.Name =
brightScreen.Size = .(, , , )
brightScreen.BackgroundColor3 = RAY_COLOR
brightScreen.ZIndex =
brightScreen.Transparency =
brightScreen.AnchorPoint = .(, )
brightScreen.Position = .(, , , )
i = , #RAY_DIST
ray = .(, screenGui)
ray.Name =
ray.SizeConstraint = .SizeConstraint.RelativeYY
ray.Size = .(RAY_SIZES[i] * SUN_SIZE.x, , RAY_SIZES[i] * SUN_SIZE.y, )
ray.Rotation = RAY_ROTATION
ray.Image = RAY_IMAGE
ray.ImageColor3 = RAY_COLOR
ray.BackgroundTransparency =
ray.ImageTransparency = RAY_TRANS[i]
ray.ZIndex =
rays[#rays + ] = ray
sunRay = .(, screenGui)
sunRay.Name =
sunRay.SizeConstraint = .SizeConstraint.RelativeYY
sunRay.Size = .(SUN_RAY_SIZE * SUN_SIZE.x, , SUN_RAY_SIZE * SUN_SIZE.y, )
sunRay.Image = SUN_IMAGE
sunRay.ImageColor3 = SUN_RAY_COLOR
sunRay.BackgroundTransparency =
sunRay.ImageTransparency = SUN_RAY_TRANS
sunRay.ZIndex =
runService:()
runService:(, .RenderPriority.Last.Value, ()
sunPosition, isInFront = ()
isClear = ((root.Position + .(, , ) - camera.CoordinateFrame.p).magnitude < character )
targetMod = isClear
realMod = realMod * ( - TWEEN_SPEED) + targetMod * TWEEN_SPEED
screenCenter = ()
vec = sunPosition - screenCenter
i = , #rays
rays[i].ImageTransparency = - realMod + RAY_TRANS[i] * realMod
thisSize = rays[i].AbsoluteSize
thisPosition = screenCenter + vec * RAY_DIST[i]
rays[i].Position = .(SUN_OFFSET.x, thisPosition.x - thisSize.x / , SUN_OFFSET.y, thisPosition.y - thisSize.y / )
rays[i].Visible = isInFront
sunRay.ImageTransparency = - realMod + SUN_RAY_TRANS * realMod
sunRaySize = sunRay.AbsoluteSize
sunRay.Position = .(SUN_OFFSET.x, sunPosition.x - sunRaySize.x / , SUN_OFFSET.y, sunPosition.y - sunRaySize.y / )
sunRay.Visible = isInFront
cosAngle = camera.CoordinateFrame.lookVector:(lighting:())
brightScreen.Transparency = - realMod + (cosAngle) * realMod
)
.() player.Character
(player.Character)
player.CharacterAdded:(OnCharacterAdded)It makes SunRays. Looks cool.

Universal