Skip to content
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

Mod causes a disconnect when playing on a server without the mod #56

Open
1 of 2 tasks
WubzyGD opened this issue Jul 5, 2024 · 7 comments
Open
1 of 2 tasks

Mod causes a disconnect when playing on a server without the mod #56

WubzyGD opened this issue Jul 5, 2024 · 7 comments

Comments

@WubzyGD
Copy link

WubzyGD commented Jul 5, 2024

Minecraft version

1.20.1

Farmer's Delight version

2.1.1

Fabric Loader version

15.7

Fabric API version

91

Description

I run a handful of servers bundled in one network for my friends and I. One of them is a fabric survival server, the other two are run on paper.

I would like to begin by clarifying that we have about 200 mods - some of them dealing in world generation, client side, server side, and client/server side interactions, changes, etc - on the fabric server, and have had no issues going from server to server (where one is fabric and the rest are vanilla paper)

I can load into the fabric server without issue and I just tried a public server. But attempting to join any of the others (/server creative) causes a network disconnect.

Steps to reproduce

Have a server network with mismatched launchers
Attempt to load into a non-fabric server in the network

Mod list

	- advancementplaques 1.4.11
	- ambientsounds 5.3.9
	- appleskin 2.5.1+mc1.20
	- architectury 9.1.13
	- autohud 6.3.3+1.20.1
	- balm-fabric 7.2.2
	- beenfo 1.20-fabric0.83.0-1.3.3
	   |-- crowdin-translate 1.4+1.19.3
	   \-- gbfabrictools 1.3.5+1.20
	- betteradvancements 0.3.2.161
	- betterthirdperson 1.9.0
	- blur 3.1.0
	   |-- midnightlib 1.4.1
	   \-- satin 1.13.0
	- boids 1.1.1
	- bookshelf 20.1.9
	- brb 1.10.0+1.20.0-1
	- cameraoverhaul 1.4.0-fabric-universal
	- chunksfadein 1.0.4-1.20.1
	   |-- com_moandjiezana_toml_toml4j 0.7.2
	   \-- crowdin-translate 1.4+1.19.3
	- cicada 0.7.1+1.20.1
	- cleanview 1.20.1-v1-fabric
	- cloth-config 11.1.106
	   \-- cloth-basic-math 0.6.1
	- cobwebs 1.0.0
	- collective 7.39
	- connectiblechains 2.2.1+1.20.1
	- continuity 3.0.0-beta.3+1.20.1
	- craftingtweaks 18.2.3
	- creativecore 2.11.24
	   \-- net_minecraftforge_eventbus 6.0.3
	- cupboard 1.20.1-2.0
	- deepslatetweaks 1.2
	- detailab 2.6.3+1.20.1-fabric
	- diggusmaximus 1.5.9-1.20
	   \-- kyrptconfig 1.5.6-1.20
	- do_a_barrel_roll 3.5.5+1.20.1
	   \-- fabric-permissions-api-v0 0.2-SNAPSHOT
	- doubledoors 5.4
	- durabilitytooltip 1.1.5
	- dynamiccrosshair 7.4.4+1.20
	   \-- yaclx 1.12+1.20.2
	- easyanvils 8.0.1
	- eatinganimationid 1.20+1.9.5
	- ecs 1.3.0-MC1.20
	- elytratrims 3.1.9
	   \-- mixinsquared 0.1.2-beta.4
	- enchantment_lore 1.3.2
	   |-- crowdin-translate 1.4+1.19.3
	   \-- server_translations_api 2.0.0+1.20
	        \-- packet_tweaker 0.4.0+1.19.4
	- enchdesc 17.0.14
	- entity_model_features 1.2.3
	- entity_texture_features 5.2.3
	   \-- org_apache_httpcomponents_httpmime 4.5.10
	- entityculling 1.6.2-mc1.20.1
	- essential-container 1.0.0
	   \-- essential-loader 1.2.0
	- essential-dependencies 0
	   \-- fabric-language-kotlin 1.10.19+kotlin.1.9.23
	        |-- org_jetbrains_kotlin_kotlin-reflect 1.9.23
	        |-- org_jetbrains_kotlin_kotlin-stdlib 1.9.23
	        |-- org_jetbrains_kotlin_kotlin-stdlib-jdk7 1.9.23
	        |-- org_jetbrains_kotlin_kotlin-stdlib-jdk8 1.9.23
	        |-- org_jetbrains_kotlinx_atomicfu-jvm 0.23.2
	        |-- org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm 1.8.0
	        |-- org_jetbrains_kotlinx_kotlinx-coroutines-jdk8 1.8.0
	        |-- org_jetbrains_kotlinx_kotlinx-datetime-jvm 0.5.0
	        |-- org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm 1.6.3
	        |-- org_jetbrains_kotlinx_kotlinx-serialization-core-jvm 1.6.3
	        \-- org_jetbrains_kotlinx_kotlinx-serialization-json-jvm 1.6.3
	- fabric-api 0.91.0+1.20.1
	   |-- fabric-api-base 0.4.30+7abfd51577
	   |-- fabric-api-lookup-api-v1 1.6.35+4d8536c977
	   |-- fabric-biome-api-v1 13.0.12+215bbe9677
	   |-- fabric-block-api-v1 1.0.10+92a0d36777
	   |-- fabric-block-view-api-v2 1.0.0+92a0d36777
	   |-- fabric-blockrenderlayer-v1 1.1.40+b3afc78b77
	   |-- fabric-client-tags-api-v1 1.1.1+97bb207577
	   |-- fabric-command-api-v1 1.2.33+f71b366f77
	   |-- fabric-command-api-v2 2.2.12+b3afc78b77
	   |-- fabric-commands-v0 0.2.50+df3654b377
	   |-- fabric-containers-v0 0.1.63+df3654b377
	   |-- fabric-content-registries-v0 4.0.10+57aed33f77
	   |-- fabric-convention-tags-v1 1.5.4+a1a980da77
	   |-- fabric-crash-report-info-v1 0.2.18+aeb40ebe77
	   |-- fabric-data-generation-api-v1 12.3.3+d7b148e077
	   |-- fabric-dimensions-v1 2.1.53+8536527b77
	   |-- fabric-entity-events-v1 1.5.22+b3afc78b77
	   |-- fabric-events-interaction-v0 0.6.1+e91849a877
	   |-- fabric-events-lifecycle-v0 0.2.62+df3654b377
	   |-- fabric-game-rule-api-v1 1.0.39+ae9f657a77
	   |-- fabric-item-api-v1 2.1.27+b3afc78b77
	   |-- fabric-item-group-api-v1 4.0.11+d7b148e077
	   |-- fabric-key-binding-api-v1 1.0.36+fb8d95da77
	   |-- fabric-keybindings-v0 0.2.34+df3654b377
	   |-- fabric-lifecycle-events-v1 2.2.21+b3afc78b77
	   |-- fabric-loot-api-v2 1.2.0+96dfa95977
	   |-- fabric-loot-tables-v1 1.1.44+9e7660c677
	   |-- fabric-message-api-v1 5.1.8+d7b148e077
	   |-- fabric-mining-level-api-v1 2.1.49+b3afc78b77
	   |-- fabric-model-loading-api-v1 1.0.2+709a987177
	   |-- fabric-models-v0 0.4.1+9386d8a777
	   |-- fabric-networking-api-v1 1.3.10+eeb8eb3677
	   |-- fabric-networking-v0 0.3.50+df3654b377
	   |-- fabric-object-builder-api-v1 11.1.2+4ee0bc6077
	   |-- fabric-particles-v1 1.1.1+201a23a077
	   |-- fabric-recipe-api-v1 1.0.20+b3afc78b77
	   |-- fabric-registry-sync-v0 2.3.2+4df89eb277
	   |-- fabric-renderer-api-v1 3.2.0+39a511ba77
	   |-- fabric-renderer-indigo 1.5.0+39a511ba77
	   |-- fabric-renderer-registries-v1 3.2.45+df3654b377
	   |-- fabric-rendering-data-attachment-v1 0.3.36+92a0d36777
	   |-- fabric-rendering-fluids-v1 3.0.27+b3afc78b77
	   |-- fabric-rendering-v0 1.1.48+df3654b377
	   |-- fabric-rendering-v1 3.0.7+b3afc78b77
	   |-- fabric-resource-conditions-api-v1 2.3.7+29de845d77
	   |-- fabric-resource-loader-v0 0.11.9+132c48c177
	   |-- fabric-screen-api-v1 2.0.7+b3afc78b77
	   |-- fabric-screen-handler-api-v1 1.3.29+b3afc78b77
	   |-- fabric-sound-api-v1 1.0.12+b3afc78b77
	   |-- fabric-transfer-api-v1 3.3.3+c81d263177
	   \-- fabric-transitive-access-wideners-v1 4.3.0+6c31357e77
	- fabricloader 0.15.7
	   \-- mixinextras 0.3.5
	- fallingleaves 1.15.4
	- farmersdelight 1.20.1-2.1.1+refabricated
	   |-- mm 2.3
	   |-- porting_lib_accessors 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_base 2.3.4+1.20.1
	   |    |-- porting_lib_attributes 2.3.4+1.20.1
	   |    |-- porting_lib_common 2.3.4+1.20.1
	   |    |-- porting_lib_core 2.3.4+1.20.1
	   |    |-- porting_lib_entity 2.3.4+1.20.1
	   |    |-- porting_lib_fluids 2.3.4+1.20.1
	   |    |-- porting_lib_mixin_extensions 2.3.4+1.20.1
	   |    |-- porting_lib_transfer 2.3.4+1.20.1
	   |    |-- porting_lib_utility 2.3.4+1.20.1
	   |    \-- reach-entity-attributes 2.4.0
	   |-- porting_lib_client_events 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_config 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_extensions 2.3.4+1.20.1
	   |    |-- porting_lib_attributes 2.3.4+1.20.1
	   |    |-- porting_lib_common 2.3.4+1.20.1
	   |    |-- porting_lib_core 2.3.4+1.20.1
	   |    \-- reach-entity-attributes 2.4.0
	   |-- porting_lib_lazy_registration 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_loot 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_networking 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_recipe_book_categories 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_registries 2.3.4+1.20.1
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   |-- porting_lib_tags 3.0
	   |    \-- porting_lib_core 2.3.4+1.20.1
	   \-- porting_lib_tool_actions 2.3.4+1.20.1
	        \-- porting_lib_core 2.3.4+1.20.1
	- farsight 1.20.1-4.2
	   \-- org_jctools_jctools-core 4.0.1
	- firstperson 2.4.1
	- forgeconfigapiport 8.0.0
	- fsit v1.3.0
	   |-- com_electronwill_night-config_core 3.6.6
	   \-- com_electronwill_night-config_toml 3.6.6
	- iceberg 1.1.18
	- immersive_paintings 0.6.7+1.20.1
	- incendium 5.3.1
	- indium 1.0.27+mc1.20.1
	- inventoryessentials 8.2.3
	- inventorysorter 1.9.0-1.20
	   \-- kyrptconfig 1.5.6-1.20
	- invmove 0.8.4
	- iris 1.6.11
	   |-- io_github_douira_glsl-transformer 2.0.0-pre13
	   |-- org_anarres_jcpp 1.4.14
	   \-- org_antlr_antlr4-runtime 4.11.1
	- itemborders 1.2.1
	- items_displayed 1.2.2
	- java 17
	- journeymap 5.9.12
	   \-- journeymap-api-fabric 1.20-1.9-fabric-SNAPSHOT
	- legendarytooltips 1.4.5
	- litematica 0.15.3
	- litematica_printer 3.2
	- malilib 0.16.1
	- maptooltip 3.0.0
	- merchantmarkers 1.3.1
	- minecraft 1.20.1
	- minihud 0.27.0
	- modmenu 7.2.2
	- nemos-woodcutter 1.6.0-1.20.1
	- noexpensive 1.20.1-1.9.0
	- nullscape 1.2.2
	- nvidium 0.2.4-beta
	- physicsmod 3.0.6
	- presencefootsteps 1.9.0
	   \-- kirin 1.15.0
	- prism 1.0.5
	- puzzleslib 8.1.20
	   \-- puzzlesaccessapi 8.0.7
	- replanter 1.3
	- replaymod 1.20.1-2.6.13
	- roughlyenoughitems 12.0.684
	   \-- error_notifier 1.0.9
	- sfcr 1.7.6-mc1.20
	- signtools 1.0.3
	- silkspawners 1.1.3
	- skinlayers 1.5.4-mc1.20.1
	- smoothswapping 0.9.3.1
	- sodium 0.5.3
	- sound_physics_remastered 1.20.1-1.1.2
	- status-effect-bars 1.0.3
	- supermartijn642configlib 1.1.8+a
	- supermartijn642corelib 1.1.17
	- terralith 2.4.3
	- tia 1.20-1.1
	- trade_cycling 1.20.1-1.0.7
	- vectorientation 1.1
	- voicechat 1.20.1-2.4.32
	- worldedit 7.2.15+6463-5ca4dff
	- yeetusexperimentus 2.3.0-build.4+mc1.20.1
	- yet_another_config_lib_v3 3.2.2+1.20
	   |-- com_twelvemonkeys_common_common-image 3.10.0-SNAPSHOT
	   |-- com_twelvemonkeys_common_common-io 3.10.0-SNAPSHOT
	   |-- com_twelvemonkeys_common_common-lang 3.10.0-SNAPSHOT
	   |-- com_twelvemonkeys_imageio_imageio-core 3.10.0-SNAPSHOT
	   |-- com_twelvemonkeys_imageio_imageio-metadata 3.10.0-SNAPSHOT
	   |-- com_twelvemonkeys_imageio_imageio-webp 3.10.0-SNAPSHOT
	   |-- org_quiltmc_parsers_gson 0.2.1
	   \-- org_quiltmc_parsers_json 0.2.1

Logs

latest.log

15:38:19.687
Essential Logger
Netty Client IO #8
Network Exception Caught
io.netty.handler.codec.DecoderException: net.minecraft.class_151: Non [a-z0-9/._-] character in path of location: inecraft:piston#minecraft:yellow_dye_from_dandelion\u0012minecraft:charcoal\u0017minecraft:stone_pickaxe\u0015minecraft:ston
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:489)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at com.replaymod.recording.packet.PacketListener.channelRead(PacketListener.java:380)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:444)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: net.minecraft.class_151: Non [a-z0-9/._-] character in path of location: inecraft:piston#minecraft:yellow_dye_from_dandelion\u0012minecraft:charcoal\u0017minecraft:stone_pickaxe\u0015minecraft:ston
	at net.minecraft.class_2960.method_45137(class_2960.java:252)
	at net.minecraft.class_2960.<init>(class_2960.java:47)
	at net.minecraft.class_2960.<init>(class_2960.java:51)
	at net.minecraft.class_2960.<init>(class_2960.java:56)
	at net.minecraft.class_2540.method_10810(class_2540.java:723)
	at net.minecraft.class_2540.method_34068(class_2540.java:218)
	at net.minecraft.class_2540.method_34066(class_2540.java:231)
	at net.minecraft.class_2713.<init>(class_2713.java:35)
	at net.minecraft.class_2539$class_4532.method_22310(class_2539.java:459)
	at net.minecraft.class_2539.method_10783(class_2539.java:522)
	at net.minecraft.class_2543.decode(class_2543.java:32)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)
	... 41 more

Minimal instance

  • I have tested this on a minimal instance

Performance and shader mods

  • I am using performance or shader mods
@MehVahdJukaar
Copy link
Owner

most mods cant work if you dont add them to the server. its like trying to connect a 1.21 client to a 1.20.1 server. Hopefully that makes sense

@WubzyGD
Copy link
Author

WubzyGD commented Jul 26, 2024 via email

@MehVahdJukaar
Copy link
Owner

MehVahdJukaar commented Jul 27, 2024

It doesn't really matter. This is not an issue, mods are not made to be used on a mismatched connection like that. If they are they will be marked as client only. There are many things that could cause this, heck in forge the loader itself will enforce this not allowing you to connect if registries are out of sync. Many issues and client side desyncs can and will happen when you have mods that ste not on the server. Like idk performing an action thanks to an event only to see it quickly replaced back as the server informs the client that infact nothing happened.

@MehVahdJukaar
Copy link
Owner

If you want to connect to a server without the mod simply boot up an instance without, it's that simple

@MehVahdJukaar
Copy link
Owner

Also terralith is just a datapack, a server side mod. It doesn't even need to be there on the client. Why do you even want to connect to a server that doesn't have the mod? You won't be able to use any of the mod features there

@WubzyGD
Copy link
Author

WubzyGD commented Jul 27, 2024

Terralith is a mod jar in my mods folder, as you can see above. No idea if it provides anything to the client, but it was a quick example. I had a minimal hand in building the pack - I just run the server. I again have dozens and dozens of mods-- that's the main thing to bear in mind.

I'm glad forge doesn't allow connections with mismatched registries. Perhaps fabric chose not to include this block for a reason? And perhaps also the dozens upon dozens of mods I have don't cause any issues... for a reason?

My friends and I enjoy the benefits of being able to quickly swap to a separate world/server from within a small hub of servers to, for example, test a build in a plain creative superflat. To be specific, this is one single server connection proxied to separate instances on my machine. I just /server creative or /server home (survival) and we can jump around. Our modpack, with this mod being a new exception, is a vanilla+ sort of pack that doesn't make any significant additions to the game worth making available in the other servers.

Arguing however at this point is pointless. If you want to chalk it off to a me issue, I'll decompile or clone and add conditionals to prevent this issue myself. I thought the developer of the mod might be willing to take a few minutes and see if they could point me in a better direction or lend some time and effort to solve an issue clearly sourced from and unique to their mod, but that seems not the case, and I apologize for wasting your time.

@MehVahdJukaar
Copy link
Owner

any mod contains a datapack. terralith is specifically one thats primairly if just the datapack, bundled as a mod. Most worldgen mods are server only as worldgen is something server driven.
Fabric doesnt include that for the same reason why doing anything on it always requires re inventing the wheel: it just doesnt have any features.
As for the mods you have you WILL have desyncs. maybe just minor that you never noticed but as ive said mods that arent marked as client side are not meant to be used like that. This obviously is deeply untested territory too. Looking at you mod list you also do have a majority of them being either client side only or server side only stuff like terralith.
Oh and the log you sent is the client one. Its the server one that will tell why it didnt accept the client

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants