SkiesGUIs
A Fabric server-sided GUI creation mod aimed to make creating basic GUIs easier! Creating a new GUI is as easy as creating a new file in the guis folder and following the basic formatting found on the Wiki!
More information on configuration can be found on the Wiki!
Features
- Create practically infinite GUIs (idk, haven't tested that)
- Customize everything about items in the inventory
- Multi slot definitions (one item definition, multiple slots)
- Name/Lore customization with MiniMessage formatting
- Full access to NBT (custom model data, Pokemon, etc.)
- Item view requirements/conditionals (with success/deny actions)
- Item click actions
- Item click requirements/conditionals (with success/deny actions)
- GUI open and close actions
- GUI open requirements/conditionals (with success/deny actions)
- 13 action types (for now)
- 6 requirement types (for now)
- Create alias commands to access GUIs
- Economy Integrations (Impactor, Pebbles Economy)
- Placeholder Integrations (Impactor, PlaceholderAPI)
Installation
- Download the latest version of the mod from the Releases tab.
- Download all required dependencies:
- Download any optional dependencies:
- Impactor (Economy, Placeholders)
- Pebbles Economy (Economy)
- MiniPlaceholders (Placeholders)
- PlaceholderAPI (Placeholders)
- Plan (Additional Requirements)
- Install the mod and dependencies into your server's
modsfolder. - Configure your GUIs in the
./config/skiesguis/guis/folder.
Commands/Permissions
| Command | Description | Permission |
|---|---|---|
| /gui reload | Reload the Mod | skiesguis.command.reload |
| /gui open |
Open a GUI specified by its ID, optionally for another player | skiesguis.command.open |
| /gui printnbt | Print the NBT data of the item in your hand, if present | skiesguis.command.printnbt |
| /gui debug | Toggle the debug mode for more insight into errors | skiesguis.command.deug |
| Permission | Description |
|---|---|
| skiesguis.open. |
Permission to open a GUI when using an Alias Command |
Planned Features
- Better/more debugging and error handling
- More Action Types
- Mod Integrations (Cobblemon, etc.)
- Please submit suggestions!
- More Requirement Types
- Mod Integrations (Cobblemon, etc.)
- Regex?
- Location?
- Please submit suggestions!
- More Inventory Types (coming in 2.x.x)
- Inventory Update Ticking (optionally update GUI at an interval)
- Animations??
Donations
Support
A community support Discord has been opened up for all Skies Development related projects! Feel free to join and ask questions or leave suggestions :)
How to Install SkiesGUIs (Mod)
SkiesGUIs by Stampede is verified for Fabric across Minecraft versions 1.20.1, 1.21.1 (latest release: 1.8.1, file size: 10.6 MB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.20.1, 1.21.1) and platform (Fabric).
- Make sure you have the compatible loader or environment installed for Fabric.
- Move the downloaded SkiesGUIs file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- Updated the BEconomy integration to support version 1.5.4
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Overhauled the economy management to allow for registering a economy service from another mod
- Changed the
CURRENCYrequirement to use the comparison>=by default, instead of== - Added support for using the Texture ID for playerheads in the format
"item": "playerhead-[TEXTURE_ID]" - Added support for defining the alias command permission for a GUI menu using
"alias_permission": "skiesguis.gui.example". Not defining it will default toskiesguis.gui.[GUI_ID], just as before. - Added a new NBT deserialization that implements support for defining the tag type of a given tag. For example, this allows you to define a byte tag instead of it defaulting to an integer:
"nbt": {
"minecraft:custom_data": {
"example_tag": {
"type": "byte",
"value": 1
}
}
}
`
- Added Advancement requirement type
`
"advancement": {
"type": "ADVANCEMENT",
"advancement": "minecraft:husbandry/bred_all_animals",
"progress": 1.0
}
`
- Added XP requirement type
`
"xp": {
"type": "XP",
"level": false,
"amount": 100
}
`
- Added new
MOLANG requirement type, which allows the result of a molang expression to be compared against a output option. example:`
"cobblemon": {
"type": "MOLANG",
"script": "t.party = q.gui.player.party; t.pokemon = t.party.get_pokemon(2); t.pokemon.is_shiny;",
"output": "1"
}
`
- Added alias
"slots" for the setting "slot"Updated the default example_molang.json file to include MOLANG` requirement type examplesNeed help? Join the Discord: https://discord.gg/cgBww275Fg
- Fixed placeholders not parsing properly in some cases
- Changed the
PERMISSIONrequirement type to allow for a list of permissions to be provided ("permission": []) - Added new
modesetting toPERMISSIONrequirements. Changes the way the list of permissions will be checked. "ALL"- All listed permissions must pass (Default)"ANY"- Only one of the listed permissions needs to pass- Added some alternative names to several settings
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Added support for building and applying "tooltips" from molang (by @amo in [#5](https://github.com/PokeSkies/SkiesGUIs/pull/5))
- Updated item lore to disable italics by default (doesn't prevent applying it)
- Updated CobbleDollars integration to v2.0.0+Beta-5.1
- Updated BlanketEconomy integration to BEconomy v1.5.2, use
"economy": "BECONOMY"now (by @simonmage in [#9](https://github.com/PokeSkies/SkiesGUIs/pull/9)) - Updated some of the sound action execution
- Delayed placeholder registration to server starting to fix some issues
- Misc fixes
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Added
minimum_requirementsandstop_at_successoptions for any requirements block. This will set a minimum number of requirements that must be met to pass and an option to stop searching once the minimum is met. - Added the Player to the context of the
MOLANGaction type - Fixed
JAVASCRIPTrequirement throwing a no JS scripts found error - Misc fixes and changes
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Fixed modded items not working for actions/requirements until reloaded
- Fabric Permissions API is now included within the jar and is not required separately
Need help? Join the Discord: https://discord.gg/cgBww275Fg
"economy" option outlined below 🚨- (**POTENTIALLY BREAKING**) Changed the economy service system behavior to support using multiple economy services with the mod.
- The economy service used is now defined on the Action/Requirement itself using the
"economy": "<put service here>"option. - By default the service will be the first one found, if not specified
- Example updated action:
"click_actions": {
"deposit": {
"type": "CURRENCY_DEPOSIT",
"economy": "IMPACTOR",
"amount": 100
}
}
`
- Added support for the CobbleDollars mod as an economy service
- Added support for the BlanketEconomy mod as an economy service
- Added a simple API for other mods to access
- Added
"components" as an base name for defining item components, but "nbt" will still workChanged most DEBUG statements to have better information and formatting Updated the example config files NBT to 1.21 formatting Fixed custom_model_data` setting not being applied properly Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Updated to 1.21.1
- You will need to update any NBT to the Component formatting as that has internally changed in Minecraft
- Added the
sourcesetting to thePLAYSOUNDaction that allows specifying the Sound Source of a sound - Added a
MOLANGaction type. This allows a series of molang statements to be executed (thank you amo!!!) - Added an optional
permission_leveloption toCOMMAND_PLAYERactions to specify the permission level to execute the command under - Changed the
PLAYSOUNDaction's registered sound check to allow for custom resource packed sounds to be used - Changed the default config loading system and included a new
example_molang.jsonfile - Fixed click actions executing after requirements success actions executed
- GooeyLibs is now a included API in the distributed jar and is no longer required to install separately
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Fixed NBT not properly parsing everything listed (compound tags were not being parsed)
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Removed the
PLAYSOUNDaction's registered sound check to allow for custom resource packed sounds to be used - Added the
sourcesetting to thePLAYSOUNDaction that allows specifying the Sound Source of a sound
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Updated to 1.21.1
- There are no major changes to any of the mechanics. You will need to update any NBT as that has internally changed in Minecraft
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Added direct support for using player heads as items. Just set the
"item"field to any of the following: playerhead- Returns the head of the viewing playerplayerhead-<USERNAME>- Returns the head of a player from their username, though only if the player is online (may add offline support at some point, complex problem)playerhead-<UUID>- Returns the head of the player from their UUID. Works online or offline (most of the time, sometimes steve skins are returned)- Fixed a startup crash caused by a missing GraalVM library when Cobblemon was not installed
- Added a
"custom_model_data"option toITEMRequirement andGIVE_ITEM/TAKE_ITEMActions that will directly set the model data of an item, which allows for proper parsing inITEMrequirements - NBT will now be parsed for placeholders (strings and string lists only)
- All sub-folders within the
guisfolder will now be checked for valid GUI files - The
PLACEHOLDERrequirement'soutputfield may now contain a list of string values, which will return true if the output matches any of these values - The GUI title will now update whenever the GUI is refreshed
- The
PLAYSOUNDaction'ssoundsetting now accepts any resource location, allowing for resource pack based sounds (though sounds that are not available will no longer display an error) - Changed command permission level to a default of 2 instead of 4 to allow command blocks to execute commands
- Newlines in Item Lore will now be split automatically
- Improved action deserialization errors
- Improved NBT application
- General cleanup and improvements
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Added support for **MiniPlaceholders** placeholder parsing, if installed
- Added flexible lists where **single value lists no longer need to be defined as lists**! Example:
"slots": [10]->"slots": 10 - Changed actions to optionally support **multiple click types** (
"click": ["RIGHT_CLICK", "LEFT_CLICK"]) - General cleanup and improvements
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Fixed an issue with
REFRESH_GUInot properly working after aOPEN_GUI(the refresh controller was getting removed by the previous menu) - Added a debug message when a GUI refreshes
- Removed some leftover development printout debugs
Need help? Join the Discord: https://discord.gg/cgBww275Fg
- Added
REFRESH_GUIaction type to refresh the currently opened GUI (and player inventory) - Added
DIMENSIONrequirement type that will check if the player is in a dimension - Added
click_requirementsItem option. Requirements defined here must be met before any Actions will be executed or have their action requirements checked - Fix wrong package name for
/guis reloadcommand (was conflict with new SkiesKits) - General cleanup and improvements
- The Wiki has been updated with all of these changes.**
- Need help?** Join the Discord: https://discord.gg/cgBww275Fg