UtilitiX

UtilitiX

2M Downloads

Experience Crystal cannot receive or send liquid experience after a certain amount of levels stored

v-tron opened this issue ยท 12 comments

commented

Minecraft version

1.20.1

LibX version

1.20.1-5.0.14

UtilitiX version

1.20.1-0.8.15

Forge version

47.2.20

The latest.log file

https://gist.github.com/v-tron/a3f2a74045dec7f9f9de5cee537024e9

Issue description

We have ~14k levels stored in the crystal and the crystal has stopped accepting experience piped in via any means. I have tried several different XP vacuums and liquid pipes and tanks. When I take out all the experience, the crystal starts accepting the experience again.

However, I can still store and retrieve experience via the GUI of the crystal.

Steps to reproduce

No response

Other information

No response

commented

Was it a different xp fluid than before? In my tests, I was able to insert more than 14k levels into the crystal by fluid.

commented

It might not have been the same type but I am quite certain the bug happened regardless. We first had a setup where we had a Sophisticated Backpack with XP collection upgrade and overflow void upgrades. I then changed the setup to separate XP and item vacuuming. However, I noticed that the backpacks XP tank was always full. I assume it voided the overflowing experience but I would need to test this to confirm.

The setup I have right now is a modular router with XP vacuum set to Essence Bucket (not Memory Essence from Pneumaticcraft) and a fluid upgrade to push it into the crystal.

At low or no experience in the crystal, the router pushes the XP just fine. When I put the 14k levels in, the output from the router stops and the XP overflows and XP orbs accumulate in the mob farm.

If you want I can record a video to showcase it and maybe test with a different XP type.

EDIT: It wasn't exactly 14k levels, probably more like 14.6k but I haven't tested the cutoff point for this to happen.

commented

Yeah, a video would be good. That way, I can try to reproduce it better.
Please tell me the modpack you're playing. That way, it's easier to reproduce.

And I tested with 15k... wait a second, I think I made a mistake by that! I think I know the problem, but not 100% sure!

commented

Modpack is AllTheMods 9, version 0.2.61. I can record a short video later today.

commented

When it stops inserting fluid, does it continue after adding 1 xp per GUI?
I tested a bit more. At 4902 levels or 107_374_182 stored xp points, the internal fluid tank reaches the maximum value. Some mods don't even try to insert fluid when this is the case, however the crystal would still accept it. After adding 1 level of mine, the xp from the Mob Grinding Utils Absorption Hopper started to try inserting more fluid. So, the problem is that the inserter thinks that the crystal is full, but it isn't. So yeah, maybe a video would be helpful, thanks :)

commented

Thats a weird interaction, I will test this later. However, this still doesn't really explain why the crystal cannot output any XP as well. I have an AE2 import bus connected and it sucks XP out of the crystal just fine at the lower level count but stops once the high levels are in the crystal. So no input AND no output. This isn't really explained by the mod thinking the tank is full, unless AE2 experiences some kind of overflow with the tank value.

If the full tank is the issue, you might want to consider coding it so that the tank can never fully fill up.

commented

You're right. I will test a bit more tomorrow. I think it overflows the tank so that it's on the minimum end. Because it's below 0 then, nothing tries to drain fluid. It should work if the mods just use IFluidHandler#fill and IFluidHandler#drain by passing the IFluidHandler.FluidAction SIMULATE instead of checking if the stored amount is below zero or beyond max capacity. That's annoying if that's the case. But I need to test a bit more.

commented

So I just got to testing the interactions and it's quite confusing. The crystal definitely stops accepting XP at 4902 levels.

Having the modular router with a fluid module configured to output to the side where the crystal is (so no pipe between router and crystal) the modular router does not fill the internal fluid tank that I put in as a buffer. The XP orbs just sit in the farm for some very weird reason that I don't understand.

When I then put a level into the crystal, the orbs disappear. However, the crystals levels do not increase anymore, even though XP orbs apparently get collected by the router and output to the crystal since the internal router tank is still empty and no xp orbs accumulate on the ground. It seems like the crystal or the router are somehow voiding the levels. There might be a modular routers bug involved as well. The modular router interactions with the internal tank, the fluid module and the transfer rate seem to be at least a little buggy themselves.

I then changed up the configuration and installed Sophisticated Backpack again, along with a fluid pipe from Pipez. The backpack did pick up the XP and output it to the crystal until the 4902 cap. It then filled up it's internal tank and refused to pickup more orbs, even after adding a level to the crystal. I switched the pipe to a Mekanism fluid pipe and observed the same behaviour. Pulling levels to below 4902 caused both configs to output fluid XP to the crystal again.

Finally, I put down a router again and combined it with a pipe to output to the crystal instad of the Fluid Module. This interaction did not seem to void any experience, the crystal simply stops accepting levels, the fluid pipe fills up and the internal buffer of the router fills up normally. For some odd reason, the mekanism pipe in between the router and the crystal does not fully fill up. Either the GUI is bugged or something else weird is going on. I suspect it's modular routers being buggy though.

I uploaded clips for the interactions:

https://youtu.be/8vhMrEq8fcU

https://youtu.be/TCaGSEPDFJE

https://youtu.be/gyzMWRxBXC0

commented

Are you playing in Singleplayer or a server where you can edit files? If yes, could you try with this version installed? If that version fixes the problem (in all cases), I have a valid solution and I will publish this as a new version.
You may want to test it with a separate world since you're still on version 0.8.15 of UtilitiX and when using this Jar file, and switching back, it could result in problems. Alternatively, you could try to send me your world in any way. Then I could try to test it.

UtilitiX-1.20.1-0.8.21-test.zip

commented

I'm currently not at home but I can export und upload the world on monday or make a backup and test with the new jar.

commented

Okay, just got to testing and it looks like it works. Looks like you add a new tank every time the last one is full? Having a lot of levels clutters the GUI a bit due to all the tanks, but it doesn't really matter.

The first time I depoed like 10k levels into the crystal my client crashed with this error, but no crash log was generated. I restarted my client and now its working without issue, so I don't know what happened there, might have been a one-off.

commented

The crash is weird, but maybe a one-timer, yes. Thank you for testing! Will publish the fix soon.
And yes, a new tank when too less space in the old tank :) I just didn't know whether the popular pipe mods handle this properly :) And if everything works.