Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/btarg/origami

(WIP) A Minecraft Paper plugin that allows for adding new blocks and items in YAML, using resource packs
https://github.com/btarg/origami

custom-blocks custom-items minecraft paper paper-plugin papermc plugin resource-pack

Last synced: about 2 months ago
JSON representation

(WIP) A Minecraft Paper plugin that allows for adding new blocks and items in YAML, using resource packs

Awesome Lists containing this project

README

        


Origami
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.


Custom blocks and items for Paper


Origami is a Minecraft server plugin which allows a server admin to easily add configurable custom
blocks,
items and crafting recipes using YAML configuration files.

The plugin generates and hosts resource packs to allow **vanilla** clients to connect and play with your custom content.

[![Build status](https://github.com/btarg/Origami/actions/workflows/gradle.yml/badge.svg)](https://github.com/btarg/Origami/actions)

# What makes this different from other plugins

Origami is designed to be as simple as possible for a Minecraft server owner to create custom content quickly.
It is **NOT** an advanced custom block/item API for other developers to use, and it does not require any coding
knowledge to
use by design.
Other plugins tend to be more developer-focused rather than being as human-friendly as possible for the average user.

# Getting Started

> 📖 View the official docs on [GitBook](https://btarg.gitbook.io/origami-docs/) for information on how to use the
> plugin.

The docs are also open source at [btarg/origami-docs](https://github.com/btarg/origami-docs).

## Supported versions

This plugin will only ever support the latest version of Minecraft (Paper) at the time of its release.

## Reporting issues

You can report issues with the plugin or the docs on this GitHub repository's issues page.
When reporting a bug, send a full log file and walk
through the steps needed to replicate the bug.

# Current progress

> This is not a comprehensive list of features, but serves instead as a developer to-do list.

- [x] Reload commands for all content
- [x] "Content Packs": content can be organised into folders under the `custom` folder
- [x] Example content generation for first-time users
- [x] Example crafting recipe
- [x] Example block
- [ ] Example item
- [ ] Example models
- [x] Custom blocks via YAML
- [x] Custom models via Minecraft JSON model format
- [x] Custom block break speed (needs more work)
- [x] Loot tables
- [x] Sounds for breaking and placing blocks
- [x] Blocks can be pushable
- [ ] Custom stairs and slabs
- [ ] Custom breaking particles
- [ ] World awareness (e.g. detecting when another block is near it, when a player steps on it)
- [ ] Custom containers
- [x] Custom items via YAML
- [x] Custom models via Minecraft JSON model format
- [x] Custom name, lore and flags
- [x] Translated strings support
- [x] Legacy formatting *and* [MiniMessage](https://docs.advntr.dev/minimessage/index.html) support
- [ ] [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) support
- [x] Custom durability (tools, armour etc.)
- [x] Editable enchantments
- [ ] Configurable allowed enchantments
- [ ] Editable attributes (e.g. attack power, armour defense stat)
- [ ] NBT override via NBT string
- [ ] Custom food items (function on consume)
- [ ] Custom tool levels and blocks that can only be broken with custom tools
- [ ] Custom sounds for breaking
- [x] Custom crafting recipes via YAML
- [x] Cooking recipes (Furnaces, Campfires etc.)
- [x] Smithing recipes (still very janky)
- [ ] Potion recipes
- [ ] Villager trades
- [ ] Custom item repair recipes (defined in the item's YAML rather than as a separate "recipe")
- [ ] Custom enchantments
- [x] YAML event system: events can be subscribed to such as when a block is broken, when an item is used or consumed
etc. via a string in a YAML file
- [ ] TODO: add more events
- [x] Resource pack generation
- [x] Resource pack hosting
- [ ] Resource pack merging / multiple pack support
- [X] In-game UI for obtaining items (AKA "creative mode")
- [ ] Web UI for visual editing *(see preliminary work [here](https://github.com/btarg/vuejava))*
- [ ] Backend API with Javalin
- [ ] Vue.js frontend

# Credits and special thanks

- The [PaperMC Discord](https://discord.gg/papermc) for being incredibly helpful and quick to respond to any questions
- [Unnamed Team](https://unnamed.team) for creating
the [Creative](https://unnamed.team/docs/creative/latest/getting-started) API and [yusshu](https://github.com/yusshu)
for helping me with implementing it
- [Dannegm on GitHub](https://github.com/dannegm/BlockEntities) for providing an initial implementation of custom blocks
using Item Display entities