Back to mods
Piles!  project artwork

Vintage Story Mod DB · Vintage Story mod

Piles!

This a modding library/tool for adding custom piles in the style of coal and charcoal from Vanilla entirely through external content mods. By default piles for Rot, Salt, and All types of vanilla Grain and included. These piles have now been extracted out to

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Piles! release should I use?

Updated 2 years ago
Latest stable file 1.2.0
Game version 1.19.0, 1.19.1, 1.19.2
Loader Built-in Vintage Story mod system

Piles! 1.2.0 targets 1.19.0, 1.19.1, 1.19.2. It must be installed on the client. Installation on the dedicated server is optional. No extra mods listed for this file.

Where it goes

Is Piles! required on the client, server, or both?

It must be installed on the client. Installation on the dedicated server is optional.

Client Required
Dedicated server Optional
Loader for this release Built-in Vintage Story mod system
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

This release supports both sides, but the source does not require it on the server.

What else does Piles! 1.2.0 need?

1.2.0. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add Piles! without breaking your instance.

Built for Piles! 1.2.0. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 1.2.0. It targets 1.19.0, 1.19.1, 1.19.2; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    It must be installed on the client. Installation on the dedicated server is optional.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 1.2.0. It opens that exact file at the source.

About this project

What does Piles! add?

This a modding library/tool for adding custom piles in the style of coal and charcoal from Vanilla entirely through external content mods. 



By default piles for Rot, Salt, and All types of vanilla Grain and included. 
These piles have now been extracted out to their own mod.
Check out: Granary


This library adds the following relevant classes: BlockPile, BlockEntityPile, & BehaviorPileItem

To add your own pile with this mod installed it is as follows:


  1. Create a new content mod with a blocktype file for each of the piles you wish to create (if they are variant piles such as grain, you only need 1 with variant groups)
  2. Each of these blocktypes assign them the class BlockPile and entityclass BlockEntityPile
  3. (Optional) add an attributes section to the block type to specify parameters of that pile. Any not-specified attribute will be given a default value. If the attributes array is not presnt at all, all values will be default.

    The attributes are as follows:

    "attributes":
    {
       "addItemLabel" : "String" or "LangKey",
       "removeItemLabel": "String" or "LangKey",
       "defaultAddQuantity": Integer (default: 2),
       "defaultTakeQuantity": Integer (default: 2),
       "bulkTakeQuantity": Integer (default: 4),
       "maxStackSize": Integer (default: 16),
       "interactSoundPath" : "domain:pathToSound",
       "allowUnstablePlacement": true/false (default: false)
    }
  4.  Assign a texture to the blockPile you created just as you would a vanilla block.
    1. The piles support assignment by face if desired (such as defining a different texture for "up"/the top face and a seperate texture for the sides. If wanting the same texture for all sides use the vanilla "all" key for the textures field
  5. Create a patch adding/appending BehaviorPileItem to the item you wish to pileable, with a properties array pointing to the corresponding code of the newly created blocktype.
    1. If using variants such as for example "grain" they may be defined as "grain-flax" or generically "grain-{type}", in which case you can specify the code of the pile blocktype created as "grainPile-{type}" and make sure that the blocktype for "grainPile" as the corresponding variantgroups array to have different piles per type of grain with only one blocktype file.
    2. For specifying those variant textures simply point the texture-path to the location and use the variant group {type} as you would with normal variant texturing

      The source code and example implementation from the default piles can be found at: https://github.com/Pursec/PilesPilesPiles


Example of a patch file for grain supporting variantgroups: 
```
[
    {
        "file": "game:itemtypes/food/grain",
         "op": "add",
         "path": "/behaviors",
         "value": [
                          {
                              "name": "BehaviorPileItem",
                              "properties": { "pileBlockCode": "gespiles:grainPile-{type}"}
                          }
                      ]
   }
]
```

Example of grainPile.json
```
{
  "code": "grainPile",
  "class": "BlockPile",
  "entityClass": "BlockEntityPile",
  "variantgroups": [
    {
      "code": "type",
      "states": [ "spelt", "rice", "flax", "rye", "amaranth", "sunflower" ]
    }
  ],
  "creativeinventory": {
    "general": [ "" ],
    "decorative": [ "" ]
  },
  "behaviors": [
    { "name": "UnstableFalling" }
  ],
  "attributes": {
    "addItemLabel": "Add Grain",
    "removeItemLabel": "Remove Grain",
    "allowUnstablePlacement": true
  },
  "blockmaterial": "Soil",
  "lightAbsorption": 0,
  "sidesolid": { "all": false },
  "sideopaque": { "all": false },
  "textures": {
    "all": { "base": "game:block/food/grain/{type}" }
  },
  "replaceable": 100,
  "resistance": 2,
  "collisionbox": {
    "x1": 0,
    "y1": 0,
    "x2": 1,
    "y2": 0,
    "z2": 1
  },
  "selectionbox": {
    "x1": 0,
    "y1": 0,
    "x2": 1,
    "y2": 0,
    "z2": 1
  },
  "drops": [],
  "materialDensity": 600
}
```



If you wish to support me do so at:
Ko-fi
Patreon

Project description from Vintage Story Mod DB.

Pick your setup

Piles! releases for each Vintage Story version.

Choose the version and loader you play, then open the matching release.

4 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Piles! versions and loaders

3 of 3 releases match

Looking for an older file? The official Vintage Story Mod DB project page is in Resources.