Homebrew: Object

From 5etools Community Wiki
Jump to: navigation, search


Objects, in 5eTools are devices and at times vehicles which don't fall within the normal confines of items, or weapons - they are usually siege weapons, but they can certainly be other things as well.

Building an object

As with any Homebrew item, make sure you have reviewed the _Meta section. If your file doesn't have it, it won't work.

Basic skeleton

To start, copy the following code block and fill the empty "" values.

Object code block
 "object": [
        "name": "",
        "source": "",
        "page": 0,
        "size": "",
        "objectType": "",
        "ac": "",
        "hp": "",
        "immune": [
        "entries": [
  • "name" — the name of the feat.
  • "source" — make sure it is the same as the "json" key in the _meta.
  • "page" — page of the document the hazard appears at (leave at 0 if not applicable).
  • "size" — the size of the object. Choose between "S" small, "M" medium, "L" large, "H" huge, "G" gargantuan or "V" varies.
  • "objectType" — Choose between "SW" siege weapon, "GEN" generic, "U" unknown.
  • "ac" — The Armor Class of the object. Take note that the data type is a string, so you can be flexible with what you write here.
  • "hp" — The Health Points of the object. Same thing as with the AC.
  • "immune" — The types of damage the object is immune to. You can add any text you want by using the following
"immune": [
        "special": "Varies (see below)"
  • "entries" — consists of text strings ("") separated by commas.

More options

Make sure you are adding these blocks in the same level as the "name", "source", etc.

Ability Scores

Some objects can have ability scores on their own. Note that they are separate data, so not all of them need to be added.

"str": 14,
"dex": 10,
"int": 3,
"wis": 3,
"cha": 1,


You can write as a number

"speed": 20

Or be more specific with different speed types.

"speed": {
    "walk": 20,
    "fly": 15


"senses": [
    "blindsight 30 ft. (blind beyond this radius)"

Damage Resistance and Vulnerability

"resist": [
"vulnerable": [

Condition Immunity

"conditionImmune": [

Action entries

"actionEntries": [
        "type": "actions",
        "name": "Bolt",
        "entries": [
                "type": "attack",
                "attackType": "RW",
                "attackEntries": [
                    "{@hit +6} to hit, range 120/480 ft., one target."
                "hitEntries": [
                    "16 ({@damage 3d10}) piercing damage."

Token Image

Use a direct link to the image.

"tokenUrl": "example.com/token.jpg",
"hasToken": true

Reference Tag

How to link to entries within the string

{@object <object_name>|<json_source> | <optional_text_information>}
{@object Ballista|DMG}
{@object Ballista|DMG|and optional link text added with another pipe}

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 descript boolean
source String json (_meta's json value) True
page Integer The Page number it apepars upon False
size String title True
type String Type of Object:
Siege Weapon SW, Generic GEN, Unknown U
str Integer descript False
dex Integer descript False
con Integer descript False
int Integer descript False
wis Integer descript False
cha Integer descript False
ac Strings descript True
hp Strings descript True
speed False
senses Array of Strings descript False
immune String descript True
resist String descript False
vulnerable String descript False
entries Array of Strings Other Names False
actionEntries Array of Strings Other Names False
tokenURL String URL for the Token of the object False
srd Boolean If its part of the SRD False

🗄️ Reference Files:
🛢️ Requirements Specs (Schemata)
[[ |🧾 Blank Template]]
📖 Sample JSON
💾 No Functional Examples currently exist
📚 Repository of Other Examples

Homebrew Support

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

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.

Do you have time to take a Survey?