Homebrew: Spell

From 5etools Community Wiki
Jump to: navigation, search


With the existance of the Homebrew Builder, we advise to use that page rather than build spells by hand. If you are trying to do something that the builder does not allow, ask over at the Discord server.

Building a spell

An Example:

The _Meta is normally included in a full JSON, for this example it has been removed. See the link for how to develop the _meta.

Spell example
	"spell": [
			"name": "Iceball",
			"_copy": {
				"name": "Fireball",
				"source": "PHB"
			"source": "json_in_meta",
			"components": {
				"v": true,
				"s": true,
				"m": "a handful of crushed pine needles"
			"entries": [
				"A glistening shard flashes from your pointing finger to a point you choose within range and then blossoms with a booming crackle into an explosion of ice. Each creature in a 20-foot-radius sphere centered on that point must make a Dexterity saving throw. A target takes {@damage 8d6} cold damage on a failed save, or half as much damage on a successful one.",
				"The ice spreads around corners. It freezes liquids in the area that aren't in sealed containers."
	"foundrySpell": [
			"name": "Iceball",
			"source": "json_in_meta",
			"targetValue": 20,
 			"targetUnits": "ft",
			"targetType": "sphere"
	"roll20Spell": [
			"name": "Iceball",
			"source": "json_in_meta",
			"data": {
 				"Save": "Dexterity",
				"Damage": "6d8,
				"Damage Type": "Cold",
				"Save Success": "Half damage",
				"Higher Spell Slot Die": "d8",
				"Higher Spell Slot Dice": "1"
Learn More
In the example; <description_of_results/fields>

Field List Sources

If you do not include the required fields (denoted with bold text) the JSON may pass JSONLint but will fail upon stitch.

Field Name Data Type Description Required
name String The spell's name True
level Integer Spell Level True
school Enum Magical School *
subschools Array of Strings subschools of major schools (For Homebrew only) False
_meta Integer descript boolean
time Array of Objects Time Objects True
range Object descript True
components Object descript boolean
duration Array of Objects Spell Duration True
entries Array of Strings action description True
entriesHigherLevel Object descript boolean
classes Array of Objects descript boolean
races Array of Objects descript boolean
backgrounds Array of Object descript boolean
source String json (_meta's json value) True
page Integer page number within source False
otherSources Integer page number within source False
damageInflict Enum descript boolean
damageResist Enum descript boolean
damageImmune Enum descript boolean
damageVulnerable Enum descript boolean
conditionInflict Enum descript boolean
savingThrow Enum descript boolean
opposedCheck descript boolean
spellAttack descript boolean
areaTags descript boolean
miscTags descript boolean
srd Boolean It is part of the SRD False (RAW only)
scalingLevelDice descript boolean


Spell School

Field Value

Magical School
"A" Abjuration
"V" Evocation
"E" Enchantement
"I" Illusion
"D" Divination
"N" Necromancy
"T" Transmutation
"C" Conjuration
"P" Psionic (not used)

Object (Foundry)

Object (Roll20)

Reference Tag

How to link to entries within strings

{@spell <Spell_name>| <json_source> | <optional_text_information>}

@spell tiny servant|xge}
{@spell tiny servant|xge|and optional link text added with another pipe}

πŸ—„οΈ Reference Files:
πŸ›’οΈ Requirements Specs (Schemata)
[[ |🧾 Blank Template]]
πŸ“– Sample JSON
πŸ’Ύ Functional Example
πŸ“š Repository of Other Examples

Homebrew Support

Known Issues
Looks like its perfect... (Did we miss anything?)

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Work Around  : Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Nothing's here (Do you have any suggestions?)
Best Practices
None as yet (Do you have any suggestions?)

Related Features

Did that answer your question(s)?

If not please check the under Support; Troubleshooting or the Known Issues page for further guidance, or go to the Discord community and leave a comment in the issues channel.

If you enjoy the project, please follow this link to see how you can contribute and help make it even better.