Skip to content

Common Issues

Maurice Eisenblätter edited this page Mar 10, 2022 · 15 revisions

Users experience low FPS

This is in most cases caused by the rendering engine because it can't handle defragmented terrain very well. This can be fixed by decreasing the the amount of air that is used for obfuscation. Simple decrease the weight of air (all types of air: cave_air, void_air or air) or remove it entirely from your configs randomBlocks sections. (Keep in mind there are more than one randomBlocks section in the default config). The reason for using air in the first place is to prevent cave finders from working properly.

Orebfuscator doesn't hide entities (minecarts)

This is intended since the whole obfuscation engine that Orebfuscator uses is designed for hiding blocks not entities. (Meaning Orebfuscator will never support entity obfuscation)

Some/all chunks aren't sent/rendered (world appears empty)

This is still an ongoing issue that we weren't able to fix entirely. However, we found out that replacing the async packet listener with a sync one does decrease the chance of that happening significantly. Thus we recommend to disable the async packet listener in the config if you should encounter this issue. Disabling the async packet listener (advanced.useAsyncPacketListener) will not impact the performance in any significantly way since the whole obfuscation process will still be async (off main-thread). The only downside is that players might experience a slight delay between joining the server and getting all chunks send.

What exactly does useAsyncPacketListener change

When a chunk packet is being send it will get intercepted by ProtocolLib and redirected it to us. We then create an obfuscation request (ignoring cache for this explanation) and enqueue it in the obfuscation queue which gets processed at a later time. We have to cancel or delay the packet because the whole system is async and we want to edit the packets content based on the response to our obfuscation request. If the useAsyncPacketListener is turned on (true) we will use ProtocolLib's built-in async packet listener which allow us to delay packets and contiune their transmission at a later time. If however the opposite is the case we will use a normal packet listener and have to cancel the packets transmission and restart the entire transmission at a later time. That would entail passing the whole packet through the entire ProtocolLib pipeline which probably won't affect performance but I didn't write ProtocolLib so I can't 100% garentee that.

I don't see any blocks obfuscated

This could have many reasons so here is a short checklist to see if you did anything wrong:

  • Check that the player doesn't have the orebfuscator.bypass permission
  • Check if you have installed the latest version of Orebfuscator and ProtocolLib for your game version
  • Check if there are any warnings in the console about a wrongly configured config
  • Check if you used the correct world names in the config

Still not working, check for existing issues our create a new one here

Clone this wiki locally