A modern, ground-up reimplementation of the Origins experience for NeoForge.
Supports MC 26.1 (Java 25) and MC 1.21.1 (Java 21).
📖 Pack-author docs: cyberday1.github.io/NeoOrigins — full reference for all 84 power types, 75 conditions, 45 actions, and 33 events.
NeoOrigins 2.0 collapses 88 bespoke Java power-type classes into ~25 generic types driven by a JSON action / condition / event DSL. Pack authors now get a stable, schema-validated authoring surface; existing Origins-mod packs keep loading verbatim via transparent legacy aliases.
Highlights this release:
- Aquatic overhaul — Abyssal / Merling / Kraken / Siren rebuilt around a real dry-out mechanic with master configs for drain rate and drown damage. New "Pescivore + Raw Adapted" diet (raw cod and salmon nourish like cooked). Spawn placement now prefers ocean floor / water surface for aquatic origins.
- Mod compat —
LightTextureand water-vision mixins now apply at higher priority so they survive other mods (Alex's Caves, etc.) that touch the same vanilla pipelines. - Dedicated-server stable on both 1.21.1 and 26.1 (singleplayer-tested through alpha.27 hid six classes of dist crash; all fixed).
- New
throw_targetaction — raycast the entity under your crosshair and hurl them away + upward. - 80 power types, 75 conditions, 45 actions, 33 events —
near_entitycondition, 6 new visual/interaction power types (burn, ignore_water, overlay, model_color, lava_vision, shader), and near-complete Origins compat coverage are new in 2.0.11.
See docs/2_0_CHANGES.md for the full Phase 1–8 architecture write-up.
- 46 built-in origins across two layers — choose an origin and a class
- 20 built-in classes — Warrior, Archer, Miner, Beastmaster, Explorer, Sentinel, Herbalist, Scout, Berserker, Titan, Rogue, Lumberjack, Blacksmith, Cook, Merchant, Cleric, Nitwit, Fisher, Mason, Paladin
- 130+ power types — attribute modifiers (with optional environment, condition, or equipment-slot gating), status/persistent effects, creative flight + natural elytra glide (no-item), wall climbing, bare-hand-as-tool (any vanilla tool at any tier), damage modification, on-hit/on-kill actions, active abilities (with hunger gating), biome effects, summon minions, tame hostile mobs, Fortune-from-effect loot multipliers, gravity wells, elemental magic, toggleable passives, HUD-hide powers, and more
- Random origin mode — server config to randomly assign origins on first join or every death
- Cooldown HUD overlay — shows active ability cooldown bars above the hotbar
- Origin info screen — press O to view your current origin and class details
- JEI / REI integration — info panel for Orb of Origin
- Hot-reload —
/reloadrebuilds all origins and powers without restarting the server - Origins pack compatibility — drop existing Origins mod content packs into
originpacks/and they load automatically - Data-driven — all origins and powers defined in JSON; fully overridable via datapacks
- Advancement-based origin upgrades — any origin can declare upgrade paths in its JSON; when the player earns the advancement, their origin swaps automatically (see examples/)
- Epic Fight compatibility — sized origins maintain correct scale when Epic Fight takes over rendering in combat mode
- Per-origin config toggles — disable any built-in origin or class in
neoorigins-common.toml - Dimension restrictions — disable specific powers in specific dimensions via config
Pack authors can author origins for mobs the same way they author origins for
players. A mob origin is a JSON file under data/<ns>/origins/mob_origins/<id>.json
that bundles powers, weighted spawn rules, drops, and behavior — applied to any
non-player LivingEntity.
- Weighted spawn rules — apply origins to natural mob spawns with biome, structure, dimension, time-of-day, Y-range and light-range filters
- Per-origin drops — additive or replace, with both per-item independent-chance and weighted-pool strategies, layered onto vanilla loot via a global loot modifier
neoorigins:mob_behaviorpower — configurable, piglin-style aggression (neutral / hostile / conditional) using the existing entity-condition DSL- Spawn-egg minting —
/neoorigins mob egg <origin>produces a vanilla spawn egg that spawns the mob with the origin pre-attached; right-clicking it on a spawner reconfigures the spawner too - Mob Origin Creator GUI — tabbed in-game authoring tool (Identity / Powers /
Spawn Rules / Drops / JSON Preview). Open with
/neoorigins mob editor(Phase 6, pending) or bind the Open Mob Origin Creator keybind in Controls → Key Binds → NeoOrigins - Portable output — written to
<world>/datapacks/neoorigins_custom/; copy the folder to another instance with NeoOrigins installed and it keeps working
See docs/MOB_ORIGINS.md for the pack-author reference.
| Origin | Impact | Strengths | Weaknesses |
|---|---|---|---|
| Human | none | No special drawbacks | No special abilities |
| Merling | medium | Water breathing, aquatic speed, no drowning | Slowed on land |
| Avian | low | Slow fall, no fall damage, 75% less exhaustion | — |
| Blazeling | medium | Fire immunity, night vision | Water damage |
| Elytrian | medium | Free elytra flight, elytra boost | — |
| Enderian | low | Eye damage immunity | Water damage |
| Arachnid | low | Wall climbing, no fall damage while climbing | — |
| Shulk | medium | +4 natural armor | −30% movement speed |
| Phantom | medium | Invisibility, no gravity, night vision | — |
| Feline | medium | No fall damage, night vision, speed, pounce, mobs ignore | Water damage, +30% hunger |
| Golem | high | +6 armor, knockback resist, 1.3× size, poison/wither immune | −25% speed, fire weakness |
| Caveborn | medium | Night vision, no fall damage, 2× mining speed, 0.85× size | Burns in sunlight |
| Sylvan | low | Mobs ignore, water regen, forest speed, crop growth, root AoE | Nether damage |
| Draconic | high | Fire immune, flight, fireball, scare mobs, +2 attack, 1.2× size | Water damage, +50% hunger |
| Revenant | medium | Undead, water breathing, night vision, phase, spectral bolt | Burns in daylight, 40% regen |
| Tiny | medium | 0.5× size, wall climbing, +20% speed, no fall damage, item magnet | −2 attack, +80% hunger |
| Abyssal | high | Water breathing, night vision, thorns, underwater mining, water regen, trident, guardian summon | Burns in daylight, −10% land speed |
| Voidwalker | medium | Night vision, mobs ignore, phase, teleport | Water damage |
| Stoneguard | medium | +3 armor, thorns, knockback resist, glowstone placement, 2× mining speed, suppresses mob spawns | −10% speed |
| Verdant | low | Mobs ignore, no fall damage, no sprint-hunger, bonus harvest drops, forest regen | Nether damage |
| Umbral | medium | Night vision, shadow orbs (Darkness AoE), shadow dash, projectile immunity | Burns in sunlight |
| Inchling | medium | 0.25× size, wall climbing, no fall damage, +15% speed, 50% less hunger | −5 hearts |
| Sporeling | medium | Spore cloud AoE, poison immunity, night vision, mushroom biome regen, +4 armor | Burns in sunlight, −10% speed |
| Frostborn | medium | Frost nova AoE, cold biome buff, ice walk, +4 armor, freeze immunity | Fire weakness, Nether damage |
| Strider | medium | Fire immunity, Nether speed buff, lava regen, night vision, +6 armor | Water weakness, overworld slowness |
| Siren | medium | All mobs ignore, water breathing, fast swimming, night vision, water regen | −15% land speed, −2 hearts |
| Piglin | high | Nether Strength II, piglin friendship, fire immune, +2 attack, night vision | Overworld weakness |
| Hiveling | high | Flight, venomous sting, crop growth, 0.5× size, arthropod | −3 hearts, +50% hunger |
| Cinderborn | high | Fire immune, fireball, +6 armor, lava regen, Nether strength, scare mobs, night vision | Water weakness |
| Sculkborn | high | Sonic shriek, darkness AoE, +8 armor, knockback resist, projectile immune, night vision | Burns in daylight, −15% speed, −2 hearts |
| Enderite | high | Teleport 32 blocks, phase through walls, slow fall, +3 attack, scare endermites, night vision | Water damage, daylight weakness |
| Necromancer | high | Summon wither skeletons + skeletons, undead, night vision | Burns in daylight, −3 hearts, 40% regen |
| Gorgon | high | Petrifying gaze AoE, +2 attack, +4 armor, knockback resist, 1.1× size | −20% speed, +30% hunger |
| Automaton | high | +8 armor, no drowning, no hunger, potion resistance, night vision, knockback resist | −20% speed, rigid joints |
| Kraken | high | Water breathing, aquatic speed, tentacle strike, thorns, night vision, guardian summon, 1.3× size | Burns in daylight |
| Warden | high | Sonic boom, echolocation (glow), +4 attack, +10 armor, 1.15× size, night vision | Burns in daylight, −30% speed |
| Dwarf | medium | 0.5× size, +4 armor, night vision, +25% mining speed, −25% hunger drain | −15% speed, reduced reach |
| Breeze | high | Wind charge, wind dash, slow falling, Jump Boost II, +15% speed, 0.9× size | −4 hearts |
| Vampire | high | Undead, +2 attack, +15% speed, night vision | Burns in sunlight, raw meat diet, 40% regen, water weakness |
| Monster Tamer | high | Tame hostile mobs (max 4), command pack to attack, pack regen | −25% melee damage, +50% hunger |
| Earth Mage | high | Ground slam AoE, stone wall placement, +50% mining, −50% knockback | Can't swim, +50% fall damage |
| Water Mage | high | Tidal wave cone, healing mist AoE, water breathing, swim speed, water regen | Desert/badlands damage, −25% melee |
| Fire Mage | high | Fireball volley, inferno burst AoE, flame cloak, fire immunity | Water damage, +50% hunger |
| Air Mage | high | Wind charge, updraft launch, no fall damage, slow fall, +20% speed | −4 hearts, +50% knockback taken |
| Gravity Mage | high | Gravity well vortex (pull + damage), repulse blast, slow fall, no fall damage | +75% knockback taken, −25% melee |
| Darkness Mage | high | Shadow orbs (Darkness AoE), shadow step teleport, night vision, stealth | Burns in sunlight, −30% mining speed |
Classes are a second selection layer — every player picks both an origin and a class. All class powers are passive or condition-gated — zero keybind slots consumed by any class.
Pack authors can add their own classes — see docs/CLASSES.md.
| Class | Description |
|---|---|
| Warrior | +1 attack, 30% KB resist, +2 armor, +2 HP, immune weakness |
| Archer | Perfect projectile accuracy, +15% speed, enhanced vision, poison-on-hit vs arthropods, starting bow + 16 arrows |
| Miner | +50% break speed, −30% hunger drain, bare-hand stone pickaxe, enhanced vision, +2 HP |
| Beastmaster | Potion effects shared with tamed animals, +50% potion duration |
| Explorer | Starts with compass, clock, maps; −40% hunger drain; no fall damage; +0.5 step height; campfire regen (out of combat) |
| Sentinel | +4 armor, 25% thorns, 20% KB resist, immune weakness/slowness, +2 HP, +20% KB resist when sneaking |
| Herbalist | Accelerates nearby crop growth, +50% crop harvest, poison immunity, +1 bonemeal application, starting seeds + bone meal |
| Scout | Night vision, +20% speed, no fall damage, +0.5 step height, starting bread |
| Berserker | +3 attack, +50% hunger drain, +2 damage when HP≤50%, −2 armor, +0.2 KB resist |
| Titan | 1.25× size, +2 hearts, extended reach, +1 attack, +0.2 KB resist, −10% speed |
| Rogue | Hidden nameplate, invisibility while sneaking, backstab 2× damage, 0.5× fall damage, +0.5 step height |
| Lumberjack | One-hit tree felling, +2 extra planks per craft, bare-hand iron axe, starting iron axe (Unbreaking II) |
| Blacksmith | 0.5× anvil cost, Unbreaking I auto-applied to tools/armor, bare-hand stone pickaxe, 0.5× fire damage, starting 4 iron ingots |
| Cook | Crafted food is more nourishing, bonus XP from smokers, immune hunger/nausea, 1.25× potion duration, starting iron sword (cook's knife) |
| Merchant | Better villager trades, rare wandering trader loot, starting 8 emeralds, 1.15× potion duration, +1 luck |
| Cleric | +5 enchant levels, 2× potion duration, weakness-on-hit vs undead, enhanced vision, starting writable book |
| Nitwit | No special abilities — for the purist |
| Fisher ⭐ | +1 luck in water, +15% swim speed, 0.5× drown damage, starting rod (Luck of the Sea I + Lure I), night vision underwater |
| Mason ⭐ | Bare-hand stone pickaxe, +1 armor, 1.25× break speed, starting stone pickaxe (Efficiency I), +1 block placement reach |
| Paladin ⭐ | Weakness-on-hit vs undead, +2 armor, regen near beacons, starting iron sword (Smite I), wither immunity |
⭐ = new
Edit config/neoorigins-common.toml:
# Disable specific origins or classes
[origins]
human = true
merling = true
# ... set any to false to remove from selection
[classes]
class_warrior = true
# ... set any to false to remove from selection
# Random origin assignment
[random_assignment]
# DISABLED / FIRST_JOIN / EVERY_DEATH
mode = "DISABLED"
# Number of rerolls allowed (0 = none, -1 = unlimited)
rerolls = 0
# Per-power dimension restrictions
[dimension_restrictions]
rules = [
# "neoorigins:elytrian_flight = minecraft:the_nether, minecraft:the_end"
]
# Command access
[commands]
# Allow non-OP players to run /neoorigins get <player> (OPs always can)
public_origin_get = true- Install NeoForge for your Minecraft version (26.1 or 1.21.1)
- Drop
neoorigins-<version>.jarinto yourmods/folder - Launch — the
originpacks/folder is created automatically in your game directory
NeoOrigins can load content from existing Origins mod packs without any modification. On first launch, an originpacks/ folder is created in your game directory (next to mods/ and config/).
Supported pack formats:
| Format | How to install |
|---|---|
.jar (Origins mod JAR) |
Drop directly into originpacks/ |
.zip (datapack) |
Drop directly into originpacks/ |
| Folder | Drop the unpacked folder into originpacks/ |
Packs are scanned at world load and on /reload. No pack.mcmeta is required.
NeoOrigins runs two translation passes over Origins-format JSON at load time.
Route A — direct type mapping (static translation to a NeoOrigins equivalent):
| Origins type | Result |
|---|---|
origins:attribute |
neoorigins:attribute_modifier |
origins:elytra_flight / origins:creative_flight |
neoorigins:flight |
origins:night_vision |
neoorigins:night_vision |
origins:water_breathing |
neoorigins:water_breathing |
origins:stacking_status_effect / origins:status_effect |
neoorigins:status_effect |
origins:effect_immunity |
neoorigins:effect_immunity |
origins:modify_damage_taken / origins:modify_damage_dealt |
neoorigins:modify_damage |
origins:invulnerability |
neoorigins:prevent_action (fire, approximate) |
origins:prevent_death / apace:prevent_death |
neoorigins:prevent_death (condition + entity_action honored; damage_condition packs fall back to Route B) |
origins:disable_regen |
neoorigins:prevent_action (sprint food) |
origins:slow_falling |
neoorigins:prevent_action (fall damage) |
origins:walk_speed |
neoorigins:attribute_modifier (movement speed) |
origins:modify_swim_speed / origins:swim_speed |
neoorigins:attribute_modifier (water movement efficiency) |
origins:climbing |
neoorigins:wall_climbing |
origins:keep_inventory |
neoorigins:keep_inventory |
origins:ignore_water |
neoorigins:ignore_water |
origins:phasing |
neoorigins:wraith_phase |
origins:burn |
neoorigins:burn |
origins:particle |
neoorigins:particle |
origins:overlay |
neoorigins:overlay |
origins:model_color |
neoorigins:model_color |
origins:lava_vision |
neoorigins:lava_vision |
origins:shader |
neoorigins:shader |
origins:food_restriction / origins:edible_item |
neoorigins:food_restriction / neoorigins:edible_item |
origins:multiple |
Expanded to individual sub-powers |
Route B — compat power engine (compiled into live event-driven behaviour at load time):
| Origins type | What it does |
|---|---|
origins:active_self |
Full active ability with cooldown |
origins:toggle |
Toggled active power with optional cooldown |
origins:resource |
Integer resource bar with min/max |
origins:conditioned_attribute |
Attribute modifier gated on a condition |
origins:conditioned_status_effect |
Status effect gated on a condition |
origins:action_on_being_hit |
Triggers an action when the player takes damage |
origins:action_on_hit |
Triggers an action when the player deals damage |
The following types have no equivalent in NeoOrigins and are silently skipped — the rest of the origin still loads:
origins:shaking— visual effect (no equivalent)
A full compat log is written to logs/neoorigins-compat.log every time origins load so you can see exactly what translated and what did not.
Place JSON files in your datapack under:
data/<namespace>/origins/origins/<name>.json # origin definitions
data/<namespace>/origins/powers/<name>.json # power definitions
data/<namespace>/origins/origin_layers/<name>.json # layer definitions
NeoOrigins format example:
{
"name": { "text": "Merling" },
"description": { "text": "Adapted to life underwater." },
"icon": "minecraft:prismarine_shard",
"impact": "medium",
"powers": ["neoorigins:merling_water_breathing", "neoorigins:merling_aquatic_speed"]
}For Origins-mod-compatible path layout (data/<ns>/origins/, data/<ns>/powers/, data/<ns>/origin_layers/) the translation pass runs automatically.
Any origin can declare a spawn_location that the mod will teleport the player to:
- Immediately when they pick the origin (via the selection screen or an Orb of Origin), and
- On death when they have no bed or respawn anchor set — instead of world spawn.
{
"name": "origins.mypack.void_knight.name",
"description": "origins.mypack.void_knight.description",
"icon": "minecraft:end_crystal",
"powers": [ "mypack:void_knight_flight" ],
"spawn_location": {
"dimension": "minecraft:the_end",
"structure": "minecraft:end_city"
}
}| Field | Type | Description |
|---|---|---|
dimension |
Identifier | Target dimension (player is switched to this level) |
biome |
Identifier | Find a position inside this biome ID |
biome_tag |
Identifier | Find a position inside a biome with this tag |
structure |
Identifier | Find a position inside this structure |
structure_tag |
Identifier | Find a position inside a structure with this tag |
allow_water_surface |
boolean | Default false. If no dry land column is found, accept the topmost water column — player spawns feet-in-water, head above. |
allow_ocean_floor |
boolean | Default false. If no dry land column is found, accept the seabed — player spawns submerged on the floor (needs water breathing to survive). |
All fields are optional; fields combine with AND (dimension narrows the search, then structure/biome pins down the position within that dimension). Structure match takes precedence over biome when both are specified. The finder sweeps a 5×5 column area around the hit and scans top-down for the first (solid, air, air) column — logical height is respected, so Nether spawns stay below the bedrock ceiling. When that strict land pass finds nothing, allow_ocean_floor tries (solid, water, water), then allow_water_surface tries the water surface. Search radius is 6400 blocks from that dimension's world spawn; if nothing matches at all, the origin selection/respawn proceeds without teleport (with a warning in the log).
On a respawn with a set bed or respawn anchor, vanilla behavior applies — spawn_location is only used when there's no respawn point to honor.
The same dimension/biome/structure fields can gate a neoorigins:attribute_modifier power effect as a location_condition — see docs/POWER_TYPES.md. (allow_water_surface / allow_ocean_floor are ignored in the gate path — they only influence the spawn finder.)
Any origin can declare upgrade paths that fire when the player earns specific advancements. This is fully datapack-driven — no Java code required.
Add an upgrades list to any origin JSON:
{
"name": "...",
"powers": ["..."],
"upgrades": [
{
"advancement": "minecraft:story/enter_the_nether",
"origin": "neoorigins:strider",
"announcement": "mypack.upgrade.strider"
}
]
}- Per-layer: the same advancement can drive different swaps on different layers (origin + class)
- Chainable: each intermediate origin defines its own
upgradesto the next stage - announcement is optional — a translation key sent as a system message on upgrade
See the examples/ folder for working datapacks demonstrating simple upgrades, multi-stage chains, and class-layer promotions.
git clone https://github.com/CyberDay1/NeoOrigins.git
cd NeoOrigins
./gradlew build
# Output: build/libs/neoorigins-<version>.jarRequires Java 25 (MC 26.1 branch) or Java 21 (1.21.1 branch).
Original Origins mod:
MIT — see LICENSE