Wat is het VPK-bestandsformaat?
Een .vpk-bestand, ook wel bekend als een Valve Pak-bestand, is een ongecomprimeerd archief dat wordt gebruikt om game-assets voor Valve's Source-engine te verpakken. De .vpk kan een hoofddirectory bevatten die materialen, modellen, deeltjes, choreografie-scènes, geluiden en andere bestandstypen opslaat. Het .vpk-formaat is een opvolger van het oudere .GCF content-formaat en vervangt dit als het standaard verpakkingssysteem voor Source-engine titels zoals *Counter-Strike: Global Offensive*, *Team Fortress 2* en *Left 4 Dead 2*.
Het .vpk-bestand bestaat uit een hoofddirectorybestand en een of meer genummerde VPK-archiefbestanden. Het directorybestand (meestal genaamd pak01_dir.vpk) bevat een 4-byte little-endian magic signature (34 12 AA 55 op offset 0) en een index van elke asset - de extensie, het pad, de bestandsnaam, de CRC-32 checksum per bestand en welk genummerd archief de gegevens bevat. De genummerde archieven (pak01_000.vpk, pak01_001.vpk, …) bevatten ruwe, ongecomprimeerde asset-bytes zonder eigen header; individuele archieven zijn doorgaans beperkt tot ongeveer 200 MB. Assets zoals .VMT materiaalbestanden of .VTF texturen kunnen ook een klein preload-blok van maximaal 65.535 bytes inline in de directory-ingang zelf opslaan.
Het .vpk-bestand wordt gemaakt met de opdrachtregeltool vpk.exe die is opgenomen in de Source SDK, en het bestand kan worden opgeslagen als onderdeel van een VPK-pakket dat meerdere archieven beslaat. Er bestaan twee formaatversies: Versie 1 (header plus directoryboom) en Versie 2, die MD5-checksums en een optioneel RSA-handtekeningblok toevoegt voor integriteitsverificatie op pakketniveau. Tools van derden zoals GCFScape en Crowbar maken het mogelijk om .vpk-archieven te bladeren, uit te pakken en opnieuw in te pakken op Windows.
Beveiliging & veiligheid
RISICO: MEDIUMHet grootste risico is zelf toegebracht: het verwijderen, hernoemen of onzorgvuldig bewerken van de .vpk-bestanden van een spel verbreekt of beschadigt de installatie - verwijder ze nooit om „ruimte vrij te maken”; gebruik in plaats daarvan Steam om te deïnstalleren. Gedownloade VPK-mods zijn een tweede punt van zorg: een VPK is slechts een asset-container die niet automatisch code uitvoert, maar mod-pakketten kunnen samen met scripts of uitvoerbare bestanden worden geleverd, dus haal mods van betrouwbare sites voor dat spel en maak een back-up van de originele .vpk voordat je deze vervangt. Voor PS Vita .vpk homebrew geldt: installeer alleen vanuit vertrouwde bronnen - homebrew draait met systeemtoegang.
Formaatdetails
in een notendop- PlayStation Vita VPK-pakket - Een op ZIP gebaseerd homebrew app/game-pakket voor de PS Vita, geïnstalleerd met VitaShell - niet gerelateerd aan Valve.
- Visual Paradigm / andere app-exports - Een paar niet-gerelateerde applicaties hebben .vpk hergebruikt voor hun eigen pakketbestanden; identificeer deze aan de hand van het oorspronkelijke programma.
Programma's die VPK-bestanden openen
vpk x pak01_dir.vpk om uit te pakken, of vpk <map> om een VPK te maken. Wordt geleverd bij de Source SDK / games op Steam. vpk x pak01_dir.vpk om uit te pakken. Technische details
diepe specificaties| Magic bytes | 34 12 AA 55 op byte-offset 0 (little-endian 0x55AA1234); alleen aanwezig in het `_dir.vpk` directorybestand - genummerde data-archieven bevatten geen header |
| Archiefstructuur | Opgesplitst in één `*_dir.vpk` indexbestand plus genummerde data-archieven (`*_000.vpk`, `*_001.vpk`, …) die ruwe aaneengeschakelde asset-bytes bevatten |
| Compressie | Geen - assets worden ongecomprimeerd opgeslagen voor directe streaming met lage latentie door de Source-engine |
| Codering | Binair, overal little-endian bytevolgorde |
| Formaatversies | Versie 1: 4-byte magic, versie uint32, boomgrootte, dan directoryboom. Versie 2 voegt data-sectiegrootte, MD5-blokken per archief, een algemene MD5-sectie en een RSA-handtekeningsectie toe |
| Integriteit per bestand | CRC-32 checksum per bestandsvermelding in beide versies; Versie 2 slaat bovendien MD5-hashes op per data-archiefblok en een optionele RSA-2048 handtekening die het volledige pakket dekt |
| Indeling directoryboom | Index op drie niveaus op basis van bestandsextensie → pad → bestandsnaam; elke leaf-vermelding slaat archiefnummer, data-offset, datalengte, preload-byte-aantal en CRC-32 op |
| Preload-gegevens | Elke directory-ingang kan tot 65.535 bytes aan bestandsinhoud inline insluiten, waardoor een zoekactie in het archief voor zeer kleine assets niet nodig is |
| Grootte data-archief | Individuele genummerde archieven zijn doorgaans beperkt tot ~200 MB elk; de VPK-set van een volledig spel kan in totaal vele gigabytes beslaan |
| Geïndexeerde asset-typen | Texturen (`.vtf`), materialen (`.vmt`), modellen (`.mdl`), kaarten (`.bsp`), geluiden, deeltjessystemen, choreografie-scènes (`.vcd`) en andere Source-engine resourcetypen |
| Platformondersteuning | Windows, macOS, Linux en Android (via Source-engine poorten) |
| MIME-type | application/octet-stream |
| Ontwikkelaar | Valve Corporation (Source engine content pipeline) |
| Voorgaand formaat | Verving de oudere GCF- en NCF-pakketformaten die in eerdere Steam/Source-engine versies werden gebruikt |
| Officieel aanmaakprogramma | `vpk.exe` (Windows Source SDK) of `vpk` CLI (Linux Source SDK); tools van derden zijn onder meer GCFScape en Crowbar |
| Uitgebracht | 2010 (Source engine; replaced the older GCF content packaging) |
| Laatste versie | VPK directory format version 2 (adds per-file CRC and signature sections); v1 still in use |
| Specificatie | developer.valvesoftware.com |
VPK conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over VPK-bestanden.
Veelgestelde vragen
Hoe open ik een VPK-bestand?
vpk x pak01_dir.vpk). Een PS Vita .vpk is anders - installeer deze met VitaShell.Kan ik VPK-bestanden verwijderen om ruimte vrij te maken?
Waarom zijn er pak01_000.vpk, pak01_001.vpk en een pak01_dir.vpk?
Hoe extraheer ik modellen/texturen uit een VPK voor modding?
Is een Source VPK hetzelfde als een PS Vita VPK?
Hoe maak ik mijn eigen VPK?
vpk <map>) en het bouwt een pak##_dir.vpk plus genummerde archieven. Volg de mod-handleiding van het specifieke spel voor de juiste mapindeling.