This mod allows you to create custom resource clumps (the game's name for 2x2 farmable stumps and boulders) that have a chance to spawn instead of ordinary boulders. By default it does nothing, you are expected to either install a content pack for it or create your own. Alternatively, it includes a sample file you can rename and use that adds five custom clumps: copper, iron, gold, diamond, and iridium (see below).
Usage
To use this mod with the example clumps, you can simply rename the EXAMPLEcustom_resource_clumps.json file included with this mod to custom_resource_clumps.json (and optionally edit it with a text editor). The clumps key has a list of JSON objects that provide one custom clump each, e.g.:{
"clumps": [
{
"clumpDesc": "An extremely dense piece of stone with diamonds in it.",
"debrisType": 14,
"failSounds": [
"clubhit",
"clank"
],
"hitSounds": [
"hammer"
],
"breakSounds": [
"boulderBreak"
],
"shake": 100,
"toolType": "pick",
"toolMinLevel": 3,
"tileWidth": 2,
"tileHeight": 2,
"spritePath": "assets\\diamond.png",
"spriteType": "mod",
"spriteX": 0,
"spriteY": 0,
"minLevel": -1,
"maxLevel": -1,
"baseSpawnChance": 0.01,
"additionalChancePerLevel": 0.01,
"durability": 20,
"expType": "mining",
"exp": 25,
"dropItems": [
{
"itemIdOrName": "Diamond",
"dropChance": 100,
"minAmount": 3,
"MaxAmount": 6
},
{
"itemIdOrName": "390",
"dropChance": 100,
"minAmount": 5,
"MaxAmount": 10
}
]
},
{
"clumpDesc": "An extremely dense piece of stone with iridium in it.",
"debrisType": 14,
"failSounds": [
"clubhit",
"clank"
],
"hitSounds": [
"hammer"
],
"breakSounds": [
"boulderBreak"
],
"shake": 100,
"toolType": "pick",
"toolMinLevel": 3,
"tileWidth": 2,
"tileHeight": 2,
"spritePath": "Maps\\springobjects",
"spriteType": "game",
"spriteX": 352,
"spriteY": 400,
"minLevel": -1,
"maxLevel": -1,
"baseSpawnChance": 0.001,
"additionalChancePerLevel": 0.001,
"durability": 20,
"expType": "mining",
"exp": 25,
"dropItems": [
{
"itemIdOrName": "386",
"dropChance": 100,
"minAmount": 5,
"MaxAmount": 10
},
{
"itemIdOrName": "390",
"dropChance": 100,
"minAmount": 5,
"MaxAmount": 10
},
{
"itemIdOrName": "535",
"dropChance": 100,
"minAmount": 2,
"MaxAmount": 2
}
]
}
]
}
Alternatively, you can create your own Content Pack for this mod (see Files section for an example content pack) with its own custom_resource_clumps.json file.
JSON Explanation
Each JSON object can have the following keys:
- string id: a text id to identify the clump by (for console spawning, e.g.)
- string clumpDesc: A description of the clump (doesn't do much afaics).
- int debrisType: what sort of crap flies up when it breaks (14 is stone, 12 is wood, I think)
- string[] failSounds: a list of sound names to play on a hit with the wrong tool
- string[] hitSounds: a list of sound names to play on a hit with the right tool
- string[] breakSounds: a list of sound names to play when the clump is destroyed
- int shake: the rate of time it takes for the clump to vibrate when hit (lower is quicker, 0 turns off shake)
- string toolType: the right tool, one of "axe", "pick", "hoe", "weapon", "wateringcan", "wand". I don't know if they all will work.
- int toolMinLevel: minimum upgrade required to hurt the clump (for weapons, set to 0)
- int tileWidth: how many tiles wide the clump is (must be 2 for now)
- int tileHeight: how many tiles tall the clump is (must be 2 for now)
- string spritePath: the relative path either to the game or mod sheet containing the sprite
- string spriteType: where to look for the sprite sheet; one of "mod" or "game"
- int spriteX: the X-coord of the pixel where the sprite begins on the sheet
- int spriteY: the Y-coord of the pixel where the sprite begins on the sheet
- int minLevel: minimum mine level for the clump to spawn (optional)
- int maxLevel: maximum mine level for the clump to spawn (optional)
- float baseSpawnChance: 0-100
- float additionalChancePerLevel: 0-100 additional chance per mine level (Skull Cave level 1 is level 121)
- int durability: how many hit points it has.
- string expType: which skill to benefit from breaking this clump; one of "farming", "foraging" "mining", "combat".
- int exp: how much experience to gain from destroying this node
- List<DropItem> dropItems: a list of items to drop (see below).
The drop item list contains JSON objects with one item each that this node should drop, as follows:
- "itemIdOrName": The name or parent sheet index of the item to drop.
- "dropChance": 0-100
- "minAmount": minimum to drop.
- "MaxAmount": maximum to drop.
Console Commands
You can list id and index for all loaded clumps using:
crc list
You can spawn a clump using
crc spawn <id or index> <x> <y>
Other Underground Mods
Technical Notes
Skull Cave seems to have boulders appear only very rarely. If you want to spawn these clumps more often, you can use Custom Dungeon Floors which allows for spawning more clumps, among other things.
This mod no longer extends the sprite sheet Maps\springobjects, so it should no longer be in danger of conflict there.
Requires SMAPI, uses Harmony.
Source code is available at https://github.com/aedenthorn/StardewValleyMods/.
If you want to complain or ask for help or help me test my mods, you can visit my Discord server.
A list of all my mods for Stardew Valley is available at https://www.nexusmods.com/stardewvalley/articles/895.