SkillAgentSearch skills...

MultiplayerDynamicBonesMod

No description available

Install / Use

/learn @9E4ECDDE/MultiplayerDynamicBonesMod
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MultiplayerDynamicBonesMod

Makes dynamic bones multiplayer, allowing other players to interact with yours and vice versa, in addition to optimizing dynamic bones and more.

How to install? Follow the Automatic Installation instructions at https://melonwiki.xyz/#/README?id=installation-on-il2cpp-games Then drop the mod dll in the Mods folder.
This mod requires UIExpansionKit

Hotkeys | Description ---- | ----- F1 | Enable/disable the mod. You can also use the button in the quick menu if you're in VR or don't want to use the keyboard. F4 | Dump a list of active players working with the mod, useful for debugging. F5 | Open an ingame editor of Dynamic Bones settings if enabled in Mod Settings (Local only) F8 | List what colliders are attached to your bones. F9 | List colliders attached to other player's bones. F11 | Prints list of all Avatars in current list

Once the mod has been run at least once, it creates a settings file in the vrchat folder under UserData, in a .cfg file. See the bottom of this document for a list of all settings.

Screenshots!

Toggle/Settings Menu

From the 'MDB Settings' Button on the Quick Menu - A fast way to get to the most commonly adjusted settings
(The Quick Menu button can be disabled entirely by the 'Quick Menu Button' preference in Mod Settings)
image

MDB Avatar Config

This Menu focuses on Customizing Dynamic Bone interaction with other avatars on a per avatar basis
This is on the Quick Menu when you select another Player or on the side of the big Avatar menu for your own avatar

  • Include/Exclude a Specific Avatar - This replaces the 'Enable/Disable MDB' buttons that used to be on the Per User Quick Menu

    • Excluded avatars will not be multiplayered.
    • Included avatars will bypass per avatar/player filters such as:
      • 'Only I can interact with other bones', 'Only friends and I can interact w/ eachother', 'Desktopers's colliders and bones won't be multiplayer'd'
  • Include/Exclude Bones/Colliders lets you selectively enable or disable certain Dynamic Bones or Colliders from being multiplayered per avatar.

    • Excluded Bones/Colliders will not be multiplayered.
    • Included Bones/Colliders will bypass per bone/collider filters such as:
      • 'Only enable colliders in hands', 'Only the breast bones will be multiplayer'd'
  • These checks can be disabled/enabled Globally with the 'Exclude Specific Objects' and 'Include Specific Objects' preferences. Screenshot of this menu is below. This is most useful for disabling an overly large collider on a model.

  • Adjusting an avatar's Dynamic Bone radius has several options. Screenshot of this menu is below.

    • Multiply existing Bone Radius's by a Multiplier.
      • Simply takes the existing bone radius and multiplies it by the multiplier you set. (Min x0.1) If bone is 0, it gets set to the fallback value in mod settings (Default 0.05)
    • Replace Bone Radius's
      • Replace all Dynamic Bone radius's with calculated values based on the bone length.
        • (The max value of either (bone.transform => bone.child(0).transform) or (m_Totalbonelength / Child Depth) then divided by the divisor set in Mod Settings and finally divided by the bone scale)
    • Exclude from 'Adjusting All Zero Radius Bones'
      • This only takes effect if you have the option 'Replace DB radius: Adjust All Zero Radius Bones' enabled in Mod Settings. This option will exclude the selected avatar from being adjusted by that global setting.
  • Auto add hand colliders to this avatar

    • This toggles between 'Enabled/Disabled/NA' where Disabled also disables the global option for adding hand colliders for the selected avatar.

image

Sub Menus

image

MoarBones

Because the world always needs more Dynamic Bones!
This can be toggled in Mod Settings
image
"I hear you like bones~" Toggles this feature on/off
"Performance Limit" Limits this to the first 10 avatars loaded since last toggle/world change
"Don't effect local avatar" Stops moarbones from effecting you. Your own movements are networked through IK, so this is enabled by default.

Or from MDB Settings on the Quick Menu
image

Changelog:

  • Build 1043.3

    • Changed default to only Multiplayer hand coliders
    • Fixed Exclude/Include Specific not working
  • Build 1043.2

    • Updated logging for ML0.5.x
    • Changed GetSelectedUser to use 'field_Private_List_1_Player_0' as previous method was causing issues
  • Build 1043.2

    • Fix for VRC 1151, now using a more consistent method for getting player name
  • Build 1043

    • Fixes for VRC 1149
      • Changed around hooks and variables, resized menus to fit new UIX constraints
    • For settings changes that only affect one user, the mod now only unloads and reloads their bones, instead of everyone's
    • Optimized checks in loops, should be somewhat faster now when adding players
    • Fixed a bug in AutoAddHandColliders where it would fail if the fingers weren't the first children of the hands
    • Added an option to 'Visualize' avatar's DBs and DBCs, this is in the MDB menu when you select someone
    • Added an option for resetting 'DisableAllBones' to false on world change
    • Removed 'DisallowInsideColliders' from the MDB Quick Settings menu, that setting should always be enabled
  • Build 1042.2

    • Fixes for VRC 1132
      • Updated methods for OnAvatarInstantiated, Reloading avatars after toggling Hand Colliders, Reloading all avatars after toggling Moar Bones.
    • Changed the behavior of DistantDisable - This is now "Use custom value for disabling bones if beyond a distance"
      • This previous caused issues if the user disabled the option while bones were disabled for being a certain distance away. However it turns out this feature works differently than expected.
        • The default behavior is m_distanceToDisable = 10 m_distantDisable = True, but m_ReferenceObject = null. The DB docs say with a null refObj it will use the main camera instead. In my testing with MDB uninstalled this is correct, VRC natively disables distant (10m) away bones. We are switching to where m_DistantDisable is always true and we just change the value. This way when DistantDisable is true, we can use the user's value, be it smaller or larger, and when false, the native 10m.
  • Build 1042

    • Fixes for VRC 1113
      • Updated method for OnAvatarInstantiated
      • Removed some unneeded debugging
    • Misc null checks added for Hand&Breast filters and AddColliderToBone
    • Added a separate logging file option
  • Build 1041.4

    • Fixes an error happens when using the Mod "Dynamic Bones Safety" and an NRE in ApplyBoneSettings that would happen when reloading all avatars.
  • Build 1041.3

    • VRC 1108 Compatibility - Fixed outdated method for reloading avatars and shouldn't break every other update now
  • Build 1041.2

    • VRC 1106 Compatibility
    • Fixed OnAvatarInstantiated Hook - Thanks loukylor for pointing at the right method
  • Build 1041.1

    • Melonloader 0.4.0 Compatibility
    • Adjusted the formatting in some debug messages
    • Maybe fixed rare NRE caused by ApplyBoneSettings
  • Build 1041

    • Added a 'Silent Mode' Log Level, this removes the join/leave/swap avatar messages from your log
    • Redid Hooks for RubyClient Compatibility - Thanks DubyaDude
    • Added the Loader Integrity Check
    • In game editor now waits a second between updates
  • Build 1040.1-7

    • Minor bug fixes for various VRC versions
    • Added more description to MoarBones & MoarBones button is moar visible (Added to MDB Settings in Quick Menu)
    • Fix 'Disable All Bones' not really working if Enable if Visible was enabled
    • Fixed issue where all db and dbc were being added to the included list.
  • Build 1040

    • Added an Include Specific option at the request of a mod user.

      • DynamicBones and Colliders now can toggle between Excluded/Included/NA.
        • Excluded is never multiplayered, Included will bypass 'Only enable colliders in hands', 'Only the breast bones will be multiplayer'd'
      • Include/Exclude a Specific Avatar - This replaces the 'Enable/Disable MDB' buttons that used to be on the Per User Quick Menu
        • Excluded avatars will not be multiplayered. Included avatars will bypass per avatar/player filters such as: 'Only I can interact with other bones', 'Only friends and I can interact w/ eachother', 'Desktopers's colliders and bones won't be multiplayer'd'
    • Added a 'Disable All DynamicBones in Scene' option at the request of a ferret

    • Hopefully fixed the scale checks for colliders - Lossy is the answer

    • Moved 'Multiply/Replace/Zero Radius Exclude' to it's own submenu

    • Made Bone/Collider Specific menus go back to the previous one instead of close

    • Added a new MoarBones feature, more info coming soon~

    • Switched from storing lists in ModPrefs and moved to standalone files, on first load of this version the mod will migrate everything to files in UserData/MDB

      • If there is ever an error loading a file, it will rename the old file and make a new one
    • Various bug fixes and NRE fixes (onlyHandCollider & AddAutoCollidersToPlayer if model was human rigged, but missing hands)

  • Build 1039

    • Features/Changes:
      • Added toggles to enable an avatar's own Collider's to be added to their DynamicBones. Can be done just for you, and/or others. Can be enabled in Mod Settings, or the Quick Menu MDB Settings
      • Added an option to auto add hand collid
View on GitHub
GitHub Stars16
CategoryDevelopment
Updated1y ago
Forks7

Languages

C#

Security Score

70/100

Audited on Feb 28, 2025

No findings