GroovyStages

⭐ — (0 endorsements) 📥 11 downloads 📌 v1.0.0-cleanroom 📅 8/21/2026
🟡 Updated this year

By _eerie2 · forge

⬇ Download Mod Source: Modrinth ↗ 📅 Updated: 8/1/2026 📅 Created: 8/21/2026
⚠️ Install Order · 4 steps
1🛠️ Forge — Minecraft Forge (mod loader) Download ↗
2🛠️ Fabric — Fabric Loader Download ↗
3📦 groovyscript View →
4📦 game stages View →

Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.

🔍 Analysis

  • 🏆 #146 of 165 forge mods in this game by downloads

📋 About This Mod

<h1>GroovyStages</h1> <p>This is a mod provides <a title="GroovyScript" href="https://www.curseforge.com/minecraft/mc-mods/groovyscript" target="_blank" rel="noopener">GroovyScript</a> extenders for working with <a title="GameStages" href="https://www.curseforge.com/minecraft/mc-mods/game-stages" target="_blank" rel="noopener">GameStages</a>. It allows pack makers to add/remove/check stages on players more intuitively.</p> <h2>How to use</h2> <p>This mod adds game stage related methods to the EntityPlayer class, pack makers can simply call the methods as if they were a part of the class.</p> <p>The methods are as follows:</p> <table style="border-collapse: collapse; border-color: rgb(255, 255, 255); border-style: groove; width: 100%; height: 457px;" border="1"> <tbody> <tr style="height: 49px;"> <th style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 49px;">GroovyStages method</th> <th style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 49px;">GameStages method</th> <th style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 49px;">Functionality</th> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>hasStage(String)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><code>hasStage(EntityPlayer, String)</code></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Returns true or false, checks if the player has a game stage.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>hasAnyStage(String...)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><code>hasAnyOf(EntityPlayer, String...)</code></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Returns true or false, checks if the player has any of the game stages provided.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>hasAllStages(String...)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><code>hasAllOf(EntityPlayer, String...)</code></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Returns true or false, checks if the player has all game stage provided.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>addStage(String)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><code>addStage(EntityPlayer, String)</code></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Adds the provided game stage to the player.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>addAllStages(String...)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><hr></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Adds all the provided game stages to the player.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>removeStage(String)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><code>removeStage(EntityPlayer, String)</code></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Removes the provided game stage from the player.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>removeStage(String...)</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><hr></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Removes all the provided game stages from the player.</td> </tr> <tr style="height: 51px;"> <td style="border-color: rgb(255, 255, 255); width: 18.5142%; height: 51px;"><code>syncStages()</code></td> <td style="border-color: rgb(255, 255, 255); width: 26.2467%; height: 51px;"><code>syncPlayer(EntityPlayer)</code></td> <td style="border-color: rgb(255, 255, 255); width: 55.1079%; height: 51px;">Synchronizes game stages between client and server. Provided mostly as an emergency.</td> </tr> </tbody> </table> <p>&nbsp;</p> <h3>Example usage</h3> <pre class="language-java"><code>import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed event_manager.listen { BreakSpeed ev -&gt; if (ev.getEntityPlayer().hasStage("advancedMining")) ev.setNewSpeed(ev.getOriginalSpeed() + 1.5f) }</code></pre>~~~~

GroovyStages

This is a mod provides GroovyScript extenders for working with GameStages. It allows pack makers to add/remove/check stages on players more intuitively.

How to use

This mod adds game stage related methods to the EntityPlayer class, pack makers can simply call the methods as if they were a part of the class.

The methods are as follows:

GroovyStages method GameStages method Functionality
hasStage(String) hasStage(EntityPlayer, String) Returns true or false, checks if the player has a game stage.
hasAnyStage(String...) hasAnyOf(EntityPlayer, String...) Returns true or false, checks if the player has any of the game stages provided.
hasAllStages(String...) hasAllOf(EntityPlayer, String...) Returns true or false, checks if the player has all game stage provided.
addStage(String) addStage(EntityPlayer, String) Adds the provided game stage to the player.
addAllStages(String...)
Adds all the provided game stages to the player.
removeStage(String) removeStage(EntityPlayer, String) Removes the provided game stage from the player.
removeStage(String...)
Removes all the provided game stages from the player.
syncStages() syncPlayer(EntityPlayer) Synchronizes game stages between client and server. Provided mostly as an emergency.

 

Example usage

import net.minecraftforge.event.entity.player. PlayerEvent. BreakSpeed

event_manager.listen { BreakSpeed ev -> if (ev.getEntityPlayer().hasStage("advancedMining")) ev.setNewSpeed(ev.getOriginalSpeed() + 1. 5f) }

~~~~

🤖 AI-enhanced — based on mod data

📊 Mod Details

Game
Minecraft Mods
Author
_eerie2
Version
1.0.0-cleanroom
Downloads
11
Endorsements
0
Category
forge
Created
8/21/2026
Updated
8/1/2026
Game Versions
1.12.2
Tags
library

📦 Requires 2 Mods

This mod requires these to work — install them first.

🔧 How to Install Minecraft Mods Mods

Download from Modrinth. Use Prism Launcher or drop into your mods folder.

📖 Full step-by-step install guide for Minecraft Mods →

Visit the official mod page for specific installation instructions for this mod.

🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.

❓ Frequently Asked Questions

What do I need installed before GroovyStages?

It depends on 2 other mods: groovyscript, game stages. Install those first — the mod will not load without them.

Which Minecraft Mods versions does GroovyStages support?

The author lists 1.12.2. Other versions may work but are untested by the author.

What is the latest version of GroovyStages?

Version 1.0.0-cleanroom, published 2026-08-01 with 11 downloads recorded at the source.

Keep browsing — more Minecraft Mods mods await

📋 All Minecraft Mods Mods 🏆 Top 25 📂 More forge 👤 More by _eerie2 🔎 Similar Mods 🌐 Best forge (All Games) 🔀 Check Compatibility ⚖️ Compare Mods 🆕 New Mods