You are viewing a potentially older version of this package. View all versions.
Nyxpiri-NyxLib-0.3.0 icon

NyxLib

General Library for/used by mods made by Nixya/nyxpirientity. Probably not of much interest to you unless you're installing one of those

Date uploaded 3 hours ago
Version 0.3.0
Download link Nyxpiri-NyxLib-0.3.0.zip
Downloads 131
Dependency string Nyxpiri-NyxLib-0.3.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

Important!

For this plugin/mod to work, you'll need to ensure your BepInEx is configured to have HideManagerGameObject set to true, or else the game will destroy the plugin!

About

NyxLib is mostly a library I created for my own personal ULTRAKILL mods. It can technically be used by anyone, for any mods, but I, ESPECIALLY now, advise against it because I could change the API at anytime, as it's unfinished and also very probably not good. Fundamentally, this doesn't matter much for people to read up on, it's just a framework for me to make mods for ULTRAKILL. It features things for convenience and organization for my mods, such as a small system to organize the composition of radiance, events for various gameplay events (Player events, enemy events, projectile events) and ways for those events to be cancelled whilst other mods using the library can tell if and why those events were cancelled, and even a system for dropping messages to the player. In general, it's just convenience related things for my mods. There is no documentation at the moment.

Cheats

It features a few cheats, most exotic cheats are part of my other (many not released on Thunderstore as I write this) ULTRAKILL mods, but I'll list what there is in this one here alongside some explanation/description. Cheats labeled optional can be enabled/disabled in the configuration file.

UTILITY:

  • Radiant All Enemies - Does what it says- similar to forcerad, but it uses it's own configuration settings, configured in the config file. Why? Well, simply because the base ULTRAKILL radiance system was a bit too simplistic for my mods to combine from what I could tell, so I had to make a layer on top of it which simply takes in multiple radiance modifiers and compounds them together as either additives or multipliers. This may interfere with base game radiance IF anything is actually using it, but if no mods are using it, it should make no difference (in theory, but like, software has bugs and all of my mods add to be a big solo-unpaid-personal-project)
  • Sand All Enemies - Just a convenience cheat for the sand all enemies command in the game (optional)
  • Force Next Wave - Tries to force the next cybergrind wave to occur. (optional)
  • Hide Cheats Enabled Status - Hides the cheats enabled status UI in the top left (optional)
  • Cybergrind Starting Wave Override - Allows you to override your cybergrind starting wave, being a cheat, this shouldn't be capable of saving as a highscore. (optional)

Options

  • Play Clean Music with Battle Music - tries to make the clean music track play with the battle music track, as in, at the same time

Note

It also features a feature named "Level Quick Loading" which loads levels at startup to allow mods to pick assets from those levels they may need. This causes startup to look a bit different, and can make it take longer. Frankly, I just don't know of a different way to do what I wanted lol

CHANGELOG

USER FACING/FRONT-END

  • make radiant all enemies use enemy's base radiance as a... well, base (and many additional configuration options!)

BACK-END/INTERNAL/API

  • improve timing of cheat registration events
  • Simplify EnemyRadiance.Modifier with a CompositionType enum instead of multiple bools
  • Add projectile asset prefabs
  • Overhauls AEnemyType (now EnemyTypeData) by making it a single class
  • Overhauls asset handling greatly, sorting things into their own singletons and files, and assigning tasks to specific classes rather than a single global Assets class
  • rename ScenesEvents to SceneEvents and make some event names more (I think) reasonable
  • rename AEnemyType.ReadableName to EnemyTypeData.DisplayName
  • rename EnemyPrefabStore to EnemyCloning, EnemyPrefabStore.InstanceStore to EnemyCloneStore, and EnemyPrefabManager to EnemyCloneManager
  • add Gear (player weapon prefabs) to Assets
  • add ExplosionRoot monobehaviour
  • add ExplosionStartModifier
  • add Shaker3D
  • add Shaker1D
  • add image and obj (mesh format) loader for external asset loading
  • add DebugPrintMaterialProperties method in new AssetInspecting class
  • add includeFileInfo parameter for StackDebug
  • add Coincident, CoincidentProject, and Snapped methods to NyxMath
  • add VelocityTracker
  • add CollisionCenter property to EnemyComponents
  • remove ExplosionAdditions
  • many stability adjustments to EnemyPrefabStore/EnemyCloneStore and friends