Neste guia, vou mostrar como gerenciar permissões de usuários no SourceMod.
SourceMod é um addon de MetaMod que suporta a maioria dos jogos que rodam na Source Engine. É uma plataforma poderosa e altamente otimizada para criar plugins e gerenciar a administração de servidores. SourceMod é amplamente utilizado em jogos como Team Fortress 2, Left 4 Dead 2, e Counter-Strike: Source!
Ao rodar um servidor de jogo com SourceMod instalado, é provável que em algum momento você queira conceder a si mesmo ou a outros permissões como a capacidade de expulsar (kick) e banir jogadores (acesso de administrador).
Encontrando Steam IDs
Antes de atribuir permissões a usuários, você precisará encontrar o Steam ID deles. Tanto o formato SteamID2 (STEAM_X:X:XXXXXXXX) quanto o SteamID3 ([U:X:XXXXXX]) são suportados no SourceMod.
Se você estiver conectado a um servidor rodando na Source Engine, pode executar o comando status no Console de Desenvolvedor para obter os Steam IDs dos jogadores atualmente conectados ao servidor.
Caso contrário, você pode usar ferramentas como Steam ID Finder e Steam ID I/O para encontrar Steam IDs.
Flags
Para determinar quais permissões específicas você deseja atribuir aos usuários, é preciso entender o sistema de flags do SourceMod e o acesso que elas fornecem. Cada flag é atribuída usando um único caractere.
Aqui está uma lista das flags disponíveis no SourceMod.
| Nome | Flag | Finalidade |
|---|---|---|
| reservation | a |
Concede acesso a vaga reservada. |
| generic | b |
Concede admin genérico (necessário para admin). |
| kick | c |
Concede acesso para expulsar outros jogadores. |
| ban | d |
Concede acesso para banir outros jogadores. |
| unban | e |
Concede acesso para remover banimentos. |
| slay | f |
Concede acesso para matar e ferir outros jogadores. |
| changemap | g |
Concede acesso para trocar mapas ou funcionalidades importantes de jogabilidade. |
| cvar | h |
Concede acesso para alterar a maioria das ConVars. |
| config | i |
Concede acesso para executar arquivos de configuração. |
| chat | j |
Concede privilégios especiais de chat. |
| vote | k |
Concede acesso para iniciar ou criar votações. |
| password | l |
Concede acesso para definir uma senha no servidor. |
| rcon | m |
Concede acesso para usar comandos RCON. |
| cheats | n |
Concede acesso para alterar a ConVar sv_cheats ou usar comandos de cheat. |
| root | z |
Habilita todas as flags e ignora os valores de imunidade. |
Além disso, existem flags customizadas que podem ser usadas por plugins e afins.
| Nome | Flag |
|---|---|
| custom1 | o |
| custom2 | p |
| custom3 | q |
| custom4 | r |
| custom5 | s |
| custom6 | t |
Mais informações sobre flags podem ser encontradas aqui.
Senhas
Se desejar, você pode exigir que usuários específicos digitem uma senha antes de poderem usar as permissões customizadas atribuídas a eles. Eles precisarão digitar essa senha toda vez que se conectarem ao servidor de jogo, mas podem automatizar esse processo do lado deles, se quiserem.
Primeiramente, você vai querer modificar o arquivo addons/sourcemod/configs/core.cfg e alterar o valor da linha PassInfoVar de _password para algo personalizado, como _test. O usuário precisará saber sua senha específica e a senha que você definiu para PassInfoVar.
Quando o usuário se conectar ao servidor de jogo, ele precisará executar o seguinte comando no Console de Desenvolvedor.
setinfo "<PassInfoVar Password>" "<User Password>"
Por exemplo:
setinfo "_test" "myCustomPass123"
Se o usuário quiser automatizar esse processo do seu lado, ele precisará modificar o arquivo <Game Dir>/cfg/autoexec.cfg e adicionar o comando acima ao arquivo.
Imunidade
A flag immunity impede que administradores tenham como alvo uns aos outros dependendo do nível de imunidade do cliente.
Por exemplo, se o primeiro administrador tem uma imunidade de 20 enquanto o segundo administrador tem apenas uma imunidade de 10. O primeiro administrador pode ter o segundo administrador como alvo, mas o segundo administrador não pode ter o primeiro administrador como alvo.
NOTA - Administradores com a flag z (root) podem ter como alvo qualquer jogador ou administrador, independentemente do nível de imunidade.
Gerenciando Permissões de Usuários
Gerenciar permissões de usuários e atribuir flags é feito modificando um arquivo dentro do diretório addons/sourcemod/configs (ou pasta addons\sourcemod\configs no Windows).
Existem dois arquivos que você pode editar, explicados abaixo.
Usando o Arquivo admins_simple.ini
Esse arquivo é usado para atribuir permissões de usuários rapidamente. É ideal para configurações simples ou para quem quer atribuir permissões a um usuário rapidamente. Ao atribuir permissões nesse arquivo, cada linha deve ter o seguinte formato.
"<Steam ID/!IP/Steam name>" "[Immunity Level:]<Flags/@group>" ["password"]
Aqui está um exemplo de como conceder a um usuário as flags reservation, generic, kick e ban com 70 de imunidade.
"STEAM_0:0:36969327" "70:abcd"
Usando o Arquivo admins.cfg
Usar esse arquivo requer inserir mais linhas ao atribuir permissões a usuários, mas pode ser considerado mais organizado. O formato do arquivo usa o KeyValues do SourceMod. Usuários devem ser adicionados dentro da seção Admins.
Aqui está um formato genérico para adicionar usuários.
"<Name>"
{
"auth" "steam"
"identity" "<Steam ID>"
"flags" "<Flags>"
"immunity" "<Immunity>"
}
Aqui está uma lista de chaves que você pode atribuir a cada usuário.
auth- Deve ser um dos valoressteam,name, ouip(a menos que haja um método de autenticação customizado), e instrui o SourceMod sobre como interpretar o valor de identidade.identity- Um valor único que permite ao SourceMod encontrar o usuário dado um método de autenticação e o valor fornecido.password- Especifica a senha que o usuário deve inserir.group- Especifica um nome de grupo que o usuário deve herdar, se disponível. Mais de uma linha group pode ser especificada. Não deve haver o símbolo@, já que não há ambiguidade.flags- As flags de acesso que o usuário deve receber.immunity- O nível de imunidade que o usuário deve receber.
Reloading Users
Após atribuir permissões ao(s) usuário(s) através dos arquivos mencionados acima, você precisará recarregar o cache de admins para que as permissões sejam propagadas.
O cache deve recarregar automaticamente quando o mapa muda ou o servidor reinicia. Você pode usar o comando de servidor sm_reloadadmins para recarregar o cache manualmente, assim você não precisa esperar até uma troca de mapa ou reinício do servidor.
See Also
- Adding Admins - Wiki detalhada sobre como adicionar admins oficialmente pela AlliedMods.
- SourceBans++ - Um plugin popular que facilita o gerenciamento de usuários, grupos, banimentos e muito mais!
Se você tiver alguma dúvida ou feedback sobre este guia, por favor responda ao tópico do fórum aqui! Este guia será trabalhado e aprimorado ao longo do tempo.
Junte-se ao nosso servidor do Discord!

