CurseForge · Minecraft mod
KubeJS AstralSorcery
Kubejs Astral Sorcery Addon
Quick answer
Which KubeJS AstralSorcery release should I use?
KubeJS AstralSorcery AstralSorceryKJS-2101.1.1-NeoForge targets 1.21.1 with NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. All 6 required mods have matching files.
Where it goes
Is KubeJS AstralSorcery required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does KubeJS AstralSorcery AstralSorceryKJS-2101.1.1-NeoForge need?
AstralSorceryKJS-2101.1.1-NeoForge. Change the file and its required mods may change too.
Install KubeJS, Astral Sorcery, Better Advanced Tooltips, Rhino and 2 more first. We found matching files for this game-version and loader setup. 4 come through another mod in the chain.
4 extra mods were pulled in by other dependencies. Indented rows show who needs each one. We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add KubeJS AstralSorcery without breaking your instance.
Built for KubeJS AstralSorcery AstralSorceryKJS-2101.1.1-NeoForge. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use AstralSorceryKJS-2101.1.1-NeoForge. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install KubeJS, Astral Sorcery, Better Advanced Tooltips, Rhino and 2 more first. We found matching files for this game-version and loader setup. 4 come through another mod in the chain.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside AstralSorceryKJS-2101.1.1-NeoForge. It opens that exact file at the source.
About this project
What does KubeJS AstralSorcery add?
Astral Sorcery KJS
Astral Sorcery 2.0 is back on 1.21.1, rewritten from the ground up. It has no KubeJS support at all — no recipe schemas, no way to add constellations, no way to touch the tome.
Astral Sorcery KJS adds all of it: every recipe type with chainable methods, new constellations, new altar tiers, your own tome entries, and script control over lumen bindings, config values and the focal point.
Every recipe type
All nine, from a server script:
altar_crafting · focal_combine · focal_transmutation · lumen_generation · lumen_crystallization · lightwell · infusion · liquid_starlight · liquid_interaction
AstralSorcery.recipes(event => {
event.altar_crafting('minecraft:elytra', ['FFF', 'FDF', 'FFF'], { F: 'minecraft:feather', D: 'minecraft:diamond' })
.type('radiance')
.constellation('vicio')
.starlight('vicio')
.lumen('prismatic', 200)
.fluid('astralsorcery:liquid_starlight', 1000)
.anyTime()
event.focal_transmutation('minecraft:cake[bites=0]', 'minecraft:pumpkin')
.constellation('aevitas')
.focused(true)
event.infusion('minecraft:glowstone', 'minecraft:redstone_block')
.duration(100)
})
The function only asks for what the recipe needs. Everything else is a chained method: altar tier, focus constellation, relay pattern, starlight, lumen, fluids, extra inputs, altar upgrades, research tier, output modifiers, durations, colours.
replaceInput and replaceOutput reach inside Astral Sorcery recipes too, down to altar grid keys and relay slots.
Remove one recipe or a hundred
All KubeJS filters work, plus new ones made for Astral Sorcery:
astral_type · altar_tier · altar · constellation · focus · lumen · fluid · output_block · research_tier
event.remove({ altar_tier: 'radiance', output: 'astralsorcery:dynamism_gem_sky' })
event.remove({ lumen: ['caldor', 'hyle'], astral_type: 'lumen' })
event.remove({ constellation: 'discidia' })
New constellations
AstralSorcery.registry('constellations', event => {
event.create('kubejs:lyra')
.displayName('Lyra')
.color('#7F5FFF')
.major()
.star(4, 5).star(12, 3).star(20, 9).star(26, 20).star(16, 27).star(6, 22)
.chain(0, 1, 2, 3, 4, 5)
.focalPoint()
.rootPerk('vicio', -45, 20)
})
They show up in the sky, on constellation paper and in the tome. They can have their own focal points in the world, their own focus crystal layout and their own root perk in the perk tree. You can also pin them to moon phases and pick where they sit in the sky.
New altar tiers — two ways
A new altar on an existing tier. Your own altar block with its own multiblock structure, written in the script, and recipes only it can craft.
A real new tier. Above Radiance, usable as .type('stellar') in recipes, able to craft everything below it. It opens with the grid of the tier it is based on and shows correctly in the tome and JEI.
AstralSorcery.altarTiers(event => {
event.create('stellar').base('radiance').block('kubejs:stellar_altar')
})
StartupEvents.registry('block', event => {
event.create('kubejs:stellar_altar', 'astralsorcery:altar')
.realTier('stellar')
.structureLayer(-1, ['D D', ' ', ' D ', ' ', 'D D'], { D: 'minecraft:diamond_block' })
})
The wand shows the structure preview, and the tome can show it as a 3D page.
Your own tome entries
Add pages to the book, change existing ones or remove them:
AstralSorcery.research(event => {
event.create('kubejs:starry_diamond')
.title('Starry Diamond')
.tier('shimmer')
.position(0, 3)
.icon('minecraft:diamond')
.text('A diamond shaped by the stars.')
.recipe('mypack:altar/starry_diamond')
.constellation('aevitas')
})
Text, recipe, constellation, structure and lumen pages, connections, locks and hidden entries. Everything reloads with /reload and is sent to every player.
Lumen bindings, config and the focal point
Astral Sorcery 2.0 has no ritual pedestal: a constellation's power now lives in its lumen bindings. You can change their potion effects, costs and bonuses, create new bindings and map lumen to them.
AstralSorcery.lumenBindings(event => {
event.modify('aevitas', b => b.potionDuration(100, 200).scaleModifiers(2))
})
AstralSorcery.config(event => event.set('general.dayLength', 30000))
AstralSorcery.focalPoint(event => event.flightRadius(12).starlightMultiplier(2))
Also fixes a crash in Astral Sorcery when Curios is not installed.
Requirements
- KubeJS 2101.7.2 or newer
- Astral Sorcery 2.0.1 or newer
Available for 1.21.1, NeoForge.
Documentation
Every feature is documented with working examples in the wiki:
The examples/ folder has ready-to-run startup and server scripts covering all of it.
Project description from CurseForge.
Pick your setup
KubeJS AstralSorcery by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.21.1
1 loader build1.21
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
KubeJS AstralSorcery versions and loaders
AstralSorceryKJS-2101.1.1-NeoForge
AstralSorceryKJS-2101.1.1-NeoForge.jar
10 Oct 2026
AstralSorceryKJS-2101.1.0-NeoForge
AstralSorceryKJS-2101.1.0-NeoForge.jar
27 Sept 2026
Looking for an older file? The official CurseForge project page is in Resources.