Stuff Object Reference¶
TL;DR
stuff/<name>.json places small decorative extras such as cobwebs and chains. The mod scans columns and makes random attempts inside them rather than baking the decoration into a part. Tags, blocks and biome gate where it happens. code review
This asset type does not exist before 6.2.2
Every key on this page arrived in 6.2.2. On 5.3.29, 6.0.3, 6.1.6 or 6.2.3 the mod does not know the stuff object at all. See Key availability. code review
column is a palette character, not a block
It is the thing that gets placed, taken as the first character of the string and resolved through the building's merged palette. The mod's own files use "column": "{" and "column": "\\", which read as nonsense until you know that. game test code review
Keys¶
| Key code review | Required | Limits | Meaning |
|---|---|---|---|
column |
yes | The palette character to place. Only the first character of the string is read, so a longer one silently keeps the first, the same rule as a palette's char |
|
mincount / maxcount |
yes | maxcount must be greater than mincount |
How many objects to place per successful attempt |
attempts |
yes | 1 or more | How many placement attempts to make. 0 places nothing, silently |
tags |
no | Matched against a City Style's stuff_tags |
|
minheight / maxheight |
no | maxheight must be greater than minheight |
The height range to search within. See the defaults below |
inbuilding |
no | true restricts placement to inside buildings |
|
seesky |
no | true restricts placement to spots that can see the sky |
|
biomes |
no | A Matcher for allowed biomes | |
blocks |
no | A Matcher for the block required below the spawn point | |
upperblocks |
no | The same, for the block required above it | |
buildings |
no | Restricts placement to specific buildings. A resource-location matcher, which does not take if_all. See Matchers |
Equal mincount and maxcount crash world generation
The count is random(maxcount - mincount) + mincount, and the random call needs a positive bound. "mincount": 2, "maxcount": 2 therefore does not mean "always place 2": it throws bound must be positive during generation. Write "mincount": 2, "maxcount": 3 for that. Reversed values throw for the same reason. code review
The count is computed before any attempt runs, so a high attempts value is no protection. code review
minheight and maxheight work the same way, because the Y coordinate is random(maxheight - minheight) + minheight. code review
What minheight and maxheight default to¶
Leaving both unset is always safe. The risk is setting one of the pair and landing on a range of zero. code review
| Key | Outside a building | Inside a building |
|---|---|---|
minheight |
The chunk's ground level | The bottom of the cellars, that is city ground level minus cellars * 6 |
maxheight |
minheight + 20 |
City ground level plus floors * 6, plus 10 |
| code review |
The inside-a-building defaults apply only when inbuilding is set and the chunk actually holds a building. code review
Example¶
{
"column": "c",
"mincount": 1,
"maxcount": 3,
"attempts": 10,
"inbuilding": true,
"blocks": { "if_any": ["minecraft:stone_bricks"] },
"tags": ["ruined"]
}
A stuff object with "column": "I" and I mapped to minecraft:iron_block placed 5 iron blocks inside a test building. Nothing else in that pack used I. game test
See also¶
- City Style Reference for
stuff_tags - Matchers
- Error Messages for
bound must be positive