Skip to content

Client-Side Hooks

Client-side hook system for the Lilia framework.


Overview

Client-side hooks in the Lilia framework handle UI, rendering, input, and other client-specific functionality; they can be used to customize the user experience and can be overridden or extended by addons and modules.


AddBarField(sectionName, fieldName, labelText, minFunc, maxFunc, valueFunc)

Register a dynamic bar entry to show in the character information panel (e.g., stamina or custom stats).

During character info build, before the F1 menu renders the bar sections.

Parameters:

string sectionName Localized or raw section label to group the bar under.

string fieldName Unique key for the bar entry.

string labelText Text shown next to the bar.

function minFunc Callback returning the minimum numeric value.

function maxFunc Callback returning the maximum numeric value.

function valueFunc Callback returning the current numeric value to display.

Example Usage:

    hook.Add("AddBarField", "ExampleAddBarField", function(...)
        -- add custom client-side behavior
    end)

AddSection(sectionName, color, priority, location)

Ensure a character information section exists and optionally override its styling and position.

When the F1 character info UI is initialized or refreshed.

Parameters:

string sectionName Localized or raw name of the section (e.g., “generalInfo”).

Color color Accent color used for the section header.

number priority Sort order; lower numbers appear first.

number location Column index in the character info layout.

Example Usage:

    hook.Add("AddSection", "ExampleAddSection", function(...)
        -- add custom client-side behavior
    end)

AddTextField(sectionName, fieldName, labelText, valueFunc)

Register a text field for the character information panel.

While building character info just before the F1 menu renders.

Parameters:

string sectionName Target section to append the field to.

string fieldName Unique identifier for the field.

string labelText Caption displayed before the value.

function valueFunc Callback that returns the string to render.

Example Usage:

    hook.Add("AddTextField", "ExampleAddTextField", function(...)
        -- add custom client-side behavior
    end)

AddToAdminStickHUD(client, target, information)

Add extra lines to the on-screen admin-stick HUD that appears while aiming with the admin stick.

Each HUDPaint tick when the admin stick is active and a target is valid.

Parameters:

Player client Local player using the admin stick.

Entity target Entity currently traced by the admin stick.

table information Table of strings; insert new lines to show additional info.

Example Usage:

    hook.Add("AddToAdminStickHUD", "ExampleAddToAdminStickHUD", function(...)
        -- add custom client-side behavior
    end)

AdminPrivilegesUpdated()

React to privilege list updates pushed from the server (used by the admin stick UI).

After the server syncs admin privilege changes to the client.

Example Usage:

    hook.Add("AdminPrivilegesUpdated", "ExampleAdminPrivilegesUpdated", function(...)
        -- add custom client-side behavior
    end)

AdminStickAddModels(allModList, tgt)

Provide model and icon overrides for the admin stick spawn menu list.

When the admin stick UI collects available models and props to display.

Parameters:

table allModList Table of model entries to be displayed; append or modify entries here.

Entity tgt Entity currently targeted by the admin stick.

Example Usage:

    hook.Add("AdminStickAddModels", "ExampleAdminStickAddModels", function(...)
        -- add custom client-side behavior
    end)

CanDeleteChar(client, character)

Decide whether a client is allowed to delete a specific character.

When the delete character button is pressed in the character menu.

Parameters:

Player client Player requesting the deletion.

Character|table character Character object slated for deletion.

Returns:

boolean false to block deletion; nil/true to allow.

Example Usage:

    hook.Add("CanDeleteChar", "ExampleCanDeleteChar", function(...)
        -- add custom client-side behavior
    end)

CanDisplayCharInfo(name)

Control whether the name above a character can be shown to the local player.

Before drawing a player’s overhead information.

Parameters:

string name The formatted name that would be displayed.

Returns:

boolean false to hide the name; nil/true to show.

Example Usage:

    hook.Add("CanDisplayCharInfo", "ExampleCanDisplayCharInfo", function(...)
        -- add custom client-side behavior
    end)

CanOpenBagPanel(item)

Allow or block opening the bag inventory panel for a specific item.

When a bag or storage item icon is activated to open its contents.

Parameters:

Item item The bag item whose inventory is being opened.

Returns:

boolean false to prevent opening; nil/true to allow.

Example Usage:

    hook.Add("CanOpenBagPanel", "ExampleCanOpenBagPanel", function(...)
        -- add custom client-side behavior
    end)

CanPlayerOpenScoreboard(arg1)

Decide whether the scoreboard should open for the requesting client.

When the scoreboard key is pressed and before building the panel.

Parameters:

Player arg1 Player attempting to open the scoreboard.

Returns:

boolean false to block; nil/true to show.

Example Usage:

    hook.Add("CanPlayerOpenScoreboard", "ExampleCanPlayerOpenScoreboard", function(...)
        -- add custom client-side behavior
    end)

CanTakeEntity(client, targetEntity, itemUniqueID)

Determines if a player can take/convert an entity into an item.

Before attempting to convert an entity into an item using the take entity keybind.

Parameters:

Player client The player attempting to take the entity.

Entity targetEntity The entity being targeted for conversion.

string itemUniqueID The unique ID of the item that would be created.

Returns:

boolean False to prevent taking the entity; nil/true to allow.

Example Usage:

    hook.Add("CanTakeEntity", "RestrictEntityTaking", function(client, targetEntity, itemUniqueID)
        if targetEntity:IsPlayer() then return false end
        return true
    end)

CanPlayerViewInventory()

Determine if the local player can open their inventory UI.

Before spawning any inventory window.

Returns:

boolean false to stop the inventory from opening; nil/true to allow.

Example Usage:

    hook.Add("CanPlayerViewInventory", "ExampleCanPlayerViewInventory", function(...)
        -- add custom client-side behavior
    end)

CharListColumns(columns)

Add or adjust columns in the character list panel.

Right before the character selection table is rendered.

Parameters:

table columns Table of column definitions; modify in place to add/remove columns.

Example Usage:

    hook.Add("CharListColumns", "ExampleCharListColumns", function(...)
        -- add custom client-side behavior
    end)

CharListEntry(entry, row)

Modify how each character entry renders in the character list.

For every row when the character list is constructed.

Parameters:

table entry Data for the character (id, name, faction, etc.).

Panel row The row panel being built.

Example Usage:

    hook.Add("CharListEntry", "ExampleCharListEntry", function(...)
        -- add custom client-side behavior
    end)

CharListLoaded(newCharList)

Seed character info sections and fields after the client receives the character list.

Once the client finishes downloading the character list from the server.

Parameters:

table newCharList Array of character summaries.

Example Usage:

    hook.Add("CharListLoaded", "ExampleCharListLoaded", function(...)
        -- add custom client-side behavior
    end)

CharListUpdated(oldCharList, newCharList)

React to changes between the old and new character lists.

After the server sends an updated character list (e.g., after delete/create).

Parameters:

table oldCharList Previous list snapshot.

table newCharList Updated list snapshot.

Example Usage:

    hook.Add("CharListUpdated", "ExampleCharListUpdated", function(...)
        -- add custom client-side behavior
    end)

CharLoaded(character)

Handle local initialization once a character has fully loaded on the client.

After the server confirms the character load and sets netvars.

Parameters:

Character|number character Character object or id that was loaded.

Example Usage:

    hook.Add("CharLoaded", "ExampleCharLoaded", function(...)
        -- add custom client-side behavior
    end)

CharMenuClosed()

Cleanup or state changes when the character menu is closed.

Right after the character menu panel is removed.

Example Usage:

    hook.Add("CharMenuClosed", "ExampleCharMenuClosed", function(...)
        -- add custom client-side behavior
    end)

CharMenuOpened(charMenu)

Perform setup each time the character menu is opened.

Immediately after constructing the character menu panel.

Parameters:

Panel charMenu The created menu panel.

Example Usage:

    hook.Add("CharMenuOpened", "ExampleCharMenuOpened", function(...)
        -- add custom client-side behavior
    end)

CharRestored(character)

Handle client-side work after a character is restored from deletion.

When the server finishes restoring a deleted character.

Parameters:

Character|number character The restored character object or id.

Example Usage:

    hook.Add("CharRestored", "ExampleCharRestored", function(...)
        -- add custom client-side behavior
    end)

ChatAddText(text)

Override how chat text is appended to the chat box.

Whenever chat text is about to be printed locally.

Parameters:

any text First argument passed to chat.AddText.

Example Usage:

    hook.Add("ChatAddText", "ExampleChatAddText", function(...)
        -- add custom client-side behavior
    end)

ChatboxPanelCreated(arg1)

Adjust the chatbox panel right after it is created.

Once the chat UI instance is built client-side.

Parameters:

Panel arg1 The chatbox panel instance.

Example Usage:

    hook.Add("ChatboxPanelCreated", "ExampleChatboxPanelCreated", function(...)
        -- add custom client-side behavior
    end)

ChatboxTextAdded(arg1)

Intercept a newly added chat line before it renders in the chatbox.

After chat text is parsed but before it is drawn in the panel.

Parameters:

Panel arg1 Chat panel or message object being added.

Example Usage:

    hook.Add("ChatboxTextAdded", "ExampleChatboxTextAdded", function(...)
        -- add custom client-side behavior
    end)

ChooseCharacter(id)

Respond to character selection from the list.

When a user clicks the play button on a character slot.

Parameters:

number id The selected character’s id.

Example Usage:

    hook.Add("ChooseCharacter", "ExampleChooseCharacter", function(...)
        -- add custom client-side behavior
    end)

CommandRan(client, command, arg3, results)

React after a command finishes executing client-side.

Immediately after a console/chat command is processed on the client.

Parameters:

Player client Player who ran the command.

string command Command name.

table|string arg3 Arguments or raw text passed.

any results Return data from the command handler, if any.

Example Usage:

    hook.Add("CommandRan", "ExampleCommandRan", function(...)
        -- add custom client-side behavior
    end)

ConfigureCharacterCreationSteps(creationPanel)

Reorder or add steps to the character creation wizard.

When the creation UI is building its step list.

Parameters:

Panel creationPanel The root creation panel containing step definitions.

Example Usage:

    hook.Add("ConfigureCharacterCreationSteps", "ExampleConfigureCharacterCreationSteps", function(...)
        -- add custom client-side behavior
    end)

CreateCharacter(data)

Validate or mutate character data immediately before it is submitted to the server.

When the user presses the final create/submit button.

Parameters:

table data Character creation payload (name, model, faction, etc.).

Returns:

boolean false to abort submission; nil/true to continue.

Example Usage:

    hook.Add("CreateCharacter", "ExampleCreateCharacter", function(...)
        -- add custom client-side behavior
    end)

CreateChatboxPanel()

Called when the chatbox panel needs to be created or recreated.

When the chatbox module initializes, when the chatbox panel is closed and needs to be reopened, or when certain chat-related events occur.

Example Usage:

    hook.Add("CreateChatboxPanel", "ExampleCreateChatboxPanel", function(...)
        -- add custom client-side behavior
    end)

CreateDefaultInventory(character)

Choose what inventory implementation to instantiate for a newly created character.

After the client finishes character creation but before the inventory is built.

Parameters:

Character character The character being initialized.

Returns:

string Inventory type id to create (e.g., “GridInv”).

Example Usage:

    hook.Add("CreateDefaultInventory", "ExampleCreateDefaultInventory", function(...)
        -- add custom client-side behavior
    end)

CreateInformationButtons(pages)

Populate the list of buttons for the Information tab in the F1 menu.

When the Information tab is created and ready to collect pages.

Parameters:

table pages Table of page descriptors; insert entries with name/icon/build function.

Example Usage:

    hook.Add("CreateInformationButtons", "ExampleCreateInformationButtons", function(...)
        -- add custom client-side behavior
    end)

CreateInventoryPanel(inventory, parent)

Build the root panel used for displaying an inventory instance.

Each time an inventory needs a panel representation.

Parameters:

Inventory inventory Inventory object to show.

Panel parent Parent UI element the panel should attach to.

Returns:

Panel The created inventory panel.

Example Usage:

    hook.Add("CreateInventoryPanel", "ExampleCreateInventoryPanel", function(...)
        -- add custom client-side behavior
    end)

CreateMenuButtons(tabs)

Register custom tabs for the F1 menu.

When the F1 menu initializes its tab definitions.

Parameters:

table tabs Table of tab constructors keyed by tab id; add new entries to inject tabs.

Example Usage:

    hook.Add("CreateMenuButtons", "ExampleCreateMenuButtons", function(...)
        -- add custom client-side behavior
    end)

DeleteCharacter(id)

Handle client-side removal of a character slot.

After a deletion request succeeds.

Parameters:

number id ID of the character that was removed.

Example Usage:

    hook.Add("DeleteCharacter", "ExampleDeleteCharacter", function(...)
        -- add custom client-side behavior
    end)

DermaSkinChanged(newSkin)

React when the active Derma skin changes client-side.

Immediately after the skin is switched.

Parameters:

string newSkin Name of the newly applied skin.

Example Usage:

    hook.Add("DermaSkinChanged", "ExampleDermaSkinChanged", function(...)
        -- add custom client-side behavior
    end)

DisplayPlayerHUDInformation(client, hudInfos)

Inject custom HUD info boxes into the player HUD.

Every HUDPaint frame while the player is alive and has a character.

Parameters:

Player client Local player.

table hudInfos Array to be filled with info tables (text, position, styling).

Example Usage:

    hook.Add("DisplayPlayerHUDInformation", "ExampleDisplayPlayerHUDInformation", function(...)
        -- add custom client-side behavior
    end)

DoorDataReceived(door, syncData)

Handle incoming door synchronization data from the server.

When the server sends door ownership or data updates.

Parameters:

Entity door Door entity being updated.

table syncData Data payload containing door state/owners.

Example Usage:

    hook.Add("DoorDataReceived", "ExampleDoorDataReceived", function(...)
        -- add custom client-side behavior
    end)

DrawCharInfo(client, character, info)

Add custom lines to the character info overlay drawn above players.

Right before drawing info for a player (name/description).

Parameters:

Player client Player whose info is being drawn.

Character character Character belonging to the player.

table info Array of `{text, color}` rows; append to extend display.

Example Usage:

    hook.Add("DrawCharInfo", "ExampleDrawCharInfo", function(...)
        -- add custom client-side behavior
    end)

DrawEntityInfo(e, a, pos)

Customize how entity information panels render in the world.

When an entity has been marked to display info and is being drawn.

Parameters:

Entity e Target entity.

number a Alpha value (0-255) for fade in/out.

table|Vector pos Screen position for the info panel (optional).

Example Usage:

    hook.Add("DrawEntityInfo", "ExampleDrawEntityInfo", function(...)
        -- add custom client-side behavior
    end)

DrawItemEntityInfo(itemEntity, item, infoTable, alpha)

Adjust or add lines for dropped item entity info.

When hovering/aiming at a dropped item that is rendering its info.

Parameters:

Entity itemEntity World entity representing the item.

Item item Item table attached to the entity.

table infoTable Lines describing the item; modify to add details.

number alpha Current alpha used for drawing.

Example Usage:

    hook.Add("DrawItemEntityInfo", "ExampleDrawItemEntityInfo", function(...)
        -- add custom client-side behavior
    end)

DrawLiliaModelView(client, entity)

Draw extra elements in the character preview model (e.g., held weapon).

When the character model view panel paints.

Parameters:

Player client Local player being previewed.

Entity entity The model panel entity.

Example Usage:

    hook.Add("DrawLiliaModelView", "ExampleDrawLiliaModelView", function(...)
        -- add custom client-side behavior
    end)

DrawPlayerRagdoll(entity)

Draw attachments or cosmetics on a player’s ragdoll entity.

During ragdoll RenderOverride when a player’s corpse is rendered.

Parameters:

Entity entity The ragdoll entity being drawn.

Example Usage:

    hook.Add("DrawPlayerRagdoll", "ExampleDrawPlayerRagdoll", function(...)
        -- add custom client-side behavior
    end)

F1MenuClosed()

React to the F1 menu closing.

Immediately after the F1 menu panel is removed.

Example Usage:

    hook.Add("F1MenuClosed", "ExampleF1MenuClosed", function(...)
        -- add custom client-side behavior
    end)

F1MenuOpened(f1MenuPanel)

Perform setup when the F1 menu opens.

Immediately after the F1 menu is created.

Parameters:

Panel f1MenuPanel The opened menu panel.

Example Usage:

    hook.Add("F1MenuOpened", "ExampleF1MenuOpened", function(...)
        -- add custom client-side behavior
    end)

FilterCharModels(arg1)

Whitelist or blacklist models shown in the character creation model list.

While building the selectable model list for character creation.

Parameters:

table arg1 Table of available model paths; mutate to filter.

Example Usage:

    hook.Add("FilterCharModels", "ExampleFilterCharModels", function(...)
        -- add custom client-side behavior
    end)

FilterDoorInfo(entity, doorData, doorInfo)

Adjust door information before it is shown on the HUD.

After door data is prepared for display but before drawing text.

Parameters:

Entity entity The door being inspected.

table doorData Raw door data (owners, title, etc.).

table doorInfo Table of display lines; mutate to change output.

Example Usage:

    hook.Add("FilterDoorInfo", "ExampleFilterDoorInfo", function(...)
        -- add custom client-side behavior
    end)

GetAdjustedPartData(wearer, id)

Provide PAC part data overrides before parts attach to a player.

When a PAC part is requested for attachment.

Parameters:

Player wearer Player the part will attach to.

string id Identifier for the part/item.

Returns:

table Adjusted part data; return nil to use cached defaults.

Example Usage:

    hook.Add("GetAdjustedPartData", "ExampleGetAdjustedPartData", function(...)
        -- add custom client-side behavior
    end)

GetCharacterCreateButtonTooltip(client, currentChars, maxChars)

Allows overriding the tooltip text for the character creation button.

When the character creation button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

number currentChars Number of characters the player currently has.

number maxChars Maximum number of characters allowed.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterCreateButtonTooltip", "ExampleGetCharacterCreateButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterDisconnectButtonTooltip(client)

Allows overriding the tooltip text for the character disconnect button.

When the character disconnect button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterDisconnectButtonTooltip", "ExampleGetCharacterDisconnectButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterDiscordButtonTooltip(client, discordURL)

Allows overriding the tooltip text for the Discord button.

When the Discord button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

string discordURL The Discord server URL.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterDiscordButtonTooltip", "ExampleGetCharacterDiscordButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterLoadButtonTooltip(client)

Allows overriding the tooltip text for the character load button.

When the character load button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterLoadButtonTooltip", "ExampleGetCharacterLoadButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterLoadMainButtonTooltip(client)

Allows overriding the tooltip text for the main character load button.

When the main character load button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterLoadMainButtonTooltip", "ExampleGetCharacterLoadMainButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterMountButtonTooltip(client)

Allows overriding the tooltip text for the character mount button.

When the character mount button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterMountButtonTooltip", "ExampleGetCharacterMountButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterReturnButtonTooltip(client)

Allows overriding the tooltip text for the character return button.

When the character return button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterReturnButtonTooltip", "ExampleGetCharacterReturnButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterStaffButtonTooltip(client, hasStaffChar)

Allows overriding the tooltip text for the staff character button.

When the staff character button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

boolean hasStaffChar Whether the player has a staff character.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterStaffButtonTooltip", "ExampleGetCharacterStaffButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetCharacterWorkshopButtonTooltip(client, workshopURL)

Allows overriding the tooltip text for the workshop button.

When the workshop button tooltip is being determined in the main menu.

Parameters:

Player client The player viewing the menu.

string workshopURL The workshop URL.

Returns:

string|nil Custom tooltip text, or nil to use default tooltip.

Example Usage:

    hook.Add("GetCharacterWorkshopButtonTooltip", "ExampleGetCharacterWorkshopButtonTooltip", function(...)
        -- add custom client-side behavior
    end)

GetAdminESPTarget(ent, client)

Choose the entity that admin ESP should highlight.

When the admin ESP overlay evaluates the current trace target.

Parameters:

Entity ent Entity under the admin’s crosshair.

Player client Admin requesting the ESP target.

Returns:

Entity|nil Replacement target entity, or nil to use the traced entity.

Example Usage:

    hook.Add("GetAdminESPTarget", "ExampleGetAdminESPTarget", function(...)
        -- add custom client-side behavior
    end)

GetAdminStickLists(tgt, lists)

Contribute additional tab lists for the admin stick menu.

While compiling list definitions for the admin stick UI.

Parameters:

Entity tgt Current admin stick target.

table lists Table of list definitions; append your own entries.

Example Usage:

    hook.Add("GetAdminStickLists", "ExampleGetAdminStickLists", function(...)
        -- add custom client-side behavior
    end)

GetDisplayedDescription(client, isHUD)

Override the description text shown for a player.

When building a player’s info panel for HUD or menus.

Parameters:

Player client Player being described.

boolean isHUD True when drawing the 3D HUD info; false for menus.

Returns:

string Description to display; return nil to use default.

Example Usage:

    hook.Add("GetDisplayedDescription", "ExampleGetDisplayedDescription", function(...)
        -- add custom client-side behavior
    end)

GetDoorInfo(entity, doorData, doorInfo)

Build or modify door info data before it is shown to players.

When a door is targeted and info lines are generated.

Parameters:

Entity entity Door entity.

table doorData Data about owners, titles, etc.

table doorInfo Display lines; modify to add/remove fields.

Example Usage:

    hook.Add("GetDoorInfo", "ExampleGetDoorInfo", function(...)
        -- add custom client-side behavior
    end)

GetDoorInfoForAdminStick(target, extraInfo)

Supply extra admin-only door info shown in the admin stick UI.

When the admin stick inspects a door and builds its detail view.

Parameters:

Entity target Door or entity being inspected.

table extraInfo Table of strings to display; append data here.

Example Usage:

    hook.Add("GetDoorInfoForAdminStick", "ExampleGetDoorInfoForAdminStick", function(...)
        -- add custom client-side behavior
    end)

GetInjuredText(c)

Return the localized injury descriptor and color for a player.

When drawing player info overlays that show health status.

Parameters:

Player c Target player.

Returns:

table `{text, color}` describing injury level, or nil to skip.

Example Usage:

    hook.Add("GetInjuredText", "ExampleGetInjuredText", function(...)
        -- add custom client-side behavior
    end)

GetMainCharacterID()

Decide which character ID should be treated as the “main” one for menus.

Before selecting or loading the default character in the main menu.

Returns:

number Character ID to treat as primary, or nil for default logic.

Example Usage:

    hook.Add("GetMainCharacterID", "ExampleGetMainCharacterID", function(...)
        -- add custom client-side behavior
    end)

GetMainMenuPosition(character)

Provide camera position/angles for the 3D main menu scene.

Each time the main menu loads and needs a camera transform.

Parameters:

Character character Character to base the position on.

Returns:

Vector, Angle Position and angle to use; return nils to use defaults.

Example Usage:

    hook.Add("GetMainMenuPosition", "ExampleGetMainMenuPosition", function(...)
        -- add custom client-side behavior
    end)

InteractionMenuClosed()

Handle logic when the interaction menu (context quick menu) closes.

Right after the interaction menu panel is removed.

Example Usage:

    hook.Add("InteractionMenuClosed", "ExampleInteractionMenuClosed", function(...)
        -- add custom client-side behavior
    end)

InteractionMenuOpened(frame)

Set up the interaction menu when it is created.

Immediately after the interaction menu frame is instantiated.

Parameters:

Panel frame The interaction menu frame.

Example Usage:

    hook.Add("InteractionMenuOpened", "ExampleInteractionMenuOpened", function(...)
        -- add custom client-side behavior
    end)

InterceptClickItemIcon(inventoryPanel, itemIcon, keyCode)

Intercept mouse/keyboard clicks on an inventory item icon.

Whenever an inventory icon receives an input event.

Parameters:

Panel inventoryPanel Panel hosting the inventory grid.

Panel itemIcon Icon that was clicked.

number keyCode Mouse or keyboard code that triggered the event.

Returns:

boolean true to consume the click and prevent default behavior.

Example Usage:

    hook.Add("InterceptClickItemIcon", "ExampleInterceptClickItemIcon", function(...)
        -- add custom client-side behavior
    end)

InventoryClosed(inventoryPanel, inventory)

React when an inventory window is closed.

Immediately after an inventory panel is removed.

Parameters:

Panel inventoryPanel The panel that was closed.

Inventory inventory Inventory instance tied to the panel.

Example Usage:

    hook.Add("InventoryClosed", "ExampleInventoryClosed", function(...)
        -- add custom client-side behavior
    end)

InventoryItemDataChanged(item, key, oldValue, newValue, inventory)

Respond to item data changes that arrive on the client.

After an item’s data table updates (networked from the server).

Parameters:

Item item The item that changed.

string key Data key that changed.

any oldValue Previous value.

any newValue New value.

Inventory inventory Inventory containing the item.

Example Usage:

    hook.Add("InventoryItemDataChanged", "ExampleInventoryItemDataChanged", function(...)
        -- add custom client-side behavior
    end)

InventoryItemIconCreated(icon, item, inventoryPanel)

Customize an inventory item icon immediately after it is created.

When a new icon panel is spawned for an item.

Parameters:

Panel icon Icon panel.

Item item Item represented by the icon.

Panel inventoryPanel Parent inventory panel.

Example Usage:

    hook.Add("InventoryItemIconCreated", "ExampleInventoryItemIconCreated", function(...)
        -- add custom client-side behavior
    end)

InventoryOpened(panel, inventory)

Handle logic after an inventory panel is opened.

When an inventory is displayed on screen.

Parameters:

Panel panel Inventory panel.

Inventory inventory Inventory instance.

Example Usage:

    hook.Add("InventoryOpened", "ExampleInventoryOpened", function(...)
        -- add custom client-side behavior
    end)

InventoryPanelCreated(panel, inventory, parent)

Customize the inventory panel when it is created.

Immediately after constructing a panel for an inventory.

Parameters:

Panel panel The new inventory panel.

Inventory inventory Inventory the panel represents.

Panel parent Parent container.

Example Usage:

    hook.Add("InventoryPanelCreated", "ExampleInventoryPanelCreated", function(...)
        -- add custom client-side behavior
    end)

ItemDraggedOutOfInventory(client, item)

Handle dragging an item outside of an inventory grid.

When an item is released outside valid slots.

Parameters:

Player client Local player performing the drag.

Item item Item being dragged.

Example Usage:

    hook.Add("ItemDraggedOutOfInventory", "ExampleItemDraggedOutOfInventory", function(...)
        -- add custom client-side behavior
    end)

ItemPaintOver(itemIcon, itemTable, w, h)

Draw overlays on an item’s icon (e.g., status markers).

During icon paint for each inventory slot.

Parameters:

Panel itemIcon Icon panel being drawn.

Item itemTable Item represented.

number w Icon width.

number h Icon height.

Example Usage:

    hook.Add("ItemPaintOver", "ExampleItemPaintOver", function(...)
        -- add custom client-side behavior
    end)

ItemShowEntityMenu(entity)

Show a context menu for a world item entity.

When the use key/menu key is pressed on a dropped item with actions.

Parameters:

Entity entity Item entity in the world.

Example Usage:

    hook.Add("ItemShowEntityMenu", "ExampleItemShowEntityMenu", function(...)
        -- add custom client-side behavior
    end)

LoadCharInformation()

Seed the character information sections for the F1 menu.

When the character info is about to be populated.

Example Usage:

    hook.Add("LoadCharInformation", "ExampleLoadCharInformation", function(...)
        -- add custom client-side behavior
    end)

LoadMainCharacter()

Select and load the player’s main character when the menu opens.

During main menu initialization if a saved main character exists.

Example Usage:

    hook.Add("LoadMainCharacter", "ExampleLoadMainCharacter", function(...)
        -- add custom client-side behavior
    end)

LoadMainMenuInformation(info, character)

Populate informational text and preview for the main menu character card.

When the main menu needs to show summary info for a character.

Parameters:

table info Table to fill with display fields.

Character character Character being previewed.

Example Usage:

    hook.Add("LoadMainMenuInformation", "ExampleLoadMainMenuInformation", function(...)
        -- add custom client-side behavior
    end)

ModifyScoreboardModel(arg1, ply)

Adjust the 3D model used in the scoreboard (pose, skin, etc.).

When a scoreboard slot builds its player model preview.

Parameters:

Panel arg1 Model panel or data table for the slot.

Player ply Player represented by the slot.

Example Usage:

    hook.Add("ModifyScoreboardModel", "ExampleModifyScoreboardModel", function(...)
        -- add custom client-side behavior
    end)

ModifyVoiceIndicatorText(client, voiceText, voiceType)

Override the string shown in the voice indicator HUD.

Each frame the local player is speaking.

Parameters:

Player client Speaking player (local).

string voiceText Default text to display.

string voiceType Current voice range (“whispering”, “talking”, “yelling”).

Returns:

string Replacement text; return nil to keep default.

Example Usage:

    hook.Add("ModifyVoiceIndicatorText", "ExampleModifyVoiceIndicatorText", function(...)
        -- add custom client-side behavior
    end)

DrawPlayerInfoBackground()

Draw the background panel behind player info overlays.

Just before drawing wrapped player info text in the HUD.

Returns:

boolean Return false to suppress the default blurred background.

Example Usage:

    hook.Add("DrawPlayerInfoBackground", "ExampleDrawPlayerInfoBackground", function(...)
        -- add custom client-side behavior
    end)

OnAdminStickMenuClosed()

Handle state cleanup when the admin stick menu closes.

When the admin stick UI window is removed.

Example Usage:

    hook.Add("OnAdminStickMenuClosed", "ExampleOnAdminStickMenuClosed", function(...)
        -- add custom client-side behavior
    end)

OnChatReceived(client, chatType, text, anonymous)

React to chat messages received by the local client.

After a chat message is parsed and before it is displayed.

Parameters:

Player client Sender of the message.

string chatType Chat channel identifier.

string text Message content.

boolean anonymous Whether the message should hide the sender.

Example Usage:

    hook.Add("OnChatReceived", "ExampleOnChatReceived", function(...)
        -- add custom client-side behavior
    end)

OnCreateDualInventoryPanels(panel1, panel2, inventory1, inventory2)

Customize paired inventory panels when two inventories are shown side by side.

Right after both inventory panels are created (e.g., player + storage).

Parameters:

Panel panel1 First inventory panel.

Panel panel2 Second inventory panel.

Inventory inventory1 Inventory bound to panel1.

Inventory inventory2 Inventory bound to panel2.

Example Usage:

    hook.Add("OnCreateDualInventoryPanels", "ExampleOnCreateDualInventoryPanels", function(...)
        -- add custom client-side behavior
    end)

OnCreateItemInteractionMenu(itemIcon, menu, itemTable)

Augment the context menu shown when right-clicking an inventory item icon.

Immediately after the interaction menu for an item icon is built.

Parameters:

Panel itemIcon The icon being interacted with.

Panel menu The context menu object.

Item itemTable Item associated with the icon.

Example Usage:

    hook.Add("OnCreateItemInteractionMenu", "ExampleOnCreateItemInteractionMenu", function(...)
        -- add custom client-side behavior
    end)

OnCreateStoragePanel(localInvPanel, storageInvPanel, storage)

Customize the dual-inventory storage panel layout.

After the local and storage inventory panels are created for a storage entity.

Parameters:

Panel localInvPanel Panel showing the player inventory.

Panel storageInvPanel Panel showing the storage inventory.

Entity|table storage Storage object or entity.

Example Usage:

    hook.Add("OnCreateStoragePanel", "ExampleOnCreateStoragePanel", function(...)
        -- add custom client-side behavior
    end)

OnLocalVarSet(key, value)

React to a local networked variable being set.

Whenever a net var assigned to the local player changes.

Parameters:

string key Variable name.

any value New value.

Example Usage:

    hook.Add("OnLocalVarSet", "ExampleOnLocalVarSet", function(...)
        -- add custom client-side behavior
    end)

OnOpenVendorMenu(vendorPanel, vendor)

Populate the vendor UI when it opens.

After the vendor panel is created client-side.

Parameters:

Panel vendorPanel Panel used to display vendor goods.

Entity vendor Vendor entity interacted with.

Example Usage:

    hook.Add("OnOpenVendorMenu", "ExampleOnOpenVendorMenu", function(...)
        -- add custom client-side behavior
    end)

OnlineStaffDataReceived(staffData)

Handle the list of online staff received from the server.

When staff data is synchronized to the client.

Parameters:

table staffData Array of staff entries (name, steamID, duty status).

Example Usage:

    hook.Add("OnlineStaffDataReceived", "ExampleOnlineStaffDataReceived", function(...)
        -- add custom client-side behavior
    end)

OpenAdminStickUI(tgt)

Open the admin stick interface for a target entity or player.

When the admin stick weapon requests to show its UI.

Parameters:

Entity tgt Target entity/player selected by the admin stick.

Example Usage:

    hook.Add("OpenAdminStickUI", "ExampleOpenAdminStickUI", function(...)
        -- add custom client-side behavior
    end)

PaintItem(item)

Draw or tint an item icon before it is painted to the grid.

Prior to rendering each item icon surface.

Parameters:

Item item Item being drawn.

Example Usage:

    hook.Add("PaintItem", "ExamplePaintItem", function(...)
        -- add custom client-side behavior
    end)

PopulateAdminStick(currentMenu, currentTarget, currentStores)

Add tabs and actions to the admin stick UI.

While constructing the admin stick menu for the current target.

Parameters:

Panel currentMenu Root menu panel.

Entity currentTarget Entity being acted upon.

table currentStores Cached admin stick data (lists, categories).

Example Usage:

    hook.Add("PopulateAdminStick", "ExamplePopulateAdminStick", function(...)
        -- add custom client-side behavior
    end)

PopulateAdminTabs(pages)

Register admin tabs for the F1 administration menu.

When building the admin tab list.

Parameters:

table pages Table to append tab definitions `{name, icon, build=function}`.

Example Usage:

    hook.Add("PopulateAdminTabs", "ExamplePopulateAdminTabs", function(...)
        -- add custom client-side behavior
    end)

PopulateConfigurationButtons(pages)

Add configuration buttons for the options/configuration tab.

When creating the configuration pages in the menu.

Parameters:

table pages Collection of page descriptors to populate.

Example Usage:

    hook.Add("PopulateConfigurationButtons", "ExamplePopulateConfigurationButtons", function(...)
        -- add custom client-side behavior
    end)

PopulateInventoryItems(pnlContent, tree)

Populate the inventory items tree used in the admin menu.

When the inventory item browser is built.

Parameters:

Panel pnlContent Content panel to fill.

Panel tree Tree/list control to populate.

Example Usage:

    hook.Add("PopulateInventoryItems", "ExamplePopulateInventoryItems", function(...)
        -- add custom client-side behavior
    end)

PostDrawInventory(mainPanel, parentPanel)

Draw additional UI after the main inventory panels are painted.

After inventory drawing completes.

Parameters:

Panel mainPanel Primary inventory panel.

Panel parentPanel Parent container.

Example Usage:

    hook.Add("PostDrawInventory", "ExamplePostDrawInventory", function(...)
        -- add custom client-side behavior
    end)

PostLoadFonts(mainFont, mainFont)

Adjust fonts after they are loaded.

Immediately after main fonts are initialized.

Parameters:

string mainFont Primary font name (duplicate parameter kept for API compatibility).

string mainFont Alias of the same font name.

Example Usage:

    hook.Add("PostLoadFonts", "ExamplePostLoadFonts", function(...)
        -- add custom client-side behavior
    end)

DrawPhysgunBeam()

Decide whether to draw the physgun beam for the local player.

During physgun render.

Returns:

boolean false to suppress the beam; nil/true to allow.

Example Usage:

    hook.Add("DrawPhysgunBeam", "ExampleDrawPhysgunBeam", function(...)
        -- add custom client-side behavior
    end)

RefreshFonts()

Recreate or refresh fonts when settings change.

After option changes that impact font sizes or faces.

Example Usage:

    hook.Add("RefreshFonts", "ExampleRefreshFonts", function(...)
        -- add custom client-side behavior
    end)

RegisterAdminStickSubcategories(categories)

Register admin stick subcategories used to group commands.

When assembling the category tree for the admin stick.

Parameters:

table categories Table of category -> subcategory mappings; modify in place.

Example Usage:

    hook.Add("RegisterAdminStickSubcategories", "ExampleRegisterAdminStickSubcategories", function(...)
        -- add custom client-side behavior
    end)

ResetCharacterPanel()

Reset the character panel to its initial state.

When the character menu needs to clear cached data/layout.

Example Usage:

    hook.Add("ResetCharacterPanel", "ExampleResetCharacterPanel", function(...)
        -- add custom client-side behavior
    end)

RunAdminSystemCommand(cmd, admin, victim, dur, reason)

Execute an admin-system command initiated from the UI.

When the admin stick or admin menu triggers a command.

Parameters:

string cmd Command identifier.

Player admin Admin issuing the command.

Entity|Player victim Target of the command.

number|string dur Duration parameter if applicable.

string reason Optional reason text.

Example Usage:

    hook.Add("RunAdminSystemCommand", "ExampleRunAdminSystemCommand", function(...)
        -- add custom client-side behavior
    end)

ScoreboardClosed(scoreboardPanel)

Perform teardown when the scoreboard closes.

After the scoreboard panel is hidden or destroyed.

Parameters:

Panel scoreboardPanel The scoreboard instance that was closed.

Example Usage:

    hook.Add("ScoreboardClosed", "ExampleScoreboardClosed", function(...)
        -- add custom client-side behavior
    end)

ScoreboardOpened(scoreboardPanel)

Initialize the scoreboard after it is created.

Right after the scoreboard panel is shown.

Parameters:

Panel scoreboardPanel The scoreboard instance that opened.

Example Usage:

    hook.Add("ScoreboardOpened", "ExampleScoreboardOpened", function(...)
        -- add custom client-side behavior
    end)

ScoreboardRowCreated(slot, ply)

Customize a newly created scoreboard row.

When a player slot is added to the scoreboard.

Parameters:

Panel slot Scoreboard row panel.

Player ply Player represented by the row.

Example Usage:

    hook.Add("ScoreboardRowCreated", "ExampleScoreboardRowCreated", function(...)
        -- add custom client-side behavior
    end)

ScoreboardRowRemoved(scoreboardPanel, ply)

React when a scoreboard row is removed.

When a player leaves or is otherwise removed from the scoreboard.

Parameters:

Panel scoreboardPanel Scoreboard instance.

Player ply Player whose row was removed.

Example Usage:

    hook.Add("ScoreboardRowRemoved", "ExampleScoreboardRowRemoved", function(...)
        -- add custom client-side behavior
    end)

SetMainCharacter(charID)

Set the main character ID for future automatic selection.

When the player chooses a character to become their main.

Parameters:

number charID Chosen character ID.

Example Usage:

    hook.Add("SetMainCharacter", "ExampleSetMainCharacter", function(...)
        -- add custom client-side behavior
    end)

SetupQuickMenu(quickMenuPanel)

Build the quick access menu when the context menu opens.

After the quick menu panel is created.

Parameters:

Panel quickMenuPanel Panel that holds quick actions.

Example Usage:

    hook.Add("SetupQuickMenu", "ExampleSetupQuickMenu", function(...)
        -- add custom client-side behavior
    end)

ShouldAllowScoreboardOverride(client, var)

Decide if a player is permitted to override the scoreboard UI.

Before applying any scoreboard override logic.

Parameters:

Player client Player requesting the override.

any var Additional context or override data.

Returns:

boolean false to deny override; nil/true to allow.

Example Usage:

    hook.Add("ShouldAllowScoreboardOverride", "ExampleShouldAllowScoreboardOverride", function(...)
        -- add custom client-side behavior
    end)

ShouldBarDraw(bar)

Determine whether a HUD bar should render.

When evaluating each registered bar before drawing.

Parameters:

table bar Bar definition.

Returns:

boolean false to hide the bar; nil/true to show.

Example Usage:

    hook.Add("ShouldBarDraw", "ExampleShouldBarDraw", function(...)
        -- add custom client-side behavior
    end)

ShouldDisableThirdperson(client)

Decide whether third-person mode should be forcibly disabled.

When the third-person toggle state changes.

Parameters:

Player client Local player toggling third person.

Returns:

boolean false to block third-person; nil/true to allow.

Example Usage:

    hook.Add("ShouldDisableThirdperson", "ExampleShouldDisableThirdperson", function(...)
        -- add custom client-side behavior
    end)

ShouldDrawAmmo(wpn)

Let modules veto drawing the ammo HUD for a weapon.

Each HUDPaint frame before ammo boxes render.

Parameters:

Weapon wpn Active weapon.

Returns:

boolean false to hide ammo; nil/true to show.

Example Usage:

    hook.Add("ShouldDrawAmmo", "ExampleShouldDrawAmmo", function(...)
        -- add custom client-side behavior
    end)

ShouldDrawEntityInfo(e)

Control whether an entity should display info when looked at.

When deciding if entity info overlays should be generated.

Parameters:

Entity e Entity under consideration.

Returns:

boolean false to prevent info; nil/true to allow.

Example Usage:

    hook.Add("ShouldDrawEntityInfo", "ExampleShouldDrawEntityInfo", function(...)
        -- add custom client-side behavior
    end)

ShouldDrawPlayerInfo(e)

Decide whether player-specific info should be drawn for a target.

Before rendering the player info panel above a player.

Parameters:

Player e Player entity being drawn.

Returns:

boolean false to hide info; nil/true to draw.

Example Usage:

    hook.Add("ShouldDrawPlayerInfo", "ExampleShouldDrawPlayerInfo", function(...)
        -- add custom client-side behavior
    end)

ShouldDrawWepSelect(client)

Decide if the custom weapon selector should draw for a player.

Each frame the selector evaluates visibility.

Parameters:

Player client Local player.

Returns:

boolean false to hide the selector; nil/true to allow.

Example Usage:

    hook.Add("ShouldDrawWepSelect", "ExampleShouldDrawWepSelect", function(...)
        -- add custom client-side behavior
    end)

ShouldHideBars()

Hide all HUD bars based on external conditions.

Before drawing any bars on the HUD.

Returns:

boolean true to hide all bars; nil/false to render them.

Example Usage:

    hook.Add("ShouldHideBars", "ExampleShouldHideBars", function(...)
        -- add custom client-side behavior
    end)

ShouldMenuButtonShow(arg1)

Decide whether a button should appear in the menu bar.

When building quick menu buttons.

Parameters:

table|string arg1 Button identifier or data.

Returns:

boolean false to hide; nil/true to show.

Example Usage:

    hook.Add("ShouldMenuButtonShow", "ExampleShouldMenuButtonShow", function(...)
        -- add custom client-side behavior
    end)

ShouldRespawnScreenAppear()

Control whether the respawn screen should be displayed.

When the client dies and the respawn UI might show.

Returns:

boolean false to suppress; nil/true to display.

Example Usage:

    hook.Add("ShouldRespawnScreenAppear", "ExampleShouldRespawnScreenAppear", function(...)
        -- add custom client-side behavior
    end)

ShouldShowCharVarInCreation(key)

Determine if a character variable should appear in the creation form.

While assembling the list of editable character variables.

Parameters:

string key Character variable identifier.

Returns:

boolean false to hide; nil/true to show.

Example Usage:

    hook.Add("ShouldShowCharVarInCreation", "ExampleShouldShowCharVarInCreation", function(...)
        -- add custom client-side behavior
    end)

ShouldShowClassOnScoreboard(clsData)

Decide whether to display a player’s class on the scoreboard.

When rendering scoreboard rows that include class info.

Parameters:

table clsData Class data table for the player.

Returns:

boolean false to hide class; nil/true to show.

Example Usage:

    hook.Add("ShouldShowClassOnScoreboard", "ExampleShouldShowClassOnScoreboard", function(...)
        -- add custom client-side behavior
    end)

ShouldShowFactionOnScoreboard(ply)

Decide whether to display a player’s faction on the scoreboard.

When rendering a scoreboard row.

Parameters:

Player ply Player being displayed.

Returns:

boolean false to hide faction; nil/true to show.

Example Usage:

    hook.Add("ShouldShowFactionOnScoreboard", "ExampleShouldShowFactionOnScoreboard", function(...)
        -- add custom client-side behavior
    end)

ShouldShowPlayerOnScoreboard(ply)

Decide whether a player should appear on the scoreboard at all.

Before adding a player row to the scoreboard.

Parameters:

Player ply Player under consideration.

Returns:

boolean false to omit the player; nil/true to include.

Example Usage:

    hook.Add("ShouldShowPlayerOnScoreboard", "ExampleShouldShowPlayerOnScoreboard", function(...)
        -- add custom client-side behavior
    end)

ShouldShowQuickMenu()

Control whether the quick menu should open when the context menu is toggled.

When the context menu is opened.

Returns:

boolean false to prevent quick menu creation; nil/true to allow.

Example Usage:

    hook.Add("ShouldShowQuickMenu", "ExampleShouldShowQuickMenu", function(...)
        -- add custom client-side behavior
    end)

ShowPlayerOptions(target, options)

Populate the options menu for a specific player (e.g., mute, profile).

When opening a player interaction context menu.

Parameters:

Player target Player the options apply to.

table options Table of options to display; modify in place.

Example Usage:

    hook.Add("ShowPlayerOptions", "ExampleShowPlayerOptions", function(...)
        -- add custom client-side behavior
    end)

StorageOpen(storage, isCar)

Handle the client opening a storage entity inventory.

When storage access is approved and panels are about to show.

Parameters:

Entity|table storage Storage entity or custom storage table.

boolean isCar True if the storage is a vehicle trunk.

Example Usage:

    hook.Add("StorageOpen", "ExampleStorageOpen", function(...)
        -- add custom client-side behavior
    end)

StorageUnlockPrompt(entity)

Prompt the player to unlock a locked storage entity.

When the client interacts with a locked storage container.

Parameters:

Entity entity Storage entity requiring an unlock prompt.

Example Usage:

    hook.Add("StorageUnlockPrompt", "ExampleStorageUnlockPrompt", function(...)
        -- add custom client-side behavior
    end)

ThirdPersonToggled(arg1)

React when the third-person toggle state changes.

After third-person mode is turned on or off.

Parameters:

boolean arg1 New third-person enabled state.

Example Usage:

    hook.Add("ThirdPersonToggled", "ExampleThirdPersonToggled", function(...)
        -- add custom client-side behavior
    end)

TooltipInitialize(var, panel)

Initialize tooltip contents and sizing for Lilia tooltips.

When a tooltip panel is created.

Parameters:

Panel var Tooltip panel.

Panel panel Source panel that spawned the tooltip.

Example Usage:

    hook.Add("TooltipInitialize", "ExampleTooltipInitialize", function(...)
        -- add custom client-side behavior
    end)

TooltipLayout(var)

Control tooltip layout; return true to keep the custom layout.

Each frame the tooltip is laid out.

Parameters:

Panel var Tooltip panel.

Returns:

boolean true if a custom layout was applied.

Example Usage:

    hook.Add("TooltipLayout", "ExampleTooltipLayout", function(...)
        -- add custom client-side behavior
    end)

TooltipPaint(var, w, h)

Paint the custom tooltip background and contents.

When a tooltip panel is drawn.

Parameters:

Panel var Tooltip panel.

number w Width.

number h Height.

Returns:

boolean true if the tooltip was fully painted.

Example Usage:

    hook.Add("TooltipPaint", "ExampleTooltipPaint", function(...)
        -- add custom client-side behavior
    end)

VendorExited()

Handle logic when exiting a vendor menu.

After the vendor UI is closed.

Example Usage:

    hook.Add("VendorExited", "ExampleVendorExited", function(...)
        -- add custom client-side behavior
    end)

VendorOpened(vendor)

Perform setup when a vendor menu opens.

Immediately after opening the vendor UI.

Parameters:

Entity|table vendor Vendor being accessed.

Example Usage:

    hook.Add("VendorOpened", "ExampleVendorOpened", function(...)
        -- add custom client-side behavior
    end)

VoiceToggled(enabled)

Respond to voice chat being toggled on or off.

When the client enables or disables in-game voice.

Parameters:

boolean enabled New voice toggle state.

Example Usage:

    hook.Add("VoiceToggled", "ExampleVoiceToggled", function(...)
        -- add custom client-side behavior
    end)

WeaponCycleSound()

Play a custom sound when cycling weapons.

When the weapon selector changes selection.

Returns:

string|nil Sound path to play; nil to use default.

Example Usage:

    hook.Add("WeaponCycleSound", "ExampleWeaponCycleSound", function(...)
        -- add custom client-side behavior
    end)

WeaponSelectSound()

Play a sound when confirming weapon selection.

When the weapon selector picks the highlighted weapon.

Returns:

string|nil Sound path to play; nil for default.

Example Usage:

    hook.Add("WeaponSelectSound", "ExampleWeaponSelectSound", function(...)
        -- add custom client-side behavior
    end)

WebImageDownloaded(n, arg2)

Handle a downloaded web image asset.

After a remote image finishes downloading.

Parameters:

string n Image identifier.

string arg2 Local path or URL of the image.

Example Usage:

    hook.Add("WebImageDownloaded", "ExampleWebImageDownloaded", function(...)
        -- add custom client-side behavior
    end)

WebSoundDownloaded(name, path)

Handle a downloaded web sound asset.

After a remote sound file is fetched.

Parameters:

string name Sound identifier.

string path Local file path where the sound was saved.

Example Usage:

    hook.Add("WebSoundDownloaded", "ExampleWebSoundDownloaded", function(...)
        -- add custom client-side behavior
    end)