Comportamento dos Bots (IA)
Resumo
O Quórum preenche com bots toda vaga não ocupada por humano (e qualquer humano que abandona vira bot —
IsControlledByBot). O comportamento desses bots já está implementado no backend, mas nunca tinha sido documentado no GDD. Esta página descreve o que o código faz hoje (engenharia reversa) para servir de base de revisão e ajuste — não é um design do zero.Fonte no código:
BotService.cs,BotVoteStrategy.cs,BotFakeAccusationGenerator.cs,BotBehaviorConfigReader.cs,BotInfoEnvelopeBuilder.cs,BotTargeting.cs,DeckBuilder.cs,AbilityAssigner.cs; e no clienteBotAutoPicker.cs. Há cobertura de testes (BotVoteStrategyTests,BotFakeAccusationTests).Revisão 2026-06-17: esta rodada não redesenha do zero — registra ajustes sobre o comportamento já implementado (defesa de aliado fascista exposto no voto (revertida em 2026-06-21), mira refinada por habilidade/time e remoção de Linha Secreta dos bots). Ver a seção Ajustes decididos nesta revisão, em especial a ⚠️ sobre a trava conduta = time.
Revisão 2026-06-21: segunda rodada — regras de uso das habilidades de dia pelos bots (Execução, Pressão Psicológica, Voto Secreto, Intervenção), reversão da defesa de aliado fascista exposto (o bot passa a votar junto com o lobby), mudança em Voto Secreto (o conjurador continua vendo os votos), sistema de personalidades e nomes próprios dos bots. Ver Revisão 2026-06-21 — habilidades de dia, voto, personalidade e nomes.
Revisão 2026-06-22: detalhado o sistema de personalidades — 5 personalidades (Líder, Estrategista, Executor, Social, Observador), atribuição aleatória e independente de conduta/time, sem “troll”. Modelo, contextos de fala e banco de frases em Personalidades de Bot.
Quem é “bot”
Dois tipos de slot passam pelo mesmo pipeline de bot: os fillers BOT_* originais e qualquer humano que abandonou e foi marcado IsControlledByBot. A partir daí, o slot rendido se comporta exatamente como um bot.
Seleção de Função (tela de sorteio)
BotAutoPicker escolhe a função do bot de forma determinística: random semeado por (lobbyId, turnIndex), então host e todos os clientes chegam à mesma escolha sem coordenação. Também é usado para auto-pick quando um humano estoura o tempo do turno. Pega qualquer função ainda disponível, sem preferência temática.
Votação (BotVoteStrategy)
Ordem de decisão (a primeira que se aplica vence):
- Coerção — se o bot é vítima de Pressão Psicológica (
ForcedDayVoteTarget), o voto do dia é travado no alvo do conjurador. - Marca fascista humana —
ForceVoteTarget(definido por um humano fascista) sobrepõe qualquer heurística. - Heurística por conduta + time (abaixo).
Conjunto de candidatos: vivos, exceto ele mesmo; na noite, fascista não vota em fascista; nunca vota em quem já está IsMarkedForDie (ex.: vítima de sequestro que morre no fim do dia).
Base por Conduta (sobre os candidatos + placar ao vivo):
| Conduta | Comportamento |
|---|---|
| Desconhecida | vota no menos votado / sem votos (25% de chance de voto puramente aleatório) |
| Ordem | joga para criar empate (trava a mesa, mantém mais gente viva) |
| Caos | acompanha o mais votado (reforça a condenação que está se formando) |
Override por Time:
| Time | Comportamento |
|---|---|
| Sobrevivente | se investigou e identificou um fascista (ou conduta do Caos), vota nele. Senão, remove dos candidatos os aliados confiáveis (investigação própria + revelações públicas: conduta da Ordem revelada, time Sobrevivente revelado) e desconta probabilisticamente quem foi publicamente “vouchado” como aliado (PublicAllyClaimCount), depois cai na base por conduta |
| Fascista | evita o Fanático, o alvo do Mercenário e fellow fascists; se há condenação se formando, coordena empilhando no líder; senão semeia pela própria conduta. (Revisão 2026-06-21) se um aliado fascista é exposto (conduta/time revelados), não o defende — vota junto com o lobby para não se entregar — ver Override de voto |
| Mercenário | vota no alvo do contrato assim que isso o fizer liderar/empatar (chance real de enforcamento); fora disso se mistura votando como Desconhecida para não se expor |
| Fanático | quer ser enforcado: se já é o mais votado, vota no menos votado (pra ninguém ultrapassar sua liderança); senão empata para esticar a partida |
Ritmo: à noite só fascistas votam (kill). Os bots votam em sequência (exigência do lock otimista do SaveVote), com delay aleatório entre votos lido do Remote Config (bot_behavior.voteDelaySeconds, default 0.5–3.0s), comprimido para caber em 80% da duração da fase. A ordem é embaralhada e o placar é atualizado em memória a cada voto, então cada bot reage ao que já foi votado.
Habilidades de Noite (ProcessBotNightAbilities)
Dispara para bot vivo, não-sequestrado, que ainda não usou a habilidade, cuja habilidade está na lista ativa: Análise de Conduta, Investigação Profunda, Vigília, Acolhimento, Sequestro, Infecção, Últimas Palavras, Linha Secreta, Manipulação de Dados, Falsificação, Reanimar. Passivas (Dupla Identidade, Duro na Queda) e auto-resolvidas (Espionagem) não são invocadas ativamente.
- Taxa de uso (
RollAbilityUse): a maioria 100%; Linha Secreta 50% (bot não digita, não explora o canal privado). - Alvo por habilidade (com segurança de time):
| Habilidade | Alvo |
|---|---|
| Sequestro / Infecção | vivo não-fascista, peso 1 + 2×NotasCompartilhadas (favorece quem “fala” mais) |
| Análise / Investigação Profunda | evita fellow fascists, evita já-investigados, viés para quem é “barulhento” |
| Vigília | protege fellow fascist (se fascista), senão espalha; pula já-protegidos |
| Acolhimento | fellow fascist, senão qualquer vivo |
| Últimas Palavras | ponderado (exclui fascistas se o conjurador é fascista) |
| Manipulação de Dados | fellow fascist (a conduta “Ordem” forjada cobre o aliado), senão aleatório |
| Linha Secreta | colega de time, senão aleatório |
| Falsificação / Reanimar | sorteia do pool morto na noite anterior (KilledLastNight) |
- Pacing: pausa “humana” de 0.4–1.5s antes de cada habilidade resolver (budget 5s/noite), salvando estado incremental para os efeitos pingarem em vez de explodirem no fim da fase.
⚠️ A tabela acima é o estado atual do código. A mira refinada por habilidade/time e a remoção de Linha Secreta dos bots foram decididas nesta revisão — ver Ajustes decididos nesta revisão. Vários ramos por time dessa tabela são código morto sob a trava conduta = time (explicada lá).
Habilidades de Dia (ProcessBotDayAbilities)
Antes da votação, no início do DayMiddle: Execução, Pressão Psicológica, Voto Secreto.
- Execução: mata na hora — alvo é não-fascista (se conjurador fascista) ou o mais “barulhento”.
- Pressão: força o voto da vítima — mesma lógica de alvo.
- Voto Secreto: liga o anonimato da rodada (sem alvo).
- Intervenção roda numa passada própria no fim do dia: bot fascista cancela a execução pendente se o condenado é um fellow fascist.
As regras de uso das habilidades de dia pelos bots (quando usar e em quem mirar) foram detalhadas na Revisão 2026-06-21 abaixo — o resumo acima é o estado do código antes desses ajustes.
Ajustes decididos nesta revisão
Rodada de revisão: o que segue ajusta o comportamento já implementado. Onde a regra fala “por time”, leia junto com a trava de atribuição abaixo — hoje conduta e time são amarrados 1:1, então alguns ramos só existem para um futuro em que essa amarra caia.
Qual habilidade cai em qual time (a trava de hoje)
Resposta direta à pergunta da issue (“investigar qual habilidade pode cair em qual time”). No código atual a cadeia é determinística:
DeckBuilderfixa conduta = time: Fascista → Caos, Sobrevivente → Ordem, Mercenário e Fanático → Desconhecida.AbilityAssigner.PickUniquesorteia a habilidade só do pool da conduta do jogador (sem repetir até o pool esgotar).
Logo, cada pool de habilidade só cai num conjunto fixo de times:
| Pool (conduta) | Habilidades | Quem porta hoje |
|---|---|---|
| Ordem | Acolhimento, Análise de Conduta, Investigação Profunda, Vigília, Execução, Reanimar, Duro na Queda | Só Sobrevivente |
| Caos | Sequestro, Infecção, Manipulação de Dados, Pressão Psicológica, Intervenção | Só Fascista |
| Desconhecida | Falsificação, Linha Secreta, Últimas Palavras, Voto Secreto, Espionagem, Dupla Identidade | Só Mercenário ou Fanático |
⚠️ Consequência para as regras por time abaixo. Isso confirma a premissa da issue: Análise/Investigação são Ordem → nunca caem em fascista (por isso a anotação “evita fellow fascist” nelas é código morto). Mas também significa que regras como Sobrevivente com Últimas Palavras ou Fascista/Sobrevivente com Falsificação não disparam hoje — aquele time nunca recebe aquela habilidade. Ficam registradas para quando (e se) a conduta deixar de ser amarrada ao time — desacoplamento que é uma decisão maior, fora desta issue (ver Pendências).
Override de voto — Fascista NÃO defende aliado exposto (revisão 2026-06-21)
Reverte a decisão de 2026-06-17 (“Fascista defende aliado exposto”). A defesa ativa por empate foi descartada: defender um aliado já exposto é justamente o que entrega o bot.
Quando a conduta ou o time de um aliado fascista é publicamente exposto (ex.: conduta revelada por Últimas Palavras/Execução ou outro reveal global — IsConductRevealed / GlobalRevealedConduct), o bot fascista não tenta salvá-lo: ele vota junto com o lobby, acompanhando a maioria contra o aliado exposto.
Racional (do design): se o bot é o último a votar e deixa de votar no aliado exposto, ele vira o ponto fora da curva e fica suspeito. Acompanhar a condenação é o que preserva o disfarce do bot. A coordenação normal do fascista (empilhar no líder, semear pela conduta) continua valendo enquanto a identidade do aliado não foi exposta.
Pendência: o caso do aliado muito votado mas ainda não revelado (ex.: ≥ 60% dos votos vivos, sem reveal de conduta/time) não foi decidido nesta rodada — abandonar junto ou ainda tentar diluir o voto? Fica em Pendências.
Mira por habilidade (noite)
Todos os ajustes preservam as travas de fase/segurança já existentes; só refinam o alvo. A ênfase pedida foi a estratégia por time nas habilidades de conduta desconhecida (Últimas Palavras e Falsificação abaixo).
- Análise de Conduta / Investigação Profunda (Ordem → Sobrevivente). Remover a anotação “evita fellow fascist” — inalcançável aqui (o portador é sempre Sobrevivente). Mantém o viés para os barulhentos e, quando eles se esgotam, passa a focar nos mais quietos (varre a mesa ao longo das noites).
- Vigília (Ordem → Sobrevivente). Se há um fascista confirmado (vivo ou morto), protege quem fez a acusação correta contra ele. Desprioriza quem usou Execução e Reanimar (já se expuseram) — só os protege se não houver outro alvo. Sem informação → alvo aleatório (entre os não-revelados, como hoje).
- Acolhimento (Ordem → Sobrevivente). Só usa a partir do 2º dia. Se a votação está polarizada (~51% × 49%) entre dois jogadores, acolhe o lado de 51% — a polarização pode estar protegendo um inocente, e travar a execução mantém a dúvida viva. Também acolhe quem acusou alguém e acertou a conduta/time.
- Reanimar (Ordem → Sobrevivente). Revive o Sobrevivente que mais falou; não revive outros times. Espera até a 2ª rodada para usar. (Lembrar: usar Reanimar revela a conduta do portador no ato — ver Reanimar.)
- Manipulação de Dados (Caos → Fascista). Mantém a regra; prefere um aliado fascista não-acusado ou que foi mencionado; em vez de aleatório, usa em quem fala menos. ⚠️ A regra de origem termina truncada (“só começa a usar…“) — provável intenção: só começar a usar a partir de certa rodada/condição; a definir.
- Últimas Palavras (Desconhecida → Merc/Fanático hoje). O peso atual permanece. Sobrevivente (quando puder portá-la): mira quem menos falou no chat; se o portador vem acertando condutas via Análise, mira quem ainda não teve a conduta denunciada (maximiza o reveal pós-morte sobre alguém ainda oculto). Mercenário e Fanático: sem regra extra. (Sob a trava atual, o ramo Sobrevivente não dispara — ver acima.)
- Falsificação (Desconhecida → Merc/Fanático hoje). Sempre usa em alguém que morreu (copia a habilidade do morto na rodada seguinte — ver Falsificação). Prioridade do cadáver a copiar, por time do portador; desempate sempre pela conduta do morto: Desconhecida antes de Ordem:
| Portador | Prioridade do morto a copiar |
|---|---|
| Fanático | Fascista > Mercenário > Sobrevivente. Evita copiar habilidade que revela time e já é de conhecimento público (ex.: ao morrer um Duro na Queda, a mesa já sabe que ele a tinha — copiar não agrega e ainda expõe). |
| Mercenário | Fascista > Fanático > Sobrevivente |
| Fascista | Fascista > Mercenário ou Fanático > Sobrevivente |
| Sobrevivente | Fascista > Fanático ou Mercenário > Sobrevivente |
Pós-cópia — qual habilidade copiada o bot aceita usar: Fanático, Mercenário e Fascista não usam habilidade copiada que revela time/conduta (evita se expor); Sobrevivente não tem restrição. (Sob a trava atual, só Merc/Fanático portam Falsificação; os ramos Fascista e Sobrevivente são para o futuro.)
- Linha Secreta (Desconhecida → Merc/Fanático). Decisão: bots não recebem mais Linha Secreta enquanto não houver LLM integrada — sem conversa, o canal privado é desperdiçado. Hoje ela está na lista ativa de bot com 50% de uso; passa a ser excluída na atribuição ao bot. ⚠️ Definir o comportamento de atribuição: se o sorteio cairia em Linha Secreta para um bot (Merc/Fanático), re-sortear outra habilidade Desconhecida — a definir.
Revisão 2026-06-21 — habilidades de dia, voto, personalidade e nomes
Segunda rodada de ajustes sobre o bot já implementado. Onde uma regra fala “por time”, continua valendo a trava conduta = time descrita acima — habilidades de dia caem em times fixos hoje (Execução → Ordem/Sobrevivente; Pressão Psicológica e Intervenção → Caos/Fascista; Voto Secreto → Desconhecida/Merc·Fanático). Ramos de outros times ficam registrados para um eventual desacoplamento.
Execução (bot) — quando e em quem
Refina o alvo-placeholder de hoje (“não-fascista se conjurador fascista, senão o mais barulhento”). Sob a trava atual o portador de Execução é sempre Sobrevivente (conduta da Ordem), então o bot se apresenta como conduta da Ordem / time Sobrevivente.
- Quando: só nos dias 2 e 4. Há uma chance de usar em cada um, crescente até o dia 4 — no dia 4 o uso é certo (se ainda não usou e a habilidade segue disponível). As probabilidades exatas dos dias 2 e 4 ficam a definir (balanceamento).
- Alvos preferidos:
- Quem acusa o bot incorretamente — quem o acusa de ser algo diferente de conduta da Ordem / time Sobrevivente (contradiz a identidade que ele sustenta).
- Um jogador que está empatado na votação — havendo empate, o bot pode executar um dos empatados. Exceção de autopreservação: se o próprio bot está empatado com alguém, ele não executa o outro empatado — matar o outro o deixaria isolado como mais votado e ele morreria na votação. Evita esse cenário.
Pressão Psicológica (bot) — direcionar e proteger
Portador é Fascista (conduta do Caos) hoje. A intenção do bot ao usar Pressão:
- Tirar voto de um aliado: usar a habilidade em alguém que está votando num aliado fascista, redirecionando esse voto para outro alvo — na prática, remove um voto de cima do aliado.
- Semear o voto que ele mesmo daria: forçar uma pessoa a votar em quem o bot votaria segundo as regras da sua conduta/time.
- Iniciar a votação por procuração: logo no começo, fazer alguém que ainda não votou votar num alvo do bot antes de o próprio bot votar — a pressão sobre o alvo começa sem o bot aparecer como iniciador.
- ⚠️ A regra de origem termina truncada (“Ele também pode…“) — falta uma terceira aplicação; a definir.
⚠️ Depende de Pressão com alvo de voto escolhido. Hoje Pressão Psicológica sorteia aleatoriamente o jogador em quem a vítima é forçada a votar (o
StandardGameConfigmarcaSelectTwoTargets, mas o strategy randomiza o segundo alvo). Todas as intenções acima exigem escolher esse alvo do voto forçado. Reconciliar: ou a habilidade passa a aceitar o segundo alvo, ou as regras do bot se limitam ao alvo aleatório. A definir.
Voto Secreto (bot) — e a mudança na habilidade
Mudança na habilidade (não só no bot). Voto Secreto se mostrou fraca para Sobreviventes. Decisão: quem usa a habilidade continua vendo quem votou em quem, enquanto para o resto da mesa a votação fica anônima. Isso dá ao conjurador uma informação privada — dá para cruzar quem de fato votou contra quem dizia desconfiar de quem. Registrada também em Voto Secreto como mudança de design a implementar (a nota técnica ainda espelha o código atual, que oculta os votos de todos).
Regras de uso por time (portador é Merc/Fanático hoje; Sobrevivente e Fascista ficam para o desacoplamento):
| Time | Quando usa | O que faz com a info |
|---|---|---|
| Sobrevivente | logo no início | lê cedo como cada um está votando, deduz quem é de time oposto e guarda na memória para decisões futuras |
| Fascista | a partir do 1º dia, se aliados do time dele estão sendo acusados | usa a leitura privada para defender/coordenar |
| Mercenário | 1º dia; vota direto no alvo do contrato | — |
| Fanático | 1º dia; não vota em ninguém / vota para empatar | — |
Intervenção (bot) — sem mudança
Mantida a regra já documentada: o bot Fascista cancela a execução pendente no fim do dia se o condenado é um aliado fascista. Sem alteração nesta revisão.
Override de voto — ver reversão acima
A regra de não defender aliado fascista exposto (votar junto com o lobby) está detalhada em Override de voto — Fascista NÃO defende aliado exposto, na seção de ajustes acima.
Personalidades de bot
Além do comportamento por conduta/time, cada bot recebe uma personalidade sorteada que modula como, quando e quanto ele fala e vota — sem mudar a estratégia de vitória. São 5: Líder, Estrategista, Executor, Social e Observador. Cada uma é um preset de poucos knobs:
| Personalidade | Proatividade | Volume | Ordem na fala | Ordem no voto | Conteúdo preferido | Gatilho |
|---|---|---|---|---|---|---|
| Líder | alta | alto | fala primeiro | normal | diretiva / chamada à decisão | proativo |
| Estrategista | alta | alto | cedo | normal | recap dos fatos da rodada | proativo |
| Executor | baixa | baixo | normal | vota primeiro | — (age, não fala) | proativo no voto |
| Social | média | alto | normal | normal | reage ao que falaram | reativo a tudo |
| Observador | nenhuma | baixo | por último | tardio | — | só quando citado |
Decisões (2026-06-22): atribuição totalmente aleatória (1 por bot, não amarrada a nome/avatar/conduta/time); personalidade não cruza com conduta/time (qualquer combo vale); Executor pode votar cedo sem ressalva; sem Troll — estes 5 substituem os eixos abstratos antigos (Falante↔Quieto / Troll↔Organizado). Quais knobs viram Remote Config fica pra depois.
Composição com a estratégia: time/conduta decide o ato (em quem votar, se mente, quando acusar); personalidade decide a embalagem (tom da frase + tagarelice extra). Por isso as frases são neutras de time e usam placeholders ({alvo}, {jogador}, {acusador}).
Modelo completo, contextos de fala e banco de ~30 frases por personalidade em Personalidades de Bot. Nada implementado ainda.
Nomes próprios dos bots
Os bots deixam de aparecer só como slots BOT_* e passam a usar nomes próprios sorteados aleatoriamente, para parecerem jogadores comuns na mesa. Origem do pool de nomes, unicidade dentro da partida, localização e relação com o sistema de Nome e Avatar ficam em Pendências.
Comunicação dos bots no chat
Bots não digitam texto livre. Eles produzem dois tipos de mensagem estruturada (envelopes opacos), que o host apenas repassa pelo Vivox:
- Resumo de info (
BuildBotInfoEnvelopes, pós-NightEnd): “Bot X acha que Fulano tem conduta Y”, a partir do que a habilidade de investigação revelou. - Acusações falsas (
BotFakeAccusationGenerator, no dia) — ruído deliberado dos times do mal:
| Time | Chance | O que faz |
|---|---|---|
| Mercenário | 60% | difama o alvo do contrato (4 variações de claim) |
| Fascista | 50% | contra-acusa um sobrevivente barulhento, peso 1 + NotasCompartilhadas + 3×NotasContraFascistas (vingança em quem acusou fascistas) |
| Fanático | 50% | 50% “desmente” o aliado mais vouchado (chama de Fascista), senão acusa alguém aleatório |
Nunca difama quem já teve identidade revelada publicamente (mentira contra fato confirmado só entrega o bot).
Revisão 2026-06-21: a entrada do dump para a fala do Sobrevivente no chat ficou incompleta (“Sobrevivente —” sem o restante); Mercenário, Fascista e Fanático permanecem como descrito acima. Definir a comunicação do bot Sobrevivente no chat fica em Pendências.
Privacidade (contrato importante): como o host pode ser um jogador, todo envelope é pré-serializado no servidor e o host nunca lê time/conduta/alvo em forma estruturada. Resultados privados de habilidade (confirmções, investigações) não são repassados — só saídas públicas (ex.: Execução). Isso evita que um host-jogador descubra coisas antes da mesa.
Tuning disponível
- Remote Config
bot_behavior(BotBehaviorConfigReader): hoje sóvoteDelaySeconds.min/max. A intenção declarada no código é que novos knobs de bot entrem nesse mesmo blob, não em chaves novas. - Hardcoded hoje (candidatos a virar config se quisermos tunar sem deploy): % de acusação falsa por time, taxa de uso por habilidade, janelas de pacing.
Pendências genuínas (a decidir)
Estas não estão resolvidas no código e seguem abertas:
- Indicador visual de bot na carta do jogador — arte e posicionamento (herdado do Quórum).
- Limite de bots no matchmaking: preferir humanos até um threshold antes de completar com bots, ou aceitar qualquer composição desde já?
- Chat de texto livre: hoje bots só emitem
NoteSummary/sistema. Confirmar se essa é a postura final ou se queremos fala mais “natural”. - Dificuldade / personalidade: expor ao GD ajustes de dificuldade e de “personalidade” por conduta/time. (O comportamento por conduta/time foi detalhado nesta revisão, mas segue hardcoded — a exposição ao GD continua pendente.) Ver Personalidades de Bot.
- Revisão do card #122 (Draft de Persona / Seleção) à luz do auto-pick determinístico.
- Desacoplar conduta de time: habilitar as regras por time acima que hoje não disparam (Sobrevivente com Últimas Palavras/Falsificação, Fascista com Falsificação).
DeckBuilderamarra conduta = time 1:1 eAbilityAssignersorteia só do pool da conduta — decisão de design maior, fora desta issue. - Limiar de “aliado exposto” no voto fascista (60% é ilustrativo) e confirmação de que
IsConductRevealed/GlobalRevealedConductcobrem bem o caso “exposto publicamente”. - Manipulação de Dados — gatilho de início de uso: a regra de origem ficou truncada (“só começa a usar…”); definir a partir de quando.
- Linha Secreta — re-sorteio na atribuição: o que o bot Mercenário/Fanático recebe no lugar quando o sorteio cairia em Linha Secreta.
- Acolhimento (2º dia) e Reanimar (2ª rodada): confirmar a contagem (dia 2 vs. rodada 2) e a fonte do contador para o gate.
- Execução (bot) — curva de chance: probabilidades de uso nos dias 2 e 4 (certo no dia 4) a calibrar.
- Pressão Psicológica (bot): (a) regra de origem truncada (“Ele também pode…”); (b) depende de a habilidade aceitar alvo de voto escolhido — hoje o segundo alvo é aleatório (ver ⚠️ na Revisão 2026-06-21).
- Voto Secreto — mudança de habilidade a implementar: conjurador passa a ver os votos enquanto a mesa fica anônima (ver Voto Secreto); a nota técnica ainda espelha o comportamento antigo.
- Comunicação do Sobrevivente no chat: entrada do dump incompleta; definir o que o bot Sobrevivente comunica.
- Sistema de personalidades — modelo definido em Personalidades de Bot (5 personalidades, atribuição aleatória, independente de conduta/time, sem troll). Em aberto lá: implementar os pools de frase, quais knobs viram config, localização e gatilhos finos de fala.
- Nomes próprios dos bots: origem do pool, unicidade dentro da partida, localização e relação com Nome e Avatar.
- Override de voto — aliado muito votado mas não revelado: abandonar junto ou tentar diluir o voto? (ver Override de voto).
Ver Também
- Personalidades de Bot — personalidades e banco de frases dos bots
- Quórum — origem das vagas de bot
- AFK · Reconexão — quando um humano vira bot
- Times · Condutas e Habilidades · Turnos · Sorteio
- Jogador Morto — contexto narrativo para fala dos bots