Releases: 200Tigersbloxed/UnityMods
HRtoVRChat v1.4.4
Small bug fix
Fixed:
minHR
andmaxHR
only returning default config values.
HRtoVRChat v1.4.3
Quick patch that fixes a small issue.
Fixed:
- Fixed an issue where Fitbit (and possibly HypeRate) HRMs not returning the proper
IsOpen()
(always false) - Fixed an issue where Fitbit's socket would not properly detect the
checkFitbitConnection
message from the socket server.
Changed:
- Fitbit and HypeRate Managers will now return
IsConnected
based on if theNullable<WebSocketClient>
's State isWebSocketState.Open
, rather than being manually set once on start.- This should reduce errors that may delay the socket connecting and not updating
IsConnected
properly.
- This should reduce errors that may delay the socket connecting and not updating
- Parameter Values will now only update if the activeHRManager is running.
HRtoVRChat v1.4.2
Finally! A release! This patch was a fix for both ParamLib and removal of unused merged managed libraries, which led to the removal of ILMerge. The HRtoVRChat binary should now look much neater in disassembler programs like dnSpy, ILSpy, dotPeek, etc.
We also added a new (int)HR
parameter! This parameter just throws the raw HR info through an int. This can be used for animation speeds, or if you have a lot of dedication to making 255 animations, you can use it to save storage and replace onesHR, tensHR, and hundredsHR (this will not be supported officially).
For bug reports, use the issues page
For support, please use the discussions page, or my discord server
Added:
(int)HR
parameter.- Inputs your raw HR data as an int parameter.
- Minimum of
0
, maximum of255
Changes:
- Switched the EasyAvatarHook.cs to RegisterTypeInIl2Cpp attribute.
- Changed FitbitManager.cs to rely on System.Net.WebSocket.Client, instead of websocket-sharp
- Changed HypeRateManager.cs to rely on System.Net.WebSocket.Client, instead of websocket-sharp
Fixes:
- Fixed Parameters not updating
- See the fix here
- Fixed harmless error when exiting if you disable your HRManager
- Fixed Parameters clearing on HRManager Stop
Removed:
- Old dependencies we aren't using anymore
ILRepack.Lib.MSBuild.Task
,HypeRate.NET
,websocket-sharp
,GenericHRLib
, andNewtonsoft.Json.dll
(Replaced with VRChat's Newtonsoft.Json)
HRtoVRChat - v1.4.1
HRtoVRChat - v1.4.1
Small bug fixes.
Fixes:
- Fixed HeartBeat failing a check
- Fixed Unhook logging instead of debugging
HRtoVRChat - v1.4.0
HRtoVRChat - v1.4.0
This release addresses issues with performance of HRManagers and various mod functionalities, and adds new features.
ATTENTION
VRChatUtilityKit is no longer required for HRtoVRChat to function correctly. If you do not have any other mods that require it, you are safe to remove it.
Added:
HRPercent (float)
parameter.- Creates a 0-1 float value based on where your HR is between the
MinHR (float)
andMaxHR (float)
config values.
- Creates a 0-1 float value based on where your HR is between the
MinHR (float)
andMaxHR (float)
config values- See above
- See ConfigHelper.cs
- EasyAvatarHook.cs
- Handles detecting when a Player Joins/Leaves and when a Player changes this avatar
- This removes the requirement of VRCUK.
Changes:
- Switched to using Invoke for isHRBeat in MainMod.cs
- This allows for easier parameter updating for isHRBeat.
- Bumped ParamLib.cs and BaseParam.cs
Fixes:
LabratEyeTracking - v1.2.0
LabratEyeTracking - v1.2.0
Backend rewrite, improvements, and fixes from pre-release!
Changelog:
Added:
- Multithreading
- Improves Eye Tracking SDK performance
- UniversalEyeTracking
- Handles Eye values for Left, Right, and Combined
- Automatically makes CombinedEye from Left and Right eye data
(LeftEye.somedata + RightEye.somedata) / 2
Changes:
- Rewrote backend to use Interfaces for eye tracking
- This makes adding a new SDK for developers much easier to do
- In a later update, I'll hopefully remove the sdkType value altogether
Fixes:
- Fixed PimaxEyeTracker
- Fixed Multithreading
[Pre-Release] HRtoVRChat - v1.4.0
[Pre-Release] HRtoVRChat - v1.4.0
Mainly meant for bug fixes, features that need to be tested, and bumping dependencies.
Added:
win-blegatt
HRManager (Beta Feature!)- Uses GenericHRLib to read connected BLE/GATT Bluetooth devices to your PC
- Made with Reflection to avoid all clients having to install the Windows SDK
- Avoids using Pulsoid to get HeartRate data from the device. (Woo no more sending data to random servers!)
- Uses GenericHRLib to read connected BLE/GATT Bluetooth devices to your PC
HRPercent (float)
Parameter- Adds the
minHR (float)
andmaxHR (float)
to the Config - Estimates a float value from 0 - 1 based on where your HR is in-between the
minHR
andmaxHR
.- Example: HR = 100, minHR = 0, maxHR = 200, the float would return 0.5f
- Adds the
- ILRepack
- Automatically merges all required managed assemblies AfterBuild
Changes:
- Bumped HypeRate.NET to v1.2.0
- Changes to FitbitManager to improve performance
Fixes:
- Fixed Pulsoid Loop where messages would send with no wait-time.
- Fixed Thread Hanging OnApplicationQuit()
This release will not be updated on VRCMelonAssistant
HRtoVRChat - v1.3.0
HRtoVRChat - v1.3.0
Huge update! This update adds numerous methods for getting heart rate data through multiple providers! On top of this, I've introduced better optimizations through multithreading.
ATTENTION!
This mod requires VRChatUtilityKit to function! Please make sure you have this installed before continuing! You can also use VRCMelonAssistant to install HRtoVRChat and VRChatUtilityKit.
INFO
For bug reports, please use the issues page.
For support, please use the discussions page, or my discord server
CHANGELOG
-
Added:
- Added PulsoidManager.cs
- Downloads HTTP Data from an API URL, then parsed into JSON, and extracts the
hr
object, and parses to Int32 - While this is designed for Pulsoid, it will work on other API services if their API returns json such as
{"hr": 100}
- Downloads HTTP Data from an API URL, then parsed into JSON, and extracts the
- Added TextFileManager.cs
- Parses to Int32 from a text file located on the local PC.
- This adds compatibility for numerous services including, but not limited to:
- For the best results, it is recommended to store the text file on an SSD with fast data transfer, as the file is ready every 500ms/0.5s
- Added multithreading for all HRManagers
- This will increase performance on all HRManagers by a lot, and reduce stuttering.
- This is not toggle-able as FitbitManager requires it to run without stutters.
- Added
isHRConnected
Parameter- Driven by the selected HRManager's
IsOpen()
bool
- Driven by the selected HRManager's
- Added
isHRBeat
Parameter- Estimated heart beats based off of your BPM
- 1 / (x / 60) where x is the BPM
- True when your heart is beating, false when it's not
- Example use case: Heart Rate icon grows bigger when true
- Estimated heart beats based off of your BPM
- Added PulsoidManager.cs
-
Changes:
- Added config values and changed string defaults to
String.Empty
in ConfigHelper.cs- Added
pulsoidfeed
- The API URL to GET
- See PulsoidManager in Added
- Added
textfilelocation
- The file location to read the HR
- See TextFileManager in Added
- Added
- Added
bool IsActive()
in HRManager.csbool IsActive()
will return whether or not the mod has made a connection to the target server.- For comparison,
bool IsOpen()
will get the active connection and the HRM's connection (if supported by the data manager)
- Fixed support for v1.5.0 of FitbitHRtoWS in FitbitManager.cs
IsOpen()
for FitbitManager.cs now returns true isisConnected
andFitbitIsConnected
is true.- Added
Action<bool> OnHeartBeatUpdate
to MainMod.cs- Invokes when heart is estimated to beat. (See
isHRBeat
parameter)
- Invokes when heart is estimated to beat. (See
- Added
IENumerator HeartBeat()
MelonCoroutine in MainMod.cs- Handles WaitForSeconds and
Action<bool> OnHeartBeatUpdate()
invoktion.
- Handles WaitForSeconds and
- Added
BoolParameter
to ParamsManager.cs - Added
HRParameter
interface to ParamsManager.cs- Handles classification of Parameters
- Bumped version to v1.3.0 in AssemblyInfo.cs
- Added config values and changed string defaults to
-
Fixes:
- Fixed the
RestartHR
button's texture in the ActionMenu to show therefresh
texture.
- Fixed the
-
Extra Note:
- The
isHRBeat
parameter is not perfect, and it will be addressed in a later update
- The
HRtoVRChat - v1.2.0
HRtoVRChat - v1.2.0
This update addresses numerous optimizations and new additions/support for mods to make management of the mod a thousand times easier!
ATTENTION!
This mod now requires VRCUtilityKit to function! Please make sure you have this installed before continuing! You can also use VRCMelonAssistant to install it automatically.
INFO
For bug reports, use the issues page
For support, please use the discussions page, or my discord server
CHANGELOG
- Added:
- Added Support for UIExpansionKit
- Adds a button in your quick menu to Restart the HRListener
- This is meant for situations where your WebSocket/Connection drops, and you need to restart the connection, meaning you will no longer have to restart the game!
- Loaded with Toggle (See Config Changes)
- Can also be found on VRCMelonAssistant
- Adds a button in your quick menu to Restart the HRListener
- Added Support for ActionMenuApi
- Adds a submenu with three buttons in your action menu
- RestartHRListener
- For when you need to restart your WebSocket/Connection
- Start HRListener
- If the HRListener didn't start, you can start it manually.
- Stop HRListener
- If you want to stop your HRListener, you can stop it manually.
- RestartHRListener
- Loaded with Toggle (See Config Changes)
- Can also be found on VRCMelonAssistant
- Adds a submenu with three buttons in your action menu
- hrtovrchat AssetBundle
- Loaded from Memory Internally
- Contains textures for AMAPI Support
- AssetManager.cs
- Manages loading of the AssetBundle and Asset Extraction
- Dependency VRCUtilityKit
- This is for Parameter Optimizations
- Added Support for UIExpansionKit
- Changes:
- Bumped ParamLib
- Added more Config Values to ConfigHelper.cs
(bool) ShowDebug
: Shows Debug Logs(bool) AMAPISupport
: Enables support for ActionMenuApi(bool) UIXSupport
: Enables support for UIExpansionKit
- Added method to interface HRManager.cs
- Added
bool IsOpen()
: Returns a bool for whether the interface is connected or not
- Added
- Small Change to LogHelper.cs
void Debug(string, object)
: Now only logs debug ifShowDebug
in the ConfigHelper.cs is set totrue
- Changes to MainMod.cs
- Config is now Loaded
OnApplicationLateStart()
andOnPreferencesSaved()
- Added handling for initializing AssetManager and ModSupport
- Added
void LogSupportedMod(string, int)
: Logs whether or not a ModSupport class was initialized properly. void RestartHRListener()
now usesTask.Factory.StartNew()
to delay tasks- This is in order to prevent spamming of the function, which in turn causes breaking of the HRManager
- As a bonus, this also does not freeze the game's main thread while waiting to connect to the target host.
- Config is now Loaded
- Optimizations to ParamsManager.cs
- Params are now derivative of IntBaseParam
- Params will refresh on a local user's avatar being instantiated, rather than every frame.
- This adds a huge performance boost and less latency for updating parameters
- This is also the part that makes VRCUtilityKit a dependency, because I didn't want to write my own hook for it.
- Set
LangVersion
topreview
in HRtoVRChat.csproj - Updated AssemblyInfo.cs
- Bumped version to
v1.2.0
- Added
MelonOptionalDependencies()
- Used to make sure that the Mod's supported are loaded BEFORE this mod
- This is very important, since the backend of the mod support is all reflection. One thing goes wrong and it all breaks.
- The assembly names should be right, but I'm not positive.
- Used to make sure that the Mod's supported are loaded BEFORE this mod
- Bumped version to
- Fixes:
- Fixed issue with HypeRate IsOpen() throwing a null exception when Restarted.
- Fixed issue with activeHRManager not being reset on Preference Saved.
- Fixed issue with AMAPI Support throwing an error if you didn't have the mod installed.
- Known Bugs:
- Starting or Stopping the HRListener via. Start() or Stop() will freeze the main game's thread until completed.
- This can be reproduced with the AMAPI's Start and Stop HR buttons.
- Possible solution would be to wrap in a Task.Factory.StartNew or implement multithreading
- Starting or Stopping the HRListener via. Start() or Stop() will freeze the main game's thread until completed.
HRtoVRChat - v1.1.0
Back with a new release for HRtoVRChat! I got some behind the scenes improvements and fixes for yall' today!
-
Added:
- Added
HRManager
Interface.- All HRMs are now derivative of the HRManager interface.
- This allows for adding HRMs a much easier process for Developers.
- Added
-
Fixes:
- Fixed HypeRate not returning the proper HR
- This was because I forgot to set isSUbscribed to true, but I didn't need that and it's now in HypeRate.NET 1.1.0.
- Fixed HypeRate not returning the proper HR
-
Changes:
- Bumped HypeRate.NET to v1.1.0
- Bumped .NET to net48