maruohon / justenoughdimensions

A simple Minecraft mod to register custom dimensions to the game
GNU General Public License v3.0
12 stars 7 forks source link

My dimension simply isn't appearing in generation #11

Closed Winddbourne closed 6 years ago

Winddbourne commented 7 years ago

I'm working with the 1.10.2 version of Just Enough Dimensions.

I'm not getting any errors. It does successfully delete the end but . . . once I'm in game I don't have my custom dimension. I even went so far as to copy your sample script into my file and it still isn't working. Perhaps you can figure out what is going wrong here.

This is the code I'm using currently:

{ "dimensions": [ { "dim": 9, "dimensiontype": { "id": 9, "name": "Test dim 9", "suffix": "_dim9", "keeploaded": false, "worldprovider": "WorldProviderSurfaceJED" } },
{ "dim": 1, "unregister": true } ] }

This is what I see when I enter a world and pause to check the log:

07:09:00 net.minecraft.server.integrated.IntegratedServer Server thread info Saving and pausing game...
07:09:00 net.minecraft.server.MinecraftServer Server thread info Saving chunks for level 'New World'/Overworld
07:09:00 net.minecraft.server.MinecraftServer Server thread info Saving chunks for level 'New World'/Nether
07:09:00 net.minecraft.server.MinecraftServer Server thread info Saving chunks for level 'New World'/The Beneath
maruohon commented 7 years ago

That config should be fine from a quick look. How did you determine that the dimension isn't present? Simply the command /tpj 9 gives an error? Or did you run /jed listregistereddimensions and dim 9 isn't there?

I would first suggest enabling the verbose logging option (at least while you are testing things) in the main JED config (via the in-game config menu for example), so that you get a lot more helpful log messages of the various things that JED does. In the main config, also check that any other options that you might need have been enabled, for adding custom dimensions I'd at least highly suggest enabling the separate WorldInfo option, although it isn't strictly required (but without it you will only get copies of the overworld).

Then try to launch the game again, and see what JED says it's doing. There should be messages about JED unregistering dimension 1, and some messages about registering dim 9, assuming it would succeed.

Winddbourne commented 7 years ago

I determined that the dimension wasn't present by watching to see it in both the creation area of the log, and then in the saving dimensions data. Then I tested it by trying to teleport there with /tpj . . . oddly I didn't get an error but instead teleported to a completely empty and black void. It was quite unnerving. I'm creating a new log with verbose logging now to see what I can find.

I should be able to report on the results soon.

maruohon commented 7 years ago

JED doesn't load the dimensions by default when you load the world, only when you actually teleport there the first time. So if you didn't have the verbose logging enabled, then there would probably be nothing in the console about the dimension, unless you actually teleport there so that the dimension gets loaded.

Winddbourne commented 7 years ago

I found the problem. I wasn't seeing dimension 9 generate because I had verbose logging turned off, but at the same time void island control was causing all of the default world generations including your JED one to generate as void worlds. So when I teleported there I immediately fell into the void.

So I think I have several things I can do. First I'm going to see if BiomesOplenty gives me a void as well, then I will try Evil Ocean as both would give me the world I want. If neither works then I will report the issue to Bartz and suggest he collaborate with you if needed to solve the problem. He's always been a very responsive mod developer in the past and I really enjoy the way he handles his void worlds.

maruohon commented 7 years ago

Yep if you don't enable WorldInfo overrides for the custom dimension, then it will use the same settings as the overworld. But when you do enable it, then JED does support selecting the generator you want to use for the custom dimensions. So you would add the "worldinfo" section to the dimension config, with the generatorName you want to use, and any generatorOptions that it might need.

maruohon commented 7 years ago

There is an option in the main config for it, and then each dimension that should use them needs to have either the worldinfo or worldinfo_onetime section.

Winddbourne commented 7 years ago

All right I got it working but when I enable separate world data forge pops up with an error as follows:

Forge Mod Loader detected that the backup level.dat is being used

This may happen due to a bug or corruption, continuing can damage your world beyond repair or lose data/progress

It's recommended to create a world backup before continuing.

Of course they don't give you a choice if you say no to spamming the save directory with backups it closes you back to the main menu. Do you know why this is popping up and how I can stop it from doing so and freaking out players using my mod pack? LOL

maruohon commented 7 years ago

Huh... that happens every time when WorldInfo overrides are in use? Are there any errors or other messages in the console that might indicate what is going wrong? You don't even have any modifications to the overworld, ie. dim 0 in the config, right?

Winddbourne commented 7 years ago

Yes. I'm going to copy and attach the portion of the log where I think the error is being registered; but it does go away when I turn off separate world data. My next step will be to make an empty test file with just this mod and begin checking for conflicts and such.

debugging.txt

Winddbourne commented 7 years ago

I tracked down the conflict. It happens when both Just enough Dimensions and Biometweaker are running at the same time AND JED has the seperate world infos enabled.

I'm pretty sure only people like me who get really artistic with their mod packs are going to run into the problem but if you and superckl can put your heads together and fix it that would probably be a good thing.

:)

Winddbourne commented 7 years ago

I've got my dimension loading properly and mostly doing what I want without any errors in verbose logging. But it's giving me normal dimensions rather than my custom one. my guess is that Custom and Customized are both not the right Generator Name for Minecraft's world generator.

I've also considered that World Provider Surface could be wrong.

Below is the bit of code just in case I did something else silly.

I can tell I'm not getting these Generator Options because I'm getting normal biomes rather than fixed biome 22 (jungle hills) and because sea level isn't getting set to 80 to flood those hills and give me tons of little tropical islands.

  "worldinfo_onetime": {
    "generatorName": "Customized",
    "generatorOptions": {"useCaves":false,"useStrongholds":false,"useVillages":false,"useMineShafts":false,"useTemples":true,"useRavines":true,"useMonuments":false,"useMansions":false,"useLavaOceans":false,"useWaterLakes":false,"useLavaLakes":false,"useDungeons":false,"fixedBiome":22,"biomeSize":4,"seaLevel":80,"riverSize":4,"waterLakeChance":4,"lavaLakeChance":80,"dungeonChance":8,"dirtSize":33,"dirtCount":10,"dirtMinHeight":0,"dirtMaxHeight":255,"gravelSize":33,"gravelCount":8,"gravelMinHeight":0,"gravelMaxHeight":255,"graniteSize":33,"graniteCount":10,"graniteMinHeight":0,"graniteMaxHeight":80,"dioriteSize":33,"dioriteCount":10,"dioriteMinHeight":0,"dioriteMaxHeight":80,"andesiteSize":33,"andesiteCount":10,"andesiteMinHeight":0,"andesiteMaxHeight":80,"coalSize":17,"coalCount":20,"coalMinHeight":0,"coalMaxHeight":128,"ironSize":9,"ironCount":20,"ironMinHeight":0,"ironMaxHeight":64,"goldSize":9,"goldCount":2,"goldMinHeight":0,"goldMaxHeight":32,"redstoneSize":8,"redstoneCount":8,"redstoneMinHeight":0,"redstoneMaxHeight":16,"diamondSize":8,"diamondCount":1,"diamondMinHeight":0,"diamondMaxHeight":16,"lapisSize":7,"lapisCount":1,"lapisMinHeight":0,"lapisMaxHeight":32,"coordinateScale":684,"heightScale":684,"mainNoiseScaleX":80,"mainNoiseScaleY":160,"mainNoiseScaleZ":80,"depthNoiseScaleX":200,"depthNoiseScaleZ":200,"depthNoiseScaleExponent":0.5,"biomeDepthWeight":1,"biomeDepthOffset":0,"biomeScaleWeight":1,"biomeScaleOffset":1,"lowerLimitScale":512,"upperLimitScale":512,"baseSize":8.5,"stretchY":12,"lapisCenterHeight":16,"lapisSpread":16}
  }  
},
maruohon commented 7 years ago

I'm not entirely sure if this matters without testing it (I think it does), but the type should be in all lower case, ie. customized. Also, you need to escape the quotation marks in the options string, and you need to give that options json as a string (the example below demonstrates this).

There is one example config for a water world that I made a while back for someone else here: https://pastebin.com/EE2UcVzn

Edit: There are a bunch of other example configs as well here: https://pastebin.com/u/masa-

Winddbourne commented 7 years ago

Thanks!

That customized world example would be a great one to put in the comments. none of the custom world generators I used gave me an output string for the Json that had /'s in it and I eventually made the one I showed you have no outside ""s at all because every time I did I'd get an error say I had an unclosed object at line 20 column 33.

If I removed the {} I got expected ":" not "u"

And when I made it no longer be a single string and inputed it as a JSON set I got no errors but nothing happened.

Using the /'s in my Json editor also gave me nice colored text to show everything was proper . . . rather than regular text which told me nothing was wrong . . . which was true for the file, but wrong for how Minecraft is going to read it. LOL

There is no way I would have guessed how to make this work.

maruohon commented 7 years ago

Yeah, I'm going to link some more of the examples and my pastebin account on the JED page.

Basically that configuration option stuff is handled as a string in vanilla, until the ChunkProvider then parses that string as JSON. So that's why it needs to be surrounded in double quotes, so it becomes a string in the dimension config json, otherwise JED fails to read it. And when you want to have quotes inside a string, they need to be escaped with a \, otherwise it would terminate that outer string (genertorOptions) on the first embedded double quote, and then you get syntax errors because there is more stuff following it that is all messed up when it comes to the JSON syntax...

Winddbourne commented 7 years ago

2017-08-15_18 21 28

And here is the initial pass for my new dimension. There was one oddity I had to deal with where the biome id's were consistantly 2 off but I'll be watching that as I mess with files.

I'm still debating doing something with the water. Perhaps some texture work like I did when I made the sun . . . plus I need to customize the mob spawns without using biometweaker now since that is popping up an error when combined with this mod and I don't want players scared away by that.

I'd use this for more dimensions if there was a in-mod way to move between them even if it was opening up /tpj for certain dimensions so players could go between them in survival. Right now I have The Beneath for earth, my void world for Air, the Nether for fire, and this one for Earth. Earth could easily be done here but I have no way to get players there if they just upload the mod pack and want to play it. lol

I'm using world drop to link the void to the water world "below", nether portals for the nether, and the little box block for the beneath.

maruohon commented 7 years ago

I couldn't reproduce the JED + BiomeTweaker conflict in my quick test. But I'm not using any config for BT. The FML errors you are seeing might actually be caused by a biome ID conflict, caused by erroneus BiomeTweaker configuration, and you also mentioned about getting biome IDs shifted by two... Could you post your BiomeTweaker config(s)?

Winddbourne commented 7 years ago

I uninstalled biome tweaker once I saw that doing so got rid of the conflicts. I don't think I was doing much with it at that point but I'll see if I can reproduce the error. If I can't that would be great. :)

maruohon commented 7 years ago

Alright.

And as to the teleporting, I'm considering how to best implement some kind of teleport command whitelist to JED. I may also make a separate tiny mod at some point soon-ish, for creating configurable portals between different dimensions.

Winddbourne commented 7 years ago

Awesome. I look forward to whatever you come up with.

I did do a quick test with biome tweaker and got no error before I took my son to the doctor's today. Thinking about what I put into my code for Biome Tweaker though I think I know what was causing the error.

Before I started messing with new dimensions I was having a conflict between astral sorcery and endsky that I was having trouble tracking down and one of the alternate solutions I tried before solving it was to have Biome Tweaker turn the sky for all biomes to black. That didn't work so well because it left a light blue "horizon line in a void world but . . . it was harmless so I left it.

When I created new dimensions with different colors I already had the end dimension skybox working again and left things alone letting the new dimensions overwrite for their skies without realizing it until I started using the separate world settings in JED . . . at which point the error started showing up with both mods running.

So I think messing with biome sky color, and dimension sky color probably caused the error. I'll keep looking but that is my current working theory.

maruohon commented 6 years ago

I'm assuming all issues discussed here have been solved...