Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Burn Marks for Kerbal Space Program

Your ships come back dirty. Exhaust scorches whatever it's pointed at, re-entry chars whatever met the air, and the marks stay put.

KSP 1.12.x Latest release Licence: MIT

Not on CKAN yet. The listing has been submitted and is awaiting review. Until it's merged, grab it from Releases — see Manual install.

A KSP ship looks exactly as clean after a Mun return as it did on the pad. Stage an upper stage a metre above a fuel tank and nothing happens to the tank. Bring a capsule through a 2,400 m/s re-entry and it comes out factory fresh.

Burn Marks fixes that. Marks are generated at the moment they happen, from what is actually going on — where the plume is pointed, how hot the skin got, which way the ship was facing — and then they stay on the ship for good.


What it does

Engine exhaust scorches what it hits. Every firing engine casts a cone of rays out of its nozzles. Whatever they land on picks up soot, scaled by how hard the engine is pushing, how far the exhaust had to travel, and how square-on it struck. Fire a Skipper past a fuel tank and you get a scorch mark on that tank, where the plume actually went. Engine bells get sooty on the inside too, and RCS thrusters scorch what they are pointed at.

Re-entry chars the windward face, and stops. How dark it gets depends on how hard the re-entry is — the intensity comes from KSP's own skin-temperature simulation, so a shallow aerobrake barely tints a capsule while a steep 3,000 m/s plunge blackens it.

What a hotter re-entry does not do is reach further around the part. This is modelled on what returned hardware actually looks like: a heat shield comes back evenly charcoal right out to its rim, the shoulder ends it, and the backshell behind is visibly scorched but nowhere near as dark — and it looks like that whether the vehicle came home from orbit or from the Moon. So severity controls depth, and the shape stays put. Anything shielded — inside a fairing, behind a cargo bay door — stays clean entirely.

The marks behave like decals. They live in the part's own 3D space, not in its texture, so they follow the surface exactly. A mark that lands across a join between two parts continues across it with no seam and no join, because both parts are independently sampling the same mark and arrive at the same answer where they meet.

They stay. Marks are stored on the part, so they survive staging, docking, undocking, quicksaves, going on rails, being stowed in an inventory, and being flown to another planet. Decouple a sooty tank and the soot goes with the tank.

Nothing is pre-made. There are no decal textures in this mod, and no decal parts. Every mark is generated at runtime from where the plume went and how hot the part got, so no two ships come back looking the same.


What it doesn't do

  • Skinned meshes are left alone. A handful of parts deform their mesh with bones rather than moving transforms. Marks would land in the wrong place on those, so they aren't painted. Ordinary animated parts — deploying panels, landing gear, gimballing bells — are handled correctly.
  • Flags, ladders and other alpha-cutout surfaces are skipped by default. They're thin, single-sided geometry where the overlay can show through from behind. Set skipCutoutRenderers = false in the config if you'd rather have them.
  • It doesn't change part damage or heat. This is cosmetic. KSP's own exhaust damage and thermal model are untouched.

Install

CKAN (recommended)

Not available through CKAN yet — the listing is awaiting review by the CKAN team. Use the manual install below in the meantime. Once it lands, this is all you'll need:

Search for Burn Marks and install. CKAN pulls in ModuleManager, which is required.

Manual

  1. Install ModuleManager if you don't already have it. It's required — it's what attaches the mark-tracking module to parts.
  2. Download the latest release zip from Releases.
  3. Drag the BurnMarks folder into your KSP GameData/ folder, so you end up with Kerbal Space Program/GameData/BurnMarks/.

Works with an existing save. Ships already in flight start clean and pick up marks from their next burn or re-entry.


Settings

The switches most people want are in the stock difficulty settings screen, under Burn Marks — reachable from the pause menu in flight, or when starting a game.

Setting What it does
Enable burn marks Master switch. Off stops drawing and accumulating, but keeps marks already recorded.
Engine exhaust soot Plume scorching on or off.
Re-entry charring Aerodynamic charring on or off.
Strength How fast marks build up. 1.00 is the tuned default.
Detail Resolution of the mark textures. Higher is crisper and costs more memory.
Show scrub button Adds a right-click option on every part to clean it.

Right-clicking a marked part gives you Scrub scorch marks, which wipes that part clean. It works from EVA too.

Everything else — how far a plume reaches, how hot a surface has to get before it discolours, how far round a part char is allowed to reach, the colours themselves, memory and frame-time budgets — lives in GameData/BurnMarks/Configs/BurnMarks.cfg, which is commented throughout and is ModuleManager-patchable so part packs can retune it for their own engines.


Performance and memory

Marks are painted on the CPU into a per-part texture, and both the painting and the setup are strictly budgeted: the painter gets 1.8 ms per frame and hands work back unfinished rather than overrunning it. A mark that needs more than one frame simply finishes on the next one.

Memory is the real cost. Each marked part holds a mask texture — about 2.6 MB across CPU and GPU for a large part, a tenth of that for a small one. Parts that have never been marked cost nothing at all: no texture, no renderer, no data saved. A typical re-entering ship has a handful of marked parts, and there's a hard ceiling (maxPaintedParts, default 64) so a two-hundred-part station can't run away with your VRAM.

Turn Detail down to 0.5 to quarter the memory, or up to 2.0 to quadruple it.


Compatibility

Burn Marks never touches a part's materials, textures or shaders. It draws a second, multiply-blended pass over the part's own surface, which means it composites correctly on top of whatever drew the part in the first place. So it should get along with everything:

  • Restock, and any part pack — no per-part configuration needed, ever. It works off the mesh, so a part it has never heard of is handled the same as a stock one.
  • Textures Unlimited, Deferred, Waterfall, Scatterer, Parallax, TUFX — none of these care, and neither does this.
  • Firefly and other re-entry effect mods — those draw the fire, this draws what the fire left behind. They don't overlap.
  • TweakScale — mark sizes scale with the part.

Requires ModuleManager. Requires KSP 1.12.x.


How it works

The short version: each marked part gets a private UV unwrap generated at runtime, because KSP part models very often mirror or overlap their real UVs and painting into those would scorch the far side of a part whenever the near side got hit. Marks are stored not as pixels but as a small continuous function of 3D position and surface normal — a handful of directional splats for exhaust soot, and a direction plus a dose for re-entry char — and the texture is regenerated from that function whenever it changes.

Storing marks as a continuous 3D function rather than as pixels is what makes them behave like decals: it's why they cross part seams without a join, why they follow the surface exactly, and why the whole state of a scorched part fits in a few hundred bytes of save file.

The long version, including why multiply blending is the whole trick and how a per-triangle atlas can be seamless, is in docs/TECHNICAL.md.


Building

No SDK, no NuGet, no Visual Studio required — just the C# compiler that ships with the .NET Framework. The source targets C# 5 deliberately so this stays true.

powershell -File Tools/Build.ps1

Add -Install to copy the built folder into your GameData, or -KspDir "D:\Games\KSP" if your install isn't in the usual Steam location.

The atlas layout and the re-entry char shape both have checks that run without the game:

powershell -File Tools/Test.ps1

Licence

MIT — see LICENSE.

About

Procedural exhaust soot and re-entry charring for Kerbal Space Program. Marks follow the surface like decals, cross part seams without a join, and stay on the ship.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages