Comparação: Envs vs LCK_* Variables

📊 Tabela Comparativa Detalhada

Aspecto
Envs Variables
LCK_* Variables

Definição

Painel do servidor

Sistema automático

Modificação

Admin pode alterar

Impossível modificar

Conteúdo

Configurações personalizadas

Dados do usuário/sistema

Atualização

A cada 10 minutos

A cada 10 minutos

Escopo

Por resource

Por usuário/sessão

Tipo de Dados

Sempre strings

Strings (com dados específicos)

Uso Principal

Configurações editáveis

Informações dinâmicas

Segurança

Configurável

Protegido automaticamente

🎯 Quando Usar Cada Um

Use Envs Variables para:

-- ✅ Controles de resource pelo desenvolvedor
local systemEnabled = LockSystem.Envs.Get("SYSTEM_ENABLED") == "true"

-- ✅ Kill switches e emergency controls
local emergencyShutdown = LockSystem.Envs.Get("EMERGENCY_SHUTDOWN") == "true"

-- ✅ Controle de features
local premiumEnabled = LockSystem.Envs.Get("FEATURE_PREMIUM_ENABLED") == "true"

-- ✅ Debug e telemetria
local debugLevel = tonumber(LockSystem.Envs.Get("DEBUG_LEVEL")) or 0

-- ✅ Configurações de comportamento da resource
local maxUsers = tonumber(LockSystem.Envs.Get("MAX_CONCURRENT_USERS")) or 100

Use LCK_ Variables* para:

-- ✅ Informações do usuário autenticado
local discordId = LockSystem.LCK.Get("LCK_DISCORD_ID")

-- ✅ Recursos que o usuário possui
local userResources = LockSystem.LCK.Get("LCK_USER_RESOURCES")

-- ✅ Estatísticas dinâmicas
local activeUsers = LockSystem.LCK.Get("LCK_RESOURCE_ACTIVE_USERS")

-- ✅ Informações da loja/contexto
local shopName = LockSystem.LCK.Get("LCK_SHOP_NAME")

🔗 Usando Ambos Juntos

local function adaptiveResourceBehavior()
    -- Usar Envs para controles do desenvolvedor
    local systemEnabled = LockSystem.Envs.Get("SYSTEM_ENABLED") == "true"
    local debugMode = LockSystem.Envs.Get("DEBUG_ENABLED") == "true"
    local maxUsers = tonumber(LockSystem.Envs.Get("MAX_CONCURRENT_USERS")) or 100
    
    if not systemEnabled then
        outputServerLog("❌ Resource desabilitada pelo desenvolvedor")
        return false
    end
    
    -- Usar LCK_* para dados dinâmicos
    local activeUsers = tonumber(LockSystem.LCK.Get("LCK_RESOURCE_ACTIVE_USERS")) or 0
    local shopName = LockSystem.LCK.Get("LCK_SHOP_NAME") or "Unknown"
    local userResources = LockSystem.LCK.Get("LCK_USER_RESOURCES")
    
    -- Combinar: controle do dev + dados reais
    if activeUsers > maxUsers then
        outputServerLog("⚠️ Limite definido pelo dev excedido: " .. activeUsers .. "/" .. maxUsers)
        -- Dev definiu o limite, sistema aplica baseado em dados reais
        return false
    end
    
    if debugMode then
        outputServerLog("🔍 DEBUG: Shop=" .. shopName .. " Users=" .. activeUsers)
    end
    
    return true
end

Atualizado