Origins (1.14.1)
Curse Maven Snippet
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.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

