You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.2 KiB
Markdown
144 lines
4.2 KiB
Markdown
# Decocraft Pack Template
|
|
|
|
Universal addon pack for Decocraft. No Java code needed.
|
|
Single jar works on both NeoForge and Fabric.
|
|
|
|
## Quick Start
|
|
|
|
1. Clone this repo
|
|
2. Edit `gradle.properties` - change `mod_id`, `mod_name`, `mod_description`, `mod_authors`
|
|
3. Edit `settings.gradle` - change `rootProject.name`
|
|
4. Rename `src/main/resources/assets/decocraft/mypack.json` to your pack name
|
|
5. Update `decocraft.json` to point to your renamed file and `groups.json`
|
|
6. Edit `groups.json` to define your creative tabs
|
|
7. Add your content (see below)
|
|
8. `./gradlew build` - jar goes to `build/libs/`
|
|
|
|
The output jar contains both `fabric.mod.json` and `META-INF/neoforge.mods.toml`,
|
|
so it loads on either mod loader without separate builds.
|
|
|
|
## File Structure
|
|
|
|
```
|
|
assets/decocraft/
|
|
decocraft.json - manifest: lists groups.json + your content files
|
|
groups.json - creative tab definitions
|
|
mypack.json - block/item definitions
|
|
models/bbmodel/{model}.bbmodel - BlockBench 3D models
|
|
textures/block/{material}.png - block textures
|
|
textures/item/{material}.png - item/inventory textures
|
|
lang/en_us.json - display names + tab labels
|
|
```
|
|
|
|
All assets go under the `decocraft` namespace.
|
|
|
|
Blockstates, block models, item models, item definitions, and loot tables
|
|
are all generated dynamically at runtime by the main Decocraft mod.
|
|
You do NOT need to create these files.
|
|
|
|
## Per Block Checklist
|
|
|
|
For each block you add, you need:
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `mypack.json` | Entry in the `models` array |
|
|
| `models/bbmodel/{model}.bbmodel` | BlockBench 3D model |
|
|
| `textures/block/{material}.png` | Block texture |
|
|
| `textures/item/{material}.png` | Item texture |
|
|
| `lang/en_us.json` | `"block.decocraft.{decoref}": "Display Name"` |
|
|
|
|
That is it. Everything else is handled automatically.
|
|
|
|
## Manifest (decocraft.json)
|
|
|
|
Simple array listing files to load. Include `groups.json` first:
|
|
|
|
```json
|
|
[
|
|
"groups.json",
|
|
"mypack.json"
|
|
]
|
|
```
|
|
|
|
Decocraft merges manifests from all jars, so your pack's files are loaded
|
|
alongside the base decocraft files.
|
|
|
|
## Creative Tabs (groups.json)
|
|
|
|
Declare tabs with a translation key and icon block:
|
|
|
|
```json
|
|
{
|
|
"my_tab": { "label": "itemGroup.decocraft.my_tab", "icon": "some_block_id" }
|
|
}
|
|
```
|
|
|
|
Then add the display name in `lang/en_us.json`:
|
|
|
|
```json
|
|
"itemGroup.decocraft.my_tab": "Decocraft - My Tab"
|
|
```
|
|
|
|
The `icon` must match a block's `decoref` from your content JSON. Tabs from
|
|
all packs are merged. If the base decocraft already defines a tab key, your
|
|
blocks will appear in that existing tab.
|
|
|
|
## Content JSON Entry
|
|
|
|
```json
|
|
{
|
|
"name": "Display Name",
|
|
"model": "bbmodel_filename_without_extension",
|
|
"material": "texture_name",
|
|
"scale": 1.0,
|
|
"tabs": "your_tab_name",
|
|
"crafting_color": [50.0, 50.0, 50.0],
|
|
"decoref": "unique_block_id"
|
|
}
|
|
```
|
|
|
|
### Common Types
|
|
|
|
| type | behavior |
|
|
|------|----------|
|
|
| (empty/omitted) | Basic decoration block (default) |
|
|
| `"underlayer"` | Wall/floor mounted virtual overlay (paintings, carpets) |
|
|
| `"animated"` | Block with keyframe animations |
|
|
| `"rotatable"` | Block that places at 45 degree increments |
|
|
| `"bed"` | Sleepable bed |
|
|
| `"seat"` | Sittable block |
|
|
| `"chain"` | Chain/rope connector |
|
|
|
|
### Optional Fields
|
|
|
|
- `"hidden": true` - registered but not in creative tabs
|
|
- `"transparency": true` - translucent rendering
|
|
- `"passable": true` - no collision
|
|
- `"loot": "other_decoref"` - override what drops when broken
|
|
- `"flipbook": {"frametime": 4, "images": 6}` - animated texture
|
|
- `"script"` - tool_modelswitch, on_use, sounds, particles, etc.
|
|
|
|
### Model Switching (cycle variants with decobrush)
|
|
|
|
```json
|
|
"script": {
|
|
"tool_modelswitch": {
|
|
"link": "next_variant_id"
|
|
}
|
|
}
|
|
```
|
|
|
|
Chain the last variant back to the first to create a cycle.
|
|
|
|
## Full Documentation
|
|
|
|
See `json_documentation.md` in the main Decocraft mod for the complete
|
|
field reference with examples of every block type.
|
|
|
|
## Version Compatibility
|
|
|
|
Version ranges are open ended, so the pack works with any Decocraft 4.0+
|
|
on Minecraft 26.1+. Bump `decocraft_version` in `gradle.properties` if you
|
|
use features from a newer decocraft release.
|