Skip to content

Installation guide

Radik Khamatdinov edited this page Feb 24, 2026 · 19 revisions

Quick Setup Tutorial

First step - installing the main part of the plugin

There are two options:

  • Quick and easy installation via AssetLib (stable version).
  • Manual installation from GitHub (allows you to get experimental versions of the plugin).

AssetLib way:

  1. Open your Godot project, go to AssetLib tab, click on GodotVMF, then click Download and Install:

изображение

  1. Go to the Project Settings and enable plugins.

Go to Project -> Project Settings.

изображение

In the window that opens, go to the Plugins tab and enable the checkboxes you need.

Important

FGD Generator is an optional helper tool.

It is not needed for the main part of the plugin to work.

изображение
  1. Done! At this point, you can use it with the default settings, but it is recommended to read the rest of the article about configuring Hammer and the plugin.

Manual-Github way:

Move the addons/godotvmf folder into your project folder and activate it in Project Settings.

That's it!

Second step - Hammer configuration

  1. Download Source SDK Base 2013 (Singleplayer or Multiplayer).

  2. Download Hammer++ and put all files into SDK Base 'hl2/bin' folder, for example: SteamFolder/steamapps/common/Source SDK Base 2013 Singleplayer/hl2/bin

Important

A regular Hammer should work too, but it will work a little worse.

The processing speed will be slower, the quality of the final geometry will be worse (vertex locations). This is because the brush geometry data format in the VMF file is slightly different.

  1. Download the blank mod folder and put everything inside your project like this:
изображение

You will probably see a bunch of errors; this is expected:

изображение

Warning

If you have issues with Hammer, it may be related to shaders from the blank mod.

To fix these issues, replace the shaders from the blank mod with the current shaders of the project's 'hl2_misc_dir.vpk' from which you take Hammer.

For example, 'Team Fortress 2\hl2\hl2_misc_dir.vpk\shaders' or 'Half-Life 2\hl2\hl2_misc_dir.vpk\shaders'

To open .vpk files you can use GCFScape or VPKEdit (recommended).

  1. Launch Hammer++ and configure it (Tools -> Options):
  • Game Executable Directory - path_to_your_project
  • Game Directory - path_to_your_project
  • Hammer VMF Directory - path_to_your_project/mapsrc - usually Source Engine developers create a mapsrc folder where map source files are placed.
  • Prefab Directory - path_to_your_project/mapsrc/prefabs
  1. That's it!

Important

You can also configure Run Map settings to launch levels for testing directly without leaving Hammer:

https://github.com/H2xDev/GodotVMF/wiki/Launch-maps-from-hammer

Third step - Project Settings (optional)

Before working with the plugin, you can tweak it in Project Settings.

Important

Don't forget to enable the Advanced Settings switch!

изображение
  • Gameinfo Path - The source mod path where resources are placed to work with Hammer.

  • import

    • scale - In case you need to convert Valve's metrics to yours.
    • generate_collision - If true, generates CollisionShape3D for imported geometry (except brush entities) by using trimesh shape.
    • generate_lightmap_uv2 - If true, generates UV2 to enable light baking.
    • lightmap_texel_size - Size of each texel in the lightmap for more precise light baking (use with caution, very low values can cause crash).
    • instances_folder - Path inside the project where imported instances will be placed.
    • entities_folder - Path inside the project where the importer will grab entities during import.
    • geometry_folder - Path where the importer will store any mesh or collision resource that is generated.
    • use_navigation_mesh - If true, generates navigation mesh for the generated geometry.
    • navigation_mesh_preset - Path to the NavigationMesh resource that will be used for the generated navigation mesh instead of default settings.
    • entity_aliases - In case you don't want to place some entities inside the entities folder, you can use aliases.
  • models

    • import - If true, the importer will try to import models from the mod's folder.
    • lightmap_texel_size - If true, generates UV2 for static props for light baking (global default value, can be overridden by eponymous keyvalue in prop_static entity, which can be manually added using Add button in object properties).
    • target_folder - Path inside the project where imported models will be placed. In default config it's root because all model paths in prop_static already have models folder specified.
  • material

    • import_mode - The mode of importing materials.
      • 0 - Use existing.
      • 1 - Import directly from mod folder. Already imported materials will be ignored.
    • ignore - List of materials that should be ignored during import.
    • fallback_material - Path to the material *.tres that will be used as a fallback for ignored materials.
    • default_texture_size - The size of the texture that will be used in case of missing texture.
    • target_folder - Path inside the project where imported materials will be placed.

Clone this wiki locally