promotional bannermobile promotional banner

Overgrown's Origins

Choose your species. Every origin, layer, and power is data-pack JSON underneath.
Back to Files

Origins (1.14.1)

File nameorigins-1.14.1.jar
Uploader
OvergrownMCOvergrownMC
Uploaded
Aug 6, 2026
Downloads
25
Size
481.4 KB
Mod Loaders
NeoForge
File ID
8590291
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:o-origins-1636345:8590291"

Learn more about Curse Maven

What's new

Fixed

  • A derived origin layer could be emptied instead of switched. This is the root cause behind every "the layer got removed" report, and the reason the previous two attempts at it only narrowed the window. Revalidation used to work in two steps — clear the layer, then let auto-choose refill it on a later pass — but the refill is not guaranteed: it does nothing when the layer's conditions offer no origin or two of them, or when the layer is still waiting on another layer it reads. Whenever the refill didn't come, the layer was left with nothing: powers revoked, no replacement. A revalidate layer now computes its replacement first and switches straight to it, so it can never end up empty. If its conditions no longer name a single origin, the player keeps what they already had (falling back to default_origin when the layer defines one).
  • /origin set on a derived layer no longer undoes itself. Setting an origin by command, GUI pick, Orb of Origin or a power's action now pins that layer, so a revalidate layer won't re-derive over the top of it. Before this, the command reported success and the layer reverted in the same tick, because choosing an origin triggers the reconcile that overwrote it. Clear the pin with origin set <targets> <layer> origins:empty, which hands the layer back to its conditions; it is also dropped automatically if a data-pack change removes the pinned origin from that layer.
  • /origin set reports what actually happened. It counts only the targets that ended up on the origin you asked for, and names any target whose layer conditions overrode the request instead of silently claiming success.

Added

  • origins:origin accepts a list of origins and * wildcards. Write "origin": ["my_pack:base", "my_pack:aliens/*"] instead of an origins:or listing every origin twice. A * matches any run of characters including /, so my_pack:aliens/* covers my_pack:aliens/heatblast/heatblast-reg as well. The single-string form every existing pack uses is unchanged.

    This is what the two branches of a derived layer want: write the list once and put "inverted": true on the copy for the other branch, so adding an origin later means editing one list rather than rebalancing an and/or on both sides. Missing one used to silently flip the layer to the wrong branch and revoke its powers.

This mod has no additional files