---
name: cs2-workshop-tools
description: Riferimento sui Counter-Strike 2 Workshop Tools, gli strumenti ufficiali Source 2 per creare mappe, addon e contenuti per CS2. Copre installazione e avvio degli strumenti, la struttura di un addon (content vs game), Hammer e la compilazione delle mappe (Full/Fast/Final/Entities Only, path tracing, lightmap), gli altri editor (ModelDoc, Material Editor, Particle Editor), le mappe di esempio e i template, la pubblicazione sullo Steam Workshop, e soprattutto il sistema di scripting **cs_script** in JavaScript con l'entita' point_script e la sua API completa (Instance, eventi, CSPlayerPawn, CSWeaponData, enum). USA SEMPRE questa skill quando si parla di Hammer, mappe custom, .vmap, addon di CS2, compilazione di una mappa, lightmap, Workshop, point_script, cs_script, scripting JavaScript nelle mappe, o quando si valuta di distribuire una modalita' come mappa del Workshop invece che come plugin di server.
---

# Counter-Strike 2 Workshop Tools

Gli strumenti ufficiali Source 2 per CS2: gratuiti per tutti (a differenza degli
Authoring Tools di CS:GO), si scaricano come DLC dalla libreria di Steam.

Servono per una cosa che i plugin di server **non** possono fare: distribuire una
modalita' a chiunque, senza chiedergli di collegarsi a un server dedicato. Il prezzo e'
che il codice gira dentro una mappa e in un ambiente molto piu' limitato.

## Dove guardare

| Se devi... | Leggi |
|---|---|
| installare gli strumenti, creare un addon, capire `content/` vs `game/` | `references/01-installazione-e-addon.md` |
| lavorare in Hammer e compilare la mappa | `references/02-hammer-e-compilazione.md` |
| scrivere script JavaScript dentro una mappa | `references/03-cs-script.md` |
| cercare un metodo, un evento o un enum dell'API | `references/04-api-scripting.md` |
| pubblicare sul Workshop e far provare la mappa ad altri | `references/05-pubblicazione.md` |
| capire cosa costerebbe portare King of the Olympus su questa strada | `references/06-per-questo-progetto.md` |

## In due minuti

Si installano dalla scheda **DLC** di Counter-Strike 2 nelle proprieta' del gioco su
Steam; poi premendo **Play** compare un menu di scelta con "Counter-Strike 2 Workshop
Tools".

Il lavoro si organizza in **addon**, e ogni addon vive in due cartelle parallele:

```
Counter-Strike Global Offensive/
├── content/csgo_addons/<addon>/    i sorgenti: .vmap, .vmdl, .vmat, .js, texture, fbx
└── game/csgo_addons/<addon>/       i compilati: .vmap_c, .vmdl_c, .vmat_c, .vjs_c
```

Si modifica solo `content/`. Gli strumenti compilano dentro `game/`, ed e' quello che il
gioco carica. Questa e' la differenza piu' importante rispetto a Source 1, dove i file
sorgente e quelli usati dal gioco stavano nella stessa cartella.

Gli editor inclusi: **Hammer** (livelli), **ModelDoc** (modelli), **Material Editor**,
**Particle Editor**, **Image Subrect Editor**, **Source 2 Filmmaker**. Si aprono tutti
dall'**Asset Browser**.

## Lo scripting: cs_script

CS2 non usa VScript/Lua come gli altri giochi Source 2: usa **cs_script**, un sistema in
**JavaScript**. Uno script vive nella cartella `scripts/` dell'addon, viene compilato in
`.vjs_c` e viene eseguito da un'entita' **`point_script`** piazzata nella mappa.

```javascript
import { Instance } from "cs_script/point_script";

Instance.Msg("Hello, Gordon!");

Instance.OnRoundStart(() => {
    Instance.Msg("round iniziato al tempo " + Instance.GetGameTime());
});
```

Il codice al livello superiore del file viene eseguito quando il `point_script` compare;
tutto il resto passa da callback registrati su `Instance`. Nella modalita' strumenti, il
salvataggio del file ricompila e riesegue senza ricaricare la mappa — ed e' quello che
rende l'iterazione sopportabile.

L'API e' sorprendentemente ampia: entita', tracce, danno, armi, eventi di round e di
giocatore. L'elenco completo di metodi, eventi ed enum sta in `04-api-scripting.md`.

## Requisiti che non si aggirano

**Serve una GPU con raytracing.** Hammer in CS2 usa il raytracing accelerato in hardware
sia per l'anteprima sia per il calcolo dell'illuminazione. Minimo dichiarato: RTX 2060 o
Radeon 6600 XT. Consigliato: RTX 2080 Ti o superiore, Radeon 6800 XT o superiore.

**Attenzione ai driver Nvidia.** Esiste un problema noto per cui i driver Studio piu'
recenti fanno crashare l'anteprima dell'illuminazione o la compilazione con path tracing,
con l'errore `Light mapper didn't return valid triangles`. La versione indicata come
stabile e' la **Studio 561.09** (17 settembre 2024). Se la compilazione crasha sulla luce e
non capisci perche', guarda li' prima di guardare la mappa.

## Cosa aspettarsi, e cosa no

Le pagine ufficiali della Valve Developer Community su questi strumenti sono **in parte
segnaposto ereditati dai Workshop Tools di Half-Life: Alyx**, e alcune sezioni sono
incomplete o descrivono comportamenti di CS:GO che in CS2 non valgono piu'. Dove qui c'e'
un'informazione che vale solo per CS:GO l'ho marcata.

Due limiti dichiarati da Valve:

- l'**Animgraph Editor non e' incluso** in CS2;
- **Pulse**, il sistema di scripting visuale di Source 2, non e' disponibile agli utenti.

E una nota di realismo: il Workshop e' la strada per **distribuire**, non per iterare in
fretta. Costruire e compilare una mappa e' un lavoro di ore, contro i secondi di un
`deploy.ps1` su un server dedicato. Vedi `06-per-questo-progetto.md` per il confronto
fatto sul caso concreto.

---

Fonte principale:
<https://developer.valvesoftware.com/wiki/Counter-Strike_2_Workshop_Tools>
