Cooldowns

The Cooldowns module provides a standalone system to handle player, global, and resource-based cooldowns. This ensures actions have enforced delays between executions.

Server

add_cooldown(source, cooldown_type, duration, is_global)

Adds a cooldown for a player, globally, or for a specific resource.

Parameters:

  • source (number) - The player's server ID (or identifier for non-global cooldowns).

  • cooldown_type (string) - The cooldown category (e.g., "begging").

  • duration (number) - Duration of the cooldown in seconds.

  • is_global (boolean) - true for global cooldown, false for player-specific cooldown.

Example

local COOLDOWNS = exports.boii_utils:get("modules.cooldowns")
COOLDOWNS.add(1, "begging", 60, false) -- Adds a 60s cooldown for player 1

check_cooldown(source, cooldown_type, is_global)

Checks if a cooldown is active for a player or globally.

Parameters:

  • source (number) - The player's server ID.

  • cooldown_type (string) - The cooldown category.

  • is_global (boolean) - true for global cooldown, false for player-specific cooldown.

Returns:

  • (boolean) - true if cooldown is active, false otherwise.

Example

if COOLDOWNS.check(1, "begging", false) then
    print("Player is on cooldown.")
end

clear_cooldown(source, cooldown_type, is_global)

Clears an active cooldown for a player or globally.

Parameters:

  • source (number) - The player's server ID.

  • cooldown_type (string) - The cooldown category.

  • is_global (boolean) - true for global cooldown, false for player-specific cooldown.

Example

COOLDOWNS.clear(1, "begging", false) -- Removes cooldown for player 1

clear_expired_cooldowns()

Removes all expired cooldowns automatically.

Example

COOLDOWNS.clear_expired_cooldowns()

clear_resource_cooldowns(resource_name)

Clears all cooldowns set by a specific resource.

Parameters:

  • resource_name (string) - The name of the resource.

Example

COOLDOWNS.clear_resource_cooldowns("some_resource")

Last updated