Hoik

A Hoik is a sawtooth series of sloped blocks, sometimes referred to as "teeth", which can rapidly move entities across distances.
When a character sprite shares space with a sloped block, the character is immediately displaced a couple of tiles in a predictable direction. By chaining these glitches together via a series of strategically-placed shaped blocks, entities can be moved rapidly in any direction over long distances. It becomes easy to achieve horizontal travel at 60 or 120 tiles per second, and vertical travel at 180 tiles per second, which is much faster than many of the other 'legitimate' forms of travel.
Hoiks are most commonly used as a method of fast . They also allow for the creation of mechanisms that may otherwise be impractical or impossible using standard game features, such as fast binary counters.
Hoiks have been possible since Terraria version 1.2 (which first introduced sloped tiles), though their utility to players was originally considered an exploited glitch. Since , Re-Logic officially acknowledged Hoiks as a game "feature," meaning they are no longer considered an unintended benefit that might be repaired in future versions, and their functionality will remain in the game for the foreseeable future.
A by ZeroGravitas was responsible for making the Hoik term and functionality known among Terraria fans, though there had been previous lesser-known exploits of this functionality. Much of the material presented in this article is based on research by ZeroGravitas.
Something worth noting is that when the item that you want to Hoik is off screen, it will not be Hoiked. The items that are being Hoiked must be seen on screen if the Hoik is to function properly.
== Displacement in Terraria ==
Hoiks are based on the game's displacement system. When an overlap of block and entity is detected, the entity is displaced in order to resolve the overlap. For sloped blocks, the displacement direction is indicated by the location of the slope within the tile.
The game determines the displacement direction following these rules:
* If the slope is facing upwards, move the entity straight upwards (provided there are no blocks directly above the head).
* If the slope is facing downwards, move entity straight downwards (provided there are no blocks directly under the feet).
* If either of the above are blocked (by blocks directly above or below, respectively), then move the entity sideways (in the direction the slope faces) ignoring any solid blocks to side.
* Exception: Upward-displacement is always the first choice for blocks at foot height. Blocks directly above the head (or is held) negate this.
This behavior is visualized in the diagram on the right. The diagram was created by actuating a sloped block into existence behind the player's sprite, having started by standing in the middle of the 2 Glass Block base, in each case. Equally, the diagram shows the jump made by hammering a previously square tile into the depicted shape (while behind the player).
thumb|right|500px|Hoik-useable instances are highlighted in color.
* Complete displacements are helpful for hoiks:
** Vertical displacement: = up 3 (tiles), = up 2.
** Horizontal displacement: = right 2, = right 1, = right 1, = right 2.
* Unhelpful instances show incomplete displacements (, , ), jams (, ), no effect (, ), or a single-tile rise which can not be strung onto further hoik steps (, , ).
* Square blocks or half-tiles in any of the empty spaces behind the player, or to the sides, have no effects.
Terraria detects collision every tick. Thus, stringing together a series of these displacements, with each jump landing the player on top of another sloped tile, creates a "track" which is capable of moving an entity at the speed of 1 displacement per tick, i.e. 60 displacements per second. This is the quintessence of a hoik.
== Mounting a Hoik ==
A hoik is entered by positioning the (player) sprite in front of the first tooth. This can be achieved using the following methods:
* Stepping up onto a square block or a platform hammered into "half" position.
* Actuating the first tooth, positioning in front of it, and turning it back on.
* Placing a sloped platform, sloped inactive block, or inactive platform against the upright edge of the first tooth. The game's collision detection then ignores the adjacent horizontal surface.
* Teleporting onto the tooth.
* Constructing another hoik which leaves the player in front of the tooth.
* Grappling, in certain cases.
== Vertical Hoik Examples ==
=== Upwards ===
 Step-up mounted standard elevator. Jumps up 3 tiles per game tick.
 Sloped platform mounted hoik elevator.
 This elevator can be joined anywhere along its length. To bypass the sloped platforms (including avoiding fall damage), needs to be held while falling.
 Inactive sloped tile mount.
 Actuated first tooth mount.
 Sectional elevator (up one section per click). For a two-way use in a two-block wide hellevator, all teeth need to be actuated. If used in a three-block wide shaft, only the first tooth at each mounting point needs to be actuated.
 Tooth spacing variations: A single gap can be left (e.g. to help adjusting the exact starting/ending points). One-tile gaps can only be used on alternate teeth, otherwise the entity's head will jam against the third tooth.
 Tooth width variants: Stepping up through entirely solid rows (up to two tiles thick) is possible, e.g. to hold water, lava, or NPCs in place.
 This hoik is mounted by walking past the entrance or holding while walking left.
=== Downwards and Bi-directional ===
; Downwards
 Hold while walking slowly through the sloped platform. Continue holding over the edge (otherwise the player will step up on top of the mounting tooth).
 Mid-run mounting. (There is no known way to walk through a down hoik, like in the diagram above, without actuating a tooth.)
 Walk in from the left. The hoik uses inactive sloped block and ceiling. Like upward hoiks, every other downward tooth can have 1 vertical space, instead of 2, but the first gap must be 2 tiles high.
 All tiles except the row directly below the each tooth can be filled in.
 Actuated mount. The first tooth comes in as a block/platform directly underneath and is actuated out. Must be a one-tile gap beneath, otherwise the player will just step down.
; Bi-directional
 Activate the Switch to move upwards/downwards. Actuated upward teeth (and mounting teeth) allow two-directional travel through a two-tile wide shaft.
 Standard three-tile wide up- and downward hoik. Hoiking downwards places the entity on the platform at the bottom.
 A four-tile wide shaft allows up- and downward hoiks to be entirely independent.
== Horizontal Hoik Examples ==
While all entities are moved from left to right here, the layout can be inverted to enable right-to-left transport. As soon as the entity is mounted, all tiles except the teeth are irrelevant. This allows a horizontal track through entirely solid ground.
=== Top (Against Ceiling) ===
All entities are moved along the ceiling, hence no floor is required. Actuated mounting variants are more space-efficient, thus shown first.
 Waist-height teeth variant, 1 tile/tick.
 Head-height variant, 2 tiles/tick. Actuated mount.
 Head-height, 2 tile/tick. Sloped platform 1-step elevator mount.
 Waist-height, 1 tile/tick. Step-up elevator mount. (An elevator section of any length can be used, provided the last step up puts the player's head directly under (against) the ceiling.
=== Bottom (Against Floor) ===
All entities are moved along the floor, hence no ceiling is required (except for specific mounting instances).
 Foot-height variant, 2 tiles/tick. To mount, hold before reaching the sloped platform (will walk over the top otherwise).
 Waist-height teeth, 1 tile/tick. Inactive sloped block mount. Just walking towards it to mount is sufficient, as the block above prevents stepping up.
 Waist-height, 1 tile/tick. Actuated teeth mount variant. Waist-height is preferable over actuated foot-height which will push up the sprite (unless a ceiling is placed) and requires more precise positioning.
 Bi-directional, foot-height, 2 tiles/tick. Automatic mounting in either direction, just walk towards it.
 Bi-directional, foot-height, 2 tiles/tick. The absence of ceiling in the mounting area here requires to hold while mounting, otherwise the player will just walk straight over the top, in either direction.
== Comparison to Alternatives ==
* Hoiks have a higher top speed which is achieved immediately: 48.4 tiles/sec (regular Minecart); 60 or 120 tiles/sec (horizontal hoik).
* The track of hoiks is much less flexible and not intrinsically two-way (possible, but more fiddly).
* It is difficult to manually dismount a top hoik mid-run (but one can step out of the bottom hoik at any point, if there is no ceiling).
* Hoiks have a higher top speed which is achieved immediately: 30.75 tiles/sec ascending, 38.25 tiles/sec descending (Rope); 180 tiles/sec (vertical hoik, both directions).
* At this speed, however, it is hard to dismount at the right point without inserting gaps.
* Mid-run entry and break points need to be engineered in.
* A hoik's foreground blocks possibly obstruct open space.
* Hoiks are free and available at all points of game progression.
* Using a hoik does not despawn the player, which means NPCs will not be auto-relocated.
* Hoiks do not require long wire routes that may interfere with other devices.
* Teleporters are faster in nearly all cases.
* Using a hoik discharges momentum, as each displacement counts as a collision with a tile, therefore running/Minecart speed cannot be carried over to the destination.
* Constructing a hoik is far more fiddly for any significant distance, especially for bi-directional travel.
* Hoiks are much less flexible.
== Item Hoiks ==
Dropped items can be hoiked, i.e. displaced due to overlap with sloped blocks, as well. While item transport is more limited than player and NPC transport, there are numerous common use cases, such as more efficient farms (e.g. an automated Fallen Star farm) or a Heart/Mana Star extractor for event fights.
See the following forums thread for further reading: 
== Alternative Uses for Hoiks ==
Hoiks, although often used for item, enemy, or player transport - can have other alternative practical uses such as one-way walls, enemy traps, and more. These often include one or a combination of the Hoiks used for other purposes.
==== One-Way Wall ====
* A one way wall can be created when 1 or more stair platforms are placed vertically on any block(s). The one-way can be used by any entity, the player must press the Down key when walking through the one-way for the effect to work. Enemies must be pathing toward a target that is below them in order to use this Hoik.
* One-Way walls created this way are compatible with Minecarts.
* You can actuate the platforms and then just walk through the wall and platforms without having to hold down or press any keys.
=== Vertical One-Way Wall ===
* A vertical one-way wall can be created to move an entity from below a set of blocks to above the set of blocks using at least 1 bottom platform, created by hammering a platform 3 times. This allows one-way travel through up to 3 blocks, however, some enemies may have trouble pathing out of certain arrangements of blocks.
Vertical One-Way Walls using Platforms	Vertical One-Way Walls using Platforms	Vertical One-Way Walls using Platforms
 	 	
=== Mount Compatible Doorways ===
* A pre-Skeletron Mount compatible door can be created using a horizontal Hoik One-Way wall above a doorway. This offers an alternative to the use of Mechanisms such as Actuators and Pressure Plates as it does not require defeating Skeletron. This is compatible with all mounts of any size, however, larger Mounts will require more One-Way Hoiks above the door.
** NOTE: Mount Compatible Doorways using this method are not compatible with 1.4.0.1 Smart Doors and must be manually opened before entering while riding a mount
=== Hoik Engines ===
* A pre-Skeletron wire engine, a faster Timer, can be created using a Hoik that loops onto itself. This can be used as a Timer that can be created and used with wires and pressure plates found exploring. This can be especially useful for players wanting to farm creatures or items spawned using Statues.
** NOTE: This engine can be used by players and some enemies. When used by the player it moves the player continuously in opposite directions very quickly. The visual effect created by this movement may not be desirable or prefereable to other engines as some players may be sensitive to quick movement or flashing colors. Please use with caution.
=== Block-Swapped Platform Hoiks ===
* Block swapping upside-down slopes with platforms results in strange, invalid platforms with hoik-like properties. This can be used to make hoik lines that can be mounted freely without the need for actuators or wiring.
== Notes ==
* If the player builds a hoik out of Echo Blocks, it will appear to be nothing moving them along.
* Regular hoiks can be used by players, enemies, NPCs, the Eternia Crystal, and the invisible Target Dummy entity.
** Mounted players can use hoiks as well, including Minecarts. Since a mount increases the size of the player's sprite, the gaps between the teeth will need to be adjusted.
* On the Mobile version hoiks may not work as expected displacing the player in some odd and unusual ways.
* Some hoiks may not work if the player is moving too fast.
== References ==