Unit Size

From Liquipedia Dota 2 Wiki

Unit Size is a mechanic that defines a unit's size in the game.

Definition[edit]

Only Selection Size can change as Model Size changes. Other unit sizes do not have relationship with each other.

Unit sizes are not directly set by a number in their data. Instead, sizes are standardized for all units, with the use of collision sizes and bound radius.

Mechanics Definition Console Example

Collision Size
  • The internal size of a unit that cannot be passed through by other units.
  • Units with phased or flying movement may pass through other units conditionally, ignoring collision size.
dota_unit_show_collision_radius 1

Bound Radius
  • Determines the absolute coordinates of a unit in the game.
  • Affects the actual attack range of the attacking unit for both MeleeMelee melee and RangedRanged ranged units.
  • Affects the actual cast range of unit-targeted abilities.
  • Affects the actual effect radius of various area of effect-based abilities (e.g. Aura).
dota_unit_show_bounding_radius 1

Selection Box
  • The Selection Box is the range size of a unit being clickable.
dota_unit_show_selection_boxes 1

Model Size
  • The actual size and model scale ratio of a unit.
  • Does not determine the facing direction.
ent_hitbox

Size Values[edit]

The Collision Sizes and Bound Radius of units are not directly set by a number in their data. Instead, they are standardized for all units with the following hull sizes.

Hull Name Collision Size Bound Radius Notes
DOTA_HULL_SIZE_BUILDING x x-16
  • The building's sizes are affected by the model's skeleton scale size.
  • Different building models will have different sizes, and the difference between its collision and bound radius is 16.
DOTA_HULL_SIZE_BARRACKS 160 144
DOTA_HULL_SIZE_TOWER 144 144
DOTA_HULL_SIZE_FILLER 112 96
DOTA_HULL_SIZE_HUGE 80 80
DOTA_HULL_SIZE_BIG_HERO 43 40
DOTA_HULL_SIZE_LARGE 41 40
DOTA_HULL_SIZE_SIEGE 40 16
DOTA_HULL_SIZE_REGULAR 36 16
DOTA_HULL_SIZE_HERO 27 24
DOTA_HULL_SIZE_SMALL 18 8
DOTA_HULL_SIZE_SMALLEST 4 2

Ancients[edit]

Both Faction Radiant and Faction Dire's Ancient uses the DOTA_HULL_SIZE_BUILDING. Their exact collision size and bound radius can be found in models/props_structures.

Faction Model Collision Size Bound Radius
Faction Radiant radiant_ancient001.vmdl_c 314.73 298.73
Faction Dire dire_ancient_base001.vmdl_c 389.96 373.96

Heroes[edit]

Heroes Collision Size Bound Radius
27 24
18 8

Units[edit]

Units Collision Size Bound Radius
Fiend's Gate 112 96
Power Cog 80 80
Anchor,  Death Ward,  Familiar,  Flagbearer Creep,  Forged Spirit,  Greater Treant,  Ice Spire,  Massive Serpent Ward,  Mega Flagbearer Creep,  Mega Melee Creep, File:File:Melee Creep Radiant icon.png Melee Creep,  Necronomicon Warrior,  Serpent Ward,  Super Flagbearer Creep,  Super Melee Creep,  Tombstone,  Tornado,  Treant,  36 16
Siege Creep, Mega Siege Creep, Super Siege Creep 40 16
Alpha Wolf,  Ancient Black Dragon,  Ancient Black Drake,  Ancient Frostbitten Golem,  Ancient Granite Golem,  Ancient Ice Shaman,  Ancient Rock Golem,  Ancient Rumblehide,  Ancient Thunderhide,  Boar,  Centaur Conqueror,  Centaur Courser,  Dark Troll Summoner,  Fell Spirit,  Ghost,  Giant Wolf,  Harpy Scout,  Harpy Stormcrafter,  Hawk,  Hellbear,  27 24
Astral Spirit,  Beetle,  Courier,  Earth,  Eidolon,  Fire,  Lycan Lane Wolf,  Lycan Wolf,  Mega Ranged Creep,  Minor Imp,  Necronomicon Archer,  Phantom,  Skeleton Warrior,  Spiderite,  Spiderling,  Spin Web,  Storm,  Super Ranged Creep,  Void,  Observer Ward, Sentry Ward 18 8
Undying Zombie, Wraith King Skeleton 4 2

Collision Size[edit]

Naga Siren and Slark's collision size.

Collision Size is a unit's internal size that cannot be passed through by other units, while phased movement allows units to ignore collision size and pass through other units. A unit's collision size can be shown with dota_unit_show_collision_radius 1 with console enabled.

A unit's collision size is not directly affected by its model size or graphical model. Generally, collision size refers to the smallest possible distance between two units. Therefore, the smallest possible distance between two units is equal to the sum of the collision size of the units.

Collision size causes units to block each other with their bodies, and block units during pathfinding. Non-player-controlled units (i.e. lane creeps) do not try to path around the source that blocks them but simply walk against it as if it is not there. This effectively causes them to get stuck, until they change directions (e.g. when being aggro'd), or until the source that blocks them disappears.

Units with phased movement ignore the collision sizes of other units, causing both units to overlap. When multiple units overlap during the phase movement expiring, the units with lower collision size priority will be pushed away from the higher-priority collision size source as follows:

Priority Definition Examples
1 Immoveable Objects
2 The unit that loses phased movement first.
  • If two heroes are in the same coordinates, they will be pushed 58-distance away upon losing phased movement, regardless of the collision sizes of these heroes.
  • Illusion-creating sources.

Collision size also affects illusion-creating sources. Since two heroes (or units) cannot be in the same coordinates without phased movement, and they will be pushed 58-distance away upon losing phased movement, regardless of the collision sizes. In the following table, Phantom Lancer and Chaos Knight have a collision size of 18 and 27 respectively. The illusions will spawn at different distances depending on the affected target's collision size as follows:

Caster Collision Size Target Collision Size Pushed Distance
(18) (27) 58
(27) (18) 58
Both Caster and Target have the same collision size. 58
If the target's collision size is not the same as the caster's, and it is greater than the caster's collision size.
EXPR
TargetCollision > CasterCollision [?]
87
Example
Chaos Knight casts Upgradable by Aghanim's Shard. Chaos Bolt on an enemy Marci and Siege Creep. How far the Phantasm illusion will be spawned next to both of these enemy targets?
Chaos Knight Collision Size:
Marci Collision Size:
Siege Creep Collision Size: 40
Since both heroes' collision sizes are the same, the Phantasm illusion will spawn 58-distance away when Marci does not have phased movement.
For the Siege Creep, the Phantasm illusion will spawn 87-distance away instead.

Pathing Blocker[edit]

Main Article: Trap
Defender's Gate Visualized.

A pathing blocker is an invisible entity with a collision size that physically blocks other units. Walking against a pathing blocker is akin to walking against any other unit that is not phased or flying, or walking against trees.

Phased movement does not allow a unit to path through pathing blockers, but flying or unobstructed movement does. Lane creeps cannot walk around pathing blockers and try to walk through them, effectively getting fully stopped by them. Player-controlled units try to path around them if possible.

These pathing blockers (npc_dota_thinker) created are generally not selectable.

The smallest distance between a pathing blocker and another unit depends on both entities' bound radius, not collision size. For example, the smallest distance between Marci and a Cycloned unit's center will be the sum of both entities' bound radius, which will be 24.

The picture on the right shows the Defender's Gate utilizing the collision size mechanic as a pathing blocker visualized.

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

Trees[edit]

Main Article: Trees

Trees are a prominent terrain feature in Dota 2. They make up a large amount of the map and are very prominent in the forests that separate the lanes and border the map. Trees block vision and are normally impassable.

Despite the varying appearance and apparent size of the various trees, all permanent trees have an block size of a 128x128 unit square.

Ignoring Collision Size[edit]

See also: Tree-Walking

Phased is a status that allows units to pass through other units, ignoring collision size. Phased units can freely walk through any other unit, including wards, but excluding buildings and trees. Other units can also walk through a stationary phased unit as if it is not there.

There are two different kinds of phased movement, pathing through units, and the rare kind which allows the unit to walk through anything, including buildings, cliffs and trees, which is more commonly referred to as unobstructed movement.

Certain abilities grant tree-walking, a buff that allows unobstructed movement through trees. All flying and unobstructed movement sources grant tree-walking as well.

Phased Movement[edit]

These abilities provide phased movement which allows moving through units:

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

The following units are permanently phased:

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

Unobstructed Movement[edit]

Free pathing (also known as unobstructed movement) allows affected units to path through buildings, cliffs and trees, on top of allowing them to path through other units. There is no limit to their movement and only a tiny amount of spells will block them. All sources of flying movement give units unobstructed movement. Uphill miss chance does not apply to flying units.

The following abilities provide unobstructed movement:

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

Flying Movement[edit]

Flying movement is similar to unobstructed movement, with only very small differences, one being that flying units hover a certain distance above the ground with unobstructed vision and that even fewer abilities block flying movement.

When a unit turns to Flying Movement, although its hitbox and model ascend above the z-axis, both its collision size and bound radius are still on the ground. The following abilities provide Flying Movement while active:

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.
Units with Flying Movement

Bound Radius[edit]

Naga Siren and Slark's bound radius.

The Bound Radius determines the absolute coordinates of a unit in the game and acts as a pseudo-buffer for certain ability types' cast range values and attack range-related values. A unit's bound radius can be shown with dota_unit_show_bounding_radius 1 with console enabled.

Bound radius also affects the size of an area of effect, if an ability is cast as a ground-targeted ability, the affected target's bound size is also considered as a buffer range for ability, therefore increasing the ability's maximum area of effect range. However, if an ability is cast centered on the caster (with ↓↓ Double-tapping), the caster's bound radius value is ignored and no buffer range is added.

Mechanics Affected Aspect / Definition Ability Examples
Attack Range
  • The bound radius of both the attacker and the attacked unit increases the actual attack range.
Cast Range
(Unit-targeted Abilities)
  • The bound radius of both the attacker and the attacked unit increases the actual cast range for unit-targeted abilities.
Laguna Blade
Area-of-Effect Abilities
  • The bound radius affects the actual effect range of area-of-effect and aura-based abilities.
Song of the Siren

Equations[edit]

For normal attacks:
Actual Attack Range = Total Attack Range + Attacker Bound Radius + Target Bound Radius

For most MeleeMelee melee heroes, the attack buffer range is defined as:
Total Melee Buffer Range = Unit Total Attack Range + Attacker Bound Radius + Target Bound Radius + 350

For abilities:
MAX Cast Range = Total Ability Cast Range + Target Bound Radius

MAX Effect Radius = Total Ability Effect Radius + Target Bound Radius

Example 1a
Maximum Distance for Attackable Range
A Tower (Tier 1) is attacking Marci. Without other attack range-increasing sources, what is the maximum distance a normal attack would hit between the attacker and the unit being attacked?
Tower (Tier 1) attack range: 700
Tower (Tier 1) bound radius: 144
Marci bound radius:
Maximum attack range against Marci
= 700 + 144 +
= Expression error: Missing operand for +.
The Tower (Tier 1) has a Expression error: Missing operand for +. maximum attack range against Marci. Since the Tower cannot move, the 250 attack range buffer does not apply in this case.
Example 1b
With Attack Buffer Range
Muerta is attacking Marci. Without other attack range-increasing sources, what is the maximum distance a normal attack would hit between the attacker and the unit being attacked?
Muerta attack range: 575
Muerta bound radius:
Marci bound radius:
Motion buffer distance: 250
Maximum attack range against Marci
= 575 + +
= Expression error: Missing operand for +.
Muerta has a Expression error: Missing operand for +. maximum attack range against Marci, and her attack cancels when Marci is beyond 825 distance from her.
Therefore, units with a smaller bound radius will have a lesser actual attack range value against them.
Example 2
An Ability's Maximum Effect Radius Between Two Casters
Bound Radius affecting actual effect radius.
What is the maximum area of effect range for Naga Siren's Song of the Siren affecting Rubick?
If Rubick acquires Song of the Siren via Spell Steal, what is the maximum area of effect range for Rubick's Song of the Siren affecting Naga Siren?
Song of the Siren max radius: 1400
Rubick bound radius:
Naga Siren bound radius:
Maximum effect radius against Rubick:
= 1400 +
= Expression error: Missing operand for +.
Maximum effect radius against Naga Siren:
= 1400 +
= Expression error: Missing operand for +.
Therefore, Naga Siren's Song of the Siren has a greater area of effect of Expression error: Missing operand for +. compared to Rubick's.
Assuming both Rubick and Naga Siren are at ±1400 distance apart, an acquired Song of the Siren via Spell Steal might not affect Naga Siren if she is not within the actual effect radius since Naga Siren has a smaller bound radius as shown in the diagram on the right.

Selection Box[edit]

Selection boxes.

The selection box (or hitbox) is the range size of a unit being clickable, or when ⇱⇲ Drag is used to select units.

Most units have a minimum of two selection boxes, one exterior big cuboid, and at least one cuboid on the inside. For buildings, the cuboid inside might be larger than the exterior cuboid. Clicking outside the unit's selection box will not select the unit.

The selection box is bound to the unit's model and its values can be found using Workshop Tools. The selection boxes' size also scales with the current unit's model size. A unit's selection boxes can be shown with dota_unit_show_selection_boxes 1 with console enabled.

Certain cosmetic items change the value of the selection boxes due to having a different model as follows:

Has the following priority when the selection boxes of multiple units overlap:

  • The internal cuboid(s) ➤ The external cuboid ➤ The unit closest to the player's camera.
Hexed Windranger, collision size stays unchanged, but the selection boxes change based on the Hex model.
Selection Boxes
Left Click
Mechanics
Exterior Cube
  • The unit is selected as long it is clicked within the range of the exterior cube.
  • Target Unit abilities are cast as long as it is clicked within the range of the exterior cube.
  • The exterior cube's size scales with the current unit's model size.
Internal Cube
  • The unit is selected as long it is clicked within the range of the internal cube as well.
  • The unit is selected as long ⇱⇲ Drag within the range of the internal cube as well.
Hollow Ring
  • Every unit has a hollow ring under the selected unit.
  • The radius of this hollow ring cannot be changed and it is set as RingRadius in npc_abilities.txt or npc_units.txt.

Unselectable[edit]

Main Article: Unselectability

Unselectability makes the unit not selectable, and selectable only in a few cases. Most abilities/items treat unselectable units as if they were invisible, except in a few cases. Some sources of unselectability may remove a unit's selection box, grant attack immunity, and may prevent allies or enemies or both from targeting them.

Although Hide sources also cause the unit to be unselectable and non-targetable, they are considered a different mechanic.

Model Size[edit]

Model Size

A unit's Model Size is stored as a fixed scale value in npc_abilities.txt or npc_units.txt. Model Size can be shown with both ent_text and debug_overlay_fullposition 1 with console enabled.

Model Size shown in ent_text is equal to 1.12 * Model Scale in either npc_abilities.txt or npc_units.txt.

It has no correlation with a unit's collision size or bound radius. However, increasing the model size increases the size of a unit's selection boxes.

Also, a unit's model animations do not determine the unit's current facing direction, certain ability interactions with the current unit's model may not correctly represent the current facing direction of the unit.

In most cases, ability animations with special model animations do not change the unit's facing direction. This includes all Taunt (Equipment) and the following abilities:

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

Different Model[edit]

Main Articles: Transformation Abilities and Hex

The following sources directly change or replace the unit's current model. Certain abilities increase the model size as an effect as well, with more details can be found on their respective ability notes.

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

Percentage-Based Changes[edit]

Avatar increases model size by 30%.

All percentage-based model scale sources stack independently and additively of each other.

Total Model Size = Base Scale × (1 + Percentage-Based Scale i)

Example
Axe currently has a model scale of 1.12. What is his current model scale upon activating Avatar?
Avatar model scale increase: 30%
1.12 × (1 + 0.3)
= 1.456
Axe has a model scale of 1.456 upon activating Avatar as shown in the picture example on the left.

Percentage Bonuses[edit]

1 Requires TalentsTalents talent.
2a Requires Aghanim's Scepter.
2b Requires Aghanim's Shard.

Edge Cases[edit]

Model Size edge cases example.

In some edge cases, the unit's model size does affect gameplay and has some unique interactions between units and abilities.

Since a unit's model determines the entity attachments of projectiles, model size may indirectly affect attack animations and certain trajectories for projectiles. This may affect the following things:

  • The projectile of Cripple starts from the front end of the hero's weapon. The larger the hero model, the closer the starting point of the projectile is to the target. Hence, the projectile will reach the target in a slightly shorter time.
  • As shown in the right attachment, with Queen of Pain's original model scale, all attack projectiles are blocked by Arena of Blood.
    • After casting Avatar and increasing its model scale, the front edge of her weapon is considered inside the Arena of Blood on certain attack animations, making some of her attack bypassing the Arena of Blood, and therefore damaging Mars.
    • The same also applies to Outworld Destroyer, who has certain attack animations releasing projectiles from the tip of the weapon.
    • Razor with Voidstorm Asylum equipped may attack targets near the Arena of Blood within 150 range since the cosmetic uses a different attack animation in certain attack range.

Recent Changes[edit]

Description
7.29
(2021-04-09)
  • CHANGED Meepo hull type from DOTA_HULL_SIZE_HERO to DOTA_HULL_SIZE_HERO_SMALL .
    • Reduced collision size from 27 to 18.
    • Reduced bound radius from 24 to 8.
7.23
(2019-11-26)
  • U CHANGED Wraith King Skeleton hull type from DOTA_HULL_SIZE_HERO to DOTA_HULL_SIZE_SMALL .
    • Reduced collision size from 27 to 18.
    • Reduced bound radius from 24 to 8.
6.72d
(2011-07-22)
  • CHANGED all MeleeMelee melee heroes' from DOTA_HULL_SIZE_HERO_SMALL to DOTA_HULL_SIZE_HERO . [?]