Hardmode conversion
Defeating the Wall of Flesh for the first time triggers a conversion in the world which creates the Hardmode biomes. Two diagonal stripes will generate in a "V" pattern, one converting tiles to their Hallow counterpart, the other converting tiles to their evil biome (Corruption or Crimson, depending on the world evil) counterpart. The stripes extend from the top of the world to the bottom of The Underworld. The status message "The ancient spirits of light and dark have been released." is displayed after the conversion is done.
The Hallowed stripe is always generated first.[1] See below for a list of tiles converted during this conversion.
Stripe size and location
The starting point and the width of the diagonal stripes depends on the world size and the location of Dungeon, listed in the following tables.[2]
World size | Dungeon in left half | Dungeon in right half | ||
---|---|---|---|---|
Stripe 1 | Stripe 2 | Stripe 1 | Stripe 2 | |
Small | 840–1256 | 2524–2940 | 1260–1676 | 2944–3360 |
Medium | 1280–1914 | 3846–4480 | 1920–2554 | 4486–5120 |
Large | 1680–2512 | 5048–5880 | 2520–3352 | 5888–6720 |
World size | Original value | Counting scattered tiles |
---|---|---|
Small | 200–249 | 200–286 |
Medium | 305–379 | 305–436 |
Large | 400–498 | 400–573 |
There are some differences in the conversion process in different game versions:
- In worlds generated after 1.4.0.5(Desktop, Console and Mobile versions), the direction of Hallow/Corruption/Crimson biomes is random, but its position is determined by the World Seed.
- In worlds generated between 1.3.4(Desktop, Console and Mobile versions) and 1.4.0.5, the direction of Hallow/Corruption/Crimson biomes is determined by the World Seed.[5]
- In worlds generated before 1.3.4 (thus in all worlds on Old-gen console and ), however, it is completely random.
Secret world seeds
In drunk worlds(Desktop, Console and Mobile versions), where both Corruption and Crimson exist, tiles will be converted to the evil biome that is dominant on the day of the Hardmode conversion.
In Don't dig up(Desktop, Console and Mobile versions) and Get fixed boi(Desktop, Console and Mobile versions) worlds, the "V" pattern is replaced by a rectangular conversion zone located on the same side as the Jungle. Tiles will only be converted to their Hallow counterpart; no new evil biome will be generated. See Don't dig up § Hardmode conversion for details.
Converted tiles
Hallow
Resulting converted tile | Original tiles |
---|---|
Hallowed Grass Wall(unsafe)Internal Wall ID: 70 |
|
Hardened Pearlsand Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 219 | Hardened Sand Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 216 |
Pearlsandstone Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 222 | Sandstone Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 187 |
Pearlstone Wall(unsafe)Internal Wall ID: 28 |
|
Pearlstone Block | |
Pearlsand Block | |
Jungle grass |
|
Hallowed grass | |
Pink Ice Block | |
Pearlsandstone Block(Desktop, Console and Mobile versions) | Sandstone Block(Desktop, Console and Mobile versions) |
Hardened Pearlsand Block(Desktop, Console and Mobile versions) | Hardened Sand Block(Desktop, Console and Mobile versions) |
When > 200,000 Hive blocks in the world[a] | |
Pearlstone Block | Hive |
Hardened Pearlsand Block(Desktop, Console and Mobile versions) | Crispy Honey Block |
Corruption
Resulting converted tile | Original tiles |
---|---|
Corrupt Grass Wall(unsafe)Internal Wall ID: 69 |
|
Hardened Ebonsand Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 217 | Hardened Sand Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 216 |
Ebonsandstone Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 220 | Sandstone Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 187 |
Corrupt Jungle grass(Desktop, Console and Mobile versions) |
|
Corrupt grass | |
Ebonstone Block | |
Ebonsand Block | |
Purple Ice Block | |
Ebonsandstone Block(Desktop, Console and Mobile versions) | Sandstone Block(Desktop, Console and Mobile versions) |
Hardened Ebonsand Block(Desktop, Console and Mobile versions) | Hardened Sand Block(Desktop, Console and Mobile versions) |
When > 200,000 Hive blocks in the world[a] | |
Ebonstone Block | Hive |
Hardened Ebonsand Block(Desktop, Console and Mobile versions) | Crispy Honey Block |
Crimson
Resulting converted tile | Original tiles |
---|---|
Crimson Grass Wall(unsafe)Internal Wall ID: 81 |
|
Hardened Crimsand Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 218 | Hardened Sand Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 216 |
Crimsandstone Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 221 | Sandstone Wall(Desktop, Console and Mobile versions)(unsafe)Internal Wall ID: 187 |
Crimson Jungle grass(Desktop, Console and Mobile versions) |
|
Crimson grass | |
Crimstone Block | |
Crimsand Block | |
Red Ice Block | |
Crimsandstone Block(Desktop, Console and Mobile versions) | Sandstone Block(Desktop, Console and Mobile versions) |
Hardened Crimsand Block(Desktop, Console and Mobile versions) | Hardened Sand Block(Desktop, Console and Mobile versions) |
When > 200,000 Hive blocks in the world[a] | |
Crimstone Block | Hive |
Hardened Crimsand Block(Desktop, Console and Mobile versions) | Crispy Honey Block |
Wall replacement
After the inital conversion, the game will also create patches of biome-specific background walls. This can replace existing applicable background walls, or create new walls at locations where no wall existed.[6]
During this process, the game will choose a random tile within a vertical range from 100 tiles above surface to 190 tiles above the bottom of the world, and determine generated wall type (see below). The block on the chosen tile must be a block listed in the table below, and the tile above the chosen tile cannot be occupied by a solid block. Then, an area containing all tiles without blocks, with applicable walls, and connected with the tile above the chosen tile will be selected. If the selected area contains more than 50 tiles and no more than 1000 tiles, then the wall in the whole area will be replaced by one random type of wall corresponding the chosen tile.
There is also restriction on the total times of performed wall replacements. See below for details.
Blocks and corresponding walls
Block type | Wall type |
---|---|
|
|
|
|
|
|
Applicable walls
Only tiles with no background wall or with the following types of wall can be replaced.
|
Attempt times
The total times of wall replacement actions is capped at different values for different world sizes, listed in the following table. Each successful wall replacement attempt will reduce remaining attempt times by 1. In addition, remaining attempt times will also be reduced by 1 after 15000 failed attempts are performed.
World size | Attempt times |
---|---|
Small | 25 |
Medium | 38 |
Large | 50 |
History
- Desktop 1.1: Introduced.
- Switch 1.0.711.6: Introduced.
- Console-Release: Introduced.
- Mobile 1.1.8: Introduced.
- 3DS-Release: Introduced.
References
- ↑ Information taken from the Desktop 1.4.4.9 source code, method
smCallBack()
inTerraria.WorldGen.cs
. - ↑ Information taken from the Desktop 1.4.4.9 source code, methods
smCallBack()
inTerraria.WorldGen.cs
andGERunner()
inTerraria.WorldGen.cs
. - ↑ The starting point's X coordinate will be a random value within the range below, while the Y coordinate starts at 0. The game will first generate a random integer within [300,399], then multiply it by 0.001 to get
factorA
(i.e. [0.300-0.399]); then generate a random integer within [200,299], then multiply it by 0.001 to getfactorB
(i.e. [0.200-0.299]). If the Dungeon is at left half of the world, the starting point ismaxTilesX×(1-factorA)
andmaxTilesX×factorB
; if the Dungeon is at right half of the world, the starting point ismaxTilesX×(1-factorB)
andmaxTilesX×factorA
.maxTilesX
is the width of the world (in tiles). - ↑ After setting up the starting location of the stripes, the coordinates of the point will be stored in a vector
v
, the X, Y coordinates beingv.X
andv.Y
, respectively. The game then generate a random integer within [240,249] (we call itrNum
), multiply it bymaxTilesX / 4200.0
to get awidth
value.maxTilesX
is the width of the world (in tiles). Then, check tiles in a rectangle area (horizontal: fromv.X-width÷2
tov.X + width ÷ 2
; vertical: fromv.Y - width ÷ 2
tov.Y + width ÷ 2
), if a tile's coordinate ((X,Y)
) meets the following condition:| X- v.X | + | Y - v.Y | < rNum × 0.5 × ( 1 + rFactor × 0.015 )
(rFactor
is a random integer within [-10,10]), then the tile will be converted. The randomness ofrFactor
creates scattered converted tiles around the stripe; the "Original value" column is the stripe width when not considering these scattered tiles. Besides these checks, the slope of the stripes is stored in another vectorv2
, wherev2.X
being 3 or -3, depending on the direction of the stripe, andv2.Y
always being 5. After each rectangle area check, thev2
will be added tov
(i.e.v.X = v.X + v2.X
,v.Y = v.Y + v2.Y
). Then, the game generates a random integer within [-10,10], multiplies it by 0.05, and added it tov2.X
. The value ofv2.X
is capped within [2,4] (or [-4,-2]). - ↑ terraria - Is the Hallow & Crimson/Corruption "V" random or predetermined? - Arqade
- ↑ Information taken from the Desktop 1.4.4.9 source code, method
smCallBack()
inTerraria.WorldGen.cs
. Note that this applies to both regular worlds and worlds with secret world seeds.
- ↑ 1.0 1.1 1.2 This usually happens in Not the bees, but technically can happen in any world, given the condition is fulfilled. Since the Hallow stripe is always generated first, it is possible for it to convert enough Hive to make the evil stripe unable to convert these blocks.