Skip to content

Hooks

This document describes the hooks available in the HUD Extras module for managing additional HUD elements and effects.


AdjustBlurAmount

Purpose

Called to adjust the blur amount for HUD effects.

Parameters

  • blurGoal (number): The current blur goal value.

Realm

Client.

When Called

This hook is triggered when: - HUD blur effects are being calculated - Before the blur is applied to the screen - During the blur rendering process

Example Usage

-- Adjust blur amount based on player state
hook.Add("AdjustBlurAmount", "AdjustBlurBasedOnPlayerState", function(blurGoal)
    local char = LocalPlayer():getChar()
    if char then
        -- Increase blur if player is injured
        if LocalPlayer():Health() < 50 then
            return blurGoal + 20
        end

        -- Increase blur if player is drunk
        if char:getData("drunk", false) then
            return blurGoal + 30
        end

        -- Increase blur if player is in a restricted area
        if char:getData("in_restricted_area", false) then
            return blurGoal + 10
        end
    end

    return blurGoal
end)

-- Track blur adjustments
hook.Add("AdjustBlurAmount", "TrackBlurAdjustments", function(blurGoal)
    local char = LocalPlayer():getChar()
    if char then
        local blurAdjustments = char:getData("blur_adjustments", 0)
        char:setData("blur_adjustments", blurAdjustments + 1)
    end
end)

-- Apply blur adjustment effects
hook.Add("AdjustBlurAmount", "BlurAdjustmentEffects", function(blurGoal)
    -- Play blur adjustment sound
    LocalPlayer():EmitSound("ui/buttonclick.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(255, 255, 0, 5), 0.1, 0)
end)

HUDExtrasPostDrawBlur

Purpose

Called after blur effects are drawn on the HUD.

Parameters

  • blurValue (number): The blur value that was applied.

Realm

Client.

When Called

This hook is triggered when: - Blur effects have been drawn on the HUD - After HUDExtrasPreDrawBlur hook - When blur rendering is complete

Example Usage

-- Track blur drawing completion
hook.Add("HUDExtrasPostDrawBlur", "TrackBlurDrawingCompletion", function(blurValue)
    local char = LocalPlayer():getChar()
    if char then
        local blurDrawings = char:getData("blur_drawings", 0)
        char:setData("blur_drawings", blurDrawings + 1)
    end
end)

-- Apply post-blur drawing effects
hook.Add("HUDExtrasPostDrawBlur", "PostBlurDrawingEffects", function(blurValue)
    -- Play completion sound
    LocalPlayer():EmitSound("buttons/button14.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(0, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Blur effect applied!")
end)

-- Track blur drawing statistics
hook.Add("HUDExtrasPostDrawBlur", "TrackBlurDrawingStats", function(blurValue)
    local char = LocalPlayer():getChar()
    if char then
        -- Track drawing frequency
        local drawingFrequency = char:getData("blur_drawing_frequency", 0)
        char:setData("blur_drawing_frequency", drawingFrequency + 1)

        -- Track drawing patterns
        local drawingPatterns = char:getData("blur_drawing_patterns", {})
        table.insert(drawingPatterns, {
            value = blurValue,
            time = os.time()
        })
        char:setData("blur_drawing_patterns", drawingPatterns)
    end
end)

HUDExtrasPostDrawFPS

Purpose

Called after FPS counter is drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - FPS counter has been drawn on the HUD - After HUDExtrasPreDrawFPS hook - When FPS rendering is complete

Example Usage

-- Track FPS drawing completion
hook.Add("HUDExtrasPostDrawFPS", "TrackFPSDrawingCompletion", function()
    local char = LocalPlayer():getChar()
    if char then
        local fpsDrawings = char:getData("fps_drawings", 0)
        char:setData("fps_drawings", fpsDrawings + 1)
    end
end)

-- Apply post-FPS drawing effects
hook.Add("HUDExtrasPostDrawFPS", "PostFPSDrawingEffects", function()
    -- Play completion sound
    LocalPlayer():EmitSound("buttons/button14.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(0, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("FPS counter drawn!")
end)

-- Track FPS drawing statistics
hook.Add("HUDExtrasPostDrawFPS", "TrackFPSDrawingStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track drawing frequency
        local drawingFrequency = char:getData("fps_drawing_frequency", 0)
        char:setData("fps_drawing_frequency", drawingFrequency + 1)

        -- Track drawing patterns
        local drawingPatterns = char:getData("fps_drawing_patterns", {})
        table.insert(drawingPatterns, {
            time = os.time()
        })
        char:setData("fps_drawing_patterns", drawingPatterns)
    end
end)

HUDExtrasPostDrawVignette

Purpose

Called after vignette effects are drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - Vignette effects have been drawn on the HUD - After HUDExtrasPreDrawVignette hook - When vignette rendering is complete

Example Usage

-- Track vignette drawing completion
hook.Add("HUDExtrasPostDrawVignette", "TrackVignetteDrawingCompletion", function()
    local char = LocalPlayer():getChar()
    if char then
        local vignetteDrawings = char:getData("vignette_drawings", 0)
        char:setData("vignette_drawings", vignetteDrawings + 1)
    end
end)

-- Apply post-vignette drawing effects
hook.Add("HUDExtrasPostDrawVignette", "PostVignetteDrawingEffects", function()
    -- Play completion sound
    LocalPlayer():EmitSound("buttons/button14.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(0, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Vignette effect drawn!")
end)

-- Track vignette drawing statistics
hook.Add("HUDExtrasPostDrawVignette", "TrackVignetteDrawingStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track drawing frequency
        local drawingFrequency = char:getData("vignette_drawing_frequency", 0)
        char:setData("vignette_drawing_frequency", drawingFrequency + 1)

        -- Track drawing patterns
        local drawingPatterns = char:getData("vignette_drawing_patterns", {})
        table.insert(drawingPatterns, {
            time = os.time()
        })
        char:setData("vignette_drawing_patterns", drawingPatterns)
    end
end)

HUDExtrasPostDrawWatermark

Purpose

Called after watermark is drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - Watermark has been drawn on the HUD - After HUDExtrasPreDrawWatermark hook - When watermark rendering is complete

Example Usage

-- Track watermark drawing completion
hook.Add("HUDExtrasPostDrawWatermark", "TrackWatermarkDrawingCompletion", function()
    local char = LocalPlayer():getChar()
    if char then
        local watermarkDrawings = char:getData("watermark_drawings", 0)
        char:setData("watermark_drawings", watermarkDrawings + 1)
    end
end)

-- Apply post-watermark drawing effects
hook.Add("HUDExtrasPostDrawWatermark", "PostWatermarkDrawingEffects", function()
    -- Play completion sound
    LocalPlayer():EmitSound("buttons/button14.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(0, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Watermark drawn!")
end)

-- Track watermark drawing statistics
hook.Add("HUDExtrasPostDrawWatermark", "TrackWatermarkDrawingStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track drawing frequency
        local drawingFrequency = char:getData("watermark_drawing_frequency", 0)
        char:setData("watermark_drawing_frequency", drawingFrequency + 1)

        -- Track drawing patterns
        local drawingPatterns = char:getData("watermark_drawing_patterns", {})
        table.insert(drawingPatterns, {
            time = os.time()
        })
        char:setData("watermark_drawing_patterns", drawingPatterns)
    end
end)

HUDExtrasPreDrawBlur

Purpose

Called before blur effects are drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - Blur effects are about to be drawn on the HUD - Before any blur rendering begins - Before HUDExtrasPostDrawBlur hook

Example Usage

-- Track blur drawing preparation
hook.Add("HUDExtrasPreDrawBlur", "TrackBlurDrawingPreparation", function()
    local char = LocalPlayer():getChar()
    if char then
        local blurPreparations = char:getData("blur_preparations", 0)
        char:setData("blur_preparations", blurPreparations + 1)
    end
end)

-- Apply pre-blur drawing effects
hook.Add("HUDExtrasPreDrawBlur", "PreBlurDrawingEffects", function()
    -- Play preparation sound
    LocalPlayer():EmitSound("ui/buttonclick.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(255, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Preparing blur effect...")
end)

-- Track blur drawing preparation statistics
hook.Add("HUDExtrasPreDrawBlur", "TrackBlurDrawingPreparationStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track preparation frequency
        local preparationFrequency = char:getData("blur_preparation_frequency", 0)
        char:setData("blur_preparation_frequency", preparationFrequency + 1)

        -- Track preparation patterns
        local preparationPatterns = char:getData("blur_preparation_patterns", {})
        table.insert(preparationPatterns, {
            time = os.time()
        })
        char:setData("blur_preparation_patterns", preparationPatterns)
    end
end)

HUDExtrasPreDrawFPS

Purpose

Called before FPS counter is drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - FPS counter is about to be drawn on the HUD - Before any FPS rendering begins - Before HUDExtrasPostDrawFPS hook

Example Usage

-- Track FPS drawing preparation
hook.Add("HUDExtrasPreDrawFPS", "TrackFPSDrawingPreparation", function()
    local char = LocalPlayer():getChar()
    if char then
        local fpsPreparations = char:getData("fps_preparations", 0)
        char:setData("fps_preparations", fpsPreparations + 1)
    end
end)

-- Apply pre-FPS drawing effects
hook.Add("HUDExtrasPreDrawFPS", "PreFPSDrawingEffects", function()
    -- Play preparation sound
    LocalPlayer():EmitSound("ui/buttonclick.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(255, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Preparing FPS counter...")
end)

-- Track FPS drawing preparation statistics
hook.Add("HUDExtrasPreDrawFPS", "TrackFPSDrawingPreparationStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track preparation frequency
        local preparationFrequency = char:getData("fps_preparation_frequency", 0)
        char:setData("fps_preparation_frequency", preparationFrequency + 1)

        -- Track preparation patterns
        local preparationPatterns = char:getData("fps_preparation_patterns", {})
        table.insert(preparationPatterns, {
            time = os.time()
        })
        char:setData("fps_preparation_patterns", preparationPatterns)
    end
end)

HUDExtrasPreDrawVignette

Purpose

Called before vignette effects are drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - Vignette effects are about to be drawn on the HUD - Before any vignette rendering begins - Before HUDExtrasPostDrawVignette hook

Example Usage

-- Track vignette drawing preparation
hook.Add("HUDExtrasPreDrawVignette", "TrackVignetteDrawingPreparation", function()
    local char = LocalPlayer():getChar()
    if char then
        local vignettePreparations = char:getData("vignette_preparations", 0)
        char:setData("vignette_preparations", vignettePreparations + 1)
    end
end)

-- Apply pre-vignette drawing effects
hook.Add("HUDExtrasPreDrawVignette", "PreVignetteDrawingEffects", function()
    -- Play preparation sound
    LocalPlayer():EmitSound("ui/buttonclick.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(255, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Preparing vignette effect...")
end)

-- Track vignette drawing preparation statistics
hook.Add("HUDExtrasPreDrawVignette", "TrackVignetteDrawingPreparationStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track preparation frequency
        local preparationFrequency = char:getData("vignette_preparation_frequency", 0)
        char:setData("vignette_preparation_frequency", preparationFrequency + 1)

        -- Track preparation patterns
        local preparationPatterns = char:getData("vignette_preparation_patterns", {})
        table.insert(preparationPatterns, {
            time = os.time()
        })
        char:setData("vignette_preparation_patterns", preparationPatterns)
    end
end)

HUDExtrasPreDrawWatermark

Purpose

Called before watermark is drawn on the HUD.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - Watermark is about to be drawn on the HUD - Before any watermark rendering begins - Before HUDExtrasPostDrawWatermark hook

Example Usage

-- Track watermark drawing preparation
hook.Add("HUDExtrasPreDrawWatermark", "TrackWatermarkDrawingPreparation", function()
    local char = LocalPlayer():getChar()
    if char then
        local watermarkPreparations = char:getData("watermark_preparations", 0)
        char:setData("watermark_preparations", watermarkPreparations + 1)
    end
end)

-- Apply pre-watermark drawing effects
hook.Add("HUDExtrasPreDrawWatermark", "PreWatermarkDrawingEffects", function()
    -- Play preparation sound
    LocalPlayer():EmitSound("ui/buttonclick.wav", 75, 100)

    -- Apply screen effect
    LocalPlayer():ScreenFade(SCREENFADE.IN, Color(255, 255, 0, 5), 0.1, 0)

    -- Notify player
    LocalPlayer():notify("Preparing watermark...")
end)

-- Track watermark drawing preparation statistics
hook.Add("HUDExtrasPreDrawWatermark", "TrackWatermarkDrawingPreparationStats", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Track preparation frequency
        local preparationFrequency = char:getData("watermark_preparation_frequency", 0)
        char:setData("watermark_preparation_frequency", preparationFrequency + 1)

        -- Track preparation patterns
        local preparationPatterns = char:getData("watermark_preparation_patterns", {})
        table.insert(preparationPatterns, {
            time = os.time()
        })
        char:setData("watermark_preparation_patterns", preparationPatterns)
    end
end)

ShouldDrawBlur

Purpose

Called to determine if blur effects should be drawn.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - HUD blur effects are being checked - Before any blur rendering - During the blur drawing process

Example Usage

-- Control blur drawing
hook.Add("ShouldDrawBlur", "ControlBlurDrawing", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Check if blur is disabled
        if char:getData("blur_disabled", false) then
            return false
        end

        -- Check if player is in a restricted area
        if char:getData("in_restricted_area", false) then
            return false
        end

        -- Check if player is in a vehicle
        if LocalPlayer():InVehicle() then
            return false
        end

        -- Check if player is in water
        if LocalPlayer():WaterLevel() >= 2 then
            return false
        end
    end

    return true
end)

-- Track blur drawing checks
hook.Add("ShouldDrawBlur", "TrackBlurDrawingChecks", function()
    local char = LocalPlayer():getChar()
    if char then
        local blurChecks = char:getData("blur_checks", 0)
        char:setData("blur_checks", blurChecks + 1)
    end
end)

-- Apply blur drawing check effects
hook.Add("ShouldDrawBlur", "BlurDrawingCheckEffects", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Check if blur is disabled
        if char:getData("blur_disabled", false) then
            LocalPlayer():notify("Blur is disabled!")
        end
    end
end)

ShouldDrawWatermark

Purpose

Called to determine if watermark should be drawn.

Parameters

None.

Realm

Client.

When Called

This hook is triggered when: - HUD watermark is being checked - Before any watermark rendering - During the watermark drawing process

Example Usage

-- Control watermark drawing
hook.Add("ShouldDrawWatermark", "ControlWatermarkDrawing", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Check if watermark is disabled
        if char:getData("watermark_disabled", false) then
            return false
        end

        -- Check if player is in a restricted area
        if char:getData("in_restricted_area", false) then
            return false
        end

        -- Check if player is in a vehicle
        if LocalPlayer():InVehicle() then
            return false
        end

        -- Check if player is in water
        if LocalPlayer():WaterLevel() >= 2 then
            return false
        end
    end

    return true
end)

-- Track watermark drawing checks
hook.Add("ShouldDrawWatermark", "TrackWatermarkDrawingChecks", function()
    local char = LocalPlayer():getChar()
    if char then
        local watermarkChecks = char:getData("watermark_checks", 0)
        char:setData("watermark_checks", watermarkChecks + 1)
    end
end)

-- Apply watermark drawing check effects
hook.Add("ShouldDrawWatermark", "WatermarkDrawingCheckEffects", function()
    local char = LocalPlayer():getChar()
    if char then
        -- Check if watermark is disabled
        if char:getData("watermark_disabled", false) then
            LocalPlayer():notify("Watermark is disabled!")
        end
    end
end)