Im trying to figure out how i can make my minecraft maps generate all structures in all dimensions, but without villages spawning anywhere in the world.
How can i just turn off certain generation settings like the generation of villages (so i can convert zombie villagers to villagers and start from the ground up)
The Meaning of Life, the Universe, and Everything.
Join Date:
2/11/2017
Posts:
662
Member Details
If you're playing 1.16 or later, you can simply use custom world generation through a JSOn file - Much easier than trying to mod yourself, and you can even create your own structures if you want. https://minecraft.gamepedia.com/Custom
Rollback Post to RevisionRollBack
Remember those versions that minecraft pranked us with? Specifically:
Minecraft 2.0
Minecraft 1.VR-Pre1
Snapshot 15w14a
Minecraft 3D
Those are still downloadable! Watch this video for 2.0:
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
If you're playing 1.16 or later, you can simply use custom world generation through a JSOn file - Much easier than trying to mod yourself, and you can even create your own structures if you want. https://minecraft.gamepedia.com/Custom
This is more what im wanting. Can someone point me to a default world preset json for 1.16+ or better yet create one for me? I would so appreciate thank you guys for your help
This is more what im wanting. Can someone point me to a default world preset json for 1.16+ or better yet create one for me? I would so appreciate thank you guys for your help
This should be the default, though I am not precisely sure how to edit structure generation:
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
When i try adding structures to the above syntex i dont understand what "salt" is or what integer salt should be for a particular structure. So i put a random number in and then i get errors. Im having trouble getiing strongholds to spawn like they do in vanilla mc i dont know what the default settings for stronghold or mineshaft is.
Or how many chunks seperate or spacing between them ahould be.
When i try adding structures to the above syntex i dont understand what "salt" is or what integer salt should be for a particular structure. So i put a random number in and then i get errors. Im having trouble getiing strongholds to spawn like they do in vanilla mc i dont know what the default settings for stronghold or mineshaft is.
Or how many chunks seperate or spacing between them ahould be.
Can someone shed some light on this please?
I found a version with all the structures included. Note that this value sets all seeds to "0", which you would probably like to change when creating new worlds. I'm pasting it here:
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
Now my question is, how do i determine the salt of a particular structure? Is it just a random integer or is it a specific number? Someone explain salt to me.
Also i see that stronghold is listed twice under structures. Once with distance, spread, and count,and again with spacing seperation and salt, can i apply this code to all structures? What exactly does it do and what can i use it for? I am perplexed
Now my question is, how do i determine the salt of a particular structure? Is it just a random integer or is it a specific number? Someone explain salt to me.
Also i see that stronghold is listed twice under structures. Once with distance, spread, and count,and again with spacing seperation and salt, can i apply this code to all structures? What exactly does it do and what can i use it for? I am perplexed
The "salt" is a number which is used to help ensure that each structure has its own positions within a grid whose region size is the "spacing" and region-relative offset is (spacing - separation) (that is to say, a "spacing" of 32 means that the game divides the world into 32x32 chunk regions and attempts to place one structure somewhere within each region (whether it actually generates depends on if the location is suitable); if the "separation" is 8 this means that they generate within a 24x24 chunk area within each 32x32 chunk region and the min-max distance between structures ranges from 8-56 chunks). if you set the "salt" to the same value for e.g. villages and desert temples (both 32/8 for spacing/separation) then they will always generate on top of one another; if the salts are different then there is a 1 in 576 chance that they will generate in the same chunk within any one region. Another reason to change the "salt", mainly relevant for multiplayer, is to deter people from using seed-cracking tools to discover the world seed from structure locations (Spigot enabled you to change this for this very reason long before Mojang let you change it; in older versions it is hardcoded in).
(TLDR; you can ignore the "salt" and for some structures, like mineshafts, the parameters do nothing; the second stronghold option listed is just a placeholder and the real one has distance/spread/count)
The "salt" is a number which is used to help ensure that each structure has its own positions within a grid whose region size is the "spacing" and region-relative offset is (spacing - separation) (that is to say, a "spacing" of 32 means that the game divides the world into 32x32 chunk regions and attempts to place one structure somewhere within each region (whether it actually generates depends on if the location is suitable); if the "separation" is 8 this means that they generate within a 24x24 chunk area within each 32x32 chunk region and the min-max distance between structures ranges from 8-56 chunks). if you set the "salt" to the same value for e.g. villages and desert temples (both 32/8 for spacing/separation) then they will always generate on top of one another; if the salts are different then there is a 1 in 576 chance that they will generate in the same chunk within any one region. Another reason to change the "salt", mainly relevant for multiplayer, is to deter people from using seed-cracking tools to discover the world seed from structure locations (Spigot enabled you to change this for this very reason long before Mojang let you change it; in older versions it is hardcoded in).
(TLDR; you can ignore the "salt" and for some structures, like mineshafts, the parameters do nothing; the second stronghold option listed is just a placeholder and the real one has distance/spread/count)
Now that is interesting! May i ask where you got those datas?
I am currently struggling with my mod, i could need more vanilla references.
Rollback Post to RevisionRollBack
My projects:
-are abandoned for now. I might pick 'em up in the future.
For now i'm working on a private modpack that suit's my own playstyle.
I am gonna stay in modded 1.12.2 untill my potato dies. No mercy! :Q
Now that is interesting! May i ask where you got those datas?
I am currently struggling with my mod, i could need more vanilla references.
This come from the source code for 1.6.4, which uses the same values as modern versions, just hardcoded in; for example, villages:
// Sets spacing and separation for default worlds
public MapGenVillage()
{
this.spacing = 32;
this.separation = 8;
}
protected boolean canSpawnStructureAtCoords(int chunkX, int chunkZ)
{
int x = chunkX;
int z = chunkZ;
// Calculates region coordinates (properly floored for negative coordinates)
if (chunkX < 0) chunkX -= this.spacing - 1;
if (chunkZ < 0) chunkZ -= this.spacing - 1;
int regionX = chunkX / this.spacing;
int regionZ = chunkZ / this.spacing;
// This method returns a Random instance whose seed is set based on the region
// coordinates and a "salt"
Random rnd = this.worldObj.setRandomSeed(regionX, regionZ, 10387312);
// Calculates where structure can generate within region
regionX *= this.spacing;
regionZ *= this.spacing;
regionX += rnd.nextInt(this.spacing - this.separation);
regionZ += rnd.nextInt(this.spacing - this.separation);
// Checks if offsets match chunk coordinates and that biomes are valid
return (x == regionX && z == regionZ && this.worldObj.getWorldChunkManager().areBiomesViable(x * 16 + 8, z * 16 + 8, 0, villageSpawnBiomes);
}
I also made my own code which does the same thing, just a bit differently, for example, I use this code to determine the locations of colossal cave systems and strongholds, which use a 64x64 chunk grid with regions alternating between each type (I add seed-dependent offsets to the chunk coordinates so the grid is shifted from seed to seed; since vanilla always uses a fixed grid this means that e.g. villages will never generate at multiples of 32 plus 24-31 in any seed):
public boolean validColossalCaveLocation(int chunkX, int chunkZ, int distance)
{
// Offsets are randomized based on the world seed so every seed has a different grid alignment
chunkX += this.caveOffsetX;
chunkZ += this.caveOffsetZ;
// This is != for strongholds so they generate in different regions
if ((chunkX & 64) == (chunkZ & 64)) return false;
// This is a custom method in my own RNG class which creates a seed from a coordinate pair, otherwise
// it is functionally the same as vanilla's method (the "salt" is now used to set internal
// "seedModifiers" which affect the chunk seed calculation)
this.colossalCaveRNG.setChunkSeed(chunkX >> 6, chunkZ >> 6);
// Cave systems generate within a 32x32 chunk area within each 64x64 chunk region (excluded from near
// the origin)
return (chunkX & 63) == this.colossalCaveRNG.nextInt(32) && (chunkZ & 63) == this.colossalCaveRNG.nextInt(32) && distance >= COLOSSAL_CAVE_EXCLUSION_DISTANCE;
}
Actually, my version of the village code is much simpler and easier to understand; by adding a large positive offset, larger than any possible chunk coordinate, even at the 32 bit block limit (which can actually be reached) I don't need to worry about handling negative values (negative values need to be floored/rounded down), and I simply compare offsets to determine if they can generate (vanilla converts the region coordinates back into chunk coordinates and adds the offsets to them, then compares them to the original chunk coordinates):
protected boolean canSpawnStructureAtCoords(int chunkX, int chunkZ)
{
int x = chunkX + this.offsetX;
int z = chunkZ + this.offsetZ;
this.spawnRNG.setChunkSeed(x / this.regionSize, z / this.regionSize);
// Directly compares the region-relative offsets without converting them back to chunk coordinates
if ((x % this.regionSize) == this.spawnRNG.nextInt(this.regionOffset) && (z % this.regionSize) == this.spawnRNG.nextInt(this.regionOffset))
{
// Checks if village can generate
}
}
// From custom RNG class; equivalent to 2^29 + nextInt(2^30), used to randomize structure offsets
public final int getOffset()
{
this.state = this.state * 2862933555777941757L + 3037000493L;
return (int)(this.state >>> 34) + 536870912;
}
// Calculates chunk seed in a manner similar to GenLayer (uses same constants, different
// from main RNG constants).
public final void setChunkSeed(int x, int z)
{
this.state = this.initialState + (this.seedModifierX ^ (long)x);
this.state *= this.state * 6364136223846793005L + 1442695040888963407L;
this.state += this.seedModifierZ ^ (long)z;
this.state *= this.state * 6364136223846793005L + 1442695040888963407L;
}
should i leave the distance spread and count a specific number for strongholds? right now i have the count at 128 and distance and spread 0
From what I can tell, based on the source for 1.6.4, "distance" controls the distance between the minimum and maximum distances within a ring; vanilla 1.6.4 defaults to 32 (the same as modern versions) and calculates the distance from the origin as (1.25 + ringDistance * random(0 to 1)) * distance, which gives 40-72 chunks or 640 to 1152 blocks. "spread" appears to control the angular spacing , where they generate 120 degrees apart with a spread of 3 (for the first ring). Notably, if "spread" is 0 it will cause a division by 0 so it must be at least 1, and may be internally limited to this (the Superflat code in 1.6.4 makes sure it is at least 1). Also, for other structures (spacing - separation) must be at least 1 or the game will crash unless it avoids this situation (in 1.6.4 only spacing is available as "distance" in Superflat presets, which is internally limited to at least 9 as the separation is fixed at 8. The Wiki says that ocean monuments provide both values and setting them incorrectly crashes the game, but I don't know if that is an issue with the newer customized worlds feature).
I need someone to make changes to the code to adjust for the new NOISE and heights in general settings for versions after the snapshot 21w06.
if someone could take the above code and modify it to reflect this change, i would so appreciate this. please i'm asking sincerely it means so much to me. thanks!
Im trying to figure out how i can make my minecraft maps generate all structures in all dimensions, but without villages spawning anywhere in the world.
How can i just turn off certain generation settings like the generation of villages (so i can convert zombie villagers to villagers and start from the ground up)
someone please help me! any way possible.
thank you
There are mods they can do this:
https://www.curseforge.com/minecraft/mc-mods/no-worldgen-5-you
or
https://www.curseforge.com/minecraft/mc-mods/chunkpregenerator
(Remove Villages after generating a world)
If you have patience and time you could try to make your own mod.
I am doing that right now becouse i did not find any mod that would let me add structures.
Well there are mods that do that but all i tried was more complex then using MCreator.
Here is a tutorial about how to make a mod with your own structures:
It doesn't tell you at the end of the video that you can export the mod,
so i was a little suprised that i just made a mod.
xD
If you decide to do that you should also know how to create a structure file.
Minecraft itself uses structure blocks. If you use that method you should also know about structure void blocks.
I don't find them practicle but i managed to make use of them with worldedit.
You can also use schematics.
Tutorials for that can also be found on Youtube.
My projects:
-are abandoned for now. I might pick 'em up in the future.
For now i'm working on a private modpack that suit's my own playstyle.
I am gonna stay in modded 1.12.2 untill my potato dies. No mercy! :Q
can someone give me more technically specific instructions on how to remove the villages?
The easyest way is to seek for a mod wich does exactly that.
The 2nd easyest way is to make a mod, wich adds only vanilla structures exept villages with MCreator.
(As far as i know jet)
MCreators structures ignore the setting "generate structures" in your new world settings.
You can have minecraft without vanilla villages.
My projects:
-are abandoned for now. I might pick 'em up in the future.
For now i'm working on a private modpack that suit's my own playstyle.
I am gonna stay in modded 1.12.2 untill my potato dies. No mercy! :Q
But i still want everything else to generate, i.e strongholds, shipwrecks ect just not villiages
So what do i need to type in the syntex of MCreator?
Can you post an example that i can just copy and paste? Im a noob when it comes to coding its beyomd me
No syntex needed afaik.
You export every vanilla structure using structure blocks (thats what you do ingame)
and import these stucture nbt data into your MCreator workspace.
That is a lot of structures.
In Mcreator you then create the structures.
I should probably suggest this tutorial video:
Edit: You don't need a special block like shown in the video.
You can just start with structures. The only difficult thing here is using structure blocks.
My projects:
-are abandoned for now. I might pick 'em up in the future.
For now i'm working on a private modpack that suit's my own playstyle.
I am gonna stay in modded 1.12.2 untill my potato dies. No mercy! :Q
If you're playing 1.16 or later, you can simply use custom world generation through a JSOn file - Much easier than trying to mod yourself, and you can even create your own structures if you want. https://minecraft.gamepedia.com/Custom
Remember those versions that minecraft pranked us with? Specifically:
Those are still downloadable! Watch this video for 2.0:
https://www.youtube.com/watch?v=PQdu9LKAdIU
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
15w14a is on this link:
http://minecraft.gamepedia.com/15w14a
1.RV-Pre1 is here:
http://minecraft.gamepedia.com/1.RV-Pre1
Minecraft 3D is here:
https://minecraft.gamepedia.com/Java_Edition_3D_Shareware_v1.34
This is more what im wanting. Can someone point me to a default world preset json for 1.16+ or better yet create one for me? I would so appreciate thank you guys for your help
This should be the default, though I am not precisely sure how to edit structure generation:
Remember those versions that minecraft pranked us with? Specifically:
Those are still downloadable! Watch this video for 2.0:
https://www.youtube.com/watch?v=PQdu9LKAdIU
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
15w14a is on this link:
http://minecraft.gamepedia.com/15w14a
1.RV-Pre1 is here:
http://minecraft.gamepedia.com/1.RV-Pre1
Minecraft 3D is here:
https://minecraft.gamepedia.com/Java_Edition_3D_Shareware_v1.34
When i try adding structures to the above syntex i dont understand what "salt" is or what integer salt should be for a particular structure. So i put a random number in and then i get errors. Im having trouble getiing strongholds to spawn like they do in vanilla mc i dont know what the default settings for stronghold or mineshaft is.
Or how many chunks seperate or spacing between them ahould be.
Can someone shed some light on this please?
I found a version with all the structures included. Note that this value sets all seeds to "0", which you would probably like to change when creating new worlds. I'm pasting it here:
Remember those versions that minecraft pranked us with? Specifically:
Those are still downloadable! Watch this video for 2.0:
https://www.youtube.com/watch?v=PQdu9LKAdIU
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
15w14a is on this link:
http://minecraft.gamepedia.com/15w14a
1.RV-Pre1 is here:
http://minecraft.gamepedia.com/1.RV-Pre1
Minecraft 3D is here:
https://minecraft.gamepedia.com/Java_Edition_3D_Shareware_v1.34
Thank you, i got it to work finally.
Now my question is, how do i determine the salt of a particular structure? Is it just a random integer or is it a specific number? Someone explain salt to me.
Also i see that stronghold is listed twice under structures. Once with distance, spread, and count,and again with spacing seperation and salt, can i apply this code to all structures? What exactly does it do and what can i use it for? I am perplexed
The "salt" is a number which is used to help ensure that each structure has its own positions within a grid whose region size is the "spacing" and region-relative offset is (spacing - separation) (that is to say, a "spacing" of 32 means that the game divides the world into 32x32 chunk regions and attempts to place one structure somewhere within each region (whether it actually generates depends on if the location is suitable); if the "separation" is 8 this means that they generate within a 24x24 chunk area within each 32x32 chunk region and the min-max distance between structures ranges from 8-56 chunks). if you set the "salt" to the same value for e.g. villages and desert temples (both 32/8 for spacing/separation) then they will always generate on top of one another; if the salts are different then there is a 1 in 576 chance that they will generate in the same chunk within any one region. Another reason to change the "salt", mainly relevant for multiplayer, is to deter people from using seed-cracking tools to discover the world seed from structure locations (Spigot enabled you to change this for this very reason long before Mojang let you change it; in older versions it is hardcoded in).
(TLDR; you can ignore the "salt" and for some structures, like mineshafts, the parameters do nothing; the second stronghold option listed is just a placeholder and the real one has distance/spread/count)
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Now that is interesting! May i ask where you got those datas?
I am currently struggling with my mod, i could need more vanilla references.
My projects:
-are abandoned for now. I might pick 'em up in the future.
For now i'm working on a private modpack that suit's my own playstyle.
I am gonna stay in modded 1.12.2 untill my potato dies. No mercy! :Q
should i leave the distance spread and count a specific number for strongholds? right now i have the count at 128 and distance and spread 0
This come from the source code for 1.6.4, which uses the same values as modern versions, just hardcoded in; for example, villages:
I also made my own code which does the same thing, just a bit differently, for example, I use this code to determine the locations of colossal cave systems and strongholds, which use a 64x64 chunk grid with regions alternating between each type (I add seed-dependent offsets to the chunk coordinates so the grid is shifted from seed to seed; since vanilla always uses a fixed grid this means that e.g. villages will never generate at multiples of 32 plus 24-31 in any seed):
Actually, my version of the village code is much simpler and easier to understand; by adding a large positive offset, larger than any possible chunk coordinate, even at the 32 bit block limit (which can actually be reached) I don't need to worry about handling negative values (negative values need to be floored/rounded down), and I simply compare offsets to determine if they can generate (vanilla converts the region coordinates back into chunk coordinates and adds the offsets to them, then compares them to the original chunk coordinates):
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
From what I can tell, based on the source for 1.6.4, "distance" controls the distance between the minimum and maximum distances within a ring; vanilla 1.6.4 defaults to 32 (the same as modern versions) and calculates the distance from the origin as (1.25 + ringDistance * random(0 to 1)) * distance, which gives 40-72 chunks or 640 to 1152 blocks. "spread" appears to control the angular spacing , where they generate 120 degrees apart with a spread of 3 (for the first ring). Notably, if "spread" is 0 it will cause a division by 0 so it must be at least 1, and may be internally limited to this (the Superflat code in 1.6.4 makes sure it is at least 1). Also, for other structures (spacing - separation) must be at least 1 or the game will crash unless it avoids this situation (in 1.6.4 only spacing is available as "distance" in Superflat presets, which is internally limited to at least 9 as the separation is fixed at 8. The Wiki says that ocean monuments provide both values and setting them incorrectly crashes the game, but I don't know if that is an issue with the newer customized worlds feature).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Hello again. I need some more help.
I need someone to make changes to the code to adjust for the new NOISE and heights in general settings for versions after the snapshot 21w06.
if someone could take the above code and modify it to reflect this change, i would so appreciate this. please i'm asking sincerely it means so much to me. thanks!