Módulo Actions & Rules
O módulo Actions & Rules é o cérebro de automação avançada do KizuBot. Nele você cria “regras” que observam o jogo (condições) e, quando essas condições são verdadeiras, executam uma sequência de ações totalmente configurável, como falar no chat, usar itens, teleportar, pausar o cavebot, tocar alarmes, rodar scripts seguros, etc.
Visão GeralVocê pode enxergar o módulo Actions & Rules como uma ponte entre o que você configura no painel e o que o bot faz dentro do jogo. Cada regra criada no painel vira uma "receita de automação" que o cliente do bot segue com base em condições e ações bem definidas.
- No painel: você monta regras visuais com nome, condições, grupos lógicos, sequência de ações e, se quiser, uma hotkey.
- Na nuvem: essas regras são guardadas junto com as demais configurações da sua conta, ficando disponíveis para qualquer instância do bot vinculada a você.
- No cliente do bot: quando o bot carrega suas configurações, ele recebe a lista atualizada de regras de Actions & Rules e atualiza o módulo responsável por monitorar o jogo.
- Em tempo real: enquanto você joga (ou deixa o bot jogando), esse módulo fica avaliando condições e eventos do jogo e dispara as sequências de ações das regras que estiverem habilitadas.
Estrutura de uma Regra- name: nome único da regra. É usado para organização, logs e para identificar timers internos.
- enabled: liga/desliga a regra inteira. Ideal para testar regras novas sem apagá-las.
- hotkey: tecla opcional (por exemplo,
J) que vira um atalhoAlt+Jdentro do jogo. OActionsModule.registerAllHotkeys()registra esses atalhos sempre que as configs são carregadas. - onlyInPz / onlyOutsidePz: filtros globais para rodar a regra apenas dentro ou fora de PZ.
- pokemonSummoned: permite exigir que o Pokémon esteja ou não esteja sumonado para que a regra funcione.
- actions: lista ordenada de ações que serão executadas em sequência quando a regra ativar.
- condition_groups: grupos de condições com lógica
AND/ORque definem quando a regra dispara.
Condições (Condition Groups)As condições são o “se” da sua automação. No painel, você monta grupos com a propriedade logic ("AND" ou "OR") e uma lista de conditions. O fluxo é o seguinte:
- logic = "OR": a regra dispara se qualquer condição daquele grupo for verdadeira.
- logic = "AND": todas as condições do grupo precisam ser verdadeiras ao mesmo tempo.
- Tipos de condição mais usados:
time_is/time_between/server_save/timed_logout/timed: regras baseadas em horário, uptime do bot ou eventos recorrentes (a cada X segundos).player_on_screen/player_count_is/no_player_on_screen: monitoram a presença e quantidade de jogadores na tela, com opção de ignorar membros da party.is_in_pz/is_not_in_pz/is_in_combat/is_not_in_combat: cuidam de contexto de segurança (cidade, combate, etc.).player_health/player_health_between: gatilhos por percentual de vida do personagem.pokemon_health/pokemon_health_between/pokemon_not_summoned/active_pokemon_is: gatilhos por status do Pokémon ou verificar qual pokémon está ativo.has_status/missing_status/has_any_bad_status/move_off_cooldown: verificam status conditions (poisoned, burning, paralyzed, etc.) e cooldown de habilidades.all_moves_in_cooldown/target_moves_in_cooldown: verificam se todas as magias (área + alvo) ou apenas as de alvo estão em cooldown - ideal para Smart Swap e otimização de DPS.pokemon_unsummoned: detecta quando o Pokémon foi dessummonado forçadamente (teleport, dive, ou outras mecânicas do jogo).target_health_between: regras que dependem da vida do monstro que você está atacando.creature_in_box/creature_in_screen/creature_count: monitoram criaturas em volta ou na box.extraordinary_in_box/extraordinary_in_screen/shiny_in_*/boss_in_*/mega_in_*: gatilhos específicos para shinies, bosses e megas.item_count_lower_than/item_count_higher_than: monitoram quantidade de itens (revives, pokébolas, etc.).module_enabled: verifica se um módulo específico (Cavebot, Farming, etc.) está ligado.chat_message/text_message: respondem a mensagens específicas no chat.creature_appear/player_death/character_disconnected/character_stuck/pokemon_caught/player_watching_tv: condições baseadas em eventos pontuais observados pelo bot.is_flying/is_not_flying/is_riding/is_not_riding/is_in_vehicle/is_not_in_vehicle/is_broadcasting_tv/is_party_leader/is_near_waypoint: verificam estados especiais do personagem, do Pokémon ou da rota.state_variable_is/state_cooldown_passed/player_state_is: permitem criar lógicas com memória e cooldowns personalizados usando variáveis internas do módulo.
- Por baixo dos panos, o módulo de ações avalia cada condição com base no contexto atual (vida, criaturas na tela, mensagens recebidas, etc.) e decide se a regra pode ou não disparar.
Ações DisponíveisQuando uma regra dispara, o bot percorre a lista de actions que você configurou. Alguns exemplos práticos que você enxerga na tela de edição:
- talk / say_random: envia mensagens formatadas em canais como
say,trade, party, TV ou privado, com placeholders como{player}ou{creature.name}. - use_item: usa itens no player, no Pokémon ou em posições calculadas (por exemplo, ao redor do Pokémon), perfeito para revives, potions, boxes, etc.
- cast_spell: dispara um move específico do seu Pokémon pelo ID do slot (1–12).
- call_pokemon / swap_pokemon / revive_pokemon: controla qual Pokémon está em campo, revive pokémons específicos e gerencia o time durante a hunt.
- teleport: usa o teleporte do Pokémon para voltar a cidades/locais específicos quando as condições são atendidas.
- toggle_module / pause_cavebot: liga/desliga módulos (Cavebot, Farming, etc.) ou pausa o Cavebot por um tempo determinado, retomando depois automaticamente, se configurado.
- change_setting: altera configurações avançadas em tempo real (por exemplo, ligar/desligar
CombatModule.ksIgnoreLootou mudar prioridades). - set_state / increment_state: manipulam variáveis internas de estado, permitindo regras com memória (como contar quantos avisos um jogador já recebeu antes de tomar uma ação mais agressiva).
- wait: pausa a sequência por alguns milissegundos, útil para criar fluxos do tipo “faz X, espera Y, depois faz Z”.
- play_alarm: toca sons integrados ao módulo de alarmes, com texto opcional para log ou notificações externas.
- walk_to_waypoint / set_cavebot_waypoint: movem ou reposicionam o Cavebot para um waypoint específico, ótimo para rotas de fuga ou atalho até uma área.
- force_logout / safe_logout / reconnect / panic_shutdown: controlam desligar e religar o cliente de forma automática, incluindo desligamento de emergência com mensagem personalizada.
- sell_item_market / search_item_market / buy_cheapest_item_market: automatizam interações com o market do jogo (busca, venda e compra de itens dentro de parâmetros definidos).
- talk_to_npc / npc_select_option / buy_npc_item: automatizam diálogos com NPCs, seleção de opções e compra de itens diretamente pelos menus.
- run_script: executa scripts pré-definidos e seguros do próprio cliente do bot (não editáveis pelo usuário):
deposit_money,withdraw_money,open_private_chat,send_party_invite,talk_nurse_joy,stack_items_in_container,tv_ban,tv_unban,use_vehicle. - stop_sequence: encerra a execução da regra no ponto atual, útil para criar “if/else” dentro da mesma sequência.
Cheat Sheet de Conditions & ActionsConditions (gatilhos)
| Tipo | Quando usar | Campos principais |
|---|---|---|
time_between / time_is | Regras por horário específico ou janela de horário (ex.: antes do server save). | start_time, end_time, time |
player_on_screen | Detectar qualquer jogador na tela e reagir, ignorando party se quiser. | ignore_party_members |
player_health_between / pokemon_health_between | Automatizar ações de segurança quando a vida cair abaixo de um limite. | min_percent, max_percent |
item_count_lower_than | Detectar quando um item crítico (revive, pokébola, berry) está acabando. | item_name, count |
chat_message / text_message | Reagir a mensagens-chave no chat (ex.: comandos, avisos ou perguntas). | channel (para chat_message), contains (opcional) |
extraordinary_in_screen | Detectar shinies/bosses/megas na tela para tocar alarmes ou mudar a rota. | Sem campos obrigatórios além do type |
state_cooldown_passed | Impedir que uma regra dispare muitas vezes em pouco tempo (cooldown customizado). | variable, cooldown (segundos) |
has_status / missing_status | Verificar se player/pokémon tem ou não tem um status (poisoned, burning, paralyzed, etc.). | target (player/pokemon), status_name |
active_pokemon_is | Verificar se o pokémon ativo é um específico por nome. | name |
all_moves_in_cooldown | Detectar quando todas as magias (área + alvo) estão em cooldown - ideal para Smart Swap. | Sem campos obrigatórios |
pokemon_unsummoned | Detectar dessummon forçado (teleport, dive, mecânicas do jogo). | Sem campos obrigatórios |
Actions (o que executar)
| Tipo | Quando usar | Campos principais |
|---|---|---|
talk / say_random | Enviar avisos automáticos, respostas de PM ou mensagens de roleplay. | channel, message ou messages[] |
use_item | Usar itens de cura, revives, boxes ou qualquer outro item configurado. | item_name, target, positionOption (opcional) |
cast_spell | Forçar o uso de um move específico em momentos críticos. | move_id |
toggle_module / pause_cavebot | Ativar/desativar módulos inteiros com base em risco, status ou horário. | module, state, duration (para pausa) |
play_alarm | Ser avisado imediatamente (som/notificação) quando algo muito importante acontece. | sound, text (opcional), loops |
set_state / increment_state | Marcar que algo aconteceu (avisos, tentativas, flags) e usar isso em outras regras. | variable, value ou amount |
run_script | Aproveitar ações complexas prontas (depositar dinheiro, abrir PM, banir da TV, etc.). | script_id, parâmetros específicos do script (quando existirem) |
Placeholders e ContextoDiversas ações e condições suportam placeholders como {player}, {message} ou{creature.name}. O módulo converte essas variáveis usando a funçãoActionsModule.resolvePlaceholders, que busca os valores dentro de um objeto de contexto (eventData).
- Em regras de chat,
eventData.playereeventData.messagesão preenchidos automaticamente com o jogador e a mensagem recebida. - Em regras de TV,
eventData.watcherNamee variáveis comoActionsModule.state.tvWatcherspermitem banir ou notificar quem está assistindo há muito tempo. - Em regras de criaturas,
eventData.creaturecarrega o monstro que apareceu ou está sendo atacado, permitindo mensagens altamente personalizadas.
Presets de ActionsA aba de presets da página de Actions traz uma coleção de modelos prontos (presets) organizados por categoria (Utility, System & Automation, etc.), já configurados e prontos para serem importados e ajustados.
- Deposit Money (Hotkey): cria uma regra com hotkey que chama o script seguro
deposit_money, responsável por abrir o cofre e depositar todo o dinheiro (ou um valor específico se você configurarcount). - Safe Logout on Player Detection: detecta um jogador na tela, executa
panic_shutdowncom uma mensagem personalizada usando{player}, espera 5 minutos, reconecta e ativa novamente os módulos principais.
Esses presets são um excelente ponto de partida: você pode importar, testar, ajustar textos, tempos e módulos afetados, em vez de montar tudo do zero.
A lógica interna desses presets é exatamente a mesma que você configura manualmente no painel. Eles existem apenas para poupar tempo e servir como "receitas prontas" que você pode adaptar ao seu estilo de jogo.
Exemplos Práticos de Regras1. Safe Logout ao Detectar Jogador
Objetivo: se qualquer jogador aparecer na sua tela durante a hunt, o bot deve desligar tudo com segurança, esperar um tempo e depois tentar reconectar.
- Nome da regra:
Safe Logout on Player Detection - onlyOutsidePz: ativado (true), para não disparar enquanto você está parado em cidade/PZ.
- condition_groups: um grupo com
logic = "OR"e uma condição:type = "player_on_screen"ignore_party_members = truepara não considerar sua própria party como ameaça.
- actions (em ordem):
panic_shutdowncomreason = "Panic shutdown due to player {player} on screen."— usa o placeholder para registrar quem foi detectado.waitcomduration = 300000(5 minutos) — dá tempo para o player ir embora.reconnect— tenta logar novamente na conta usando as infos deAccountModule.accountInfo.toggle_modulecommodule = "All"estate = true— reativa os módulos após o retorno.
2. Depositar Dinheiro com Hotkey
Objetivo: ao apertar uma tecla, o bot abre o cofre e deposita todo o dinheiro (ou um valor específico).
- Nome da regra:
Deposit Money (Hotkey) - enabled: true
- hotkey:
D(no jogo isso viraAlt+D) - condition_groups: pode ficar vazio — a execução será manual via hotkey.
- actions:
run_scriptcomscript_id = "deposit_money"— chama um script seguro interno do cliente do bot.
- Variação com valor fixo: adicione o parâmetro
countna action para depositar apenas parte do dinheiro (ex.:count = 50000para 50k).
3. Responder PM Automaticamente
Objetivo: mandar uma resposta automática quando alguém te envia uma mensagem privada, usando o nome e o conteúdo da mensagem na resposta.
- Nome da regra:
Auto Reply Private Message - enabled: true
- condition_groups: um grupo com
logic = "OR"e uma condição:
type = "chat_message"channel = "private"containsopcional — se você quiser que dispare só quando a mensagem tiver uma palavra-chave.
- actions:
talkcom:channel = "private"message = "Olá {player}, recebi sua mensagem: {message}. No momento estou usando o KizuBot, em breve respondo manualmente."
- Opcional: use
set_state+state_cooldown_passedem uma segunda regra para evitar responder spam do mesmo jogador muitas vezes em pouco tempo.
4. Aviso ao Detectar Shiny/Boss/Mega
Objetivo: tocar um alarme específico e mandar uma mensagem quando uma criatura extraordinária aparecer na tela.
- Nome da regra:
Extraordinary Creature Alert - enabled: true
- condition_groups: um grupo com
logic = "OR"e uma condição do tipoextraordinary_in_screen(ou condição equivalente disponível no painel que detecte extraordinários). - actions:
play_alarmcomsound = "shinyDetected",loops = 3e um texto opcional (ex.: "Shiny/Boss/Mega na tela!").- Opcional: adicionar uma action
talkem canal privado para avisar outra conta sua ou parceiro de hunt.
5. Usar Stun baseado na vida do Pokémon alvo
Objetivo: usar automaticamente um movimento de stun quando a vida do alvo estiver abaixo de um limite, ajudando a controlar lures perigosos.
- Nome da regra:
Use Stun on Low Target HP - enabled: true
- condition_groups: um grupo com
logic = "OR"e uma condição do tipotarget_health_betweencommin_percentemax_percentconfigurados (por exemplo, entre 1% e 30%). - actions:
cast_spellcommove_idapontando para o slot do seu stun na barra de moves.
6. Regra Anti-Gank Completa (múltiplos grupos)
Objetivo: criar uma proteção completa contra gank, combinando detecção de players, checagem de vida e cooldown para não ficar desligando e religando o bot o tempo todo.
- Nome da regra:
Anti-Gank Protection - enabled: true
- onlyOutsidePz: true (só faz sentido quando você está em hunt).
- condition_groups:
- Grupo 1 (detecção de risco) —
logic = "OR":player_on_screencomignore_party_members = true.player_count_iscomgreater_than = 2(mais de dois jogadores na tela).
- Grupo 2 (estado do personagem) —
logic = "AND":player_health_betweencommin_percent = 1emax_percent = 70.is_not_in_pz(garantir que você ainda está exposto).
- Grupo 3 (cooldown da proteção) —
logic = "AND":state_cooldown_passedcomvariable = "anti_gank_last_trigger"ecooldownem segundos.
- Grupo 1 (detecção de risco) —
- actions (em ordem):
set_statecomvariable = "anti_gank_last_trigger"evalue = truepara registrar o último disparo da proteção.panic_shutdowncom uma mensagem explicando o motivo (por exemplo,"Anti-gank triggered due to players on screen."), para desligar tudo de forma segura.- Opcional: adicionar um
play_alarmou envio de mensagem privada para avisar outra conta sua que o anti-gank foi ativado.
Debugando Regras (Quando algo não dispara)- 1. Teste via hotkey primeiro: se sua regra tiver
hotkey, deixecondition_groupso mais simples possível ou até vazio, e confirme se a sequência de ações funciona quando você pressiona o atalho (Alt+tecla). - 2. Revise os filtros globais: confira se
onlyInPz,onlyOutsidePzepokemonSummonedfazem sentido para o cenário em que você está testando. Esses filtros bloqueiam a regra mesmo que as condições internas sejam verdadeiras. - 3. Simplifique as condições: comece com uma única condição em um grupo (por exemplo,
player_health) e verifique se dispara. Depois vá adicionando mais condições ou grupos aos poucos. - 4. Verifique valores numéricos: certifique-se de que campos como percentuais, intervalos e contagens (por exemplo,
duration,min_percent,max_percent,count) estejam coerentes com o que você espera no jogo. - 5. Use placeholders com cuidado: se a mensagem usa
{player}ou{message}, verifique se a condição realmente preenche esse contexto (por exemplo,chat_messageem canal privado). - 6. Evite conflitos entre regras: duas regras podem tentar fazer coisas opostas ao mesmo tempo (uma ligando módulo, outra desligando). Se algo parecer "piscando" ou instável, desative regras semelhantes e teste uma por vez.
FAQ de Actions & Rules- Posso usar Actions & Rules sem presets?
Sim. Os presets são apenas atalhos para criar regras prontas. Você pode montar tudo manualmente, campo por campo, usando a mesma interface.
- O que acontece se eu apagar um preset?
Apagar um preset importado não afeta o funcionamento do bot nem suas outras regras. Ele só deixa de aparecer na lista de regras do painel.
- Regras com
timedpodem me prejudicar?Podem, se configuradas com intervalos muito baixos. Use intervalos maiores e, sempre que possível, combine com condições de cooldown (
state_cooldown_passed) para evitar spam de ações. - Posso usar Actions para substituir totalmente o Cavebot?
O foco de Actions & Rules é reagir a eventos e estados (vida, players, mensagens, horários). Ele complementa o Cavebot e outros módulos, mas não substitui um script de movimentação completo.
- Se eu errar uma regra, posso quebrar o bot?
Erros de configuração normalmente só fazem a regra não disparar ou se comportar de forma indesejada. Se algo parecer estranho, desative a regra (
enabled = false) e ajuste aos poucos até chegar no comportamento desejado.
Boas Práticas- Comece simples: crie regras com poucas condições e 1–2 ações para validar o comportamento.
- Use hotkeys para teste: ative a mesma sequência via hotkey antes de deixá-la totalmente automatizada.
- Combine com Alarmes: use
play_alarme notificações externas para saber quando uma regra crítica é disparada. - Atenção a loops: evite criar regras que se auto-disparem em alta frequência (por exemplo,
timedcom intervalo muito baixo) sem algum controle de cooldown viastate_cooldown_passed. - Priorize segurança: em ações de TV, player detection e staff, prefira desligar módulos, pausar cavebot ou fazer logout seguro antes de qualquer ação agressiva.