Ever had the thought it would be cool if you could assign specific origins to a special orb? Well now you can! introducing:
Orb'd is an Origins Addon which allows you to define custom Orbs of Origin through Json!
Implementation of data-driven orbs is quite simple and requires very little setup.
In your datapack, create the following file path:
datapackname/data/namespace/orbs/
this is the file path for all custom orbs, meant to keep them all in one nice place.
Next up is the Json structure, its quite simple & small so no headaches required.
{
"orb_name": "Fire Orb", // Name of Orb
"orb_description": "Grants the powers of a Fire Elemental.", // Description of the orb
"orb": "orbd:fire_orb", // ID of the orb, allows for unique ids (namespace:id)
"origin": "origins:blazeborn" // Origin to turn into (in this case blazeborn)
}
Instead of using "origin": "origins:blazeborn" to define an origin, we can use "origins": ["namespace:id", ect] to define a set of origins that orb can turn you into. Using a multi-orb, it will put the player into a restricted Origins Menu for the specified origins. This also works with other origin layers (such as origins-classes and custom made layers.) Do not use both "origin" and "origins" in the same orb file. Do not try and cross layer either, it will not work.
{
"orb_name": "Tri-Orb", // Name of Orb
"orb_description": "Holds the power of 3 different Origins.", // Description of the orb
"orb": "orbd:tri_orb", // ID of the orb, allows for unique ids (namespace:id)
"origins": ["origins:blazeborn", "origins:arachnid", "origins:phantom"] // Origins to turn into
}
Defining custom textures for your custom orb is also pretty simple and only requires basic resource pack knowledge. Orb'd uses minecraft's override system to keep things simple, however a new system will be put into place in the future, but for now this works.
{
"parent": "item/generated", // Original model
"textures": {
"layer0": "origins:item/orb_of_origin" // Original texture
},
"overrides": [
{
"predicate": { "custom_model_data": 42700 }, // Custom model data
"model": "item/fire_orb" // The model
}
]
}
Do note other resource packs may conflict with other ones.
You can use this command to grab your custom orb:
/give @s orbd:generic_orb{orb_id:"namespace:id"} 1
And thats it! You've completely defined a custom orb bound to one origin!