Game Stages

Game Stages

 

This mod provides the foundation for created stage based progression systems. Stages are a very basic concept. Players can unlock stages, and depending on which stages are unlocked, different content is made available to that player. This mod has a very flexible API, and many mods have already started to add support, and allow pack creators to configure things with stages. 

 

The way a pack organizes their stages is up to them. Stages are non-linear, and players can gain/lose stages at any time. The system is extremely flexible and can work in many situations. Here are just a few suggestions for how this mod could be used. Keep in mind that these are nowhere near all the use cases. This system can be used for virtually any system you can think of. 

  • Linear quest based progression
  • Branching quests, with many stages, and sub stages
  • RPG class progression
  • Minigame with a job/role/hero/champion stage that resets every round.
  • Hardcore/Expert/Easy pack modes.

This mod adds a stage API. The stage API allows for players to unlock stages, and for other mods to hook in to these stages. This mod also handles the player save data required for stages, and all the packets required. The main way for players and modpack authors to interact with this mod is through the commands that are added.

 


This project is sponsored by Nodecraft. Use code Darkhax for 30% off your first month of service!

Supported Mods

Dimension Stages - Allows access to dimensions to be stage based.

Item Stages - Allows access and visibility of items to be stage based.

Mob Stages - Allows mob spawning to be organized into stages. 

Tinkers Stages - Allows Tinkers Construct materials and modifiers to be stage based.

Waila Stages - Allows Waila, and which information is displayed to be stage based.

JourneyMapStages - Allows JourneyMap to be stages.

Ore Stages - Allows ores and other blocks to be stages.

 

See all addons here!

 

Getting Started (For Players and Packers)

The following commands can be used to interact with the mod! You can use @p in place of the player.

  • /gamestage add player stage - Unlocks a stage for the player.
  • /gamestage remove player stage - Removes an unlocked stage stage from the player.
  • /gamestage clear player - Removes all unlocked stages from the player.
  • /gamestage check player stage - Checks if a player has a stage or not. 
  • /gamestage info - Shows all stages you have unlocked. 

A note about stage names! 

This mod expects that stage names are all lower case, and no spaces. You can use underscores, numbers and special characters. Exotic special characters, like emoji are discouraged. Also, if you try to assign a stage that does not exist, it will be created. This is the intended way to add stages. 

 

Getting Started (For Modders)

To get started, you need to add this mod to your build.gradle file dependencies. After this is done, re-run the gradlew setupDecompWorkspace command.

repositories {

    maven { url 'https://maven.mcmoddev.com/' }
}

dependencies {

    compile "net.darkhax.gamestages:GameStages-MC_VERSION_HERE:PUT_VERSION_HERE"
}

 

Working With Stages

All the main hooks and methods are handled in the IStageData class. Each player has one of these attatched to them. You can get the stage data for a player by calling PlayerDataHandler.getStageData(EntityPlayer player). Once you have the IStageData you can do things like unlockStage(String stage) and lockStage(String stage) and hasUnlockedStage(String stage).

Additional Hooks!

This mod also provides a few hooks which you can use to trigger certain things. This is done by making a class that implements IAdditionalStageData, and then calling PlayerDataHandler.registerDataHandler(String id, IAdditionalStageData handler). You can use PlayerDataHandler.getDataHandler(String id) to get your object at any time. The IAdditionalStageData interface provides three methods, one for when the data is saved, one for when the player data is read, and another for when the data is sent from the server to the client.


Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes

About This Project

Categories

Members