What prefab patches are

Prefab patches let several mods change the same Unity prefab without distributing separate, competing copies of that prefab. A patch describes only the differences: change a field, replace a reference, add or remove a component, add a child object, or suppress an existing object.

The stock prefab is loaded from Addressables when the game needs it. Patch Manager collects every patch for that address, resolves their dependencies and order, applies them to one effective prefab, and gives that result to the game. The original game asset is not modified on disk.

When to use a prefab patch

Use a prefab patch when you need to change a Unity object graph rather than a JSON data asset. Common examples include:

  • changing a component field on a stock UI or gameplay prefab

  • assigning a different material, texture, audio clip, or other Addressable

  • adding a component supplied by your mod

  • adding a new child GameObject

  • disabling a stock child without deleting it

  • coordinating a prefab change with another mod

For ordinary data such as part definitions, resources, science, or planets, the Text assets patching API is usually simpler.

Three authoring workflows

Visual authoring is the normal starting point. Import the stock prefab as a linked Addressable, create a prefab-patch variant, and edit it with Unity's normal Inspector. The Redux SDK compiles the overrides into a small JSON manifest.

C# authoring uses PrefabPatchBuilder. It is useful for generated changes, small patches, and values driven by mod configuration.

Lua authoring uses PM:Prefab. It produces the same runtime model as visual and C# authoring and works well for small imperative patches.

All three workflows share the same dependencies, ordering, diagnostics, and conflict handling. A visual patch is not treated as more important than a patch written by another mod.