Import Tool Documentation
Contents
- 1 Import Tool Documentation
- 1.1 Prerequisites
- 1.2 Getting Started
- 2 Troubleshooting
Import Tool Documentation
As part of CS2’s Workshop Tools, we have included a Python script for helping content creators to quickly port maps and assets over to Source 2. Before getting started there is some preparation work which must be done.
Steam\steamapps\common\counterstrike source 15\csgo
, which seems to be an internal name for Steam\steamapps\common\Counter-Strike Global Offensive\csgo
All paths in the guide have been modified to reflect what most users have in their file system.
Prerequisites
Precompiled Content
Precompiled content (such as any custom vmt, vtf, mdl, etc.) must be located in the Steam\steamapps\common\Counter-Strike Global Offensive\csgo
folder. For example:
Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials
Steam\steamapps\common\Counter-Strike Global Offensive\csgo\models
Source Map Files
Your map files (vmfs) can live anywhere outside of Counter-Strike Global Offensive
as long as they are in a maps
folder. Any prefab or instance vmfs referenced by your map must be in whatever subfolder structure is expected by the map. For example:
c:\mymapfolder\maps\mymap.vmf
c:\mymapfolder\maps\prefabs\mymapprefab.vmf
c:\mymapfolder\maps\instances\mymapinsstance.vmf
Source Texture Files
If you have uncompressed source files for textures, (tga, psd, etc.) the import tool will try to use those when importing materials, otherwise it will fall back to converting and recompressing vtf files (which can decrease texture quality). For this to be successful, make sure your source files are in a mirrored location of the vtfs in \Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials
. For example:
C:\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\mymaterial\mytexture.vtf
C:\mymapfolder\materials\mymaterial\mytexture.tga
Getting Started
1. Installing Python 2.7.14
To run the import script you will need to install Python 2.7.14 which you can grab here: https://www.python.org/downloads/release/python-2714.
2. Setting Environment Variables
Next you will need to set two environment path variables so that Windows knows where your python installation lives and other import libraries in the Steam\steamapps\common\Counter-Strike Global Offensive\game\bin\win64
folder:
Press the ⊞ Win+X to access the Power User Task Menu.
- In the Power User Task Menu, select the System option.
- In the System window, scroll to the bottom and click the About option.
- In the System > About window, click the Advanced system settings link at the bottom of the Device specifications section.
- In the System Properties window, click the Advanced tab, then click the Environment Variables button near the bottom of that tab.
- In the Environment Variables window (pictured below), highlight the Path variable in the System variables section and/or click the New button.
- Add a path variable with the Value being the path to where you installed Python, and the path to your
Counter-Strike Global Offensive\game\bin\win64
folder , separated by a semicolon. e.g.C:\python27
;C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\bin\win64
- Do this for both User Variables and System Variables:
3. Installing the Colorama Extension
Next you will need a Python extension called colorama. To install this, simply open up a command prompt (search for cmd in Windows Start Menu) and type
4. Creating a new Addon with the Workshop Tools
Before running an import, you will need to create a Workshop Tools addon so that the imported content has a valid destination. To make a new addon, simply launch the game with Workshop Tools, and from the UI click "Create New Addon" and take note of the name for later.
5. Locating the Import Script
First up is locating the python import script, which can be found in the following folder:
(YourSteamInstallFolder)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\import_scripts
Once you have located the folder, you will want to open up a command prompt here. This can be done by simply typing "cmd" in Windows Explorer address bar and hitting enter:
import_map_community_gui.exe
more info on this can be found at the end of this document.
6. Running the Script + Parameters
Now you are ready to run the script by entering the following:
Script Parameters
Backslashes(\) are used for paths on Windows 11, otherwise FileNotFoundError will occur during the import process.
- <s1gameinfopath>
- Path to folder containing CS:GO's gameinfo.txt, this MUST be the path that contains the compiled CS:GO model and material content you want to import (e.g. .mdl, .vmt).
- <s1contentpath>
- Path to folder containing source content, (.vmf .psd .tga etc.). As mentioned above, for the importer to successfully find and use source texture files, make sure they are in a mirrored location to that of the .vtfs (see example above)
- <s2gameinfopath>
- Path to folder containing CS2's gameinfo.gi
- <s2addon>
- The name of CS2 Workshop addon that you created earlier. This is where your assets will be imported to.
- <mapname>
- This is the map name (.vmf) without extension, e.g. de_examplemap that you wish to import. If your map sits under a subdirectory of the
maps
folder in<s1contentpath>
. Be sure to add this path before your map name. For example:my_maps/de_examplemap
- -usebsp
- This runs the map through a special vbsp process to generate clean map geometry from brushes, removing hidden faces and stitching up edges, making the CS2 version easier to work with in Hammer. It preserves world (vis) brushes and
func_detail
brushes for compatibility with Source 2. This parameter will also merge allfunc_instances
in your map. Note that the final geometry will be triangulated, but cleaning it up is a fairly simple process, which will be explained in another guide.
- -usebsp_nomergeinstances
- Use this instead of
-usebsp
if you wish to both generate clean geo and also preservefunc_instances
. Note that this takes a little longer as it has to run through the import process twice. The final geometry will also be triangulated.
- -skipdeps
- Optional: skips importing all dependencies/content and only generates the vmap file(s). This provides a 'quick' import when iterating entities for example. Do not run with this if you are importing for the first time.
Example:
7. Post Import Fixup
After your level has been imported, review the Post Import Fixup steps
Experimental GUI
In (YourSteamInstallFolder)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\import_scripts
we have included an experimental GUI for the map importer which might help streamline the import process somewhat called import_map_community_gui.exe
This GUI has the advantage of useful tooltips, easily selectable import options and it will also remember your settings between sessions. Note that you will still need to complete the prerequisites and steps 1-4 above for this to work correctly. We have also included the source python scripts for the community to customize as they see fit.
Troubleshooting
- You may get the following error on import if you're using a non-default skybox. Change your skybox to
sky_dust
and try again.
- The following error indicates that your
<s1contentpath>
has spaces in it. Change the path to something without spaces.
- The following error may be solved by renaming the file vpk.signatures in "counter-strike global offensive\game\bin\win64" to something else (like vpk.signature.bak) and trying again.
- Missing gameinfo.txt File Error:
If you receive an error stating that the `gameinfo.txt` file is not found, this may occur if you do not have the legacy version of CS:GO game files installed after the CS2 update occurred. Ensure that you are participating in the csgo_legacy beta (see CS2 - Opting into Beta depots), and verify that the `gameinfo.txt` file is present in the specified `<s1gameinfopath>`. If the file is missing, installing or verifying the integrity of the game files through Steam may also resolve this issue.