tModLoader [Tool] The Terraria Seed Project

From what I'm reading here, TML itself seems to have stopped supporting the GOG release, as the person who was handling the GOG patcher is gone, and no-one else working on the project knows how to update the patcher. :(
 
From what I'm reading here, TML itself seems to have stopped supporting the GOG release, as the person who was handling the GOG patcher is gone, and no-one else working on the project knows how to update the patcher. :(
Oh thats sad. Sorry can't help you there. You could ask in one of those t-mod loader thread or a the discord channel. Maybe something changed.
Good luck
 
So I have a lot of things to ask (things that are speedrun related) and all but I need to understand something about phase 1

If you can get pyramid luck, could you get enchanted sword chances ? It would be great !

Also... I don't understand the "pyramids possible" :/
I don't know to phrase it, but it sounds like : if I chose 0, and if there are pyramids possible in my world, then it will passes this phase and won't try to generate the world. You follow me ? I hope you do.

I'll try to do a full post tomorrow if you're still up for the task ;)
 
So I have a lot of things to ask (things that are speedrun related) and all but I need to understand something about phase 1

If you can get pyramid luck, could you get enchanted sword chances ? It would be great !

Also... I don't understand the "pyramids possible" :/
I don't know to phrase it, but it sounds like : if I chose 0, and if there are pyramids possible in my world, then it will passes this phase and won't try to generate the world. You follow me ? I hope you do.

I'll try to do a full post tomorrow if you're still up for the task ;)
The vanilla world generation is separated in different tasks (a lot more than 3). You can check world gen previewer mod to show those steps (my and this mod don't work together!). Luckily the pyramids generation is quite early (phase 2), enchanted swords shrines generated in 2nd last task (so end of phase 3).
Even better for pyramids: the spots where a pyramid might be generated very early in world gen (phase1). Those spots get later checked and if they fulfill criteria a pyramid is generated. If there only 2 possible spots only a maximum amount of 2 pyramids can get generated later on. If 0 spots there is no way a pyramid can get generated in that world. If you have 8 possible spots, chances are high this world has one or many pyramids but it can't have more than 8.

So if you select pyramids possible = 0 it will always successfully pass phase 1 (if you not selected any ore or moon type) and checks next phase. If you select pyramids possible = 6 it will skip worlds which have less possible spots. A world with only e.g. 4 possible spots can never have 6 pyramids. A world with 8 possible spots can have 6 pyramids so it successfully pass phase 1. Currently there is no way to skip worlds with many pyramids if you want that.

For enchanted sword shrines there is no such way. Early world steps need to be done to predict those spots. Enchanted swords (without shrines) are hidden in ambient object placement. They are just a variation of bigger stone. They are place in "Piles" task. It's one of the later steps. Steps after that don't take very long. Not worth it to insert a new phase there.
 
Thanks for your detailed explanations !

So for the speedrun ...

There are many categories and many things to go over. Bear with me, i'll try to be as clear as possible.

First, when I was talking about caverns, I was talking about cavern entry, not the biome.

jvmjid


You see, those, are very important for speedruns. They lead to a lot of things >>>

First, exposed orbs :

Exposed orbs are crimson/corruption orbs that got crossed by one of those cavern generation like that (So we dont need things as bombs to get to them) :

jvmrkj


In red you have the cavern path and in green the orbs positions.
So what we could use is some bool that goes "cavern entry generation overlap crimson/corruption generation"
Or more like "Cavern entry is in crimson/corruption biome".
The best would be something like "There are exposed orbs" but again, I don't think you could detect such things. But if you can, then knowing/checking their distance to spawn would be a huge deal.

Again, if you can't do anything above but detect cavern entry location, you could still let us test the distance from corruption biome to cavern entry.
That would be enough I guess :)

(Im really sorry if my explanations are bad/hard to understand. I'm not a native english speaker)

Knowing how many hearts are down those cavern would be great too. (Corruption or not eh. But then it would be a nightmare to organize everything. Meeh)
I don't think you could detect things as heart or chests in those exact caverns generation, but if you actually can, I'll make another list of things (items in chest for example) we could need as close as possible to spawn.
(Especially Iron bars and TP Potions)

______________


Now, about the jungle.
If you didn't know, the bee hives are very often used in speedruns.
Knowing how high is the highest one would be really usefull. (as well as testing how close it is to spawn)

Another thing is about jungle is the "jungle path" (as I call it). Getting the distance from spawn to it could be useful.
There's always a path that goes from the surface directly to the underworld.

XSY3Xt4CQm6CwdYsSfUSMQ.png



Sometime, unfortunately, it get itself obstructed by many other things, especially the freaking temple and/or the crimson/corruption.

B4cZKopwT-WZfkv4bkUu_A.png


We can already clear out the corruption out of the jungle with your mod and that's really nice !
But do you think we could clear out that temple thing out of the way too ?
It's probably as tricky as detecting exposed orbs so I would not count on it but I'm only here with ideas, I've no idea how goes the world generation and what is actually "checkable" ;)

_____________________________________

Other things

Testing if there are sunflowers near spawn. That's not as useful as all the other things above, but that could be helpful.
Testing if there are teleportation potions somewhere in world/somewhere relatively near spawn

_____________________________________

That's kinda everything I came up with so far about speedrunning.

And some other bug I found out :

- (Yes you were right, it's platinum :) mybad)

- If you start generating world/checking seed right after opening any menu on the right you have the choices still up. http://prntscr.com/jvnxvq
(Mod is generating the world but I still can select things in the menu. All the text will eventually get overwritten after a seed was checked)

- When selecting "world name" "seed" or "config name" you can have the "blinking bar" that says you have the focus on it on all 3 text.
You can't write in all 3 at the same time but it still blinks : https://i.imgur.com/BQZnI1R.gif

- After using your mod, if I try to join any world afterwards, none of my input are working (even escape) so I need to crash the game to actually join the world.
I guess it has to do with the fact that after using the button "Stop" it gives me an error and something in the background somewhere is still up, blocking any classic ingame input when joining the world.
But it happens on rare situation : Im not sure, but I actually think it's linked to the bug right above. If any of the 3 textbox i was talking about (or whatever their name is) have still the focus after the crash, you won't be able to do anything but typing invisible things.
Clicking away from them should remove that focus :) (Or at least when pressing the stop button)


Done !
(And I also think I forgot tons of things I wished to talk about. Welp, I'll come back to you if you're still up for the challenge !)

Thanks again !
 
thanks for detailed post and pictures. Think I got it. It was too late yesterday^^

First about reported bugs:
As assumed it's linked to those textboxes which allow to enter something. Currently you need to press enter to release them. Thank for that! That will be fixed next time.
About the first bug. I think it's better if you are allowed to edit you options during search. To revert changes hit the bin icon once. It only overwrites the first line which is only text you can't select. Only minor bug but will get fixed next time. Thanks for that as well.

-------------------

about new conditions:
Can't check now, currently at other PC but directly checking were a cavern is generated and look what is done during that is not that easy without changing/using many vanilla code. But after some caverns are generated you can search them at the whole map. Cavern detection might have some problems sometimes. It's still a cavern if only 2 blocks wide? Or does it continue if there is only a hole of one tile between 2 caverns? So cavern entrance might be tricky.
But what can be done is some sort of path finding, e.g. how long is the closest way from one spot to another. That path finding need to be coded well. If done wrong it can take endless time. Need to check that. If that's done detecting exposed orbs is an easy task then. The best way to get Heart crystals, chest and orbs will be tricky. But to be correct this path finding need to be done at the end of world generation. So if you only search for that it will take some time. There might be some prediction after phase 2.

--------------------

for jungle:
there is a conditions named "high hives" which counts hives very near below surface. Might help in meantime.
And the height of the highest hive should be the distance to underground or the number of tiles on top of it, shortest path from top or something else?

But do you think we could clear out that temple thing out of the way too ?
hehe, funny thing another user asked for the condition that the pyramid is exactly at this way. Good might be at the side of that way.
If you know the entrance of that big jungle cavern there should be a way to detect it most times. But finding this main jungle entrance might be more tricky.
Sometimes there are more than one entrance. Others not that big or end early. I also had some maps which didn't had such kind of entrance at all or evil biome is on top of it.
How about blocking Hives, giant tress, marble, granite? I think it's also not that worse if you need to mine 1-3 tiles to continue.
What would be the perfect path? A straight hole down to hell/end of jungle? So it should be as deep as possible and the way to the deepest point shout be as short as possible?

--------------
other:
Testing if there are sunflowers near spawn. That's not as useful as all the other things above, but that could be helpful.
Testing if there are teleportation potions somewhere in world/somewhere relatively near spawn
I spied at the speedrun discord, already added at the todo list :)


------

To summarize some path finding would be nice to have. With this many more stuff is possible. Done that for each condition would take too long. But doing one global might work. After this you can check how long is the distance from spawn to any point (chest, heart crystal, exposed orb, ..). But finding the shortest/best path between many objects needs much computation time. It's a famous problem called Travelling salesman problem . If you find a solution which is fast for many points you will also solve an mathematical problem which is unsolved for over 100 years. You also can get a billionaire with that. But chances are almost 0 it is possible. Currently it is assumed it is not possible.
But in Terraria it's that that strict. You don't need to reach each point. You will be fine if you can reach 3 exposed orbs, the other 5 exposed you won't care about. Will think about that. Currently each seed gets some kind of score, depending on pyramids, position of evil biome and many more. That might also work for paths. Assuming that path finding won't take that long, it won't be a big deal to find the shortest path to one exposed orb (also "There are exposed orbs" is easy, selecting their count also). But finding the shortest for 3 can take some time. If implemented how it should be selected? For every exposed orb count an own condition where you can select the distance? E.g. "1 exposed orb path length", "2 exposed orb path length", "3...." . That won't be that best idea. Furthermore chests and crystal hearts as good as well. At the end you end up with too many conditions e..g "3 exposed orb, 2 chest with Iron bar, 3 chest with teleport potion, 4 heart crystals path length <= wished distance". Another way would be to score those paths. A path is good if an exposed orb/chest/heart crystal is near and if it is short. You end up with a evil biome path score, a jungel score, maybe a cavern score and some. All together can get combined if wished to a total path score. But with this you lose some customization.
Need some more thinking.
You have an idea how it could be selected (besides the exposed orb count)?

ok, that path finding may take some time. I may add those sunflowers teleportation potion earlier.
Planned to add some path finding but didn't knew about those exposed orb importance, blocking jungle pyramid and other.
So thanks for that.
 
Last edited:
Oh thats sad. Sorry can't help you there. You could ask in one of those t-mod loader thread or a the discord channel. Maybe something changed.
Good luck

No worries. I actually found I had a Terraria Steam key that I activated so I could run TML. Mod works fine, I found a nice medium-sized world with all of the loot-only materials available in it, which was what I was after. Out of curiosity, does the output the mod gives you whenever it finds a nearly-suitable or rare world get written to any log file, or can you only view the most recent one recorded?
 
No worries. I actually found I had a Terraria Steam key that I activated so I could run TML. Mod works fine, I found a nice medium-sized world with all of the loot-only materials available in it, which was what I was after. Out of curiosity, does the output the mod gives you whenever it finds a nearly-suitable or rare world get written to any log file, or can you only view the most recent one recorded?
There is a folder The Terraria Seed Project near your world filed (from tmodloader, (at windows ".../My Documents/My Games/Terraria/ModLoader/TheTerrariaSeedProject" )). For some rares e.g. chest duplication glitch it writes the seed and location in a file named debug.txt. Also if it was not able to generate a seed it writes the seed there. Some vanilla seed crash the game. That should not happen with during seed search with that mod (but they can still freeze). In lastStats.txt it write a more detailed version of that was is shown in game. As in game it also shows how many seed entered phase 1, 2, 3, how many rare and some more.
Once I had some log but currently it does not. If you run multiple games at once there can occur some problems with storing it. If you store your configuration and starting seed the number of files will increase too high amount. So deactivated it.
May think about some other way to log them.
 
Last edited:
There is a folder The Terraria Seed Project near your world filed (from tmodloader, (at windows ".../My Documents/My Games/Terraria/ModLoader/TheTerrariaSeedProject" )). For some rares e.g. chest duplication glitch it writes the seed and location in a file named debug.txt. Also if it was not able to generate a seed it writes the seed there. Some vanilla seed crash the game. That should not happen with during seed search with that mod (but they can still freeze). In lastStats.txt it write a more detailed version of that was is shown in game. As in game it also shows how many seed entered phase 1, 2, 3, how many rare and some more.
Once I had some log but currently it does not. If you run multiple games at once there can occur some problems with storing it. If you store your configuration and starting seed the number of files will increase too high amount. So deactivated it.
May think about some other way to log them.

Ah, fair enough. Thanks for creating the mod, anyway. :)
 
Did some new update and added path finding. It takes less computation time as expected but it's still about 10% slower now. But with this feature many new conditions are possible.
E.g. you can now also look for:
  • Pathlength to Boots
  • Pathlength to Iron/Lead Bar
  • Pathlength to Teleport Potion
  • Pathlength to Enchanted Sword
  • Pathlength to Bee Hive
  • Pathlength to Temple Door
  • Pathlength to free ShadowOrb/Heart

and with this also:
  • Nearest Teleportation Potion count
  • Free ShadowOrb/Heart

also added:
  • Near Sunflower

The Path length should be round about the number of tiles to the object. It can get larger if e.g. a dirt block blocks you and need to be mined first. Or it also can be less if you just need to fall down or able to use a mine cart. It won't check if you can reach a tile with jumping. At the current state the way gets more expensive for those cases where nothing is below you to stand on.
Also how expensive is mining a tile? same as walking a way of length 5, 10, 20 (currently 30)?. There are many variables which could be adapted on further updates. So do not hesitate writing some tweak ideas. So currently in beta state.

gl hf with testing

-tiles you can't mine with copper pickaxe marked as you can not pass.
-sand, dirt, mud, count same as a free way of 30 tiles
-stone, ore count same as a free way of 60 tiles
-minecart track only cost only 40% of a normal way
-Cobweb, thorns, hive count as a free way of 14 tiles
-water same as free way of 8 tiles, honey 26 tiles, lava you can not pass (only if one single tile, count as 160 tiles)
-if there is no tile you can stand on it counts like 5 extra tiles, if also no wall same as a way of 11 tiles

feel free to propose some changes

here some random pictures (only for showing, mod won't create those)
1168568809_paths.png 1168568811_paths.png 1168568812_paths.png 1168568813_paths.png 1168568814_paths.png 1168568815_paths.png 1168568816_paths.png 1168568817_paths.png
 
Last edited:
seeds already searched for 4 pyramids or more
small, expert:
  • 0-2,400,000
  • 100,000,000-101,500,000
  • 200,000,000-202,000,000
  • 300,000,000-300,600,000
  • 400,000,000-400,600,000
  • 500,000,000-500,500,000
  • 133,700,000-133,800,000
  • 1,337,000,000-1,338,000,000
large, expert, chance for 9 pyramids, searched for 6 or more:
  • 0-420,000
  • 100,000,000-100,420,000
  • 200,000,000-200,420,000
  • 300,000,000-300,420,000
  • 400,000,000-400,420,000

so best chances to find something awesome is too search at different seed numbers


Update
v0.1.1.0: Added option to store a mini map image:
(currently only works at windows OS )
And if you like add some item location information.
some example:
View attachment 201803
(small expert random 0996334339)

Finally found a map with 6 pyramids!
View attachment 202424
(large expert corruption 400416290 )
Can you find 7 or more? Should be possible.


v0.1.2.0: included path finding (beta)
View attachment 203525 (only example image, mod won't create those)
with this you can search now also for:
Path length to Boots, Iron/Lead Bar, Teleport Potion, Enchanted Sword, Bee Hive, Temple Door and to exposed ShadowOrb/Heart,

Does the seed on the image have to be random?
 
Last edited:
Does the seed on the image have to be random?
You mean seed 0996334339? It was just what I selected. The evil biome is not random for a specific seed. If you generate the same seed over and over again it will always have the same evil biome if you selected random (and equal other options). So for that you can select corruption as well (as in image) to get the same result.

The 6 pyramid image of seed 400416290 , (if I remember correct) does generate crimson if random is selected. So crimson and random is the same there. But with this you have evil biome in jungle (if remember correct), so I changed to corruption with some better result.
 
20180723150657_1.jpg
Is it normal for this mod to stall at a certain seed (757602046)

I have tried to search for a seed three times now and every time it gets that number it stalls out, is this a bug?
 
Last edited:
Hi, thanks for writing potential bug reports.
View attachment 205260 Is it normal for this mod to stall at a certain seed (757602046)

I have tried to search for a seed three times now and every time it gets that number it stalls out, is this a bug?
And the search stops there?
"757602046" is the number value of an empty string. Did you entered "?" as a world seed (before the mod screen starts)?
So does it start with "Starting seed search at: 757602046" and you changed to 0?
If so, you could write e..g "?0" as world seed. After this "757602046" should not appear again. However, that shouldn't be any issue. After "757602046" it should continue with seed 0 (or that seed you entered in at starting at). The option menu is placed in a loop of world generation. If you start search it needs to finish the last loop first before starting a new one with the settings you selected. It's only an output not needed there but I added to bug list. Thanks for that hint.

It should not have any effect on your search. If the search stops there then there might be the chance some of your mods and seed search don't like each other.
Which other mods you are using? Together with Overhaul it should work. If you like you could try it with other mods disabled (don't forget to reload mods after disable).

ok i start seed search at 1 for a small world with 3 or 4 pyramids and tell it to search until starting seed +10000
but it keeps going past 10,001 why is that?
Hmm, can't reproduce that. To clarify "starting seed +10000" means starting seed +10000. So if you start e.g. at seed 1000 it searches until 11000.
If that not explain it. Could you post a screenshot of all of your settings? (Or store it as a config file and post that).
 
We need to type what in world name ?
e.g. ?
or just ?
Anything which starts with "?", e.g.:
?myWorlldName
?mapname
?seed
?1337
?e.g.
?all of those should work
?but you can
? also write just
?



If you write anything after "?" it will take this as initial value.
?myWorlldName---> also set world name to "myWorlldName"
if you write ? in seed option it will use it as a seed as well
?1337 ---> initial seed is 1337

(only one "?" at world name or seed is needed)
 
Back
Top Bottom