• PC 1.4.3: An eye for an eye, the Terraria x Don't Starve Together Crossover Update! Get all the details here. Found some bugs? Report them with as much detail as possible here.
  • Xbox & PS 1.4: NEW PATCH released Dec 7 - read the details here. Get all the info on the Journey's End update by clicking here. Known Issues and FAQ can be read here. For any other bugs, report them (with as much detail as possible) here.
  • Switch 1.4: Journey's End will launch on Switch January 4, 2022! More details here.
  • Mobile News: Stay up to date with the latest mobile news here. Report mobile bugs here

tModLoader [1.4.1.2 TT2] Advanced world generation seeds

Gaelyte

Terrarian
Well, so far after 5 more generates, everything seems fine.

I got bad luck with RNG regarding the illuminated ore. Using TShock or the altered client with Terreria Tweaker, maybe a causation between the two may have caused the issue with wacko time.
Seems really weird because this plugin shouldn't do much and there's no reason why a specific tile type would always get the same paint
Also I never had a such problem while I played the seed "painted for the random drunks"
 

S3th1236

Terrarian
Hello, so I am new to this whole community forums stuff and I'm not sure where to post my call for help. I am currently working on a pixel art world and I was trying to fix things with TEdit on my world and somewhere throughout that process I lost the minimap data for my character and now nothing is revealed. What I am trying to get at is that I need someone to help me reveal the whole world like it used to be. I saw that there is a "light everything up" tweak and a "reveal world" tweak which neither of them work and I would really like to have those tweaks working so I can continue my process on the world. Let me know if I need to provide anymore information, and whether you guys can help me make a plugin to make the tweak work again. Thanks
 

Gaelyte

Terrarian
Hello, so I am new to this whole community forums stuff and I'm not sure where to post my call for help. I am currently working on a pixel art world and I was trying to fix things with TEdit on my world and somewhere throughout that process I lost the minimap data for my character and now nothing is revealed. What I am trying to get at is that I need someone to help me reveal the whole world like it used to be. I saw that there is a "light everything up" tweak and a "reveal world" tweak which neither of them work and I would really like to have those tweaks working so I can continue my process on the world. Let me know if I need to provide anymore information, and whether you guys can help me make a plugin to make the tweak work again. Thanks
Sorry but the tweaks are closed source so I can't help you, and TT2 author closed their thread so I guess it will never be fixed (even if they did an update today ?)
 

Mail

Official Terrarian
Sorry but the tweaks are closed source so I can't help you, and TT2 author closed their thread so I guess it will never be fixed (even if they did an update today ?)
He is asking for help making a plugin to replace the tweak. Plugins should be able to replace any built-in tweaks that break, so TT2 not getting updated is mostly an inconvenience.
...help me make a plugin to make the tweak work again. Thanks
 

Gaelyte

Terrarian
Anyway (as I don't have any idea of how to do this plugin and am not really interested in Terraria's light mecanics), I did a new seed called "entropy". I am not sure if it works well so I'll replace the main post with the new version after I do more testing but here it is anyway, I wanted to let you discover what is inside by yourselves if you wanted.
 

Attachments

  • RandomGen.cs
    21 KB · Views: 53

Bambino

Terrarian
Anyway (as I don't have any idea of how to do this plugin and am not really interested in Terraria's light mecanics), I did a new seed called "entropy". I am not sure if it works well so I'll replace the main post with the new version after I do more testing but here it is anyway, I wanted to let you discover what is inside by yourselves if you wanted.
Wahhhhhh, Ill try it out as soon as I can. Exciting!
 

Gaelyte

Terrarian
Fixed the bug, I simply forgot something that isn't even active yet
This one should work more than a night
 

Attachments

  • RandomGen.cs
    22.2 KB · Views: 52

Bambino

Terrarian
Btw, you know if there is a way to edit a pre-existing map to have FTW difficulty (Just the difficulty)? I need a small map thats basically the size of an arena. For example, in TEdit I can specify dimensions, set it to Drunk World, but no way to make it For the Worthy.

Sorry for going off topic, but I figured you may know.
 

Mail

Official Terrarian
Btw, you know if there is a way to edit a pre-existing map to have FTW difficulty (Just the difficulty)? I need a small map thats basically the size of an arena. For example, in TEdit I can specify dimensions, set it to Drunk World, but no way to make it For the Worthy.

Sorry for going off topic, but I figured you may know.

You can change these at any time with a plugin. Load the world and modify these boolean values.

Terraria.Main.drunkWorld (5162020)
Terraria.Main.getGoodWorld ("for the worthy")

The equivalent settings in the world generation code are:

Terraria.WorldGen.drunkWorldGen
Terraria.WorldGen.getGoodWorldGen
Terraria.WorldGen.notTheBees

In my opinion it would be best if this plugin would allow you to control all of these settings and also 2 seeds, one for "normal" world generation and another optional one for the randomization and painting steps.

Split the inputted seed on spaces, and enable special seeds and random features using single word keywords in any order. Treat the first non-keyword as the primary seed, and the second as the randomization seed. Having a second seed allows rerolling the painting and randomization while using a known seed.
Code:
string[] opts = processedSeed.ToLower().Split();
RandomEnum options = RandomEnum.None;
string seed = "";
string randomseed = "";
foreach (var opt in opts) {
    switch (opt) {
    case "bees":
    case "bees!":
        options |= RandomEnum.NotTheBees;
        break;
    case "drunk":
    case "drunks":
    case "drunks!":
        options |= RandomEnum.Drunk;
        break;
    case "for"
    case "worthy":
    case "worthy!":
        options |= RandomEnum.ForTheWorthy;
        break;
    case "random":
        options |= RandomEnum.Random;
        break;
    case "painted":
        options |= RandomEnum.Paint;
        break;
    case "terraria":
        options |= (RandomEnum.SmallNotTheBees | RandomEnum.ForTheWorthy | RandomEnum.Drunk);
        break;
    case "not"
    case "the"
        break;
    default:
        if(seed == "") {
            seed = opt;
            break;
        }
        if(randomseed == "") {
            randomseed = opt;
            break;
        }
    }
}
RandomGen.SetSeedOptions(options);
 

Gaelyte

Terrarian
I rewrote the code again in multiple files this time.
To use it, simply download the zip file and put the dll in your plugin folder then activate it and desactivate the cs one. DO NOT delete RandomGen.cs before desactivating it with TT2, it will only create bugs. The others files in the zip are source code and the json resources, they are just provided so you can reread my code or recompile it if you don't trust me, but they have no direct use for TT2, it's useless to put them in the plugin folder.


In this new version, I fixed few problems in entropy and added Mail's idea I was planning for a while, you can now fuse special seeds by putting a "," between them.
For example terraria,random will have the settings of both terraria and random seeds (all the available seeds are in the json file).
Also, you can now set the seed of a special seed world by putting a ":" before.
For example 1.4.1.terraria,random:terraria will start like this
Sans titre.png


Note that this feature also works for vanilla special seeds, and worlds generated with a special seed without specifying the generation seed (after the ":") will be edited to also show their generation seed (To be clearer, if you generate a for the worthy seed then look at the world seed, it will give you something like 1.4.1.for the worthy:513038952 , allowing you to share the seed to have the exact same world
There's a minor issue though, any world generated without the plugin will still show a seed modified even if it's not the case (for example, say you have created a for the worthy world without this version of the plugin or above, you will see your seed as something like 1.4.1.for the worthy:513038952 , but copying it will NOT create an identical world)

I think it should work, but your help would be greately appreciated, if you see any bug with this plugin, please report them to me, I will replace the main post download with this version if no bugs are reported.


As this plugin now does more than just generating a random world, I should change the title of the thread, but I have no idea about it. Does somebody have one ?
 

Attachments

  • RandomGen.zip
    13.2 KB · Views: 50
Last edited:

Mail

Official Terrarian
I rewrote the code again in multiple files this time.

I think the plugin should be kept as one file unless you are planning to add resources that contain a lot of binary data. You don't need the plugin to be multiple files to use multiple classes or make a precompiled version. If you precompile for faster startup or better debugging you should keep doing that.

As this plugin now does more than just generating a random world, I should change the title of the thread, but I have no idea about it. Does somebody have one ?

Expanded/Advanced seed options. Enhanced WorldGen. The name should reflect what features might be added in the future so that you won't need to change the name again.

In this new version, I fixed few problems in entropy and added Mail's idea I was planning for a while, you can now fuse special seeds by putting a "," between them.

Currently when randomizing tiles you use Main.rand to generate random numbers. Main.rand gets initialized with the world seed. You could create a new random number generator with "new UnifiedRandom()" and optionally allow the user to specify a seed. That way the painting and tile randomization steps would be independent of the seed that determines the world's overall shape. Some people might not like it if known seeds are always painted and randomized the same way. I'm not sure if it is something people want, but you should know this possibility exists.
 

Gaelyte

Terrarian
I think the plugin should be kept as one file unless you are planning to add resources that contain a lot of binary data. You don't need the plugin to be multiple files to use multiple classes or make a precompiled version. If you precompile for faster startup or better debugging you should keep doing that.

The code looks cleaner this way and the main reason why I did this was to use a JSON file without using the IO system.
This would also allow me to use others files like the Recipe Helper or use some file I create here in others projects

Currently when randomizing tiles you use Main.rand to generate random numbers. Main.rand gets initialized with the world seed. You could create a new random number generator with "new UnifiedRandom()" and optionally allow the user to specify a seed. That way the painting and tile randomization steps would be independent of the seed that determines the world's overall shape. Some people might not like it if known seeds are always painted and randomized the same way. I'm not sure if it is something people want, but you should know this possibility exists.
Well if someone is interested, they could tell it, I won't do it if no one really wants it because it would require to add a specific handling for that and more work than it should
 

Gaelyte

Terrarian
Fixed a bug in entropy worlds and another
 

Attachments

  • RandomGen.zip
    14.3 KB · Views: 40
Last edited:

Gaelyte

Terrarian
I'm looking at how tmodloader works, it should be quick to port my mod to tmod when the 1.4 version comes out.

Because it's christmas, here's a new seed : "santa"
Merry_Christmas.png

What ? It's not Christmas ? Well too bad, I won't wait 11 months before publishing this seed

I really love creating special seeds, if you have any idea of a fun world generation, I may give it a try

The mod is here and not on the main post as it's fairly recent and I'm not 100% sure everything works
 

Attachments

  • RandomGen.zip
    21.4 KB · Views: 34

Gaelyte

Terrarian
An other update, I ported the mod to tmodloader where it works fine in multiplayer as TT2 doesn't support it.
I hope the fact that both versions are on the same page doesn't make it unreadable.
 

Bambino

Terrarian
As a Vanilla TShock user that doesn't use TModloader, your work greatly benefits us as well. Haven't had any issues for what I'm doing; yet.

I have a suggestion, perhaps allow the specification of map sizes. This is an assumption, but I don't think particular seeds will work at certain sizes. Also, certain sizes may just crash. At least I experienced this in TEdit with custom map sizes. However, even when I get custom sized TEdit map to work, all it has is dirt. Getting ANY seeds to work on a custom map size would be great.
 
Last edited:

Bambino

Terrarian
And, I spoke too soon. Seems my favorite seed painted for the drunks isn't painted. Will eventually try out the other seeds to see if there are any other issues.
 

Gaelyte

Terrarian
Can you tell which seed crashes on which world size, please ?
Because I can't try every seed on every world size
 
Top Bottom