Valkyrien Skies Plugin

Supported MCreator versions
2024.1
2024.2
2024.3
2024.4
2025.2
Tags / plugin type
API support
Global triggers
Java plugin
Procedures
Templates
Variables
MCreator plugin
Downloads:
643
Upvotes: 6
About the plugin

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.

  1. 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
  2. Add this plugin. Make sure Java plugins are enabled in plugin preferences!
  3. 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!
  4. 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.
  5. 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.java
  • ForceDirectionMode.java
  • ForceInducedShips.java
  • ForceMode.java
  • OnShipLoad.java
  • RotData.java
  • TeleportHandler.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+

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

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!


License
MIT License

Plugin downloads
valkyrien_skies_plugin_1.0.zip - valkyrien_skies_plugin_1.0.zip Uploaded on: 03/31/2025 - 00:00   File size: 42.73 KB
valkyrien_skies_plugin_1.1__2.zip - valkyrien_skies_plugin_1.1__2.zip Uploaded on: 04/03/2025 - 00:19   File size: 42.75 KB
valkyrien_skies_plugin_1.2.zip - valkyrien_skies_plugin_1.2.zip Uploaded on: 04/05/2025 - 02:01   File size: 42.75 KB
valkyrien_skies_plugin_1.3.zip - valkyrien_skies_plugin_1.3.zip Uploaded on: 04/08/2025 - 15:22   File size: 44.41 KB
valkyrien_skies_plugin_1.4.zip - valkyrien_skies_plugin_1.4.zip Uploaded on: 04/08/2025 - 19:57   File size: 46.5 KB
valkyrien_skies_plugin_1.5.zip - valkyrien_skies_plugin_1.5.zip Uploaded on: 04/13/2025 - 22:08   File size: 47.51 KB
valkyrien_skies_plugin_1.6_.zip - valkyrien_skies_plugin_1.6_.zip Uploaded on: 08/18/2025 - 20:53   File size: 53.81 KB

Comments

How to get yaw, pitch, of ship pls help its very important

Interesting. I learnt recently the Mixins plug-in is broken on 2024.4 but I didn’t know about 2024.1. I use 2024.3, so maybe use that version for now till I can figure out why the Mixins plug-in breaks

v1.5:
Actually fixed extra files being generated if api is disabled

(no more mixin error about ServerShipObjectWorldAccessor)

I totally forgot about this thread, and i wanted to give my idea on how a procedure block for this could be like

Assemble Ship Anchor: Block, Radius : Vec3, Smart Assmebly : boolean
Anchor : where the radius’ origin will be calculated ( the center of the radius)
Radius : how far away it must be before not assembling
Smart Assembly : whether or not to count blocks that aren’t touching the anchor block

Interesting, I didn't think about a more automatic approach like that (I was thinking of how to allow a list of blocks). That could certainly work, although a cubic area instead of a circle would be a lot easier to calculate.

(Then as a later feature, perhaps you select two corners to make a custom cube area from, but that would be harder to add)