- Srpnová aktualizace CS2 z 25. srpna 2026 cílí především na tvůrce scripted map a rozšiřuje nástroje pro práci s rozhraním, kamerou a skriptovanou logikou okolo bomby. Vedle toho přidává i více funkcí pro ovládání chování entit a zlepšení ladění skriptů.
Aktualizace CS2 přináší vlastní HUD pro scripted mapy
Největší novinkou je nová entita custom_hud_layout. Ta slouží jako vstupní bod pro vlastní rozhraní v mapách se skripty. Mapper už tak nemusí vše obcházet improvizovanými fíglemi, protože hra nyní přímo počítá s tím, že mapa může mít vlastní UI.
Valve u této entity uvádí podporu pro několik typů panelů:
- Panel
- Label
- Image
- Button
Nejde jen o jednoduché prvky na obrazovce. Aktualizace CS2 zároveň přidává možnost stylování přes CSS, takže autoři map získají mnohem větší kontrolu nad tím, jak bude jejich HUD vypadat. Hodí se to hlavně pro custom režimy, tréninkové mapy a různé puzzle či kooperativní scénáře, kde standardní UI často nestačí.
Současně jde i o řešení s jasnými mantinely. Valve výslovně zmiňuje, že:
- events nejsou podporované
- client-side scripting není podporovaný
Znamená to, že nejde o plnohodnotný webový interface vložený do CS2, ale o řízené řešení přímo v enginu. Z pohledu stability je to logický krok. Pro mappery to ale znamená další práci v mantinelech nastavených Valve.
Praktická věc navíc: custom HUD si udržuje stav při reloadu v tools mode. Kdo někdy ladil mapu a opakovaně refreshoval nástroje, ví, jak moc tohle šetří čas.
Kamera hráče bez posunu pawn mění možnosti skriptovaných scén
Druhá velká novinka se jmenuje cs_player_camera. Tahle entita dává skriptu kontrolu nad pohledem hráče, aniž by musela fyzicky posunout jeho pawn. Dopad je tedy jasný: mapa může ukázat přesně to, co autor potřebuje, aniž by rozbíjela pozici hráče v prostoru.
Valve zároveň přidalo možnost nastavit, zda se hráč z téhle skriptované pozice může rozhlížet. To je užitečné pro intro sekvence, spectate momenty, briefingy, scripted přechody nebo různé challenge mapy. Rozdíl je mezi situací, kdy "kamera bere kontrolu", a situací, kdy "kamera vede, ale hráč má stále možnost se rozhlížet".
S kamerou souvisí i nové metody:
- CSPlayerPawn.GetCamera
- CSPlayerCamera.IsEnabled
- CSPlayerCamera.SetEnabled
- CSPlayerCamera.SetIsControllingAngles
Pro běžného hráče to nemusí být viditelné při prvním spuštění, ale pro komunitní obsah je to silný základ. V první řadě to zřejmě využijí autoři workshop map, kteří dělají cinematic sekvence nebo sofistikovanější training scénáře.
Nové hooky kolem plantu, defusu a C4 dávají mapperům víc kontroly
Valve rozšířilo skriptovací API také pro situace kolem bomby. Nejde jen o kosmetickou změnu.
Přibyly nové události:
- Instance.OnBombPlantStart
- Instance.OnBombPlantAbort
- Instance.OnBombDefuseStart
- Instance.OnBombDefuseAbort
Důležitý je timing: mapper může reagovat už na začátek plantu nebo defusu, případně na jejich přerušení, a ne až na dokončení. V custom režimech to otevírá dveře pro přesnější logiku, časované sekvence a změny UI během akce.
Na bombu samotnou pak míří další funkce:
- C4.GetPlantStartTime
- C4.GetPlantFinishTime
- C4.AbortPlant
- CSPlayerPawn.GetC4
- CSPlayerPawn.GetDefuseTarget
Tady se práce s časováním výrazně zpřesňuje. Pokud mapa staví mechaniku na tom, kdy hráč začal plantit, kdy má plant skončit, nebo podle toho, co zrovna probíhá při defusu, už nemusí vše odhadovat "bokem".
Valve zároveň označilo některé starší parametry jako zastaralé:
- planter v
Instance.OnBombPlant - defuser v
Instance.OnBombDefuse
V praxi to obvykle znamená, že starý způsob ještě nějakou dobu poběží, ale nové mapy by na něm už stavět neměly.
Pohyb entit, buy menu a klikání v HUDu
Další část updatu je méně nápadná, ale v praxi užitečná. Aktualizace CS2 přidává nové funkce pro pohyb a stav entit:
- Entity.Move
- Entity.GetMoveType
- Entity.SetMoveType
- enum CSMoveType
Tohle rozšiřuje kontrolu nad tím, jak se objekty v mapě chovají. Vedle toho přibyly i funkce navázané na hráče:
- CSPlayerPawn.IsBuyMenuOpen
- Instance.IsDedicatedServer
První se může hodit třeba v custom flow ve warmupu nebo ve scénářích, kde mapa reaguje na nákup. Druhá je praktická pro skripty, které se mají chovat jinak na dedicated serveru a jinak lokálně.
Vlastní HUD dostal i funkce pro úpravy stylů a práci se vstupem:
- CustomHudLayout.SetHasClass
- CustomHudLayout.SetHasClassForPlayer
- CustomHudLayout.SetDialogVariableString
- CustomHudLayout.SetDialogVariableStringForPlayer
- CustomHudLayout.SetInputCaptureEnabled
- CustomHudLayout.IsInputCaptureEnabled
- Instance.OnCustomHudClicked
Vypadá to jako sada nástrojů, ze které se dá postavit funkční interface jak pro konkrétního hráče, tak pro celý server. Mapa může měnit texty, přepínat CSS class podle stavu a reagovat na kliknutí v HUDu. Pro poměry CS2 je to výrazný posun.
Pro přehled, co tahle část updatu řeší:
| Oblast | Novinka | Co to přináší |
|---|---|---|
| HUD | custom_hud_layout |
Vlastní UI v mapách |
| Kamera | cs_player_camera |
Kontrola pohledu bez přesunu hráče |
| Bomba | nové plant/defuse hooky | Přesnější reakce na začátek a abort |
| Pohyb | Entity.Move, CSMoveType |
Lepší řízení entit |
| Interakce | OnCustomHudClicked |
Reakce na kliknutí v HUDu |
Valve zlepšilo i debugování skriptů
Nakonec tu je sada změn, která potěší hlavně lidi v editoru. Valve opravilo typy u některých eventů, kde mohly být parametry dřív nejasné nebo dokonce undefined. Takový problém se obvykle projeví až ve chvíli, kdy skript spadne ve špatný moment.
Nově se do konzole logují:
- chyby při prvním spuštění skriptu
- unhandled promise rejections
Ještě jedna drobnost, která v praxi ušetří nervy: při chybách zachycených během kroku CompileModule hra vypisuje i číslo sloupce. Kdo někdy hledal překlep v delším souboru jen podle řádku, ví, že tohle není maličkost.
Tohle zlepšení nemusí vypadat efektně, ale mapperům zkrátí ladění. A to bývá často cennější než další dlouhý seznam API funkcí.
Celkově jde o hodně technický update, který ale dává smysl. Valve rozšířilo základy pro scripted mapy, přidalo použitelný custom HUD, lepší kameru a víc kontroly nad plantem, defusem i chováním entit. Pro běžný Premier večer to nic nemění. Pro komunitní tvorbu je to naopak patch, který se projeví až za pár týdnů, kdy začnou vycházet mapy postavené na nových nástrojích.
Kompletní seznam změn (Valve)
[ MAP SCRIPTING ]
-
Přidána entita custom_hud_layout:
-
custom_hud_layouts jsou vstupním bodem pro skriptované mapy, aby poskytly vlastní uživatelské rozhraní.
-
Podporovány jsou typy panelů, štítků, obrázků a tlačítek.
-
Podporováno je stylování pomocí css.
-
Události a skriptování na straně klienta nejsou podporovány.
-
Udržuje stav během znovu načítání v režimu nástrojů.
-
Přidána entita cs_player_camera:
-
Dává kontrolu nad pohledem hráče, aniž by se pohybovala jeho figurka.
-
Může být nakonfigurována tak, aby hráč mohl se rozhlížet z pozice skriptu.
-
Přidáno Instance.Delay
-
Přidáno Instance.OnBombPlantStart
-
Přidáno Instance.OnBombPlantAbort
-
Přidáno Instance.OnBombDefuseStart
-
Přidáno Instance.OnBombDefuseAbort
-
Přidáno Instance.OnCustomHudClicked
-
Přidáno Instance.IsDedicatedServer
-
Přidáno Entity.Move
-
Přidáno Entity.GetMoveType
-
Přidáno Entity.SetMoveType
-
Přidáno CSPlayerPawn.GetC4
-
Přidáno CSPlayerPawn.GetDefuseTarget
-
Přidáno CSPlayerPawn.IsBuyMenuOpen
-
Přidáno CSPlayerPawn.GetCamera
-
Přidáno C4.GetPlantStartTime
-
Přidáno C4.GetPlantFinishTime
-
Přidáno C4.AbortPlant
-
Přidáno CustomHudLayout.SetHasClass
-
Přidáno CustomHudLayout.SetHasClassForPlayer
-
Přidáno CustomHudLayout.SetDialogVariableString
-
Přidáno CustomHudLayout.SetDialogVariableStringForPlayer
-
Přidáno CustomHudLayout.SetInputCaptureEnabled
-
Přidáno CustomHudLayout.IsInputCaptureEnabled
-
Přidáno CSPlayerCamera.IsEnabled
-
Přidáno CSPlayerCamera.SetEnabled
-
Přidáno CSPlayerCamera.SetIsControllingAngles
-
Přidáno enum CSMoveType
-
Opraveny typy pro některé události, kde byly parametry možná nedefinované.
-
Chyby, které se vyskytly během počátečního spuštění skriptu, jsou nyní zaznamenávány do konzole.
-
Nezpracované odmítnutí slibů je nyní zaznamenáváno do konzole.
-
Přidáno číslo sloupce k chybám zachyceným během kroku CompileModule při načítání skriptu.
-
Zastaralý planter z události Instance.OnBombPlant
-
Zastaralý defuser z události Instance.OnBombDefuse
Polski
English
Українська
Deutsch
Español
Türkçe
Português (BR)
Français
Čeština