Bloqueio de Itens por Grupos - zerodawnbr/zerodawntoolbox GitHub Wiki
🧩 Descrição
Este mod permite restringir o uso de itens do arquivo types.xml para grupos específicos de jogadores.
A ideia é simples: você cria grupos, define quais SteamIDs pertencem a cada grupo e quais itens cada grupo pode usar.
Se um jogador tentar pegar ou usar um item que não pertence ao seu grupo, ele receberá uma mensagem de aviso e não conseguirá manter o item no inventário.
Ideal para servidores RP, PvP com classes ou facções, ou qualquer cenário onde se queira controle granular de acesso a itens.
⚠️ Requer os mods @CF e @Notications para funcionar corretamente.
⚙️ Recursos Principais
✅ Atualização de configurações via comando (sem reiniciar o servidor)
✅ Criação ilimitada de grupos
✅ Sem limite de itens por grupo
✅ Aceita qualquer item listado em types.xml
✅ Exibe mensagem personalizada ao jogador sem permissão
✅ Bloqueia completamente o uso e armazenamento de itens não permitidos
✅ Itens restritos permanecem no chão (não desaparecem)
✅ Suporte total a containers (mochilas, roupas, caixas, etc.) — itens restritos são ejetados, mas o container pode ser pego
✅ Recuperação automática do arquivo JSON caso esteja inválido (gera backup do original)
✅ Controle sobre quais comandos podem atualizar a configuração
✅ Variável m_isEnabled permite ativar/desativar o mod facilmente
🎞️ Demonstração
🧠 Como Funciona
- O mod lê um arquivo JSON de configuração que define:
- Se o mod está habilitado (
m_isEnabled) - Quais comandos são aceitos para recarregar as configurações (
m_reloadCommands) - Lista de grupos (
m_accessGroups) com suas permissões e restrições
- Se o mod está habilitado (
Quando um jogador tenta pegar ou mover um item:
- O mod verifica se o item está listado no grupo ao qual o jogador pertence.
- Se sim, o jogador pode pegar normalmente.
- Se não, o item é bloqueado, uma mensagem de aviso é exibida e o item permanece onde está.
💬 Exemplo de Mensagem
"Este item é restrito ao GRUPO 1."
A mensagem pode ser personalizada por grupo no arquivo de configuração.
🧾 Estrutura do Arquivo JSON
⚙️ Parâmetros de Configuração (itemgrouprestriction.json)
| Atributo | Descrição | Valor Padrão |
|---|---|---|
m_isEnabled |
Define se o mod está ativo. 1 = habilitado / 0 = desativado. | 1 |
m_reloadCommands |
Lista de comandos que recarregam o arquivo JSON sem reiniciar o servidor. | ["\\itemreload", "!itemreload"] |
m_accessGroups |
Lista de grupos configurados com suas permissões e restrições. | [] |
m_groupName |
Nome do grupo de acesso. Serve apenas para organização e identificação. | "GROUP1" |
m_restrictionMessage |
Mensagem exibida ao jogador quando tentar pegar um item sem permissão. | "Este item é restrito ao GRUPO 1." |
m_allowedSteamIds |
Lista de SteamIDs que têm permissão para usar os itens do grupo. | [] |
m_classType |
Lista de nomes de classes dos itens do arquivo types.xml que o grupo pode usar. |
[] |
{
"m_isEnabled": 1,
"m_reloadCommands": [
"\\itemreload",
"!itemreload"
],
"m_accessGroups": [
{
"m_groupName": "GROUP1",
"m_restrictionMessage": "Este item é restrito ao GRUPO 1.",
"m_allowedSteamIds": [
"00000000000000000"
],
"m_classType": [
"BDUJacket",
"BDUPants",
"BalaclavaMask_BDU"
]
},
{
"m_groupName": "GROUP2",
"m_restrictionMessage": "Este item é restrito ao GRUPO 2.",
"m_allowedSteamIds": [
"00000000000000001"
],
"m_classType": [
"Hatchet",
"Apple"
]
},
{
"m_groupName": "GROUP3",
"m_restrictionMessage": "Este item é restrito ao GRUPO 3.",
"m_allowedSteamIds": [
"00000000000000002"
],
"m_classType": [
"WaterBottle",
"MKII"
]
}
]
}
