Releases: PalmForest0/BloomEngine
Beta 0.3.2
Overview
This patch mainly updates the way config inputs are created and how additional functionality is added to them. Below is a before and after comparison. Additionally, OnValueChanged and OnInputChanged are now events, meaning you can add multiple actions to them.
Before
public static StringConfigInput TestStringInput = ConfigService.CreateString("Test String", "Cooler description.", "ABCDEFG", new()
{
OnValueChanged = val => Melon<BloomEngine>.Logger.Msg($"Value of {nameof(TestStringInput)} updated to \"{val}\""),
OnInputChanged = () => TestStringInput.Textbox.SetTextWithoutNotify(TestStringInput.Textbox.text.ToUpperInvariant()),
TransformValue = val => val.ToUpperInvariant(),
ValidateValue = val => !string.IsNullOrWhiteSpace(val)
});After
public static StringConfigInput TestStringInput = ConfigService.CreateString("Test String", "Cooler description.", "ABCDEFG")
.WithOnValueChanged(val => Melon<BloomEngine>.Logger.Msg($"Value of {nameof(TestStringInput)} updated to \"{val}\""))
.WithOnInputChanged(() => TestStringInput.Textbox.SetTextWithoutNotify(TestStringInput.Textbox.text.ToUpperInvariant()))
.WithTransformFunc(val => val.ToUpperInvariant())
.WithValidateFunc(val => !string.IsNullOrWhiteSpace(val));Changes
- Removed
ConfigInputOptions.csin favor of new methods (see Overview above) - Made
OnValueChangedandOnInputChangedactions into events - Moved
ConfigService.csandModConfig.cstoBloomEngine.Config - Moved
ModMenuService.csandModMenuEntry.cstoBloomEngine.ModMenu - Fixed minor inconsistencies and cleaned up some of the code
Beta 0.3.1
Overview
This patch mostly updates the internal organization and structure of the project, as well as fixing a few bugs. Additionally, there have been some utility improvements to make integrating with the BloomEngine library smoother. This means that some references might need to be updated due to classes being moved.
Changes
- Updated
EnumConfigInputto use a generic enum type - Fixed enum config inputs not loading saved value
- Improved code documentation in multiple places
- Improved internal mod menu organization
- Updated
UIHelperand reworked internal bootstrap - Cleaned up
AssetHelperand added Assembly type markers - Cleaned up and improved utility classes
- Updated folders and moved certain classes
- Added attribute for automatically registering
MonoBehaviourtypes in Il2Cpp
Beta 0.3.0
Overview
This beta includes some major changes to the UI and backend of the BloomEngine config manager. Mainly, it is now easier to register a config and it will be automatically saved using MelonPreferences, A full list of changes with screenshots can be found below.
Changes
- Buttons for resetting to default and showing the description for config inputs.
- Static
ConfigServiceclass for easier config input creation - New
ConfigInputOptionsclass to further simplify input creation. - Internal structure changes (will require you to update your
usingstatements) - Automatic config saving and loading with
MelonPreferences - More documentation for config and mod menu systems
- New UI utilities such as creation of a
CustomPopupthrough theUIHelperclass
Usage
Due to the major changes to the BloomEngine library structure, you will need to update some of your code. The new usage guide with examples can be found in the README.
Screenshots

Beta 0.2.0
Changes
This version updated a couple of things and added more features:
- Custom mod icons which can be added by mod developers
- A config icon that appears when you hover over a mod with a registered config
- Larger mod entries with more space for bigger icons and description
- Behind the scenes changes within the mod menu structure
Stability
BloomEngine is currently stable and there aren't any known bugs. However this mod is still in beta, so if you run into any issues, I would ask you to join the discord server. Additionally, any suggestions for future developments are welcome.
Installation
Installing the mod
If you are looking to use the mod in-game, all you need to do is downlod BloomEngine.dll below and place it into your Mods folder after installing MelonLoader. If you don't have MelonLoader installed, the latest release can be found here.
Using the library
If you want to use BloomEngine as a library for your own PvZ Replanted mod, please check the README for an installation and usage guide.
Screenshots
Below you'll find screenshots of the updated mod menu UI.
Updated mod menu UI with custom icons
New config icon overlay on hover
Alpha 0.1.0
Mod Features
- Working mod menu
- Displays both registered and non-registered mods
- Custom entry display name and description
- Working config panel with multi-page support
Developer Features
- Register your mod by referencing this library and running
ModMenu.CreateEntry() - Mod config registration with support for
string,int,float,boolandenuminput fields - Documentation available (place
.xmlfile in the same folder as.dll) - Static helper classes for things like UI and Il2Cpp
For more information on registering your mod, check the
README.md
Future Plans
- Enabling and disabling mods
- Custom mod icons in the mod menu
- More intuitive way of opening config menu (currently you must press the mod entry icon)
- Add more documentation
Screenshots
