MMO Gathering | ⛏️ Custom Resources & Harvesting Mechanics ✨ [1.16-1.21] icon

MMO Gathering | ⛏️ Custom Resources & Harvesting Mechanics ✨ [1.16-1.21] -----

Custom Structures | Harvesting & Growth Stages | YAML Scripting System | Must-have For RPG Servers!




- Added 88 new default particles: dust_spores, dust_clouds, dust_rise, dust_fall. 22 Colors for each type.

- Added an option to adjust view timer (time before menu reopens when viewing particles, messages, etc..) in the main menu gui.

- You can now use ranges in all particles parameters such as: color.red, color.green, color.blue, size, amount, range.x, range.y, range.z

- Added 'uniform' boolean option to dust and spell particles. If true the ranges used in: color and size will apply to all particles. If false each particle will be different in size and color depending on the range.

- amount now works for all particle types even those who don't natively support it in spigot.

- Added a new command: /orestack particle show-me-group <group-name> <particle-name>. It makes it easier to find particles sorting by group otherwise it's the same as the show-me command

- Reworked Command parameters in command framework

- Fixed a mistake where premium versions would show false on bstats premium chart.

- Added documentation in particles/special.yml

- Fixed group names missing middle folders in id. Now particles/dust/clouds turns into dust_clouds as intended, although I'm still looking at better alternatives.
----------, Aug 19, 2025

- Added new particle types: basic, dust, directional, spell, note, material, dust_transition

You can define a particle with the "type" option. If not set, the basic type will be used so that old particles you made will not break when updating.
Code (Text):
particle:
  type: directional
  particle: flame
  speed: 0.1   # directional reserved option
  direction: { x: 0, y: 1, z: 0  }   # directional reserved option
 
- Added "particles/special.yml" which contains examples of all new particle types

- Fixed some particle related bugs caused by using certain particles: REDSTONE, MOB_SPELL, etc...
----------, Aug 18, 2025

- Invalid generators (missing world, overlapped, generator template missing/broken) are now saved to the database and wait to be restored if they ever become valid again.

Explanation of the behavior
If you:
- Modify a generator YAML file and make a mistake
- Reload the plugin to apply changes
- Then that generator template will not load, and all placed generators in your world will be deleted.

But in the new version:
- The deleted generators are saved to the database as invalid_resources
- Now you have a chance to fix your mistake
- So when you reload the plugin all previously missing generators will be restored

- Refactoring and improvements to error/warning messages
----------, Aug 16, 2025

- Refactoring

- Fixed a bug which would increment generator item when placing it in creative

- Now if you place a generator that no longer exists or is invalid you will get an error message

- Added generator-not-exists error message in en.yml
----------, Aug 14, 2025

If you are updating from 3.29.0 read the last update

- Updated hologram message editor
- Added Item Hologram Editor
- Added Block Hologram Editor
- Various small fixes/improvements to guis
----------, Aug 13, 2025

This update breaks all old holograms:
Code (Text):
# Old
hologram:
  text: This is a hologram

# New
hologram:
  type: static
  text: This is a hologram

# Old
hologram:
  frames:
    - This is a hologram
    - This is not a hologram

# New
hologram:
  type: animated
  frames:
    - This is a hologram
    - This is not a hologram
- Hologram system now supports 4 types: static, animated, item_display, block_display

- Added DecentHolograms soft dependency

- Fixed bug in which removed generators would reappear when reloading plugin or restarting server
----------, Aug 10, 2025

This update breaks all old holograms:
Code (Text):
# Old
hologram:
  text: This is a hologram

# New
hologram:
  type: static
  text: This is a hologram

# Old
hologram:
  frames:
    - This is a hologram
    - This is not a hologram

# New
hologram:
  type: animated
  frames:
    - This is a hologram
    - This is not a hologram
- Hologram system now supports 4 types: static, animated, item_display, block_display

- Added DecentHolograms soft dependency

- Fixed bug in which removed generators would reappear when reloading plugin or restarting server
----------, Aug 10, 2025


- You will now get an error if an item/message/function/generator/particle/sound with duplicate name exists. Only the first will work.

- Fixed a bug in the multi-message editor which would break if you exited from the message creation

- Improved the multi-message editor buttons, it now uses as title the message/title/text from the underlying message.

- Changed position/design of some buttons

- The title in the bossbar editor if not set will now show 'none' like other message editors

- Removed main_menu buttons from editors and first level menus, to avoid confusion there will only be the 'back & save' button. Also pressing 'esc' will have the same behavior.
----------, Aug 3, 2025

- Fixed ClassCastException when saving head via command

- '/orestack item add' changed to '/orestack item save'

- When saving an item to config via command an empty 'enchants' section is no longer created if the item has no enchants
----------, Aug 1, 2025

- Added support for 1.21.6-1.21.8

- Fixed compatibility issues with new paper library loader system. For now some dependencies are included with the plugin, this will result in a slighter bigger jar size, this will not affect performance whatsoever.
----------, Jul 29, 2025

- Added HologramMessageEditor

- Added HologramEditor

- Reworked guis looks, functionality

- Editors no longer close by pressing esc

- If you press esc while in a creation GUI you will be sent back to the previous menu

- Fixed player head texture for items, it now works across all versions
----------, Jun 11, 2025

- Removed save and load buttons from all message editors

- Now when you exit an editor all changes are saved automatically

- Added load button in message groups menu

- You can now edit existing message with right-click

- Clicking the reload button now reopens the menu once completed

- Reloading the plugin no longer resets the player state

- Fixed various bugs/mistakes

- Improved debug mode, when a player reloads the plugin if debug is enabled in config.yml all errors are logged to the chat of the player who reloaded the plugin
----------, Jun 4, 2025

- Added BossbarEditor

- Fixed a critical YamlConfig bug where existing sections/list would not be reused when calling ConfigSection#getSectionOrCreate or ConfigSection#getSequenceOrCreate, which would lead to loss of data.

- Changed colors and formatting in all menus
----------, Jun 4, 2025

- refactoring

- Improved GUI messages and fixed some mistakes

- Reworked input system to support different input types: Chat, Gui
----------, Jun 3, 2025

- Added message creation gui
- Added chat, actionbar and title editor guis
- Added "/orestack menu" command
- Added save and load config buttons

- You can now use the "back" button to go back to the main menu with shift + left click

- A lot of setup for in-game YAML editors
----------, May 30, 2025

- You can now use /orestack to open the orestack gui

- Added guis for: generators, items, structures, functions, messages, particles, and sounds. Very basic functionality for now.

- Added reload, wand, close, back buttons

- File names are now also used as groups. i.e. The group for "/items/misc.yml" is no longer "default" but "misc". (Generators, and structures are excluded from this)
----------, May 29, 2025

- Reworked how the database works

- Fixed /reload and /orestack reload integration with database
----------, May 28, 2025

New error system
Code (Text):
[14:11:59 INFO]: [Orestack] Loading configuration and data...
[14:11:59 ERROR]: [Orestack] Generator Configuration -> invalid sound effect
File: generators\example.yml
Path: [2].on-break[1].do[1]
Details: Could not find sound effect with name: 'tin'
---------------------------------------------
[14:11:59 ERROR]: [Orestack] Generator Configuration -> invalid particle effect
File: generators\examples\magic_wheat.yml
Path: [7].on-break[0].do[1]
Details: Could not find any particle effect with name: 'rain_cloud'
---------------------------------------------
[14:11:59 ERROR]: [Orestack] Generator Configuration -> invalid item
File: generators\tutorials\tools_tutorial.yml
Path: [4].on-click.do[1]
Details: Could not find any item called: 'legendary_axe'
---------------------------------------------
Added toolNameEquals, toolLoreEquals, and toolLoreLineEquals conditions
----------, May 28, 2025

- Hopefully fixed a bug where generators would disappear randomly

- Fixed a bug where players without command permission could still see command suggestions

- Fixed command usage message
----------, May 22, 2025

- Added dropExp, dropExpAtPlayer and dropExpAtBlock actions

- Added exp_tutorial.yml
- Added experience_ore.yml

- Added support for coral blocks to be used as generators
----------, May 20, 2025

This update breaks a lot of stuff, config.yml, language files, and internal placeholders (Format changed from %id% to {id}).

- Major changes to internal code
- Reworked language file
- Removed fr.yml and zh.yml for now
- Changed placeholder format from %id% to {id} for all internal placeholders
- Fixed 1.21.5 compatibility issues
- Updated NBTAPI and xSeries to the latest versions
- Updated bamboo.yml with latest scripting features
- More preparation for guis
----------, May 17, 2025

- Fixed a Leaf compatibility issue

- Fixed a bug where players without permission would still be able to place blocks when trying to place a generator

- Internal code refactoring in preparation for the upcoming GUI system
----------, May 15, 2025

- Fixed WorldGuard support, generator blocks can be broken inside protected regions. They will be broken normally like normal blocks increasing compatibility with other plugins that rely on breaking blocks such as: MMO Core and Aura Skills for skills exp.

- Added /orestack generator get-group <generator-group> command, the generator group is based on the folders in which the generator is located:
Code (Text):
/generators/crops -> crops
/generators/trees/vanilla -> trees_vanilla
With increasing number of generators this should make it easier to stay organized.
I also started developing a basic gui system to make the plugin easier to use.
----------, May 6, 2025

- Added 7 rock pile generators and 70 structures

[​IMG]

- Fixed dropItemsAtBlock spawning items inside the block

- Improved logic in magic_wheat.yml

- Improved backwards compability, copper.yml and copper_pile.yml examples only generate on 1.17+
----------, May 4, 2025

- Added 'goto' action
Code (YAML):
testGotoLine:
  - do
: goto 2

  - do
: chatMessage <This function will be skipped! >

  - do
: chatMessage <You skipped function 1 and are now on function 2>
- Reworked return and stop actions, stop ends all execution everywhere, return if used inside a function it will only end execution in the current function
Code (YAML):
on-break :
  - giveIronIfPerm
  - giveGoldIfPerm
  - chatMessage <This will not be sent because stop was used >

giveIronIfPerm
:
  - if-not
: hasPermission orestack.iron
    do
: return
  - do
: giveItemToPlayer IRON_INGOT

giveGoldIfPerm
:
  - if-not
: hasPermission orestack.gold
    do
: stop
  - do
: giveItemToPlayer GOLD_INGOT
 
- Yaml library now uses case sensitive keys

- functions.yml was removed and replaced with a folder

- Added misc.yml, tools.yml and trees.yml inside /functions/ folder

- Modified trees/vanilla/ generators, now if leaves are broken the generator remains unaltered

- Added resetGenerator action, it can be used in on-break

- Fixed 3 compability issues with 1.16.5
----------, Apr 30, 2025

- Fixed a bug where breaking blocks very fast would cause the generator to break

- Added 6 vanilla trees with over 50 new structures
----------, Apr 29, 2025

Dropped ItemsAdder/Nexo/Oraxen/etc.. support, I will not support any custom blocks plugins. I'll only add support for custom blocks if Mojang ever decides to get onto it.

- renamed items/items.yml to items/misc.yml
- renamed sounds/sounds.yml to sounds/misc.yml
- renamed messages/messages.yml to messages/misc.yml
- refactoring and code cleanup
----------, Apr 28, 2025

Warning: This release is unsuitable for servers in production, it should only be used for testing purposes

I do not own ItemsAdder so I cannot test the plugins together at the moment.

When Orestack is enabled you should see this message if ItemsAdder was found:
Code (Text):
[Orestack] ItemsAdder Hook: created successfully
To use a block from items adder in a generator or structure use:
Code (YAML):
items-adder-block : block_id
Or select a region and use the /orestack structure save <file-name> <structure-name> command

If you find any problems please report them in my discord.
----------, Apr 27, 2025

Warning: This release is unsuitable for servers in production, it should only be used for testing purposes

I do not own ItemsAdder so I cannot test the plugins together at the moment.

When Orestack is enabled you should see this message if ItemsAdder was found:
Code (Text):
[Orestack] ItemsAdder Hook: created successfully
To use a block from items adder in a generator or structure use:
Code (YAML):
items-adder-block : block_id
Or select a region and use the /orestack structure save <file-name> <structure-name> command

If you find any problems please report them in my discord.
----------, Apr 27, 2025

How to update

1. Update YAML configuration files

- Shut down the server

- Make a copy of the plugin folder

- Delete the plugin folder

- Start up the server; the plugin will generate new files

- Add the YAML files you want from the backup (generators, items, particles, sounds, and functions)

- Use the /orestack reload command and fix any issues with your configurations

2. Update the database (generators placed in your world)

- Delete the database file (data.mv.db)

- Place the old database back into the plugin folder


- Start the server and check the console for warnings to make sure no generators have been removed due to a mistake


- Added magic_wheat.yml

[​IMG]

- Added 'interval' option for functions and particles:
Code (YAML):
rain_cloud:
  - { particle
: cloud, count : 15, offset.y : 1.5, range : { x : 0.3, z : 0.3 }, repetitions : 8, interval : 2 }
  - { particle
: falling_water, count : 15, offset.y : 1.5, range : { x : 0.2, z : 0.2 }, repetitions : 12, interval : 2 }
- Added new particles in files misc.yml and flame.yml
----------, Apr 22, 2025

if you're interested in examples regenerate the following files: functions.yml, great_oak_tree.yml, and function_tutorial.yml

- Added 'if-any' function

- Added blockTypeEquals condition

- Added toolHasCustomModel condition

- renaming of conditions/actions

- refactoring and bug fixes
----------, Apr 8, 2025

- Added global functions that can be reused across all generators

- Added functions.yml

- Updated function_tutorial.yml

- Balanced ore generators growth timers

- Added generators/ores/emerald.yml

- Added generators/tutorials/drops_tutorial.yml
----------, Apr 6, 2025

- Added "generators/tutorials/flag_tutorial.yml"

- Renamed generators "examples" folder to "tutorials", remove the old folder to avoid duplicates
----------, Apr 5, 2025

- Added generators/examples/function_tutorial.yml
- Added spigot persistent data support for items.

Supported Datatypes: byte, short, string, integer, long, float, double, byte_array, integer_array, (untested) tag_container_array, (untested) tag_container.

It can be added with '/orestack item add <file> <item>' command or manually:
Code (YAML):
diamond:
  type
: DIAMOND
  persistent-data
:
    - key
: orestack:name
      type
: string
      value
: Hello monos!
    - key
: orestack:id
      type
: integer
      value
: 001
----------, Apr 3, 2025

- Added 1.21.5 support
- Added examples/hologram_tutorial.yml, an example generator used to learn how to use holograms.
----------, Apr 1, 2025

- added toolTypeIsEqual condition

- toolIsSimilar and toolTypeIsEqual now accept a list of valid materials/items

Code (Text):
on-break:
  - if-not:
      - toolTypeIsEqual <IRON_PICKAXE, GOLD_PICKAXE, DIAMOND_PICKAXE, NETHERITE_PICKAXE>
     #- toolIsSimilar <IRON_PICKAXE, GOLD_PICKAXE, DIAMOND_PICKAXE, NETHERITE_PICKAXE>
    do:
      - chatMessage <&4You need at least an iron pickaxe to mine this generator>
      - cancelEvent
      - stop

- Refactoring of example.yml and great_oak_tree.yml
----------, Mar 27, 2025

- added metrics option in config.yml to enable/disable bstats
Code (YAML):
metrics : true or false
- added hologram message, a hologram that spawns and despawns after a set duration.
Code (YAML):
hologram-message:
  type
: hologram
  hologram
:
    text
: '&a&l+1 Emerald'
    offset
: { y : 0.5 }
  duration
: 30
  radius
: { x : 1, y : 1, z : 1 }
----------, Mar 4, 2025

- fixed bug where attached blocks would drop items sometimes (like buttons)

- Added 'directions' option for blocks like fences which can face multiple directions

- Removed flags.yml
----------, Feb 25, 2025

This update breaks some things:
- Stage is now saved to the database so that it sticks across server restarts ( WARNING: You will need to delete data.mv.db, doing so will delete all placed generators in your world)

- Sugar canes can now only be placed near water (Like in vanilla)

- Cactus can only be placed on sand (Like in vanilla)

- Sugar cane and cactus are now subject to physics.

- Crops can only be placed on tilted soil. (Like in vanilla)

- Cocoa can only be placed on jungle wood/logs (Like in vanilla)

- Generators are now removed if broken by water/lava, before fluid flow was interrupted.

Fixed bamboo not behaving properly

Fixed 'idle' option and renamed it to 'regrow' (if regrow is false when mined the block will not regenerate and you will have to do so manually using setStage, nextStage or previousStage in on-break trigger)

This update might seem like a downgrade but it is necessary to make a more solid and less buggy system. I hope to compensate with more interesting features in the future.
----------, Feb 23, 2025

- Added "languages/zh.yml"
- Added "languages/fr.yml"
----------, Feb 21, 2025

- Added leaves option for bamboo:
Code (YAML):
bamboo-leaves : small, large, none
- Added idle option for generator stages:
Code (YAML):
idle : true or false
WARNING when an idle generator is mined you must set a new stage manually with setStage, nextStage or previousStage

- Fixed generator stage chance logic

- You can now set the chance on the last stage

- Fixed setStage, nextStage, and previousStage actions not being registered

- Added "generators/crops/bamboo.yml" example
----------, Feb 18, 2025

Slabs are now supported with parameter:
Code (Text):
slab-type: bottom, double or top
or with command /orestack structure save name.yml

Reduced jar size by around 1.3mb
----------, Feb 8, 2025

New block options:
Code (YAML):
open : true or false   # for doors, trapdoors etc...
half
: top or bottom   # for blocks that are 2 blocks tall and stairs facing up/down
stair-shape
: straight, inner left, inner right, outer left or outer right
door-hinge
: left or right
bed-part
: head or foot
All of these can be added manually or with the command /orestack structure save name.yml after having selected the area.
----------, Feb 7, 2025

- Fixed a small bug where it would say world not found with name: 'world' which would crash the plugin
- If you're updating from <3.20 read the last changelog
----------, Feb 7, 2025

This update completely changes how you write functions and actions, it also adds some new actions like: 'return|stop' and 'cancel-event'.

How to update:
- Backup your generators and everything you want to save.
- Delete generators in folder and regenerate examples.
- Update your old generator functions to use the new system, and put them back in the folder.

I am sorry for the inconvenience, this should be the last time when an update breaks older versions so severely.

I will update the wiki completely later today, in the meantime here is an example of the changes:
Code (YAML):
# BEFORE
on-break
:
  - if
:
     - [ has permission, orestack.generator.harvest ]
    do
:
     - [ give item, emerald ]
      - [ spawn particle at block, fire_ring ]
      - [ chat message, "You mined emerald!" ]
    or
:
     - [ cancel-event ]   # This action was only added in 3.21.0
      - [ chat message, "&4You don't have permission to mine this block!" ]
     
# AFTER
on-break
:
  - if
: hasPermission orestack.generator.harvest
    do
:
     - giveItem emerald
      - spawnParticleAtBlock fire_ring
      - chatMessage <You mined emerald!>
    or
:
     - cancelEvent
      - chatMessage <&4You don't have permission to mine this block! >

# AFTER, Another Example
on-break
:
  do
:   # These examples are for actions, but it is exactly the same with conditions
    - <chat message> <&aHere have an emerald!>   # if there is spaces you need to enclose it in <> brackets
    - chat_message NO!   # No spaces in the message so no need for brackets
    - chatMessage <Hello Everyone!>   # This is the preferred format but others are also viable
----------, Feb 5, 2025

- added support for sugar cane & cactus crops with examples (experimental but should work fine)
- fixed item enchantments not working in 1.21
- changed to an update checker compatible versioning
- fixed a visual glitch in structures (blocks are only updated if they change from one stage to the other, this reduces blocks changed as well)
- when you place a generator, if the first stage is just air/empty it will still spawn on the last stage not on the first.
- moved /orestack generator wand to /orestack wand since the wand is also used in /orestack structure
- wand now has two actions instead of one: left-click for first position and right-click for second position, this should make it faster to use
- added options in config.yml for generator-tool and wand-tool
- removed old options in en.yml for generator item and generator wand
----------, Feb 3, 2025

- added structure rotation, you can now rotate structure with item before placement
- structure rotation was added to the database, if you get any errors you might need to delete the data.mv.dk file (this will delete all placed generators in your world)
- fixed 'drop-items' which wouldn't work and added an alias: 'drop-item'
----------, Jan 31, 2025

- Fixed compability with 1.21
- Reduced jar size by almost 2mb
----------, Jan 30, 2025

Removed 'op command' action because it poses a security risk, you can find other plugins that allow you to make players execute commands as op safely.
----------, Jan 29, 2025

- added 2 commands:
/orestack structure save <file-path>
/orestack structure place
- bug fixes and other improvements
- added great_oak_tree.yml example
- you can now set the orientation of the block with 'orientation' parameter which can be set to: x, y or z.
- Since some blocks don't use direction but orientation. (like oak log)
----------, Jan 29, 2025

- For some reason config.yml wouldn't load correctly while enabling if the directories and files where absent. An exception would be thrown saying the language field was not set. (In reality the field was set but not loaded in memory) This would disable the plugin.
- Temporarly fixed with redundancy now calling OrestackPlugin#getConfiguration will load the data before returning. This is a temporary fix, I will look into the issue.
----------, Jan 28, 2025

- improved error messages
- improved logging in console
- added debug option in config.yml
- fixed language option in config.yml not working
- reworked how language system works internally
- InvalidConfigurationExceptions now look cleaner and are easier to read
- you will no longer get LangNotFoundExceptions, instead a warning will be sent in console and the default value will be used. The exception will only be thrown if a default value does not exist for that language tag. i.e. 'en'
----------, Jan 28, 2025

- added a structure system, now each stage may have a structure or a single block
- added placeholder support to: command, op_command, and console_command
- fixed a bug where reloading wouldn't regenerate missing folders, and files
- added 'generator-overlap' to language file (error message sent when two generators overlap since now you can have multi block generators)
- refactoring
----------, Jan 27, 2025

- Improved Database Performance:
- Switched to H2Database for better performance.
- Please note: generator data will be lost when updating to this version. This means any generators you had placed before will stop working. Sorry.
- You can safely delete the old `data.db` file and keep the `data.mv.db` file.
- Language File: - Added new language messages. Please regenerate your language file
- New Commands:
- `/orestack message send`
- `/orestack message broadcast`
- `/orestack sound play`
- `/orestack sound play-to`
- Other Improvements:
- Various fixes and improvements to the plugin.
- Fixed titles: the subtitle would be equal to the title and colors would not work
- added 'is_placeholder' condition
----------, Jan 26, 2025

- changes to certain condition/action names for better readability
- added the following conditions: has_exp, has_exp_level, has_item, has_played_before, is_flying, is_sneaking, tool_is_similar
- added action: take_item
- added fire_ring and fire_spiral in particles.yml
- You can now use range in certain conditions/actions i.e 'amount: 1-10'
----------, Jan 26, 2025

- for older versions check free resource page
- Compiled in java 16 and added support for 1.16.5
- No error message when mining generator in world guard region
- auto-save option added to config.yml
- added exp-to-drop option in generator stage configuration
- holograms don't spawn if chunk is not loaded
----------, Jan 25, 2025

Resource Information
Author:
----------
Total Downloads: 44
First Release: Jan 25, 2025
Last Update: Aug 19, 2025
Category: ---------------
All-Time Rating:
6 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings