• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
Core Banner

Hearts Icon
Built something awesome? I'd love to know!
Leave a like, and tell me in your review how this is helpful or could be improved!
Info Sign
Code Only Library
This is a resource for plugin developers, and not meant to be used as a standalone plugin in your scenes.
Warning Sign
Experimental Release
  • future updates may introduce breaking changes more often than usual
  • zero documentation
  • inconvenient to use with VaM's package builder

About​

Core is a large collection of utilities I use for developing all my plugins. Highlights include utils to create your script UI, a replacement for enums, json utils, a promise-based task runner, and much more.

Despite the limitations described below and the fact that there is no documentation at all, I still decided to release this library as a standalone package. I believe it will be useful for those that don't mind the inconveniences.

How To​

To reference files in your plugin add them to your cslist file like perfectbloo.Core.<version>:/path/to/file.cs. For convenience, "Core.cslist" includes all files for you to copy in this format. As described in the limitations section below, make sure to add the Core package as a dependency in your "meta.json" file.

If you're using an IDE, you can reference "Core.dll" in your project for code completion and type checking.

Limitations​

The issues below might be resolved in the future, since I have tools in my own workflow to generate minimal cslist files based on file dependencies, and a custom package bundler outside of VaM. However, these tools are not ready for release, and I can't promise they will ever be.

Packaging​

VaM resolves paths to other packages in cslist files just fine when loading plugins. However, when you try to build your package with VaM's package builder, there will be broken references and no dependency to Core will be added in your package meta file. Either modify the "meta.json" file inside the var afterwards (add dependency to "perfectbloo.Core.<version>"; remove broken reference reports), or manually create the meta file to begin with and zip your package by hand (which is quite manageable for script only packages).

Cherry-Picking Files​

Although I'd recommend only adding the files you need to your cslist file, it can be cumbersome. Many files in Core depend on other files of the package, which in return have their own file dependencies. If you cherry-pick files, you need to make sure to include all dependent files recursively.

React to this content...

Share this resource

More resources from perfectbloo

Back
Top Bottom