1.12 scripts must be on client AND server
tyler489 opened this issue ยท 21 comments
Issue Description:
Note: If this bug occurs in a modpack, please report this to the modpack author. Otherwise, delete this line and add your description here. If you are using an unnofficial version of Minetweaker or Crafttweaker please report it to the person who gave you the version. Also please look at the other issues to make sure that you are not creating a duplicate.
it happens in a modpack but its a craftweaker issue
What happens:
Adding a script to the server that isnt on the client results in clients being unable to connect with a Fatily missing blocks and items error
What you expected to happen:
I expected it to function as it used to in 1.10 and it just to work on the server
Script used (Please Pastebin or gist your script, posting an unpasted or ungist'd script will automatically close this issue):
Minetweaker.log file (Please Pastebin or gist your file, posting an unpasted or ungist'd file will automatically close this issue):
Affected Versions (Do not use "latest"):
- Minecraft: 1.12
- Forge: 1.12 - 14.21.1.2426
- Crafttweaker: 1.12-4.0.1
Your most recent log file where the issue was present:
Nothing shows on the server log
[pastebin/gist/etc link here]
This really hurts crafttweakers usefulness as a server operators tool as if a block is a known lag causer i would disable the recipy with minetweaker so players could still use the mod without the laggy block.. now i guess i will just disable the whole mod if the mod pack dev wont listen to me and supply scripts to remove the laggy item
Well that forge error message is just a general message for anything missing, in this case it is recipes that are missing.
I can't do anything to fix this, so I don't know what you want from me, just give the scripts to the client
Unfortunitly some people arnt smart enough to figure out how to drag and drop files...
Unfortunitly some people arnt smart enough to figure out how to drag and drop files...
Yeah, I have experience with this kind of person. Even picture instructions (AKA "IKEA Directions") won't help them.
I know how you guys feel, but there isn't really another option at the moment, recipes need to be added before postInit (which is before the main menu appears), so it's not like I can add a "get scripts from server" button, at the moment there is no solution to this
Would creating the server files on the client so they are present on a client restart be too obtrusive?
I did think of that, it would be annoying for users to have to restart their game, and it will still error if they don't restart
Not a bug. Scripts can no longer be reloaded and have to be run before the game is loaded, thus scripts cannot be sent from the client to the server
Is it possible for you to hook into the Fatally missing blocks and items
error and print out something like "Please note that since 1.12 CraftTweaker Scripts need to be on the server and the client, the above error message could be caused by this"?
I just debugged my server for a hour or so just to remember that yesterday I added a recipe fix on it. I was really hopeless and thought "maybe 'blocks and items' also include recipes since 1.12". I was just lucky to find the bug, so a message would be really really convenient.
Damn. There are data packs with recipes now, right? Any possibility of sneaking zs files in there? I mean, for those there is a download from server button, if I remember right. That might be a possible improvement. But I'm just brainstorming, I'm sure you already tried some stuff.
nope, because those packs would load too late, and as far as I know, they don't do recipes
Yes, after futher research that would be a 1.13 thing. But they do recipes, so there might be a hook coming for you.
this should be better now thanks to MinecraftForge/MinecraftForge@28e3410 obviously recipes still wont show up in JEI etc. but they work at least and you can connect to the server with a script mismatch
Can recipes be disabled at run time without as many problems? I believe this is how Game Stages works. As a potential workaround, the scripts could be synced between server and client. Then the client would need to restart, activating those scripts. From there all recipes would be disabled unless the player connects to the server they got the scripts from.
alright - so although that's already 2 1/2 years old now - but what was the issue back then why scripts weren't able to sync from server to the client? was it an issue of MC itself? forge? JEI? ct?
I'm just asking as I currently put together a small pack in 1.12.2 (just cause the mods I want to play with still not updated to any newer version) and one of the mod authors told me to just use CT instead of s/he just add a very simple config wich would be able to sync up ...
as I may plan to share the pack with others would be cool to know - sure, in my case it also works if the client does not have the specific line in the script - it just shows up in JEI for them - but as already mentoined here - there're some people not able to open a text file and add one line even if you provide them ikea-style instructions or even a YT video ...
It was a mixture of everything.
Forge locked the recipe registry.
JEI caching was a mission to deal with.
Reloading things doesn't always work
first: thanks for the reply =D
well - ok, I see, so there wasn't anything CT would been able to sync on it's own without restart - guess we have to "blame" forge then how they handled that back then =P
at least now I have a clear info - so I may could report back to the mod author that CT maybe isn't that best solution as s/he praised it to be (s/he got that mad just to lock down the issue I created just cause I replied that for some reason JEI doesn't sync up - such ignorant bastard) - at least when the mod itself would just have an option to toggle the specific feature the recipe would already been loaded by the mod - but would just either show up or not on JEI (and would work or wouldn't)
anyway - as I may share it just with a small community I'm part of, if at all, it's ok to either explain where and how to add the missing line - or just tell them it will work although it doesn't show in JEI without the line
what bothers me - but I guess that's also how 1.12.2 worked - please don't take this as "blame": when the server runs CT it's also required on the client - there's no way to just have it on the server to tweak some TileEntity accept additional inputs to just make something work - let alone sync the additional recipe down to the client - it'S just as it happend to be back then and I have to take it as given - maybe if I would had been part of it when 1.12.2 came out I MAY had been able to give input on forge, here, the mod - to just MAYBE had made that work as I expected it to be - but I guess I'm just a few years late to that party
thanks again for the reply anyway - at least explained to me why it's the way it is and that there wasn't really a way for CT to around it - just cause the base framework forge just didn't supported it