A house (or home) is a structure built by the player that town NPCs require in order to spawn, with one house required per NPC. A structure must meet several requirements in order to function as a house (see details below). The player can check if a structure meets the requirements by using the housing menu's top button, labeled with a question mark ("?"). NPCs generally retreat to their houses at night and remain in them until dawn. They will also retreat to their houses when it rains and during any event.
The Guide will appear upon starting a new world, and if killed, he will require a house in order to respawn. The Old Man, the Traveling Merchant, and the Skeleton Merchant do not require houses.
Similarly, the Guide, Angler, Goblin Tinkerer, Tavernkeep, Mechanic, Stylist, Wizard, Tax Collector, and Golfer will each make their initial appearances regardless of available housing. Once initially found, each will require a suitable house before respawning.
Certain naturally-generated structures can serve as houses and may inadvertently attract NPCs if players have placed light sources within them. These can include Floating Island structures, Living Tree treasure rooms, and the structures in The Underworld. NPCs can be moved from these to the player's structures using the housing menu.
The requirements for a player-selected Bed to work as a spawn point are similar to those for NPC housing, but weaker; players do not need furniture beyond the Bed. See the Beds page for full details.
[]
The housing menu allows managing the placement of NPCs. It is accessed by pressing the small house button above the armor slots in the inventory. The player can check whether a given house is suitable for NPC use or not, as well as manually appoint a house to a specific NPC.
To check whether a house is suitable for use, press the ⚒ Use / Attack button on the "?" housing query mark and then press again anywhere inside the house. A status message indicating whether the house is suitable or not will be displayed. If it is not suitable, the game will show what the house is lacking. This alert prioritizes walls (both fore and background), then furniture (door, light source, table, and chair). A generic "This is not valid housing." can indicate that the frame is not closed, or that there is no place for the NPC to stand (see below for details).
Once a house is determined to be suitable, the player may assign an NPC to it by placing the corresponding NPC flag in it. Only the flags of existing NPCs will appear in the housing menu. For example, when first entering a new world, only the Guide's NPC flag is shown, and the NPC flags for other NPCs will only be shown when they have spawned in the world. On the PC version, Console version, Mobile version, tModLoader version, and tModLoader 1.3-Legacy version, NPC flags have two different appearances: solid red and red with a golden frame. NPCs that move in by their own will have a regular red flag. If they are assigned to a house, the banner will have a golden frame. This indicates that if the NPC currently inhabiting the home were to die, the replacement for that NPC would move into that specified home.
In the Old-gen console version, the housing menu can be opened by pressing Inventory and navigating to the housing menu. To check whether a house is valid, press Quick Buff and the housing status of the house the player is standing in will be printed in chat. Press Inventory to show/hide room flags.
There is no housing menu on the Nintendo version.
When the player first meets the spawn conditions for an NPC, a random house will be assigned to them from existing empty suitable houses.
House validity evaluation[]
The house validity evaluation can be divided into 3 phases: Frame, furniture, and properties.
Frame[]
In this phase, the game will try to determine the frame and the internal area of a house, and complete several checks to its structure.[1] The range of a house includes a "connected" internal area and the "frame" surrounding it, in details:
- A tile can be "connected" in 8 directions, which means that tiles in the internal area have to be connected with each other in horizontal, vertical, or diagonal directions.
- "Frame" refers to the tiles surrounding the internal tiles. The frame must be completely closed (i.e. the internal area is completely unconnected to any tiles outside). The frame can only be made up of solid tiles (solid blocks or platforms that are not actuated), Trap Doors, doors, or Tall Gates (only the tiles occupied when the doors are closed will count into the frame).
All tiles within the range of a house have to meet the following requirements:
- All tiles must be at least 10 tiles away from the "true" world edges.[2]
- "Holes" that are 5 tiles or more in width/height are not permitted. A "hole" is a tile that is neither occupied by a valid solid tile nor a valid background wall.
- Background walls not placed by a player (such as naturally-occurring Dirt Walls) do not count, with the exception of Disc Walls in Floating Islands, the Planked Walls found in Underground Cabins, the Sandstone Brick Walls found in Pyramid structures,
or the Living Wood Walls in Living Tree rooms. Dirt Walls placed by the player do work. - Having holes in the background walls may sometimes allow enemies to spawn within the house. To create safer windows, place sections of Glass Wall instead.
- Background walls not placed by a player (such as naturally-occurring Dirt Walls) do not count, with the exception of Disc Walls in Floating Islands, the Planked Walls found in Underground Cabins, the Sandstone Brick Walls found in Pyramid structures,
- A house must have at least 60 but fewer than 750 total tiles including the frame around it.
Minimal house sizes[]
Given the minimum size of 60 tiles including the frame, a rectangular house must have at least one of the following dimensions:
Excluding ceiling, floor and walls | Including ceiling, floor and walls |
---|---|
3 tiles wide × 10 tiles high[3] | 5 tiles wide × 12 tiles high |
4 tiles wide × 8 tiles high | 6 tiles wide × 10 tiles high |
5 tiles wide × 7 tiles high | 7 tiles wide × 9 tiles high |
6 tiles wide × 6 tiles high | 8 tiles wide × 8 tiles high |
7 tiles wide × 5 tiles high | 9 tiles wide × 7 tiles high |
8 tiles wide × 4 tiles high | 10 tiles wide × 6 tiles high |
10 tiles wide × 3 tiles high | 12 tiles wide × 5 tiles high |
13 tiles wide × 2 tiles high |
15 tiles wide × 4 tiles high |
Note that a house does not need to be rectangular. The dimensions above are merely examples.
Furniture[]
In this phase, the game will check for pieces of furniture inside the house.
In the range of a house, there must be at least one valid light source, one valid flat-surface item, one valid comfort item, and one valid entrance.[5] The smallest and most easily obtainable objects that meet the requirements are a Torch, a Work Bench, a Chair, and two Wood Platforms. See below for list of all eligible items.[6]
- Not every item that provides light will fulfill a house's light source requirement; in particular, no "foreground blocks", platforms, or walls qualify.
- The entrance does not need to be usable by the NPC (e.g. NPCs cannot use Trap Doors) nor does it have to lead "outdoors" (e.g. an indoor platform also works).
- Any type of each item listed below will fulfill the requirement. For example, a Torch of any color will work, as will any theme of chairs.
Light sources
Any item with a Tile ID of 4, 33, 34, 35, 42, 49, 92, 93, 95, 98, 100, 149, 173, 174, 270, 271, 316, 317, 318, 372, 405, 572, or 592:
Flat-surface items
Any item with a Tile ID of 14, 18, 87, 88, 90, 101, 354, 355, 464, 469, or 487:
Comfort items
Any item with a Tile ID of 15, 79, 89, 102, 469, 487, or 497:
Entry items
Any item with a Tile ID of 10, 11, 19, 386, 387, 388, 389, 427, 435, 436, 437, 438, or 439:
Properties[]
In this phase, the house looks structurally valid, but there are three reasons it can still be rejected: If it is already occupied, if it is too close to or inside an evil biome, or if there is no place inside for the NPC to stand at night.
First, the game checks if the house is already occupied by another NPC. If it is, then the house is invalid and the status message "This housing is already occupied." will be displayed.
Otherwise, two properties of the house are checked to determine whether it is a valid house: one is the "evil score", the other is the "home tile score".[7]
Evil score[]
Then, start calculating the evil score.
- The area checked will be an extended area of the range of a house. The extended distances differ with versions, and in 1.4.2.3
they are: - If any of the four borders of the area checked is less than 5 tiles from the true world edge, then draw back the area to 5 tiles away from the edge. [9]
- Calculate the total evil score of all valid tiles (including the actuated ones) within the area, see the table below for details:
Tiles | Impact to the score |
---|---|
Corrupt grass | +1 point for each tile |
Ebonstone Block | |
Purple Ice Block | |
Ebonsand Block | |
Ebonsandstone Block | |
Hardened Ebonsand Block | |
Corruption thorny bushes | |
Corruption Plants | |
Vile Mushroom | |
Crimson grass | |
Crimstone Block | |
Red Ice Block | |
Crimsand Block | |
Crimsandstone Block | |
Hardened Crimsand Block | |
Crimson thorny bushes | |
Hallowed grass | −1 point for each tile |
Pearlstone Block | |
Pink Ice Block | |
Pearlsand Block | |
Pearlsandstone Block | |
Hardened Pearlsand Block | |
Short Hallowed plants | |
Tall Hallowed plants (Each plant only counts as one tile, despite their sprites being two tiles in height.) | |
Sunflower | −40 points each[10] |
- Final calculation: Evil score = Corruption block score + Crimson block score − Hallowed block score − Sunflower score
If the evil score is at least 50, then the house is invalid, and the message "This housing is corrupted." will be displayed, and if Evil score ≥ 300, the message "This is not valid housing." will be displayed instead. If an occupied house becomes Corrupted/Crimson, the NPC living there may move out and wander the area until a new house becomes available.
If the evil score is lower than 50, calculate a "temporary score" ( = 50 − evil score). This score will be used in home tile score calculations.
Home tile score[]
Then, start to check whether there is a valid "home tile" within the house. A home tile is a tile which meets the following requirements; in the image, the purple block represents a candidate for the home tile.
- It is a solid tile.
- It is not a platform or a Bubble.
- It is not actuated.
- The tiles to the left and right to it (blue blocks) must be solid, unactuated tiles.
- There are no objects that block entities from passing (actuated solid blocks are not allowed, but platforms are) in the 3×3 area directly above it (tiles in the green square).
- There are no valid foreground blocks or solid tiles among the 3 tiles directly above it (yellow tiles in the green square), and these 3 tiles are all in the range of the housing.
If there is a tile that meets these requirements, calculate the "home tile score" using the objects in the 5×4 area directly above it (red, white, yellow tiles), combined with the temporary score (got from evil score calculations):
- All valid foreground tiles (blocks, furnitures, etc.) in the area, except the invalid tiles in the table below, will be checked.
- The tiles in the middle column (the 1×4 area directly above the tile; yellow tiles) will not be used in the first calculation, they only participate in the second calculation (see below).
- The remaining 16 tiles (red, white tiles) will participate the first calculation:
- −20 points for each tile occupied by a closed door or Tall Gate.
- −20 points for each tile occupied by the hinge of an opened door (the tiles that a closed door occupies). Opened Tall Gates do not impact the score.
- −5 points for each unactuated solid tile.
- +5 points for each tile occupied by other objects.
|
If the home tile score is 0 or lower, then the tile is invalid.
If the home tile score is greater than 0, then continue to the second calculation:
- If assigning a second NPC into the house, resulting in them sharing the house (a town NPC and a town pet
), and the current tile is less than 3 tiles away from the existing NPC's home tile, then the score is set to 1. - If there are Chests within the 5×4 area above (red, white, yellow tiles), then −30 points for each tile occupied by Chests. If the score is below 1 after this calculation, set it to 1.
- If there are valid tiles within the 1×4 area above (yellow tiles), then −15 points for each valid tile.
- If the final score is 0 or lower, then the tile is invalid.
There has to be at least one valid home tile in a house to serve as the standing point of NPCs, otherwise the message "This is not valid housing." will be displayed. The NPC flag will hang directly above the standing point. If there are multiple valid home tiles, then the tile with highest score and being nearest to the top left corner of the house will be selected[11]
Truffle[]
The Truffle NPC has an extra requirement for his house: It must have at least 100 tiles of Glowing Mushroom biome blocks in the area around it. This area is the same size as the area used for calculating the evil score.
Achievements[]
Notes[]
- Houses may be attached together and share common walls, floors, ceilings, and doors. What looks to the player like a multi-room house or apartment complex looks to the NPCs like a collection of independent houses.
- Nearly any NPC house will qualify for a player to place and use a Bed as their spawn point, so long as the tiles immediately above the bed are clear (see the Beds page for full details). The Bed also counts as a comfort item.
- If a house with an assigned NPC is destroyed or any of its requirements are invalidated, the NPC will wander the area until a valid house becomes available again. If killed, the NPC will respawn once a valid house is restored.
- An NPC will not spawn within its house if that house is on the visible screen at the time, and may walk around the area outside instead. Quitting and restarting in single-player mode will place the NPC in its house. At night, when it rains, and during any event, NPCs will be automatically placed inside their houses if the player travels several screens away, or if the player uses any Magic Mirror or the Teleporter.
- The side, top, and bottom of the world will not count as walls.
- If a Stone Wall has been converted into Pearlstone Wall, the house will become invalid as the converted wall is considered a natural wall.
- Increasing the empty wall area (i.e. tiles with only background walls and without other foreground blocks/background objects) of empty houses in the worlds allows NPCs to move in faster. Also, using Sandstone Brick Walls multiplies the time taken by NPCs to move in by 4.[12]
- This means that a house with no empty wall area can only be assigned by a player.
Tips[]
- Houses in the Corruption or Crimson biomes are usually invalid. This could make purchasing items with biome requirements (most notably for the Painter) harder. For these circumstances, one can use a King Statue or a Queen Statue to teleport the NPCs and purchase these items.
- If one does not have access to King or Queen Statues, building a house just outside of the evil score detection range but still within the evil biome (the evil biome's background should be visible) will create a valid house within said biome.
- Actuators can be used with Blue, Brown, Gray, and Lihzahrd Pressure Plates to allow players entry but prevent enemies from entering or NPCs from leaving. However, if an actuated wall is left open, it can make the house invalid until it is made solid again.
- Trap Doors can also be used, as neither enemies nor NPCs can open them.
- On the PC version, Console version, Mobile version, tModLoader version, and tModLoader 1.3-Legacy version, it is very useful and convenient to use a "Player Above" sensor instead of pressure plates. Not only does this save some usable floor space, but avoids having the opening accidentally left open by an accidental misstep. Warning: The sensor itself is not a valid block for the house frame; if it is used as part of the floor, ceiling, or side walls (including corners), the house will not be valid.
- On the Old-gen console, Windows Phone, Old Chinese, , and tModLoader Legacy versions, if a house is built at the world's original spawn point, it is best not to place any foreground objects or blocks where characters appear; when the player teleports back or respawns, any blocks or furniture where they appear will be broken, which can invalidate the house.
- If absolutely necessary (e.g. on , where there is no housing menu), players can force an NPC into a particular house by destroying all the others.
- Hardmode natural walls, such as Pearlstone and Ebonstone Walls, do not count as valid walls.
- As long as the house meets the size criteria, it can be any shape, not just rectangles and squares (e.g. a dome-shaped house would still be viable).
- It is a wise decision to build "spare" houses beyond the current number of NPCs:
- Any new NPCs can move in as soon as they are spawned or found (perhaps unexpectedly).
- Especially when entering Hardmode, some houses may be invalidated by Corruption or Crimson; having spares will help avoid NPCs being left homeless.
Having extras at each base will help with shuffling NPCs around to manage happiness, and/or make sure pylons remain usable.
- When building homes underground, Sticky Bombs or Scarab Bombs
are a good choice, as they are accurate and break background walls for easier wall placement. - While it may be tempting to tuck all the NPCs into small houses, this will leave little room for decoration or even equipment. Many crafting stations are 3 tiles wide by 3 high, and as the game progresses, a player can obtain paintings and animal skins up to 6 tiles wide by 4 high, and potted plants that are 3 tiles wide and up to 6 high.
- Houses are good places for players to indulge their creativity. It can be entertaining to provide NPCs with decorated and themed homes, even if they would be satisfied with empty cells. The NPC happiness system
builds on this source of entertainment, by giving NPCs preferences for their house's location and proximity to houses of other NPCs. That said, NPC happiness is not affected by a house's appearance or decoration, leaving the player with a free hand.
Trivia[]
- Houses do not need a full backwall to be valid; as shown in the example, players can create a minimal, but still valid house if needed.
- A house that has blocks within 5 tiles from the "true" edge of the world is considered invalid with the message "We need better text for this!!!"
See also[]
History[]
- Desktop 1.4.0.1: Chippy's Couch may now be used as a comfort item in houses.
- Desktop 1.3.5.3: Fixed an error when trying to use the room query on an unfit room in certain languages.
- Desktop 1.3.5: NPCs who are manually assigned to a room will have their successor attempt to move in when the original is killed.
- Desktop 1.3.2: Fixed Team Platforms not acting as viable doors for housing.
- Desktop 1.3.1: Removed the "infinite house" glitch.
- Desktop 1.3.0.5: Living Leaf Walls can now be used as a background for houses.
- Desktop 1.3.0.1: Blue Slab Walls from the Dungeon are now detected as valid for houses.
- Desktop 1.2.4.1: Opening doors will once again cause a house to be unsuitable, but only if two doors are opened into the same house (depends on the size of the house).
- Desktop 1.2: Fixed a bug that would cause a suitable house to be unsuitable.
- Desktop 1.1: There is now a housing menu (a built-in interface) for checking if a house is valid for being moved into, and for assigning NPCs to specific houses.
- Desktop 1.0.6: Requirements modified; may now use a Bed, Toilet, Throne, or Bench instead of a chair, and may use a Dresser, Bathtub, or Bookcase instead of a table or Work Bench.
References[]
- ↑ Information taken from the PC 1.4.2.3 source code, method
StartRoomCheck()
inTerraria.WorldGen.cs
. There may be inaccuracies, as the current PC version is 1.4.4.9. - ↑ There is a hidden area about 40 tiles in length out of the visible in-game world edge before reaching the true world edge, so this should not be triggered during normal gameplay.
- ↑ Only possible when using a Work Bench instead of a table.
- ↑ Only possible when using platforms as a ceiling. No longer possible on PC, Console, Mobile, Old Chinese, tModLoader, and tModLoader Legacy.
- ↑ Information taken from the PC 1.4.2.3 source code, method
RoomNeeds()
inTerraria.WorldGen.cs
. There may be inaccuracies, as the current PC version is 1.4.4.9. - ↑ Information taken from the PC 1.4.2.3 source code, class
. There may be inaccuracies, as the current PC version is 1.4.4.9.Terraria.ID.Sets.RoomNeeds
- ↑ Information taken from the PC 1.4.2.3 source code, method
ScoreRoom()
inTerraria.WorldGen.cs
. There may be inaccuracies, as the current PC version is 1.4.4.9. - ↑ 8.0 8.1 The actual code is bugged here. The stats are divided by an extra 16, resulting in the actual area checked being far smaller than it supposed to be. Based on the stats in 1.4.2.3 codes, the extended distance should be 144 tiles horizontally in both directions, 101 tiles upwards and 104 tiles downwards vertically. This bug has made a housing will seldom become invalid due to being Corrupted.
- ↑ Note that this is possible during a normal gameplay, as the extended distance is farther than the distance between the visible world edge and the true world edge.
- ↑ Each tile counts as −5 points, while each Sunflower takes up 8 tiles.
- ↑ The game will check the tiles from top to bottom, and left to right. If detected a tile with higher score than any checked tiles, then it will be reserved as the home tile; if a tile's score is lower than or equal to the previous score, then it will be skipped. So, when multiple tiles are tied with each other, the topmost and leftmost tile will be selected as the home tile.
- ↑ Information taken from the PC 1.4.2.3 source code, method
TrySpawningTownNPC()
inTerraria.WorldGen.cs
. There may be inaccuracies, as the current PC version is 1.4.4.9.