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
10
Size
477.5 KB
Mod Loaders
Fabric
File ID
8590321
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:o-origins-1636345:8590321"

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 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.

Type
Name
Game Versions
Mod Loaders
Size
Downloads
Uploaded