Starship Horizons
Log In
Knowledge BaseModels Textures And Shaders

Models Textures And Shaders

Art is not simply dropped in. A model is registered, with its materials described, and the game then resolves it by name. Registration is where most art problems live.

Registering a model

<model name="Ark" source="ark.fbx" format="Standard" collision-source="ark_collision.fbx"
       group="Vessels" rotation="0 0 0" scale="0.7559546">
  <mesh id="0" format="Standard"
        texture="ark.jpg" texture-specular="ark_spec.jpg"
        texture-normal="ark_norm.jpg" texture-emissive="ark_light.jpg"
        texture-arm="ark_arm.jpg" blending="Color"
        metalness="0" roughness="1" emissive-intensity="1" />
</model>

The record names the file, a scale, a rotation correction, and one entry per mesh describing that mesh's material. name is how everything else refers to it.

FBX and glTF/GLB are both supported. Scale is almost always needed — modelling tools and the game do not agree on units, and the scale figures in real content are arbitrary numbers found by eye.

Material formats

The format chooses the shading model:

  • Basic — unlit. For anything that should not respond to light: projectiles, effects, glowing elements.
  • Phong — classic specular shading, driven by specular and normal maps. Most of the older fleet.
  • Standard — physically based, with metalness and roughness. What to use for new work.

Texture slots are diffuse, specular, normal, emissive, and a packed ambient‑occlusion / roughness / metalness map. Emissive is what makes a ship's windows and running lights read at distance, and it does more for a model's presence in space than any other single map.

blending selects how the mesh composites — Color for ordinary solids, Additive for anything that should glow through what is behind it.

Collision

A separate collision-source mesh is worth providing for anything large. Collision against full display geometry is expensive, and a simplified hull is both faster and better behaved.

Shaders and effects

A model or mesh can name an effect, which selects a shader beyond the standard material path — the base game registers effects for model shading, unlit surfaces, running lights, particles and planets. Shaders are registered by name in the same way models are, so a module can add its own or replace an existing one.

Traps

glTF brings its own materials; FBX does not. Which side owns the material differs by format, and this is the first thing to check when a model imports looking nothing like it did in your modelling tool.

glTF needs flipped texture orientation. A glTF model whose textures are loaded with the wrong vertical orientation renders with black normal maps — the symptom is a model that looks flat and dead rather than obviously broken.

Cloned models share materials. Changing a material at runtime affects every instance, and texture caching is keyed on load settings, so a change that appears to work on one ship can silently apply to all of them.

Do not assume a path exists. Assets resolve through the merged index of every active module, so a texture your module references may be coming from somewhere else entirely — and a path that works on your machine may not exist for someone with a different module set. See Modules for the resolution order.

Previewing

The Models editor and the Gallery station both let you look at registered art without launching a mission. Use them: the loop of registering, looking, and adjusting scale and materials is much faster there than in the game.

Last updated 5 September 2026