This mod allows you to use some of Valkyrien Skies's API in your MCreator mod.
What it adds
New procedures:
- Get a VS ship from a block
- Apply forces to VS ships
- Teleport ships
- Get and set various properties of ships (Slug, velocity, etc)
- Iterate over all ships in dimension
- Store custom data values (text, logic, and numbers supported) per-ship
- Transform position and rotations to and from ship-space
New variable types:
It adds the ship variable type, which can be gotten from a block position and used in procedures
Global triggers:
Currently, only the Valkyrien Skies "ship loaded" event is supported, but more to come in future!
Templates:
This plugin comes with several procedure templates, which can help you explore the possibilities of the Valkyrien Skies based procedures.
Note: the templates are all designed to work with the "player right clicks block" trigger. They haven't been tested with any other triggers.
How to install it
Due to the complexity of Valkyrien Skies, this plugin is slightly tricky to setup. Just make sure to follow these instructions closely.
- Install my "Extra Types" plugin, its variable types are required for the procedures. You can find it here: https://mcreator.net/plugin/114773/extra-types
- Add this plugin. Make sure Java plugins are enabled in plugin preferences!
- Install NerdyPuzzles "Forge Mixin" plugin, its gradle changes are required for the plugin to run. You can find it here: https://mcreator.net/plugin/104607/forge-mixins-support.
- ENABLE THE API. Find the "Valkyrien Skies" api in workspace settings, and make sure its enabled! You may encounter build issues if it is disabled!
- RE-OPEN YOUR WORKSPACE! This step is EXTREMELY important. This plugin adds custom Java files to your mod to allow it to function, however on a workspace re-factor or a new workspace, these files will be removed! The plugin will re-add them on a workspace re-load.
- Profit
Note: the plugin currently only supports Forge 1.20.1!
A noobs guide to Valkyrien Skies
Valkyrien Skies free-moving objects (blocks with physics) are called "Ships". Each ship is stored in a "shipyard". This means that its blocks are stored very far away, in a huge void. What you the player are seeing, is these blocks in the shipyard being "projected" into your view. Then when you interact with them, your interactions (breaking, placing blocks, etc) are "transformed" back into the shipyard to have an effect. This means that any blocks you have that are on a ship may have extremely large coordinates! To remedy this, you can use the "transform position" procedure block going from "ship -> world" (shipyard to the normal world) to move the position to where the ship visually is. Same applies for rotations, like the direction a block is facing.
Potential issues
If you are encountering build issues with this plugin, make sure to check these things first.
The plugin custom-generates some Java files into Source (gradle)/<mod_folder>/ships and Source (gradle)/<mod_folder>/mixin. Make sure there are files in these locations! If some or all are missing, try re-loading the workspace. Files that should exist:
/ships
ForceData.javaForceDirectionMode.javaForceInducedShips.javaForceMode.javaOnShipLoad.javaRotData.javaTeleportHandler.java
/mixin
ServerShipObjectWorldAccessor.java
If you have these files, but you are failing to build (with an error such as org.valkyrienskies.<stuff>.Ship not found!) make sure that the api is enabled in workspace settings!
If any procedure blocks are still failing to build, and you can't figure out why, leave a comment and I might be able to help. If any procedure blocks are causing a crash, please leave a comment! They should be made (by me) to be 100% crash free but I could have missed some issues.
Removing the plugin
If for some reason you no longer wish to use this plugin, follow these steps:
- Disable the API in workspace settings. This should cause a workspace re-factor.
- After workspace re-factor, some procedures may fail to build. Simply go into each and delete any remaining Valkyrien Skies procedure blocks
- Then remove the plugin from your plugin folder, or disable it. Don't re-open your workspace with the plugin still enabled! The re-factor when you disabled the API will have deleted the extra files mentioned above, but if you re-open your workspace with the plugin they will come back! You may need to delete them manually.
Old information (v1.5 and below)
Ignore this section on v1.6+
The extra files will be deleted on workspace re-factor! Make sure to re-load your workspace after this happens so the files can be re-generated!
Comments
I finally got the plugin to work by using version 2024.3. My only problem now is all the complexity of the plugin. I can't understand any of the procedures and the procedure templates Don't really help much. It would be great if you could add 2 procedures. The first procedure would apply force behind, in front, left of, right of, top of, or bottom of( this could be a drop down where you choose which one of these directions you want to us) a custom block. The second procedure would set a ship independent variable that all blocks that are part of the ship could access. I'm guessing you could ready. Make this with the procedures i'm already in the plugin, so if you don't want to add these procedures, could you add 2 procedure templates that do the things I said and explain how they work so I could change the force and direction? Or just send me a picture of 2 procedures that would do what I said and explain how they work? Thanks in advance!
For the first situation, you would want to:
1. Get ship at position (blockPos from (x y z))
2. Apply force (vector from (direction)) on ship (ship) at position (vector from (x y z)) with strength (1000)
And for the second, check in the data tab of Valkyrien skies. There’s blocks to store and retrieve logic, text, and number values from a particular ship.
I’ll look at adding example templates for both these questions in the next plugin update, whenever that is.
Mcreator 2025 still wasn't working for me, so I tried 2024.4 and it gave me this error.
Build info: MCreator 2024.4.52410, forge-1.20.1, 64-bit, 16087 MB, Windows 11, JVM 21.0.4, JAVA_HOME: C:\Users\ester\OneDrive\Desktop\mcreator\Mcreator old\MCreator\jdk, started on: 2026-04-04-08:49:01
Loaded APIs: valkyrienskies
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\ester\MCreatorWorkspaces\just_a_test\build.gradle' line: 3
* What went wrong:
An exception occurred applying plugin request [id: 'org.spongepowered.mixin', version: '0.7.+']
> Failed to apply plugin 'org.spongepowered.mixin'.
> Could not find property 'minecraft', or 'patcher' on root project 'just_a_test', ensure ForgeGradle is applied.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 1s
Wait did I forget to actually upload 2.1? 🤦 Darn, I’ll have to remember to do that tomorrow.
As for the compiling issue, yeah it probably still won’t work with 2025, since I haven’t gotten round to fixing it yet. And the internal plugin version… yeah I just forgot to update it :P
Will 1.21.1 be supported when VS2 gets updated?