Origins JS
ModKubeJS integration for Origins.
Type
Mod
Modrinth Downloads
460
Modrinth ID
zDlbRi3N
Last Updated
Jul 29, 2026
Description
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
Compatibility
Mod Loaders
Game Versions
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Similar Mods
Snaplook
This mod allows you to hold a key to go into third person mode much like features seen in clients such as Lunar or Feath...
StrangeLib
Versatile library for developing mods
Create: Mail Rail
Adds a new action to create railway schedules, so you can have a single train go after a package instead of an entire fl...
Random Commands
Adds a command that lets u randomize the execution of commands.
Ore Regenerator
Ore Regenerator is a lightweight utility mod that allows players and server admins to regenerate ore veins in chunks tha...
Pocket Dimension
Harness the ability to travel a glitched broken reality, but beware of the bugs.