Repository navigation
Modpack Setup
Decide how players first discover the field, what earns access to a nexus, and which actions consume power. You can build a survey quest with dowsing rods, then add a KubeJS interaction that converts raw magic and a second interaction that pays for a spell. For a first working example, follow the KubeJS tutorial.
- Install the matching Ley Lines JAR on the server and clients. Add KubeJS and its dependency stack if the pack uses the scripting bridge. Put the currency definitions in
kubejs/startup_scripts/and gameplay and recipe scripts inkubejs/server_scripts/. - Start a disposable world to generate the TOML files. Ship the instance files under
config/in your pack export. Use<world>/serverconfig/skysleylines-server.tomlfor a particular shipped or hosted world that needs its own settings. - Configure spacing, line width, nexus radius, vertical reach, and base capacity before creating a new world. For an existing world, use the server TOML to set the capacity multiplier, refill override, or default vision style. Reopen the world to apply a capacity or refill change. Configuration and Save Data
- Test a new world and a copy of an existing one. Survey a crossing, test an action away from a nexus, and check the account again after a restart. Include a non-operator in the test if the pack lets ordinary players spend power.
At 1,000 aether per raw, a conversion of 5 raw gives the nexus 5,000 aether. A spell priced at 1,000 aether lets players cast up to five times on that conversion if nobody else spends from the same account. Conversion keeps total charge constant. Each cast removes 1 raw equivalent and makes room for 1 raw to recharge. Changing the conversion ratio alone changes the number of currency units per raw, so tune the price and ratio together.
Every eligible player and machine draws on the same nexus account. Packs and add-ons can also give players personal pools that hold converted units. Use player energy policy files to set limits and decide what happens to energy on death. Check your pack’s permissions, cooldowns, and quest gates before calling a transaction, and grant the effect after payment succeeds. Use distinct consumer IDs so protection mods can identify the action. Player Energy Pools
If an update removes or renames a currency ID, its saved balance becomes inactive and still takes up capacity. Keep stable IDs across pack updates. Operators can recover retained units, and changed rates need an explicit migration. Configuration and Save Data
The dowsing rod item and recipe ID are both skysleylines:dowsing_rods. Put this recipe replacement in kubejs/server_scripts/dowsing_recipe.js and use /reload to apply it.
ServerEvents.recipes(event => {
event.remove({ id: 'skysleylines:dowsing_rods' })
event.shapeless('skysleylines:dowsing_rods', [
'minecraft:copper_ingot', 'minecraft:copper_ingot',
'minecraft:stick', 'minecraft:stick', 'minecraft:amethyst_shard'
]).id('kubejs:dowsing_rods')
})If you use CraftTweaker, put the equivalent in a .zs script and choose one recipe integration for the pack.
craftingTable.removeByName(["skysleylines:dowsing_rods"]);
craftingTable.addShapeless("pack_dowsing_rods", <item:skysleylines:dowsing_rods>,
[<item:minecraft:copper_ingot>, <item:minecraft:copper_ingot>,
<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:amethyst_shard>]);In FTB Quests, use skysleylines:dowsing_rods as an item task or reward. Give players a short instruction to leave their other hand empty, follow the rods, and try changing elevation if they reach a crossing but get no reading. The Ley Meter is a separate operator tool.
KubeJS recipe guide · CraftTweaker crafting table API · FTB Quests documentation