Open binn opened 2 months ago
you would have to interact with VRChat api regardless all of VRCX's logic is within JS space not CSharp so you would essentially be putting in the same amount of work, this feature is far to out of scope for VRCX and more likely a request for the VRCX Rewrite (whenever that happens)
you would have to interact with VRChat api regardless all of VRCX's logic is within JS space not CSharp so you would essentially be putting in the same amount of work, this feature is far to out of scope for VRCX and more likely a request for the VRCX Rewrite (whenever that happens)
I see, I noticed that in VRCX's code! If that's the case, then this discussion can be slated for a VRCX rewrite, if there is one; or an interface can be made between the JS and plugin.
Or better yet, the plugin API could be written for JS. A lot more programmers are familiar with JS then they are with C#. The simplest solution would be allowing to inject custom JS/CSS with a HUGE warning and only available to some form of developer-only mode.
plugins with JS "exist" through 'custom.js' though this use case is unsupported you are on your own, as for a rewrite that will happen when it happens. https://github.com/vrcx-team/VRCX/issues/528
This has been brought up in the initial draw-up of the rewrite I did last year. We weren't even completely set on the technology, so I'm not even sure how easy that would be in a rewrite. But I've personally shifted my focus away from a rewrite to helping clean up VRCX in its current state because it desperately needed it.
I do understand the versatility of adding plugins, and I'd like them as much as anyone else, there are unfortunately mountains of issues currently in the way of that being possible in a manner that we'd be happy with.
This is not me shutting down the idea, but there are just other things right now that need to be fixed up before this can be taken on
Explain in detail what your suggested feature would be used for.
Plugins would be a neat feature where user-made DLLs could be dropped into a Plugins directory, and loaded by VRCX on startup. Each plugin could have multiple methods that drive how they run, for e.g. always running, event driven, etc.
These plugins would allow everyday users to interact with VRCX and it's data without having to do any of the following:
Describe how it would look if it requires a UI.
The plugins section of the settings page would allow people to browse through community-published plugins, and custom plugins added by the user, or the ability to add plugin lists via custom repository link.
Each plugin can be manually disabled or enabled, as well as having configuration options. I'm thinking something similar to VCC's packages feature, combined with Vencord's Plugin management system. As VRCX is also a web-app desktop management tool for VRChat, it's foundation resembles Discord with Electron, and many plugins are available for modded Discord clients.
Explain why people would want to use it.
The plugin system would be useful in many use-cases. For one of my use-cases in particular, it would allow me to update my HomeAssistant with the names of my currently online favorite friends. I can then use that list to feed it into a display I have in my room, so that I can see which ones of my close friends are online at the moment, just by glancing at the dashboard around my home.
Other reasons could be for automatically making custom group instances without interacting with VRChat's API directly, as VRCX handles it's own rate-limiting and request queue system.
While this is a very niche subject, I thought it would be nice to have it written down here for further discussion. I'm open to you writing your opinion or suggestions as to how this can be shaped, what limitations it should have, if any.