-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connecting through velocity plugin gives error #10
Comments
Hi there, After some searching I have a fairly good idea about what's happening: many mods nowadays use datapacks for configuration - this is great for most things, but it often means that mods send a tremendous amount of data to/from the client when joining. Depending on the datapack, Data Attributes and PlayerEx specifically can send an enormous amount of data when joining. For PlayerEx/Data Attributes, the server sends a big packet to the client, and if the client acknowledges it, a feedback packet is sent to the server. If a) the client has the incorrect version or b) the server does not receive the feedback packet, login is terminated. This is a long winded way of saying that I'm uncertain whether Velocity is a advisable for modded environments, specifically mods like PlayerEx. I suggest you try using Velocity with Origins, as it has a very similar login/packet system to Data Attributes/PlayerEx. If it works fine, it's a problem on my side and I'll do my best to fix it. If Origins also doesn't work, then you may instead need to take the issue up with Velocity. Do let me know either way though. Hope that helps, |
You are correct, appreciate your insight. It doesn't appear to be specific to your mods as it'll happen with others including Origins. I've reached out to the folks at Velocity & CrossStich to see if they have any ideas |
Thanks for the feedback. In that case I won't close the issue, but I'll add an external label. |
As far as fixing this, the only way you could do it is by asking if the destination server has PlayerEX/DA, and if so, start the datapack packeting procedure. Possibly even use a packet limited process that slows the packeting speeds and shows a splash screen while waiting for it to complete? I don't know, these are just ideas. With Velocity directly supporting modded fabric servers, the only limitations seem to be mod side, however I don't believe it natively supports larger than standard join packet sessions. It's unfortunate. I've reported a similar issue to Velocity, hoping they can fix it. Also, for what it's worth, if the mod is checking for a server side mod and disconnecting when failed, that will directly conflict with velocity modded servers. If that behavior can be altered, that would be beneficial. |
I've just been told by the developers of Velocity, the same as Paper, that enabling larger than 4mb packets will require a rewrite of the code IN velocity itself, not possible to modify using a velocity plugin. Here is their comment:
That being said, your mod (and subsequently, any other mod that uses a similar large packet on join setup) will never work on servers using velocity proxy with a fabric modded setup. This is a great disappointment to me, as there's really no other alternative to fabric modded servers behind a proxy. Velocity is really your only option. If it's possible to code a "slow mode", or a way to disable the datapack checking feature entirely (for those who are really desperate), it would be cool. If not, I don't blame you. Coding such a system would be nothing short of a nightmare and I wouldn't wish that on an enemy. |
For what it's worth, I've used Origins on a modded fabric server, through my Velocity proxy. I don't know how it worked, as I'm not technically trained like you are. But it's possible that Origins packets aren't as big as originally thought. |
Potentially including a check if the target server is velocity and stopping the data reloading could do it. That is an interesting idea. Not sure how feasible it is though. |
Output releases for If anyone is able to verify compatibility with Velocity as of Data Attributes versions |
Hi @Vigilans, |
May or may not be related but an error suspiciously similar to above screenshot also happens when trying to open a replay in ReplayMod with data-attributes installed:
The reason for this is that ReplayMod needs to read, modify and write the GameJoin packet (and it does so with custom code, i.e. not using the vanilla class because it works with multiple game versions), but data-attributes adds extra data to this packet, and that data gets lost because RM doesn't know about it. Depending on what this extra data is, it should probably be sent in a custom payload packet instead of modifying vanilla packets. |
Ah you're right @Johni0702 that could well be it - thanks for your insights, I'll see if I can maybe use custom payload here instead. |
This issue may have been fixed with latest release: 1.4.5+1.19.2. However, Since I'm not actively testing this I won't close the issue. @Johni0702 Incompatibility with ReplayMod should now be fixed - was likely not the same issue as with the Velocity plugin. |
Unsure if this is directly related because I don't receive any actual errors in the logs on the velocity proxy, the backend, or the client other than a |
Can you tell me how to fix the conflict between version 1.18 and replay mod? I need to play with 1.18, and if you can, you can provide a beta version of the file
|
Using Velocity Plugin I received the "Unable to connect: Server requires client to have Data Attributes version 1.1.5" but 1.1.5 is already installed on both client & server. Connecting around the proxy works fine.
If I take this mod and the mods that use DataAttributes out the server connects fine.
The text was updated successfully, but these errors were encountered: