-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This mod adds a new Starting Class system to the game inspired by the Soulsborne series, allowing players to start with a loadout of equipment and potentially even starting pets from a list of selectable classes. This mod is meant to be highly data-driven, with modpack and datapack makers able to make their own classes.
This mod has a config option to set the health of any mobs you may start with as part of your starting class to a custom amount, and also to give them an infinite instance of the Regeneration I effect, if you'd like a trusty animal companion that will last throughout your game.
If you're a datapack or modpack maker, you can use this mod to create your own starting classes. Classes will need to be in starting_classes/classes. If you'd like to have a class only be available if a specific mod is loaded, you can add it to starting_classes/classes/compat/<that mod's id>, and it will then only load if the specified mod is also loaded.
{
"id": "starting_classes:example", <- The id of the class. I would encourage adding your namespace so it doesn't get overwritten by another class.
"name": "Knight", <- The name of the class that will be displayed in the UI.
"description": "A knight-errant in search of adventure.", <- The description of the class that will be displayed in the UI.
"source": "Starting Classes", <- The 'source' of the class that will be displayed under the name in the UI.
"icon": {
"type": "item",
"itemId": "minecraft:iron_sword" <- The icon of the class that will be displayed in the UI. This can be an item or a texture.
},
"icon": {
"type": "texture",
"texture": "yourmodname:textures/mystic" <- Here's an example of how you'd set a texture as the icon.
},
"equipment": [
{
"type": "fixed", <- A fixed entry is the simplest entry type, it just gives you a single item.
"item": { If an item isn't present, it will appear as a blank space in the GUI.
"item": "minecraft:leather_helmet", <- The item for the entry.
"count": 1 <- The amount of the item.
}
},
{
"type": "choice", <- A choice entry allows for a selection between multiple items. You can have as many choices as you want.
"options": [
{
"item": "minecraft:iron_sword",
"count": 1
},
{
"item": "minecraft:iron_axe",
"count": 1
}
]
}
{
"type": "fixed",
"item": {
"item": "minecraft:fishing_rod",
"count": 1,
"nbt": "{Enchantments:[{id:\"minecraft:lure\",lvl:1}]}" <- Here's an example of how you'd set an NBT tag on an item, an enchantment in this case.
}
},
{
"type": "fixed",
"item": {
"item": "minecraft:potion",
"count": 1,
"nbt": "{Potion:\"minecraft:invisibility\"}" <- Here's an example of how you'd add a potion to a starting class.
}
},
{
"type": "mob", <- You can also spawn mobs when a player chooses a class. If the mob is a TamableAnimal or AbstractHorse,
"entityId": "minecraft:wolf", it will automatically be tamed. Otherwise, the mob will be untamed.
"count": 1 Mobs won't be automatically represented in the equipment list, so I'd
} recommend adding a spawn egg to the equipment list. Unfortunately, right now
I can't figure out a clean way to make choice mob entries, so they'll have to remain fixed/
{
"type": "mob", <- Here's an example of how you'd spawn a mob with NBT, in this case a llama with a blue carpet,
"entityId": "minecraft:llama", a chest, and a strength of 5.
"count": 1,
"nbt": "{Tame:1b,Strength:5,ChestedHorse:1b,DecorItem:{id:\"minecraft:blue_carpet\",Count:1b}}"
}
]
}
{
"id": "starting_classes:example", <- The id of the class. I would encourage adding your namespace so it doesn't get overwritten by another class.
"name": "Knight", <- The name of the class that will be displayed in the UI.
"description": "A knight-errant in search of adventure.", <- The description of the class that will be displayed in the UI.
"source": "Starting Classes", <- The 'source' of the class that will be displayed under the name in the UI.
"icon": {
"type": "item",
"itemId": "minecraft:iron_sword" <- The icon of the class that will be displayed in the UI. This can be an item or a texture.
},
"icon": {
"type": "texture",
"texture": "yourmodname:textures/mystic" <- Here's an example of how you'd set a texture as the icon.
},
"equipment": [
{
"type": "fixed", <- A fixed entry is the simplest entry type, it just gives you a single item.
"item": { If an item isn't present, it will appear as a blank space in the GUI.
"item": "minecraft:leather_helmet", <- The item for the entry.
"count": 1 <- The amount of the item.
}
},
{
"type": "choice", <- A choice entry allows for a selection between multiple items. You can have as many choices as you want.
"options": [
{
"item": "minecraft:iron_sword",
"count": 1
},
{
"item": "minecraft:iron_axe",
"count": 1
}
]
}
{
"type": "fixed",
"item": {
"item": "minecraft:fishing_rod",
"count": 1,
"components": {
"minecraft:enchantments": {
"levels": {
"minecraft:fortune": 1 <- Here's an example of how you'd set an NBT tag on an item, an enchantment in this case.
}
}
}
}
},
{
"type": "fixed",
"item": {
"item": "minecraft:potion",
"count": 1,
"components": {
"minecraft:potion_contents": {
"potion": "minecraft:invisibility" <- Here's an example of how you'd add a potion to a starting class.
}
}
}
},
{
"type": "mob", <- You can also spawn mobs when a player chooses a class. If the mob is a TamableAnimal or AbstractHorse,
"entityId": "minecraft:wolf", it will automatically be tamed. Otherwise, the mob will be untamed.
"count": 1 Mobs won't be automatically represented in the equipment list, so I'd
} recommend adding a spawn egg to the equipment list. Unfortunately, right now
I can't figure out a clean way to make choice mob entries, so they'll have to remain fixed/
{
"type": "mob", <- Here's an example of how you'd spawn a mob with NBT, in this case a llama with a blue carpet,
"entityId": "minecraft:llama", a chest, and a strength of 5.
"count": 1,
"nbt": "{Strength:5,Tame:1,ChestedHorse:1,body_armor_item:{id:blue_carpet,count:1}}"
}
]
}