Mineuniverse
Log in Register
Mods

Origins JS

KubeJS integration for Origins.
by IAFEnvoy
Download Claim this project
983 downloads
0 likes
Updated Jul 6, 2026
0 hypes
KubeJS Utility & QoL

Origins JS

This is a KubeJS integration for Origins (NeoForge), allowing you to manage origins and powers via KubeJS.

Note: This is my first time to make a KubeJS addon, most code written by DeepSeek and reviewed by my self. So if you think some APIs are weird or not well-designed, please let me know.

Features

  • Origin & Power Management: Grant, revoke, and check origins/powers from JS scripts.
  • Custom Actions: Define EntityAction, BlockAction, ItemAction, BiEntityAction in JavaScript.
  • Custom Conditions: Define EntityCondition, BlockCondition, ItemCondition, BiEntityCondition, BiomeCondition, DamageCondition, FluidCondition in JavaScript.
  • Custom Powers: Create fully scripted Power types with JS callbacks (grant, revoke, tick, active, inactive).
  • Data-Driven: All custom types can be referenced in JSON datapacks using the origins_js: namespace.
  • Parameters Support: Pass custom parameters from JSON to your JS callbacks for dynamic behavior and high reusability.
  • PowerHelper Integration: Exposes the new PowerHelper API for power querying (hasActive, toggle) and advanced power data (Resource, Cooldown, EntitySet).

Dependencies

Quick Start

1. Install all dependencies, then place your .js scripts in kubejs/server_scripts/.

2. Basic Usage

// Recommended: use HelperWrapper (backed by new PowerHelper API)
let helper = OriginsJS.getHelper(event.player);

// Grant / revoke power & manage origin (HolderWrapper still works too)
let holder = OriginsJS.getHolder(event.player);
holder.grantPower("origins:origin", "origins:fire_immunity");
holder.setOrigin("origins:origin", "origins:human");

// Active state
helper.anyActive();                        // any power active?
helper.hasActive("origins:climbing");      // specific power active?
helper.toggle("primary");                  // toggle by key

// Execute callback on active powers
helper.execute("origins:climbing", (holderRef, power) => {
    holderRef.getEntity().tell("Climbing!");
});

// Modify base value (for modifier powers)
let modified = helper.modifyDouble("origins:modify_attribute", 10.0);

// Resource / Cooldown / Entity Set (also on helper)
helper.setResource("origins:climbing", 20);
helper.startCooldown("origins:fireball");
helper.addToEntitySet("mypack:friends", event.player.getStringUuid());

See examples for more examples including custom actions, conditions, and powers.

Documentation

  • API Reference — full type table, HolderWrapper API, and static shortcut methods
  • Examples — code examples for origins/powers, custom actions, conditions, and powers
origins_js-1.0.jar
MC 1.21.1, NeoForge, Server
Release 2026-07-05 Get
origins_js-1.0-beta.3.jar
MC 1.21.1, NeoForge, Server
Beta 2026-06-01 Get

More from IAFEnvoy

AnnotationLib
975
Jupiter
9,502,003
Create: Shape Craft
869
Title Screen Mobs
86,419
Resource Remover
86
Networking API
86

You Might Also Like

Liberty's Villagers
Quality of Life and AI improvements for Villagers
9,968,428
No More Pop-ups
A Minecraft mod to remove in-game pop-ups
996,708
BetterRandomSourceConcurrencyCrash
Improved logging of crashes caused by mods accessing RandomSources from the wrong thread
99,371
Exit Confirmation
Often accidentally closed Minecraft? This mod might help!
99,067
NoDynamicFps
Adds an option to disable Vanilla's Dynamic FPS implementation
99,004
Immersive Crafting
Adds crafting recipes to immersive portals
9,998