Update de código24 de ago. de 2026, 20:42 BRT
Assinar updates

Atualização do CS2 (24 de ago. de 2026)

O CS2 adiciona um sistema experimental de HUD personalizado para mapas scriptados, APIs de script mais ricas para bomba e câmeras, e atualiza o mapa exemplo cs_script zoo para mostrar as novas ferramentas.

Resumo rápido

  • A entidade experimental `custom_hud_layout` e a API CustomHudLayout permitem que scripts controlem HUDs simples com botões, classes e variáveis de diálogo.
  • Novos hooks de script em torno de plant/desarm de bomba, controlo da C4, tipos de movimento e um `Instance.Delay` baseado em promise melhoram a lógica de jogos customizados.
  • O mapa exemplo cs_script zoo ganha um diálogo de boas‑vindas scriptado usando o novo sistema de HUD e migra o mini‑jogo de xadrez para o helper de delay embutido.
  • Schemas da engine, user messages e ferramentas foram atualizados para suportar eventos CustomHudClicked e networking de estado de HUD customizado por jogador.

Uma nova atualização do CS2 introduz discretamente um sistema experimental para HUDs personalizados controlados por mapas via script, além de novas ferramentas de script para bomba e câmeras de jogador — tudo demonstrado no mapa exemplo oficial cs_script “zoo”.

Layouts experimentais de HUD customizados para mapas scriptados

  • Novo custom_hud_layout entity: o Hammer agora expõe uma entidade ponto custom_hud_layout em csgo.fgd. Isso permite que autores de mapa forneçam um layout Panorama (XML) que pode ser controlado a partir de cs_script.
  • Elementos de UI suportados: a nova API de script documenta que layouts customizados podem conter painéis básicos:
    • Panel com id, class, hittest
    • Label com id, class, hittest, text
    • Image com id, class, hittest, src, texturewidth, textureheight
    • Button com id, class Estilização via CSS é suportada; JavaScript do lado cliente embutido no HUD não é suportado.
  • Estado visual dirigido pelo servidor: scripts podem agora:
    • Alternar classes CSS em painéis globalmente ou por jogador com CustomHudLayout.SetHasClass / SetHasClassForPlayer.
    • Definir variáveis de diálogo por painel (tokens de texto) globalmente ou por jogador com SetDialogVariableString / SetDialogVariableStringForPlayer. Isso permite que criadores controlem prompts, temporizadores ou indicadores de estado puramente a partir da lógica do servidor.
  • Captura de input pelo HUD: CustomHudLayout.SetInputCaptureEnabled(playerSlot, enabled) oferece aos mapas uma forma de capturar temporariamente o mouse de um jogador para interação com a UI. IsInputCaptureEnabled indica se um layout está atualmente capturando input. Enquanto ativo, o jogador pode perder o controlo normal de movimento/mouse até que todos os layouts em captura o libertem.
  • Eventos de clique integrados em user messages: uma nova user message CS_UM_CustomHudClicked e o callback de script Instance.OnCustomHudClicked foram adicionados. Quando um jogador clica num botão em um CustomHudLayout, o servidor recebe qual layout e qual buttonId foi clicado. Isso permite implementar menus, diálogos ou controles de minijogos totalmente no servidor.
  • Layouts de suporte no Panorama: dois novos ficheiros de layout Panorama (hud/customhuds.xml e hud/infohudlayouts.xml) parecem hospedar o lado da engine desses layouts customizados. São estruturas internas; os jogadores provavelmente não verão um novo HUD padrão diretamente por causa deles, mas sustentam o novo recurso de HUD scriptado.
  • Aviso experimental: a API está explicitamente marcada como @experimental e indica que mudanças incompatíveis podem ocorrer. Autores que construírem projetos sérios sobre ela devem esperar ajustes em builds futuros.

Melhorias de script para bombas, câmeras e movimento

Atualizações em content/csgo/maps/editor/zoo/scripts/point_script.d.ts expandem o que cs_script pode fazer em mapas personalizados ou comunitários:

  • Helper de temporização baseado em Promise:
    • Instance.Delay(delay: number): Promise<void> está agora disponível como um delay assíncrono embutido. Isso substitui a fila de think feita à mão no script de xadrez do zoo e simplifica sequências assíncronas de longa duração.
  • Eventos do ciclo de vida da bomba mais detalhados:
    • Novos callbacks dividem interações com a bomba em fases de início/aborto/conclusão:
      • OnBombPlantStart, OnBombPlantAbort, OnBombPlant
      • OnBombDefuseStart, OnBombDefuseAbort, OnBombDefuse, além de OnBombExplode
    • Novos tipos BombPlantEvent e BombDefuseEvent são introduzidos, com alguns campos marcados como deprecated para limpeza futura. Isso deve permitir que mapas scriptados ou mods reajam com mais precisão a ações parciais de plant/defuse — por exemplo, overlays de tutorial ou condições de vitória customizadas.
  • API de arma C4:
    • A nova classe de script C4 (estendendo CSWeaponBase) inclui:
      • GetPlantStartTime() / GetPlantFinishTime()
      • AbortPlant()
    • CSPlayerPawn agora pode expor GetC4() para obter a arma C4 de um jogador, e GetDefuseTarget() para acessar a bomba plantada que ele está a desarmar. Essas ferramentas parecem direcionadas a mapas de treino avançado ou modos de jogo centrados na bomba.
  • Estado do jogador e hooks de UI:
    • CSPlayerPawn.IsBuyMenuOpen() permite que scripts saibam quando um jogador está no menu de compra.
    • CSPlayerPawn.GetCamera() expõe uma entidade CSPlayerCamera para cada jogador.
  • Nova entidade de controle de câmera:
    • CSPlayerCamera é uma nova entidade scriptável experimental que representa a visão de um jogador.
    • Scripts podem ativá‑la/desativá‑la e chamar SetIsControllingAngles(controlling: boolean). Quando não controla os ângulos, o jogador pode olhar livremente a partir da posição da câmera. Isso pode resultar em câmeras scriptadas mais polidas para cutscenes, replays ou vistas de treino.
  • Helpers de movimento e interpolação:
    • O novo enum CSMoveType permite que scripts inspecionem ou alterem como uma entidade se move (walk, fly, noclip, ladder, etc.) via GetMoveType() e SetMoveType().
    • Move({...}) é adicionado como irmão de Teleport, descrito como mover uma entidade sem reiniciar o histórico de interpolação do cliente. Isso provavelmente permite reposicionamentos visuais mais suaves para objetos movidos por script.
  • Adições utilitárias e refinamentos de tipos:
    • Instance.IsDedicatedServer() ajuda scripts a ramificarem entre servidores listen e dedicados.
    • Vários campos de evento (OnPlayerChat, OnBulletImpact, ModifyPlayerDamageEvent.inflictor, etc.) foram tornados opcionais (?), tornando scripts mais robustos quando nenhuma entidade está presente.

Todas essas adições de script são expostas através das definições de tipos oficiais usadas por autores de mapa, portanto destinam‑se a ser usadas em conteúdo personalizado e devem funcionar na prática, não apenas nos exemplos internos da Valve.

Mapa exemplo zoo: diálogo de boas‑vindas scriptado e lógica de xadrez mais limpa

O mapa exemplo editor/zoo para cs_script foi expandido para demonstrar os novos HUDs e a API de temporização.

  • Nova UI de popup de boas‑vindas:
    • Um layout Panorama welcome.xml e welcome.css definem um diálogo simples centralizado:
      • Texto: “Welcome to the cs_script zoo map!”
      • Um botão Dismiss
      • Uma classe CSS Dismissed que faz o diálogo desaparecer ajustando sua opacidade para zero.
    • Quando um jogador aparece (OnPlayerActivate), ShowWelcome(playerSlot) é chamada:
      • Ela remove a classe Dismissed para esse jogador, fazendo o diálogo aparecer.
      • Ativa captura de input com SetInputCaptureEnabled, para que o jogador possa clicar no botão do diálogo.
    • Instance.OnCustomHudClicked escuta eventos de clique:
      • Se o layout clicado for welcome_layout e o buttonId for dismiss_button, HideWelcome adiciona Dismissed de volta e desativa a captura de input, devolvendo o controlo ao jogador.
    • Um comando de debug/cheat script_zoo_show_welcome percorre todos os jogadores e mostra o diálogo novamente, ilustrando como autores de mapa podem reativar fluxos de HUD customizados sob demanda.
  • Script de xadrez migrado para Instance.Delay:
    • O mini‑jogo de xadrez anteriormente implementava sua própria fila de temporização e helper Delay() baseado em Instance.SetNextThink.
    • Essa fila personalizada e a implementação de Delay foram completamente removidas.
    • Todas as esperas assíncronas (por exemplo, dentro de RunChess, animações de deslize de peças, animações de morte de peças e o throttle da busca minimax da IA) agora usam await Instance.Delay(0). Isso mostra como a nova API de delay embutida é destinada a simplificar lógica assíncrona de gameplay de longa duração.

Jogadores que explorarem o mapa zoo após esta atualização deverão ver uma pequena janela de boas‑vindas no primeiro spawn, demonstrando exatamente como layouts de HUD customizados podem parecer e comportar‑se.

Infraestrutura da engine e do protocolo por trás das novas ferramentas de HUD

Embora não visíveis diretamente no gameplay normal, várias atualizações a nível de engine e schemas suportam os novos recursos de HUD:

  • Estruturas de rede para HUDs customizados:
    • Novos tipos de schema (CCSCustomHudLayout, CCSCustomHudLayoutState, HUDPanelHasClass_t, HUDPanelDialogVariableString_t e EHudPanelClassStatus_t) aparecem tanto no cliente quanto no servidor. Eles cobrem:
      • O nome do recurso de layout.
      • O estado do layout global e por jogador (quais classes e variáveis de diálogo são aplicadas a quais painéis).
      • Se um layout está a capturar input para um determinado jogador.
  • Entidade de câmera do jogador:
    • CCSPlayerCamera é adicionada no cliente e no servidor, com campos ligando‑a a um handle de pawn e booleans que rastreiam se está habilitada e se está controlando o ângulo do jogador.
  • User message e enum:
    • O enum ECstrike15UserMessages ganha CS_UM_CustomHudClicked = 390, ligando a nova notificação de clique ao pipeline existente de user messages.
    • Uma mensagem de protocolo CCSUsrMsg_CustomHudClicked correspondente transporta um identificador de layout e o button ID para o servidor.
  • Ferramentas e strings:
    • Várias ferramentas internas e tabelas de strings (servidor, cliente, Panorama, VScript, compilador de recursos, etc.) foram atualizadas. Entre elas há novas estruturas de string relacionadas a HUD (HUDPanelHasClass_t, vetores de variáveis de diálogo, etc.) e suporte V8 atualizado para scripting.
    • Essas mudanças são em grande parte de infraestrutura e provavelmente não afetarão diretamente os jogadores, mas são necessárias para que os novos recursos funcionem de forma fiável.

Impacto geral

A atualização foca principalmente criadores e scripters, mais do que o núcleo do gameplay competitivo:

  • Autores de mapa ganham uma forma experimental e oficialmente suportada de construir HUDs interativos simples dirigidos por cs_script, incluindo estado por jogador, tratamento de cliques e captura de input.
  • Hooks de script relacionados à bomba ficam muito mais ricos, o que pode beneficiar mapas de treino, tutoriais ou modos customizados centrados em plant/desarm.
  • A nova CSPlayerCamera, helpers de movimento e a API de delay baseada em Promise devem facilitar a implementação de experiências scriptadas avançadas (câmeras customizadas, minijogos, entidades em movimento com interpolação mais suave).

Para a maioria dos jogadores em matchmaking padrão, o impacto imediato será sutil. Com o tempo, porém, essas ferramentas podem resultar em mapas personalizados mais polidos, utilitários de treino melhores e modos comunitários mais criativos construídos sobre o sistema de scripting do CS2.

Voltar aos updates

Updates recentes

Update de código8 de out. de 2026, 19:39 BRT

Atualização do CS2 (8 de out. de 2026)

Reload de uma arma ficou mais justo, limites de rede em servidores relaxados, mixagem de áudio de armas ajustada e ampla limpeza de protocolos, shaders e ferramentas — com pequenos polimentos na UI de mascotes e ferramentas de criação.

  • Janela de ataque após reload reduzida para uma arma específica, fazendo os reloads parecerem um pouco mais rápidos.
  • Limites de CPU para processamento de mensagens de cliente e tamanho do recv buffer relaxados e promovidos para configuração `release` para reduzir desconexões espúrias.
  • Modificadores de mix de áudio de armas atualizados para que os disparos possam sobressair mais claramente na mixagem.
  • Grande limpeza de mensagens e schemas do Game Coordinator econ, depreciando muitas operações legadas de item e adicionando operações genéricas de gerenciamento de itens.
  • Um novo campo `m_flModifier0` tipo `float` agora é replicado em pawns de jogador CS, provavelmente para um modificador de jogabilidade ou visual sincronizado no futuro.
  • Tooltip da cabine fotográfica de mascotes movido para localização e múltiplos arquivos de idioma e assets do livro de mascotes foram repacotados.
  • Numerosos arquivos de shader Vulkan atualizados para consistência de nomes e bindings corretos de parâmetros, melhorando robustez para VFX e ferramentas de criação de conteúdo.
  • ModelDoc ganha operação de mesh `Strip Morphs` e o Asset Browser recebe atalho para explorar o asset selecionado no disco.
  • Pacote e miniaturas de `rush_001` foram reconstruídos, sugerindo ajustes visuais ou de empacotamento menores, não mudanças de layout.
  • Binaries do cliente, servidor, matchmaking e engine recompilados com a nova versão `1.41.9.0`, indicando estabilidade geral e atualizações de protocolo.
Ver detalhes
Update oficial8 de out. de 2026, 19:36 BRT

Atualização do Counter-Strike 2 (8 de out. de 2026)

Pequenas correções e ajustes: ícone de ping para kits de desarme, ajuste de recarga do `AUG`, correções de áudio, clipping em mapas `Rush`, atualizações de localização e estabilidade.

  • Adicionado um ícone de ping para kits de desarme descartados
  • Reduzido o tempo de recarga do `AUG` em meio segundo
  • Corrigido o evento sonoro durante a recarga silenciosa do `Desert Eagle`
  • Corrigido um caso de zumbido em paisagens sonoras durante a reprodução de demos
  • Correções de clipping para mapas `Rush`
  • Atualizações de localização
  • Atualizações de estabilidade
Ver detalhes