FuncGodotMap

A scene generator node that parses a Quake MAP or Hammer VMF file using a FuncGodotFGDFile. Uses a FuncGodotMapSettings resource to define map build settings.

Signals

Signal Description
build_failed Emitted when the build process fails.
build_complete Emitted when the build process succesfully completes.

Methods

Method Description Return type
fail_build(reason: String, notify: bool = false) Map build failure handler. Displays error message and emits build_failed signal. Void
clear_children() Frees all children of the map node. WARNING! Does not distinguish between generated and placed nodes! Void
verify() Validates the map file for the build process. Bool
build() Cleans the map node of any children, then initiates and oversees the build process. Void

Properties

Property Type Description
Map
Local Map File String, Local File, .map, .vmf Local path to MAP or VMF file to build a scene from.
Global Map File String, Global File, .map, .vmf Global path to MAP or VMF file to build a scene from. Overrides Local Map File.
Map Settings FuncGodotFGDMapSettings Map settings resource that defines map build scale, textures location, and more.
Build
Build Flags Int Bitflag settings that control various aspects of the build process.
  • Unwrap UV2 : Unwrap UV2s during geometry generation for lightmap baking.
  • Show Profiling Info : Print build step information during build process.
  • Disable Smoothing : Force disable processing of vertex normal smooth shading.


FuncGodotMapSettings

Reusable map settings configuration for FuncGodotMap nodes.


Property Type Description
Build Settings
Inverse Scale Factor Float Ratio between map editor units and Godot units. FuncGodot will divide brush coordinates by this number when building. This does not affect entity properties unless scripted to do so.
See Inverse Scale Factor for more information.
Entity Fgd FuncGodotFGDFile Resource file that translates map file classnames into Godot nodes and packed scenes.
Entity Name Property String Default class property to use in naming generated nodes. This setting is overridden by name_property in FuncGodotFGDEntityClass. Naming occurs before adding to the SceneTree and applying properties. Nodes will be named "entity_" + name_property.

NOTE: Node names should be unique, otherwise you may run into unexpected behavior!
Entity Smoothing Property String Class property that determines whether the Solid Entity performs mesh smoothing operations.
Entity Smoothing Angle Property String Class property that contains the angular threshold that determines when a Solid Entity's mesh vertices are smoothed.
Use Groups Hierarchy Bool If true, will organize Scene Tree using TrenchBroom Layers and Groups or Hammer Visgroups. Groups will be generated as [Node3D] nodes. All non-entity structural brushes will be moved out of their groups and merged into the Worldspawn entity. Any Layers toggled to be omitted from export in TrenchBroom and their child entities and groups will not be built.
Textures
Base Texture Dir String Base directory for textures. When building materials, FuncGodot will search this directory for texture files with matching names to the textures assigned to map brush faces.
Texture File Extensions Array File extensions to search for texture data.
Clip Texture String Optional path for the clip texture, relative to Base Texture Dir. Brush faces textured with the clip texture will have those faces removed from the generated Mesh but not the generated Shape3D.
Skip Texture String Optional path for the skip texture, relative to Base Texture Dir. Brush faces textured with the skip texture will have those faces removed from the generated Mesh. If the FuncGodotFGDSolidClass collision_shape_type is set to concave then it will also remove collision from those faces in the generated Shape3D.
Origin Texture String Optional path for the origin texture, relative to Base Texture Dir. Brush faces textured with the origin texture will have those faces removed from the generated Mesh and Shape3D. The bounds of these faces will be used to calculate the origin point of the entity.
Texture Wads Array[Resource] Optional QuakeWADFile resources to apply textures from. See the Quake Wiki for more information on Quake Texture WADs. Supports both Quake WAD2 and Half-Life WAD3 formats.
Materials
Material File Extension String File extension to search for Material definitions.
Base Material Dir String Base directory for loading and saving materials. When building materials, FuncGodot will search this directory for material resources with matching names to the textures assigned to map brush faces. If not found, will fall back to Base Texture Dir.
Default Material Material Material used as a template when generating missing materials.
Default Material Albedo Uniform String Sampler2D uniform that supplies the Albedo in a custom shader when Default Material is a ShaderMaterial.
Albedo Map Pattern String Automatic PBR material generation albedo map pattern.
Normal Map Pattern String Automatic PBR material generation normal map pattern.
Metallic Map Pattern String Automatic PBR material generation metallic map pattern.
Roughness Map Pattern String Automatic PBR material generation roughness map pattern.
Emission Map Pattern String Automatic PBR material generation emission map pattern.
Ao Map Pattern String Automatic PBR material generation ambient occlusion map pattern.
Height Map Pattern String Automatic PBR material generation height map pattern.
Orm Map Pattern String Automatic PBR material generation ORM map pattern.
Save Generated Materials Bool Save automatically generated materials to disk, allowing reuse across FuncGodotMap nodes.
NOTE: Materials do not use the Default Material settings after saving.
UV Unwrap
Uv Unwrap Texel Size Float Texel size for UV2 unwrapping. Actual texel size is uv_unwrap_texel_size / inverse_scale_factor. A ratio of 1/16 is usually a good place to start with (if inverse_scale_factor is 32, start with a uv_unwrap_texel_size of 2). Larger values will produce less detailed lightmaps. To conserve memory and filesize, use the largest value that still looks good.