Claude Skill

roblox-lighting

Use for Roblox lighting, atmosphere, day/night, or post-processing effects.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download tabooharmony-roblox-brain-skills_gameplay_roblox-lighting-6051c35.zip · 4 KB
Part of tabooharmony/roblox-brain — 29 skills

Install

skills CLI npx skills add https://github.com/TabooHarmony/roblox-brain/tree/main/skills/gameplay/roblox-lighting
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install tabooharmony-roblox-brain@llmmart
Git git clone https://github.com/TabooHarmony/roblox-brain.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole tabooharmony/roblox-brain collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Roblox Lighting & Atmosphere

When to Load

Load for Roblox lighting, atmosphere, day/night, or post-processing (Bloom, ColorCorrection, DepthOfField).

Quick Reference

Lighting Service

Lighting.ClockTime = 14            -- 0-24 numeric
Lighting.Brightness = 2            -- 0-10, default 2
Lighting.Ambient = Color3.fromRGB(70, 70, 70)        -- shadow fill
Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
Lighting.GlobalShadows = true
Lighting.ShadowSoftness = 0.2      -- 0=sharp, 1=soft
-- Configure tech/style/quality in Studio; these properties are not script-writable.
-- Verify enum values and device behavior against current Creator Hub docs before setting them.

Atmosphere

local atmo = Instance.new("Atmosphere")
atmo.Density = 0.3    -- 0=clear, 1=opaque (keep <0.5)
atmo.Offset = 0.25    -- 0=ground, 1=sky
atmo.Color = Color3.fromRGB(199, 199, 199)   -- near fog
atmo.Decay = Color3.fromRGB(92, 92, 92)      -- far/horizon
atmo.Glare = 0        -- 0-10
atmo.Haze = 0         -- 0-10
atmo.Parent = Lighting

Post-Processing (all parented to Lighting)

Effect Key Properties
BloomEffect Intensity (0-1), Size (px), Threshold (>0.7 recommended)
ColorCorrectionEffect Brightness, Contrast, Saturation (-1 to 1), TintColor
DepthOfFieldEffect FarIntensity, FocusDistance, InFocusRadius, NearIntensity
SunRaysEffect Intensity (0-1), Spread (0-1)

Day/Night Cycle

local CYCLE_SPEED = 1  -- minutes per full day
task.spawn(function()
    while true do
        Lighting.ClockTime += (task.wait() / 60) * (24 / CYCLE_SPEED)
        if Lighting.ClockTime >= 24 then Lighting.ClockTime -= 24 end
    end
end)

Local Lights

Light Use Key Props
PointLight Lamps, torches Range, Brightness, Color
SpotLight Flashlights Range, Angle, Face
SurfaceLight Screens, panels Range, Angle, Face

Perf: Limit shadow-casting lights to 4-6 visible. Use Shadows=false on most. Neon material = cheap glow.

MCP: Inspect, change minimally, capture, check performance.

Common Pitfalls

  • Brightness >3 washes out. Density >0.5 = soup. Max 2-3 post effects.
  • Avoid black Ambient. Technology is deprecated; it and its replacements are Studio-only.

References

  • Mood presets (Day, Golden Hour, Night, Horror, Underwater, Sci-Fi), zone tweens, full examples: references/full.md
Files (roblox-brain)
  • references
    • full.md 8.5 KB
      # Roblox Lighting & Atmosphere
      
      
      > **Code in this reference is illustrative. Adapt to your game and verify in Studio before production use.**
      
      Use this skill when configuring lighting, atmosphere, time of day, post-processing effects, or creating visual mood for a game.
      
      ## Lighting Service Properties
      
      ```luau
      local Lighting = game:GetService("Lighting")
      
      -- Time of day (24-hour format as string)
      Lighting.ClockTime = 14          -- 2 PM (numeric, 0-24)
      Lighting.TimeOfDay = "14:00:00"  -- same thing as string
      
      -- Core lighting
      Lighting.Brightness = 2          -- sun intensity (0-10, default 2)
      Lighting.Ambient = Color3.fromRGB(70, 70, 70)      -- shadow color
      Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128) -- outdoor shadow fill
      Lighting.ColorShift_Top = Color3.fromRGB(0, 0, 0)  -- sky color tint
      Lighting.ColorShift_Bottom = Color3.fromRGB(0, 0, 0) -- ground bounce tint
      
      -- Shadows
      Lighting.GlobalShadows = true
      Lighting.ShadowSoftness = 0.2    -- 0 = sharp, 1 = very soft
      -- Environment
      Lighting.EnvironmentDiffuseScale = 1  -- how much skybox colors affect surfaces
      Lighting.EnvironmentSpecularScale = 1 -- skybox reflections on shiny surfaces
      -- Technology remains deprecated and not script-writable.
      -- LightingStyle and PrioritizeLightingQuality are script-writable; verify device behavior in Studio.
      ```
      
      ## Atmosphere
      
      The `Atmosphere` object controls fog, haze, and sky color blending:
      
      ```luau
      local atmo = Instance.new("Atmosphere")
      atmo.Density = 0.3       -- fog thickness (0 = clear, 1 = opaque)
      atmo.Offset = 0.25       -- how high fog starts (0 = ground, 1 = sky)
      atmo.Color = Color3.fromRGB(199, 199, 199)  -- fog color (near)
      atmo.Decay = Color3.fromRGB(92, 92, 92)     -- fog color (far/horizon)
      atmo.Glare = 0           -- sun glare intensity (0-10)
      atmo.Haze = 0            -- atmospheric haze (0-10)
      atmo.Parent = Lighting
      ```
      
      ## Post-Processing Effects
      
      All post-processing goes as children of Lighting:
      
      ### BloomEffect
      ```luau
      local bloom = Instance.new("BloomEffect")
      bloom.Intensity = 0.5    -- glow strength (0-1)
      bloom.Size = 24          -- glow spread (pixels)
      bloom.Threshold = 0.8    -- brightness threshold to bloom (0-1)
      bloom.Parent = Lighting
      ```
      
      ### ColorCorrectionEffect
      ```luau
      local cc = Instance.new("ColorCorrectionEffect")
      cc.Brightness = 0        -- -1 to 1
      cc.Contrast = 0.1        -- -1 to 1
      cc.Saturation = 0.1      -- -1 to 1 (negative = desaturated)
      cc.TintColor = Color3.fromRGB(255, 255, 255) -- color overlay
      cc.Parent = Lighting
      ```
      
      ### DepthOfFieldEffect
      ```luau
      local dof = Instance.new("DepthOfFieldEffect")
      dof.FarIntensity = 0.3   -- blur at far distance
      dof.FocusDistance = 50    -- studs where focus is sharpest
      dof.InFocusRadius = 30   -- studs of sharp focus range
      dof.NearIntensity = 0    -- blur at near distance
      dof.Parent = Lighting
      ```
      
      ### SunRaysEffect
      ```luau
      local rays = Instance.new("SunRaysEffect")
      rays.Intensity = 0.1     -- ray visibility (0-1)
      rays.Spread = 0.5        -- ray spread angle (0-1)
      rays.Parent = Lighting
      ```
      
      ## Mood Presets
      
      ### Bright Day (default/casual)
      ```luau
      Lighting.ClockTime = 14
      Lighting.Brightness = 2
      Lighting.Ambient = Color3.fromRGB(128, 128, 128)
      Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
      -- Atmosphere: light haze
      atmo.Density = 0.2
      atmo.Offset = 0.5
      atmo.Color = Color3.fromRGB(200, 220, 255)
      ```
      
      ### Golden Hour (warm, cinematic)
      ```luau
      Lighting.ClockTime = 17.5
      Lighting.Brightness = 2
      Lighting.Ambient = Color3.fromRGB(80, 60, 40)
      Lighting.OutdoorAmbient = Color3.fromRGB(150, 120, 80)
      Lighting.ColorShift_Top = Color3.fromRGB(255, 200, 100)
      -- Atmosphere: warm fog
      atmo.Density = 0.3
      atmo.Offset = 0.3
      atmo.Color = Color3.fromRGB(255, 200, 150)
      atmo.Decay = Color3.fromRGB(200, 100, 50)
      -- Post: warm tint
      cc.TintColor = Color3.fromRGB(255, 240, 220)
      cc.Contrast = 0.1
      bloom.Intensity = 0.4
      bloom.Threshold = 0.7
      ```
      
      ### Night (dark, moody)
      ```luau
      Lighting.ClockTime = 0
      Lighting.Brightness = 0.5
      Lighting.Ambient = Color3.fromRGB(30, 30, 50)
      Lighting.OutdoorAmbient = Color3.fromRGB(20, 20, 40)
      -- Atmosphere: dark blue fog
      atmo.Density = 0.4
      atmo.Offset = 0.1
      atmo.Color = Color3.fromRGB(20, 20, 50)
      -- Post: blue tint, low saturation
      cc.TintColor = Color3.fromRGB(180, 190, 255)
      cc.Saturation = -0.2
      cc.Brightness = -0.05
      ```
      
      ### Horror (oppressive, claustrophobic)
      ```luau
      Lighting.ClockTime = 22
      Lighting.Brightness = 0.3
      Lighting.Ambient = Color3.fromRGB(10, 10, 15)
      Lighting.OutdoorAmbient = Color3.fromRGB(5, 5, 10)
      Lighting.GlobalShadows = true
      Lighting.ShadowSoftness = 0.1 -- sharp shadows = scarier
      -- Atmosphere: thick dark fog
      atmo.Density = 0.5
      atmo.Offset = 0
      atmo.Color = Color3.fromRGB(10, 10, 10)
      -- Post: desaturated, dark
      cc.Saturation = -0.4
      cc.Contrast = 0.2
      cc.Brightness = -0.1
      -- No bloom (bloom = cheerful)
      ```
      
      ### Underwater
      ```luau
      Lighting.ClockTime = 12
      Lighting.Brightness = 1
      Lighting.Ambient = Color3.fromRGB(20, 60, 80)
      -- Atmosphere: heavy blue-green
      atmo.Density = 0.7
      atmo.Offset = 0
      atmo.Color = Color3.fromRGB(30, 100, 120)
      atmo.Decay = Color3.fromRGB(10, 40, 60)
      -- Post: blue tint, blur
      cc.TintColor = Color3.fromRGB(150, 200, 255)
      cc.Saturation = -0.3
      -- DepthOfField for murky distance
      dof.FarIntensity = 0.5
      dof.FocusDistance = 30
      dof.InFocusRadius = 20
      ```
      
      ### Sci-Fi (clean, high-tech)
      ```luau
      Lighting.ClockTime = 12
      Lighting.Brightness = 3
      Lighting.Ambient = Color3.fromRGB(100, 100, 120)
      -- Atmosphere: minimal, clean
      atmo.Density = 0.1
      atmo.Color = Color3.fromRGB(200, 210, 255)
      -- Post: slight blue, high contrast
      cc.TintColor = Color3.fromRGB(230, 240, 255)
      cc.Contrast = 0.15
      bloom.Intensity = 0.6
      bloom.Threshold = 0.6
      bloom.Size = 30
      ```
      
      ## Dynamic Lighting
      
      ### Day/Night Cycle
      
      ```luau
      local CYCLE_SPEED = 1 -- minutes per full day (1 = fast, 24 = real-time)
      
      task.spawn(function()
          while true do
              Lighting.ClockTime += (task.wait() / 60) * (24 / CYCLE_SPEED)
              if Lighting.ClockTime >= 24 then
                  Lighting.ClockTime -= 24
              end
          end
      end)
      ```
      
      ### Zone-Based Lighting (indoor/outdoor)
      
      ```luau
      -- Client: tween lighting when entering zones
      local function transitionToIndoor()
          TweenService:Create(Lighting, TweenInfo.new(1), {
              Brightness = 1,
              Ambient = Color3.fromRGB(100, 90, 70),
          }):Play()
          TweenService:Create(atmo, TweenInfo.new(1), {
              Density = 0,
          }):Play()
      end
      
      local function transitionToOutdoor()
          TweenService:Create(Lighting, TweenInfo.new(1), {
              Brightness = 2,
              Ambient = Color3.fromRGB(128, 128, 128),
          }):Play()
          TweenService:Create(atmo, TweenInfo.new(1), {
              Density = 0.3,
          }):Play()
      end
      ```
      
      ## Local Lights
      
      ### Light Types
      
      | Light | Use for | Key properties |
      |-------|---------|---------------|
      | `PointLight` | Lamps, torches, orbs | Range, Brightness, Color |
      | `SpotLight` | Flashlights, stage lights | Range, Angle, Face |
      | `SurfaceLight` | Screens, panels, signs | Range, Angle, Face |
      
      ### Practical Light Setup
      
      ```luau
      local function createTorch(part: BasePart)
          -- Neon glow (visual only, no actual light)
          part.Material = Enum.Material.Neon
          part.Color = Color3.fromRGB(255, 150, 50)
      
          -- Actual light emission
          local light = Instance.new("PointLight")
          light.Color = Color3.fromRGB(255, 170, 80)
          light.Brightness = 2
          light.Range = 20
          light.Shadows = true -- expensive, use sparingly
          light.Parent = part
      end
      ```
      
      ### Performance Note
      
      - Shadows on lights are expensive. Limit to 4-6 shadow-casting lights visible at once.
      - PointLight.Shadows = false is much cheaper than true.
      - Use Neon material for visual glow without the performance cost of actual lights.
      - On mobile, consider disabling light shadows entirely.
      
      ## Common Mistakes
      
      - **Brightness too high**: Values above 3 wash out everything. Start at 2.
      - **Atmosphere Density too high**: Above 0.5 makes everything look like soup. Subtle is better.
      - **Too many post-processing effects**: Each one costs frame time. Pick 2-3 max.
      - **Bloom on everything**: High bloom + low threshold = everything glows. Use threshold > 0.7.
      - **No Ambient light**: Setting Ambient to black makes shadows pitch black (unrealistic). Always have some fill.
      - **Lighting technology settings**: `Technology` is deprecated and not script-writable. `LightingStyle` and `PrioritizeLightingQuality` are script-writable according to current Creator Hub metadata. Configure them deliberately and check the result on desktop and mobile.
      - **Stacking ColorCorrection**: Multiple ColorCorrectionEffects multiply. Use one and tween its properties.
      - **Not testing on mobile**: Lighting that looks great on desktop can be invisible or washed out on mobile screens.
      
  • SKILL.md 2.9 KB
    ---
    name: roblox-lighting
    description: "Use for Roblox lighting, atmosphere, day/night, or post-processing effects."
    last_reviewed: 2026-07-26
    sources:
      - https://raw.githubusercontent.com/Roblox/creator-docs/main/content/en-us/environment/lighting.md
      - https://raw.githubusercontent.com/Roblox/creator-docs/main/content/en-us/environment/atmosphere.md
      - https://raw.githubusercontent.com/Roblox/creator-docs/main/content/en-us/environment/post-processing-effects.md
    ---
    
    # Roblox Lighting & Atmosphere
    
    ## When to Load
    
    Load for Roblox lighting, atmosphere, day/night, or post-processing (Bloom, ColorCorrection, DepthOfField).
    
    ## Quick Reference
    
    ### Lighting Service
    ```luau
    Lighting.ClockTime = 14            -- 0-24 numeric
    Lighting.Brightness = 2            -- 0-10, default 2
    Lighting.Ambient = Color3.fromRGB(70, 70, 70)        -- shadow fill
    Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
    Lighting.GlobalShadows = true
    Lighting.ShadowSoftness = 0.2      -- 0=sharp, 1=soft
    -- Configure tech/style/quality in Studio; these properties are not script-writable.
    -- Verify enum values and device behavior against current Creator Hub docs before setting them.
    ```
    
    ### Atmosphere
    ```luau
    local atmo = Instance.new("Atmosphere")
    atmo.Density = 0.3    -- 0=clear, 1=opaque (keep <0.5)
    atmo.Offset = 0.25    -- 0=ground, 1=sky
    atmo.Color = Color3.fromRGB(199, 199, 199)   -- near fog
    atmo.Decay = Color3.fromRGB(92, 92, 92)      -- far/horizon
    atmo.Glare = 0        -- 0-10
    atmo.Haze = 0         -- 0-10
    atmo.Parent = Lighting
    ```
    
    ### Post-Processing (all parented to Lighting)
    | Effect | Key Properties |
    |--------|---------------|
    | `BloomEffect` | Intensity (0-1), Size (px), Threshold (>0.7 recommended) |
    | `ColorCorrectionEffect` | Brightness, Contrast, Saturation (-1 to 1), TintColor |
    | `DepthOfFieldEffect` | FarIntensity, FocusDistance, InFocusRadius, NearIntensity |
    | `SunRaysEffect` | Intensity (0-1), Spread (0-1) |
    
    ### Day/Night Cycle
    ```luau
    local CYCLE_SPEED = 1  -- minutes per full day
    task.spawn(function()
        while true do
            Lighting.ClockTime += (task.wait() / 60) * (24 / CYCLE_SPEED)
            if Lighting.ClockTime >= 24 then Lighting.ClockTime -= 24 end
        end
    end)
    ```
    
    ### Local Lights
    | Light | Use | Key Props |
    |-------|-----|-----------|
    | `PointLight` | Lamps, torches | Range, Brightness, Color |
    | `SpotLight` | Flashlights | Range, Angle, Face |
    | `SurfaceLight` | Screens, panels | Range, Angle, Face |
    
    **Perf:** Limit shadow-casting lights to 4-6 visible. Use `Shadows=false` on most. Neon material = cheap glow.
    
    **MCP:** Inspect, change minimally, capture, check performance.
    
    ### Common Pitfalls
    - Brightness >3 washes out. Density >0.5 = soup. Max 2-3 post effects.
    - Avoid black Ambient. Technology is deprecated; it and its replacements are Studio-only.
    
    ### References
    - Mood presets (Day, Golden Hour, Night, Horror, Underwater, Sci-Fi), zone tweens, full examples: `references/full.md`
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related