Adding Custom Fission Fuels with Kubejs - igentuman/NuclearCraft-Neoteric GitHub Wiki
This guide explains how to add custom fission reactor fuels to NuclearCraft-Neoteric using KubeJS integration.
NuclearCraft-Neoteric provides a powerful KubeJS integration that allows modpack developers to add custom fission fuels without modifying the mod itself. When you register a custom fuel, the mod automatically generates:
- Fuel items (base and 4 variants: oxide, nitride, zirconium alloy, TRISO)
- Depleted fuel items (base and 4 variants)
- Fission reactor recipes (for base and 3 variants - TRISO excluded)
- Crafting recipes (shapeless recipes from isotopes)
- Smelting recipes (variants back to base fuel)
- Item tags (for recipe compatibility)
Important: Processing recipes (melter, ingot former, isotope separator, fluid infuser, assembler) are NOT automatically generated. You must create these yourself if needed.
Create a file in your modpack at: kubejs/startup_scripts/custom_fuels.js
NCKJSEvents.RegisterFissionFuel(event => {
// Register a custom plutonium fuel
event.registerFuel(
'plutonium', // group (fuel family)
'hep-242', // name (fuel type)
1200, // forgeEnergy (FE/t produced)
400, // heat (heat generated)
45, // criticality (affects reactor behavior - not used currently)
180, // depletion (how long fuel lasts)
110, // efficiency (affects overall performance - not used currently)
242, // isotope1 (first isotope ID)
239 // isotope2 (second isotope ID)
)
})That's it! The mod will automatically generate all necessary items, recipes, and variants.
Checkout generated files in kubejs/assets/nuclearcraft/ folder
The fuel family or element type. Examples: "uranium", "thorium", "plutonium", "americium"
Naming Convention:
- Use lowercase
- No spaces or special characters
- Should represent the base element or fuel family
The specific fuel type within the group. Examples: "heu-235", "leu-233", "tbu"
Naming Convention:
- Use lowercase
- Hyphens are allowed
- Common prefixes:
-
he= High Enriched -
le= Low Enriched - Followed by element abbreviation and isotope number
-
Energy produced per tick in Forge Energy (FE/t).
Typical Values:
- Low enriched fuels: 120-300 FE/t
- High enriched fuels: 960-1200 FE/t
- Special fuels: Can be higher
Balance Considerations:
- Higher values = more power but may require better cooling
- Scales with reactor size and configuration
Heat generated per tick.
Typical Values:
- Low enriched: 18-60
- High enriched: 300-400
- Affects cooling requirements
Important:
- Heat multipliers from config apply
- LEU fuels (starting with 'l') get 2x heat multiplier in boiling mode
- Must be balanced with energy output
Affects how easily the fuel sustains a chain reaction.
Typical Values:
- Low criticality: 200-240 (harder to start, needs more fuel cells)
- Medium criticality: 100-150
- High criticality: 39-51 (easier to start, fewer cells needed)
Reactor Impact:
- Lower values = need more fuel cells for criticality
- Higher values = can run with fewer fuel cells
- Affects minimum reactor size
How long the fuel lasts before becoming depleted.
Typical Values:
- Fast burning: 133-180
- Medium burning: 240
- Slow burning: 720+
Important:
- Higher values = fuel lasts longer
- Affected by depletion multiplier in config
- Measured in internal ticks
Overall efficiency rating of the fuel.
Typical Values:
- Standard: 100
- Efficient: 105-115
- Very efficient: 120-125
Impact:
- Affects overall reactor performance
- Higher efficiency = better energy/heat ratio
- Used in reactor calculations
The two isotopes that make up the fuel.
Examples:
- Uranium-235 fuel: isotopes 235 and 238
- Thorium fuel: isotopes 230 and 232
- Plutonium-239 fuel: isotopes 239 and 240
Important:
- Must correspond to actual isotopes in the mod
- Used for crafting recipes
- Determines fuel pellet recipe ratios
When you register a custom fuel, NuclearCraft automatically generates the following items and recipes. Note: Only fission reactor recipes are generated - processing machine recipes (melter, assembler, etc.) must be added manually.
For each fuel, the following items are created:
-
fuel_<group>_<name>- Base fuel pellet -
fuel_<group>_<name>_ox- Oxide variant -
fuel_<group>_<name>_ni- Nitride variant -
fuel_<group>_<name>_za- Zirconium Alloy variant -
fuel_<group>_<name>_tr- TRISO variant
-
depleted_fuel_<group>_<name>- Base depleted fuel -
depleted_fuel_<group>_<name>_ox- Oxide depleted -
depleted_fuel_<group>_<name>_ni- Nitride depleted -
depleted_fuel_<group>_<name>_za- Zirconium Alloy depleted -
depleted_fuel_<group>_<name>_tr- TRISO depleted
Example: For plutonium / hep-239:
nuclearcraft:fuel_plutonium_hep_239nuclearcraft:fuel_plutonium_hep_239_oxnuclearcraft:fuel_plutonium_hep_239_ninuclearcraft:fuel_plutonium_hep_239_zanuclearcraft:fuel_plutonium_hep_239_tr- (and corresponding depleted variants)
Recipes for using the fuel in fission reactors:
Location: data/nuclearcraft/recipes/fission_reactor_controller/
Files Generated:
-
<group>_<name>.json- Base fuel recipe -
<group>_<name>_ox.json- Oxide variant recipe -
<group>_<name>_ni.json- Nitride variant recipe -
<group>_<name>_za.json- Zirconium Alloy variant recipe
Recipe Format:
{
"type": "nuclearcraft:fission_reactor_controller",
"input": [
{
"item": "nuclearcraft:fuel_plutonium_hep_239"
}
],
"output": [
{
"item": "nuclearcraft:depleted_fuel_plutonium_hep_239"
}
],
"powerModifier": 1.0,
"radiation": 1.0,
"timeModifier": 1.0
}Note: TRISO variants (_tr) do NOT get fission reactor recipes generated automatically.
If fission reactor controller recipes are not created automatically, you can add them manually using the following server script:
ServerEvents.recipes(event => {
// Add fission reactor controller recipe for custom fuel
event.custom({
type: 'nuclearcraft:fission_reactor_controller',
input: [
{ item: 'nuclearcraft:fuel_plutonium_hep_242' }
],
output: [
{ item: 'nuclearcraft:depleted_fuel_plutonium_hep_242' }
],
powerModifier: 1.0,
radiation: 1.0,
timeModifier: 1.0
})
// Add recipes for variants (oxide, nitride, zirconium alloy)
event.custom({
type: 'nuclearcraft:fission_reactor_controller',
input: [
{ item: 'nuclearcraft:fuel_plutonium_hep_242_ox' }
],
output: [
{ item: 'nuclearcraft:depleted_fuel_plutonium_hep_242_ox' }
],
powerModifier: 1.0,
radiation: 1.0,
timeModifier: 1.0
})
})Place this script in kubejs/server_scripts/ (e.g., kubejs/server_scripts/fission_recipes.js).
The mod does NOT automatically generate the following recipes:
- Fuel crafting recipes
- Melter recipes (solid fuel → molten fuel)
- Ingot Former recipes (molten fuel → solid fuel)
- Isotope Separator recipes (fuel → isotopes)
- Fuel Reprocessor recipes (depleted fuel → isotopes)
- Fluid Infuser recipes (base fuel + fluid → variant fuel)
- Assembler recipes (base fuel + materials → TRISO fuel)
As a modpack developer, you must create these recipes yourself using KubeJS or other recipe modification tools if you want these processing chains to work with your custom fuels.
If you want your custom fuel to be processable, you'll need to add recipes like this in kubejs/server_scripts/:
ServerEvents.recipes(event => {
// Melter recipe - solid to molten
event.custom({
type: 'nuclearcraft:melter',
input: [{ item: 'nuclearcraft:fuel_plutonium_hep_242' }],
output: [{ fluid: 'nuclearcraft:fuel_plutonium_hep_242', amount: 1000 }],
timeModifier: 1.0,
powerModifier: 1.0,
radiation: 1.0
})
// Ingot Former recipe - molten to solid
event.custom({
type: 'nuclearcraft:ingot_former',
input: [{ fluid: 'nuclearcraft:fuel_plutonium_hep_242', amount: 1000 }],
output: [{ item: 'nuclearcraft:fuel_plutonium_hep_242' }],
timeModifier: 1.0,
powerModifier: 1.0,
radiation: 1.0
})
// Fluid Infuser recipe - create oxide variant
event.custom({
type: 'nuclearcraft:fluid_infuser',
input: [
{ item: 'nuclearcraft:fuel_plutonium_hep_242' },
{ fluid: 'nuclearcraft:oxygen', amount: 1000 }
],
output: [{ item: 'nuclearcraft:fuel_plutonium_hep_242_ox' }],
timeModifier: 1.0,
powerModifier: 1.0,
radiation: 1.0
})
// Assembler recipe - create TRISO variant
event.custom({
type: 'nuclearcraft:assembler',
input: [
{ item: 'nuclearcraft:fuel_plutonium_hep_242', count: 9 },
{ tag: 'forge:dusts/graphite' },
{ tag: 'forge:ingots/pyrolitic_carbon' },
{ tag: 'forge:ingots/silicon_carbide' }
],
output: [{ item: 'nuclearcraft:fuel_plutonium_hep_242_tr', count: 9 }],
timeModifier: 1.0,
powerModifier: 1.0,
radiation: 1.0
})
})Place your custom fuel scripts in:
kubejs/
└── startup_scripts/
└── custom_fuels.js (or any .js file)
Important: Fuel registration must happen in startup scripts, not server scripts!
You can customize how the fuel behaves in recipes using recipe modifiers:
NCKJSEvents.RegisterFissionFuel(event => {
event.registerFuel(
'plutonium',
'super-239',
1500, // forgeEnergy
500, // heat
40, // criticality
200, // depletion
120, // efficiency
239, // isotope1
240, // isotope2
0.8, // timeModifier (20% faster)
1.2, // powerModifier (20% more power)
1.5 // radiationModifier (50% more radiation)
)
})timeModifier (default: 1.0)
- Values < 1.0: Fuel depletes faster
- Values > 1.0: Fuel lasts longer
- Example: 0.5 = fuel lasts half as long
powerModifier (default: 1.0)
- Multiplies energy output
- Example: 1.5 = 50% more energy
radiationModifier (default: 1.0)
- Affects radiation produced
- Example: 2.0 = double radiation
For more precise control, you can use double values for criticality, depletion, and efficiency:
NCKJSEvents.RegisterFissionFuel(event => {
event.registerFuel(
'thorium',
'tbu-advanced',
150, // forgeEnergy
25.5, // heat (double)
234.7, // criticality (double)
720.5, // depletion (double)
127.3, // efficiency (double)
230, // isotope1
232 // isotope2
)
})Some fuel types don't generate all variants. To create a special fuel (like xenorium or quantite):
NCKJSEvents.RegisterFissionFuel(event => {
// Use a group name matching "xenorium.*" or "quantite.*"
event.registerFuel(
'xenorium', // Special group
'xen-300',
2000,
600,
30,
100,
130,
300,
298
)
})Note: Special fuels only generate base variants, not oxide/nitride/zirconium alloy variants.
NCKJSEvents.RegisterFissionFuel(event => {
// Medium enriched uranium - balanced stats
event.registerFuel(
'uranium',
'meu-235',
600, // Moderate power
150, // Moderate heat
75, // Medium criticality
200, // Standard depletion
105, // Slightly efficient
235,
238
)
})NCKJSEvents.RegisterFissionFuel(event => {
// High power plutonium with increased radiation
event.registerFuel(
'plutonium',
'hep-241-advanced',
1400, // High power
450, // High heat
42, // Good criticality
160, // Burns faster
115, // Good efficiency
241,
240,
0.9, // 10% faster depletion
1.1, // 10% more power
1.3 // 30% more radiation
)
})NCKJSEvents.RegisterFissionFuel(event => {
// Efficient, long-lasting thorium fuel
event.registerFuel(
'thorium',
'tbu-extended',
140, // Low power
20, // Low heat
220, // Low criticality (needs more cells)
900, // Very long lasting
130, // Very efficient
230,
232,
1.5, // 50% longer lasting
1.0, // Normal power
0.8 // 20% less radiation
)
})NCKJSEvents.RegisterFissionFuel(event => {
// Add multiple fuels at once
// Neptunium fuel line
event.registerFuel('neptunium', 'hen-237', 1100, 380, 48, 190, 112, 237, 236)
event.registerFuel('neptunium', 'len-237', 280, 65, 95, 190, 108, 237, 236)
// Curium fuel line
event.registerFuel('curium', 'hecm-244', 1250, 420, 44, 170, 114, 244, 243)
event.registerFuel('curium', 'lecm-244', 310, 70, 88, 170, 110, 244, 243)
// Experimental high-efficiency fuel
event.registerFuel(
'experimental',
'ultra-fuel',
2000,
700,
35,
120,
140,
252,
251,
0.7, // Burns 30% faster
1.5, // 50% more power
2.0 // Double radiation
)
})NCKJSEvents.RegisterFissionFuel(event => {
// Custom fuel balanced for expert modpack
// Requires rare isotopes but provides excellent performance
event.registerFuel(
'californium',
'hecf-252',
1800, // Very high power
550, // Very high heat
38, // Excellent criticality
140, // Burns quickly
125, // Excellent efficiency
252,
251,
0.8, // 20% faster burn
1.25, // 25% more power
1.8 // 80% more radiation
)
})- Make sure your script is in
kubejs/startup_scripts/ - Check the console for errors
- Verify KubeJS is installed and loaded
- Run
/reloadcommand in-game
- Fission reactor recipes are automatically generated for base and variant fuels (except TRISO)
- Crafting recipes from isotopes are automatically generated
- Smelting recipes for variants are automatically generated
- Processing recipes (melter, assembler, etc.) are NOT automatically generated - you must add these manually via KubeJS
- Ensure isotopes exist in the mod
- Check that group and name don't conflict with existing fuels
- Verify the fuel item exists:
/give @p nuclearcraft:fuel_<group>_<name> - Check that fission reactor recipe was generated
- Ensure reactor is properly constructed
- Check criticality requirements
This is expected! Processing recipes are NOT automatically generated. You must:
- Create custom recipes in
kubejs/server_scripts/(see the "Important: Processing Recipes NOT Auto-Generated" section above) - Use KubeJS to add melter, ingot former, fluid infuser, assembler, and isotope separator recipes
- Reference the example recipes provided in this guide
Look for messages like:
[NuclearCraft]: Registered custom fission fuels via KubeJS
If you don't see this, your event registration may not be working.
- Use lowercase for group and name
- Use hyphens for separators in names
- Keep names descriptive but concise
- Follow existing naming patterns (heu, leu, etc.)
- Energy vs Heat: Higher energy should mean higher heat
- Criticality: Lower values need bigger reactors
- Depletion: Balance fuel lifetime with power output
- Efficiency: Don't make fuels too efficient (breaks progression)
- Test in creative mode first
- Build a test reactor for each fuel type
- Monitor heat and energy output
- Check depletion time
- Verify all variants work
Document your custom fuels for players:
- List all custom fuels
- Explain their properties
- Provide reactor designs
- Note any special requirements
// HEU-233: High power, high heat
forge_energy: 1152, heat: 360, criticality: 39, depletion: 133, efficiency: 115
// HEU-235: High power, high heat
forge_energy: 960, heat: 300, criticality: 51, depletion: 240, efficiency: 105
// LEU-233: Low power, low heat
forge_energy: 288, heat: 60, criticality: 78, depletion: 133, efficiency: 110
// LEU-235: Low power, low heat
forge_energy: 240, heat: 50, criticality: 102, depletion: 240, efficiency: 100// TBU: Very low power, very low heat, long lasting
forge_energy: 120, heat: 18, criticality: 234, depletion: 720, efficiency: 125Use these as reference points for balancing your custom fuels.
Happy modpack developing!