API stability

Hammerite is versioned as one (HammeriteVersion.STRING, and every addon's plugin.cfg), following semantic versioning over the classes listed here: their public properties, methods, signals and constants, the autoloads (Hammerite, HammeriteEditor, HammeriteAudio, HammeriteNavigation), and the shader contracts a game's own shaders are written against. What changes is in CHANGELOG.md, and what each of them does is in the API reference.

  • A patch release (1.0.x) fixes things and changes none of it.
  • A minor release adds to it.
  • Only a major release removes or changes any of it.

Everything else is experimental: every other class_name, any member whose name starts with _, and any member of a supported class tagged @experimental on its own - much of HammeriteMapEditor is what its own menus and tools call, and is marked so. It is tagged @experimental in its class or member documentation, so Godot's built-in help and the API reference show the warning, and it may change in any release. If you need something that is only experimental, say so - that is how things get onto this list.

A map saved by any earlier Hammerite opens in a later one; see "Compatibility" in the core README.

Supported classes

Core: the map

HammeriteMap, HammeriteBrush, HammeriteFace, HammeriteEntity, HammeriteBrushEntity, HammeriteLayer, HammeriteCell, HammeritePortal, HammeriteBoundaryWall, HammeritePrefab, HammeritePrefabSet, HammeritePrefabInstance, HammeriteSkybox

Core: in the scene

HammeriteMap3D, HammeriteWorldrepCompile, HammeriteCompileProgress

Core: entities

HammeritePointEntityNode3D, HammeritePointEntityAnimatableBody3D, HammeritePointEntityRigidBody3D, HammeriteBrushEntityNode3D, HammeriteBrushEntityStaticBody3D, HammeriteBrushEntityArea3D, HammeriteEntityNodes, HammeritePointLight3D, HammeriteDynamicLight3D, HammeriteDynamicPointLight3D, HammeriteDirectionalLight3D, HammeriteDynamicDirectionalLight3D, HammeriteGenericBrushEntity, HammeritePropModel, HammeriteDecal3D, HammeriteGizmoBuffer, HammeriteEditorHandle

Core: lighting

HammeriteLightmapper, HammeriteBakeSettings, HammeriteLightmapBakeReport, HammeriteBakedLight, HammeriteLightProbeSet, HammeriteLightCurve, HammeriteEyeAdaptation3D, HammeriteBakeOccluders, HammeriteBakeOccluder, HammeriteBrushEntityLighting, HammeriteShaderGlobals

Core: files, names and extension

HammeriteDataFile, HammeriteUnknownData, HammeriteReferences, HammeriteReferenceChange, HammeriteTextureLibrary, HammeriteModelLibrary, HammeriteAssetLibrary, HammeriteBrushPropertySchema, HammeriteBrushPropertyDef, HammeriteBrushPropertyRegistry, HammeriteBrushFill, HammeriteBrushFillRegistry, HammeriteSkyPropertySchema, HammeriteSkyPropertyRegistry, HammeriteEntityTypeRegistry, HammeriteUtils, HammeriteVersion

Editor

HammeriteMapEditor, HammeriteMapEditorSettings, HammeriteEditorColors, HammeriteEditorTheme, HammeriteEditorCommand, HammeriteEditorCommands, HammeriteEditorTool, HammeritePropertyControl, HammeriteEditorWorkspaces, HammeriteManual, HammeriteManualSection, HammeriteManualPage, HammeriteNotableSizes

Audio

HammeriteAudioRuntime, HammeriteAudioManager, HammeriteAudioHearing, HammeriteAudioMixSettings, HammeriteAudioSoundSpec, HammeriteAudioBakeReport, HammeriteAudioEmitter3D, HammeriteAudioReceiver3D, HammeriteAudioSoundTypes, HammeriteAudioSoundType, HammeriteAudioSoundEvent, HammeriteAudioPreset, HammeriteAudioMaterials, HammeriteAudioMaterial, HammeriteAudioBrushProperties, HammeriteAudioPortalProperties, HammeriteAudioEditorExtension

Navigation

HammeriteNavigationRuntime, HammeriteNavigationAgentProfile, HammeriteNavigationAgentProfiles, HammeriteNavigationBrushProperties, HammeriteNavigationEditorExtension, HammeriteNavigationLinkEntity3D, HammeriteNavigationBakeReport, HammeriteNavigationSurface, HammeriteNavigationLinkData, HammeriteNavigationBuilder, HammeriteNavigationLinkBuilder, HammeriteNavigationMeshWriter

Shader contracts

A game draws its own water and its own sky with shaders of its own, and those are written against names in Hammerite's shaders rather than against a class. These are covered by the same promise.

Water - a shader_type spatial shader that includes res://addons/hammerite-core/resources/materials/hammerite_water.gdshaderinc, defines void water_surface(inout HammeriteWater w), and then includes hammerite_water_main.gdshaderinc (see "Water's look" in the core README).

  • struct HammeriteWater. What the surface is handed: time, uv, uv2, screen_uv, depth, position, normal, view_dir, ndotv, from_above, inv_view, inv_projection, vertex, and the brush's clarity, tint and disturbance. What it gives back: colour, alpha, carried.
  • The helpers: water_travelled, water_below, water_lit, water_lit_from_below, water_slope, water_height, water_view_position, water_transmittance, water_fresnel.

Anything else those files declare - their uniforms, and what they include in turn - is not part of it.

Walls - a shader_type spatial shader that includes res://addons/hammerite-core/resources/materials/hammerite_surface.gdshaderinc, defines void brush_surface(inout HammeriteSurface s), and then includes hammerite_surface_main.gdshaderinc, handed over as HammeriteBrush.surface_material (see "Walls' look" in the core README).

  • struct HammeriteSurface. What the surface is handed: time, uv, uv2, position, face_normal, view_dir, u_axis, v_axis, has_uv_axes. What it gives back: albedo, normal, glow.
  • The helper surface_normal_from_map.

Sky - a shader_type sky material assigned to HammeriteSkybox.dome_material. A uniform it declares under one of these names is set from the skybox: horizon_color, zenith_color, body_direction, body_color, body_energy, body_is_moon, light_energy. And one named after each property declared on the sky (HammeriteSkyPropertyRegistry), with / as _: clouds/cover is clouds_cover.

Shader globals - the names HammeriteShaderGlobals declares.

Hammerite 1.0 · built from a6dd634, 2026-10-10