
BeastheimBanners
First-party banner pieces for Beastheim, including legacy-compatible replacements for two banners recovered from the NewBeginings archaeological recovery.BeastheimBanners
First-party banner pieces for the Beastheim 1.0 modpack, built by cloning vanilla's own banner piece (mesh, collider, cloth/wind shader, LODs) and swapping in original artwork — no custom mesh or shader, no third-party assets.
Formerly named RiverheimBanners. Renamed because "Riverheim" is a third-party world-generation mod (
Gurebu-Riverheim) in this modpack, not this project's own identity — it should never have been used as this package's namespace. The pre-rename 1.2.0 build is preserved as historical evidence in the oldcustom-mods/RiverheimBanners/FROZEN-1.2.0-EVIDENCE/folder, untouched.
Why this exists
The NewBeginings archaeological recovery project extracted 11 historical player-built
structures via PlanBuild. Two of the recovered prefab names — banner1 and banner5 —
originally came from Reidrheimr-ReidrheimrFactionPack, a mod excluded from the Beastheim
1.0 mod stack (it's a faction/guild skill system unrelated to building reconstruction; only
those two banner pieces were ever actually needed). Rather than pull in that whole mod for
two pieces, this package registers first-party replacements under the exact same legacy
prefab IDs, so every recovered blueprint referencing them resolves and places correctly
with no blueprint modification needed.
Pieces
| Prefab ID | Name | Notes |
|---|---|---|
banner1 |
Beasts of Midgard War Banner | Legacy ID — pinned, do not rename (recovered blueprint compatibility) |
banner5 |
Beasts of Midgard Battle Standard | Legacy ID — pinned, do not rename (recovered blueprint compatibility) |
BeastheimBanner_GildedLady |
The Gilded Lady | First-party original |
BeastheimBanner_TheUnbound |
The Unbound | First-party original |
BeastheimBanner_WrathOfTheDeep |
Wrath of the Deep | First-party original |
Additional original banners may be added over time; anything beyond the two legacy IDs
above uses a BeastheimBanner_-prefixed prefab ID so it can never collide with a vanilla
prefab name or another mod's naming scheme.
Rendering behavior: mirrored/heraldic appearance (intentional, not a defect)
All 11 vanilla banner variants share one identical mesh, and that mesh's UV layout maps both the left and right halves of the cloth back onto the same narrow texture strip, mirrored. Every banner in this package therefore renders as two mirrored copies of its artwork side by side — a heraldic "twinned crest" look — rather than one single portrait.
This was investigated and confirmed deliberately: the historical ReidrheimrFactionPack
banner mesh has byte-for-byte identical UV data to vanilla's shared mesh, meaning the
original 2023-era banner1/banner5 always rendered this same mirrored way in-game. This
package reproduces that geometry/UV behavior faithfully rather than introducing a new
compatibility defect. Confirmed and accepted as the intended appearance since 1.2.0 —
do not treat this as a bug, and do not attempt to "fix" it without building a genuinely
custom mesh (a real scope increase, out of scope for this package). Artists designing
future banners for this mod should compose with this mirroring in mind (e.g. a centered
symmetric emblem) rather than an off-center single-character portrait.
Design notes for maintainers
- Mesh, collider, and cloth/wind shader are all cloned live from vanilla's
piece_banner01at runtime (PrefabManager.CreateClonedPrefab) — nothing is shipped as a custom Unity asset bundle. Only the PNG textures underAssets/are original to this package. - Vanilla's own banner cloth mesh (
piece_banner01'sdefaultchild) already matches the historical banner mesh's real-world dimensions (~2.97m tall × 1.18m wide) almost exactly, so no scale compensation is normally needed — the code still computes and applies a compensating scale defensively in case a future different base piece is used. - Size compensation is applied to the cloth child's transform, never the prefab root.
PlanBuild's blueprint placement code sets the placed instance's root
transform.localScaledirectly to the blueprint's saved value, which would silently discard any compensation baked into the root. - No dependency on
Reidrheimr-ReidrheimrFactionPackormakail-Skyheim.piece_rune_altar(also originally from Skyheim) is intentionally not recreated here — that gap is handled by manual reconstruction, not a mod dependency. - Plugin GUID is
beastheim.banners(wasriverheim.bannersprior to the rename — treat as a distinct mod identity for update/dependency purposes, not an in-place upgrade).
Dependencies
- BepInExPack for Valheim
- Jötunn, the Valheim Library
Credits
Artwork commissioned specifically for this package — not derived from or copied out of
any third-party mod. Mesh/shader/collider are Valheim's own vanilla banner piece, cloned
at runtime via Jötunn's PrefabManager, not redistributed as a separate asset.

