Building Generator
XBLAH's Modding Tool comes with a Building Generator for Source. The tool includes some example files, and users can create their own templates.
Accessing the feature
This can be accessed within the tool via ![]()
Top Menu > Maps > Building Generator.
Generating a random building
The Building Generator creates buildings out of voxels, using instructions under ![]()
scripts/building_generator/themes and map data under ![]()
prefabs/building_generator.
Select the ![]()
.vmf that you want to compile, select the desired settings and click Compile Maps.
In case you only edited the map entities, you can click Update Entities to compile it faster, keeping the brushes, visibility and lighting data intact.
In case you only want to check if the map is sealed, you can click Leak Test. The tool will alert you if any leaks are found.
Creating a Theme
Each script file consists of a theme. A theme is made out of pieces
// Name: DEV Textures
// Author: Jean XBLAH Knapp
//
// Description: This is a template theme, for feature testing and for reference.
//
// Usage: Parts files have the following path format:
// prefabs/[theme_id]/[part_name]_[orientation].vmf
//
// The available orientations are FT, BK, LF, RT, FT_LF, FT_RT, BK_LF, BK_RT
// The FT orientation is east in Hammer.
//
// The default skin is Skin 0
// If a different skin is selected, whenever Skin 0 is found in the prefabs,
// it will be replaced by the selected skin
building {
// Settings
name "DEV Textures"
voxel_size "128"
// Skin information
skins {
"0" {
name "0"
materials {
material "DEV/DEV_MEASUREWALL01A"
}
}
"1" {
name "1"
materials {
material "DEV/DEV_MEASUREWALL01D"
}
}
}
// Floor information
floors {
// Used by every floor that does not have custom settings
"default" {
// If a part is not found, it will use this one
default_part "wall01"
// Used by FT, BK, LF and RT faces
default_edge "window01"
edges {
part {
part_name "window01"
// How often this part should be picked. The default is 1.
// If the frequency is 4, it means it will be picked 4x more often.
frequency "4"
}
part {
part_name "window02"
}
part {
part_name "window03"
}
part {
part_name "window04"
}
}
// Used by corner faces
default_corner "wall01"
}
// The ground floor
// It equals to using index 0
"bottom" {
// The height of the floor is defined by this value times the voxel size.
// Default value is 1.
height "1"
// If a part is not found, it will use this one
default_part "wall01"
set_pieces {
part {
part_name "door01"
}
}
}
// The upper floor
// It equals to using index -1.
"top" {
// If a part is not found, it will use this one
"default_part" "roof01"
}
// Any terrace floor except the roof. If none is set, "top" is used for any terrace
"terrace" {
"default_part" "roof01"
}
}
}
Pieces
Each piece is a visgroup of the ![]()
.vmf under ![]()
prefabs/building_generator. The front of the pieces always face east in Hammer. Each piece must have a single info_landmark, that represents the origin (back-right corner) of the piece.
Skins
Themes can have multiple skins.
Supported Games
- All
Source games