Difference between revisions of "List of Dota 2 Script Functions"

From Valve Developer Community
Jump to: navigation, search
Line 616: Line 616:
| ModifyGold
| ModifyGold
| <code>int ModifyGold( int playerId, int goldAmt, bool reliable, int )</code>
| <code>int ModifyGold( int playerId, int goldAmt, bool reliable, int )</code>
| In frostivus it is <code>hero:ModifyGold( int goldAmt, bool reliable, int )</code>
| SetGold
| SetGold

Revision as of 14:13, 11 January 2014

This list contains all engine-related Lua variables, functions, and constants available for VScript in <Dota 2> Dota 2.


!Used to create and manage particle effects

Function Signature Description
CreateParticle int CreateParticle( string particleName, int ParticleAttach, Entity owningEntity) Creates a new particle effect. Returns the particle id
CreateParticleForPlayer int CreateParticleForPlayer( string particleName, int ParticleAttach, Entity owningEntity, Player viewingPlayer) Creates a new particle effect that only plays for the specified player
SetParticleControl void SetParticleControl( int particleId, int controlIndex, vector controlData) Set the control point data for a control on a particle effect
ReleaseParticleIndex void ReleaseParticleIndex( int particleId ) Frees the specified particle index


!DOTA GameRules

Function Signature Description
State_Get GameState State_Get() Get the current Gamerules state
GetGameTime float GetGameTime() Returns the number of seconds elapsed since map start. This time doesn't count up when the game is paused
GetDifficulty int GetDifficulty() Returns difficulty level of the custom game mode
Defeated void Defeated() Kills the ancient, etc.
ResetDefeated void ResetDefeated() Restart after killing the ancient, etc.
SetGameWinner void SetGameWinner( int ) Makes ths specified team win
MakeTeamLose void MakeTeamLose( int team ) Makes ths specified team lose
GetDroppedItem Item GetDroppedItem( int dropIndex) Gets the Xth dropped item
NumDroppedItems int NumDroppedItems() Returns the number of items currently dropped on the ground
SendCustomMessage void SendCustomMessage( string stringText, int, int ) Sends a string to the defined team.
SetHeroRespawnEnabled void SetHeroRespawnEnabled( bool canRespawn ) Control if the normal DOTA hero respawn rules apply.
Playtesting_UpdateCustomKeyValues void Playtesting_UpdateCustomKeyValues() Updates custom hero, unit and ability KeyValues in memory with the latest values from disk
ResetToHeroSelection void ResetToHeroSelection() Restart the game at hero selection
SetTreeRegrowTime void SetTreeRegrowTime( float seconds) Sets the tree regrow time in seconds.
SetHeroSelectionTime void SetHeroSelectionTime( float seconds) Sets the amount of time players have to pick their hero.
SetPreGameTime void SetPreGameTime( float seconds) Sets the amount of time players have between picking their hero and game start.
SetPostGameTime void SetPostGameTime( float seconds) Sets the amount of time players have between the game ending and the server disconnecting them.
SetRuneSpawnTime void SetRuneSpawnTime( float seconds) Sets the amount of time between rune spawns.
SetSameHeroSelectionEnabled void SetSameHeroSelectionEnabled( bool enabled) When true, players can repeatedly pick the same hero.
SetUseUniversalShopMode void SetUseUniversalShopMode( bool enabled) When true, all items are available at as long as any shop is in range.
SetTimeOfDay void SetTimeOfDay( float time) Set the time of day.
SetOverlayHealthBarUnit void SetOverlayHealthBarUnit( Unit unit, int style) Show this unit's health on the overlay health bar
SetHeroMinimapIconSize void SetHeroMinimapIconSize( int iconSize) (nMinimapHeroIconSize) - Set the hero minimap icon size.
SetCreepMinimapIconScale void SetCreepMinimapIconScale( float creepScale) (flMinimapCreepIconScale) - Scale the creep icons on the minimap.
SetRuneMinimapIconScale void SetRuneMinimapIconScale( float runeScale) (flMinimapRuneIconScale) - Scale the rune icons on the minimap.
SetSafeToLeave void SetSafeToLeave( bool safeToLeave) (bSafeToLeave) - Mark this game as safe to leave.


!The global list of entities

Function Signature Description
First Entity First() Begin an iteration over the list of entities
Next Entity Next( Entity startFrom) Continue an iteration over the list of entities, providing reference to a previously found entity
CreateByClassname Entity CreateByClassname( string className) Creates an entity by classname
FindByClassname Entity FindByClassname( Entity startFrom, string className) Find entities by class name. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllByClassname table FindAllByClassname( string className) Find entities by class name.
FindByName Entity FindByName( Entity startFrom, string entName) Find entities by name. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllByName table FindAllByName( string name) Find entities by name; returns an array of everything found.
FindInSphere Entity FindInSphere( Entity startFrom, vector origin, float radius) Find entities within a radius. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllInSphere table FindAllInSphere( vector origin, float radius) Find entities within a radius.
FindByTarget Entity FindByTarget( Entity startFrom, string targetName) Find entities by targetname. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllByTarget table FindAllByTarget( string targetName) Find entities by targetname.
FindByModel Entity FindByModel( Entity startFrom, string modelName) Find entities by model name. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllByModel table FindAllByModel( string modelName) Find entities by model name.
FindByNameNearest Entity FindByNameNearest( string entityName, vector origin, float radius ) Find entities by name nearest to a point.
FindByNameWithin Entity FindByNameWithin( Entity startFrom, string entityName, vector origin, float radius) Find entities by name within a radius. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllByNameWithin table FindAllByNameWithin( stringentityName, vector origin, float radius) Find entities by name within a radius.
FindByClassnameNearest Entity FindByClassnameNearest( string className, vector origin, float radius) Find entities by class name nearest to a point.
FindByClassnameWithin Entity FindByClassnameWithin( Entity startFrom, string className, vector origin, float radius) Find entities by class name within a radius. Pass 'nil' to start an iteration, or reference to a previously found entity to continue a search
FindAllByClassnameWithin table FindAllByClassnameWithin( string className, vector origin, float radius) Find entities by class name within a radius.


!The global list of heroes

Function Signature Description
GetHero Hero GetHero( int heroId) Get the Nth hero in the Hero List
GetHeroCount int GetHeroCount() Returns the number of heroes in the world
GetAllHeroes table GetAllHeroes() Returns all the heroes in the world


!Access to convar functions

Function Signature Description
GetFloat float GetFloat( string varName) GetFloat(name) : returns the convar as a float. May return nil if no such convar.
SetFloat void SetFloat( string varName, float value) SetFloat(name) : sets the convar to a float, if it exists.
GetStr string GetStr( string varName) GetFloat(name) : returns the convar as a string. May return nil if no such convar.
GetBool bool GetBool( string varName) GetBool(name) : returns the convar as a boolean flag. May return nil if no such convar.
SetBool void SetBool( string varName, bool value) SetBool(name, value) : sets the convar to a boolean value, if it exists.
RegisterCommand void RegisterCommand( string varName, function func, string helpText, int flags) Register a console command.
RegisterConvar void RegisterConvar( string name, string default, string helpText, int flags) Register a new console variable.
GetCommandClient Player GetCommandClient() GetCommandClient() : returns the player who issued this console command.


Root class of all server-side entities

Function Signature Description
ConnectOutput void ConnectOutput( string, string ) Adds an I/O connection that will call the named function when the specified output fires
DisconnectOutput void DisconnectOutput( string, string ) Removes a connected script function from an I/O event.
GetHealth int GetHealth()
SetHealth void SetHealth( int hp)
GetMaxHealth int GetMaxHealth()
SetMaxHealth void SetMaxHealth( int hp)
IsAlive bool IsAlive()
Remove void Remove()
SetModel void SetModel( string modelName)
GetModelName string GetModelName() Returns the name of the model
EmitSound void EmitSound( string soundName) Plays a sound from this entity.
EmitSoundParams void EmitSoundParams( string soundName, int pitch, float volume) Plays/modifies a sound from this entity. changes sound if nPitch and/or flVol is > 0.
StopSound void StopSound( string soundName) Stops a named sound playing from this entity.
PrecacheSoundScript void PrecacheSoundScript( string soundName) Precache a sound for later playing.
GetSoundDuration float GetSoundDuration( string soundName, string actorModelname) Returns float duration of the sound. Takes soundname and optional actormodelname.
GetClassname string GetClassname()
GetName string GetName()
GetPreTemplateName string GetPreTemplateName() Get the entity name stripped of template unique decoration
GetOrigin vector GetOrigin()
SetAbsOrigin void SetAbsOrigin( vector vec) SetOrigin
SetOrigin void SetOrigin( vector vec)
GetForwardVector vector GetForwardVector() Get the forward vector of the entity
GetLeftVector vector GetLeftVector() Get the left vector of the entity
GetUpVector vector GetUpVector() Get the up vector of the entity
SetForwardVector void SetForwardVector( vector forward) Set the orientation of the entity to have this forward vector
GetVelocity vector GetVelocity()
SetVelocity void SetVelocity( vector velocity) This may crash the client
SetAngularVelocity void SetAngularVelocity( float pitch, float yaw, float roll) Set the local angular velocity
GetAngularVelocity vector GetAngularVelocity() Get the local angular velocity - returns a vector of pitch,yaw,roll
GetCenter vector GetCenter() Get vector to center of object - absolute coords
EyePosition vector EyePosition() Get vector to eye position - absolute coords
SetAngles void SetAngles( float pitch, float yaw, float roll) Set entity pitch, yaw, roll
GetAngles vector GetAngles() Get entity pitch, yaw, roll as a vector
SetSize void SetSize( vector, vector )
GetBoundingMins vector GetBoundingMins() Get a vector containing min bounds, centered on object
GetBoundingMaxs vector GetBoundingMaxs() Get a vector containing max bounds, centered on object
Destroy void Destroy()
SetOwner void SetOwner( Entity parent) Sets the parent of the entity. This does not give a player control over the entity
GetTeam int GetTeam()
SetTeam void SetTeam( int team) Sets the team of the entity
GetMoveParent Entity GetMoveParent() If in hierarchy, retrieves the entity's parent
GetRootMoveParent Entity GetRootMoveParent() If in hierarchy, walks up the hierarchy to find the root parent
FirstMoveChild Entity FirstMoveChild()
NextMovePeer Entity NextMovePeer()
__KeyValueFromString bool __KeyValueFromString( string, string ) @
__KeyValueFromFloat bool __KeyValueFromFloat( string, float ) @
__KeyValueFromInt bool __KeyValueFromInt( string, int ) @
__KeyValueFromVector bool __KeyValueFromVector( string, vector ) @
Trigger void Trigger() Fires off this entity's OnTrigger responses
ValidateScriptScope bool ValidateScriptScope() Ensure that an entity's script scope has been created
GetScriptScope hscript GetScriptScope() Retrieve the script-side data associated with an entity
GetScriptId string GetScriptId() Retrieve the unique identifier used to refer to the entity within the scripting system
GetOwner Entity GetOwner() Gets this entity's owner
entindex int entindex()


extends CBaseEntity

Interface to player data

Function Signature Description
SetHasRepicked void SetHasRepicked( int playerId) marks if the playerId player has repicked
HasRepicked bool HasRepicked( int playerId) returns true if playerId has repicked
SetHasRandomed void SetHasRandomed( int playerId)
HasRandomed bool HasRandomed( int playerId)
IsValidTeamPlayerID bool IsValidTeamPlayerID( int playerId)
IsValidTeamPlayer bool IsValidTeamPlayer( int playerId)
IsValidPlayerID bool IsValidPlayerID( int playerId)
IsValidPlayer bool IsValidPlayer( int playerId)
GetLevel int GetLevel( int playerId)
IncrementKills void IncrementKills( int playerId, int kills)
IncrementAssists void IncrementAssists( int playerId)
IncrementDeaths void IncrementDeaths( int playerId)
GetKills int GetKills( int playerId)
GetAssists int GetAssists( int playerId)
GetDeaths int GetDeaths( int playerId)
GetStuns float GetStuns( int playerId)
GetHealing float GetHealing( int playerId)
GetTowerKills int GetTowerKills( int playerId)
GetRoshanKills int GetRoshanKills( int playerId)
GetTeamKills int GetTeamKills( int playerId)
IncrementStreak void IncrementStreak( int playerId)
ClearStreak void ClearStreak( int playerId)
GetStreak int GetStreak( int playerId)
ModifyGold int ModifyGold( int playerId, int goldAmt, bool reliable, int ) In frostivus it is hero:ModifyGold( int goldAmt, bool reliable, int )
SetGold void SetGold( int playerId, int goldAmt, bool reliable)
SpendGold void SpendGold( int playerId, int amt, int )
GetGold int GetGold( int playerId)
GetReliableGold int GetReliableGold( int playerId)
GetUnreliableGold int GetUnreliableGold( int playerId)
ResetTotalEarnedGold void ResetTotalEarnedGold( int playerId)
GetTotalEarnedGold int GetTotalEarnedGold( int playerId)
GetTotalGoldSpent int GetTotalGoldSpent( int playerId)
AddGoldSpentOnSupport void AddGoldSpentOnSupport( int, int )
GetGoldSpentOnSupport int GetGoldSpentOnSupport( int playerId)
GetGoldSpentOnConsumables int GetGoldSpentOnConsumables( int playerId)
GetGoldSpentOnItems int GetGoldSpentOnItems( int playerId)
GetGoldLostToDeath int GetGoldLostToDeath( int playerId)
GetGoldSpentOnBuybacks int GetGoldSpentOnBuybacks( int playerId)
GetGoldPerMin float GetGoldPerMin( int playerId)
GetXPPerMin float GetXPPerMin( int playerId)
GetAegisPickups int GetAegisPickups( int playerId)
AddAegisPickup void AddAegisPickup( int playerId)
GetRunePickups int GetRunePickups( int playerId)
AddRunePickup void AddRunePickup( int playerId)
GetNumConsumablesPurchased int GetNumConsumablesPurchased( intplayerId )
GetNumItemsPurchased int GetNumItemsPurchased( int playerId)
GetTimeOfLastItemPurchase float GetTimeOfLastItemPurchase( int playerId)
GetTimeOfLastConsumablePurchase float GetTimeOfLastConsumablePurchase( int playerId)
GetTimeOfLastDeath float GetTimeOfLastDeath( int playerId)
GetRespawnSeconds int GetRespawnSeconds( int playerId)
IncrementTotalEarnedXP void IncrementTotalEarnedXP( int playerId, int amt)
GetTotalEarnedXP int GetTotalEarnedXP( int playerId)
AddClaimedFarm void AddClaimedFarm( int playerId, float farm)
GetClaimedFarm float GetClaimedFarm( int playerId)
GetRawPlayerDamage int GetRawPlayerDamage( int playerId)
ClearRawPlayerDamageMatrix void ClearRawPlayerDamageMatrix( int playerId)
ClearKillsMatrix void ClearKillsMatrix( int playerId)
GetTowerDamageTaken int GetTowerDamageTaken( int playerId)
GetCreepDamageTaken int GetCreepDamageTaken( int playerId)
GetHeroDamageTaken int GetHeroDamageTaken( int playerId)
GetDamageDoneToHero int GetDamageDoneToHero( int playerId, int heroId)
GetKillsDoneToHero int GetKillsDoneToHero( int playerId, int heroId)
GetSelectedHeroName string GetSelectedHeroName( int playerId)
GetSelectedHeroID int GetSelectedHeroID( int playerId)
IsHeroSelected bool IsHeroSelected( string heroName)
WhoSelectedHero int WhoSelectedHero( string heroName) returns playerId
GetSelectedHeroEntity Entity GetSelectedHeroEntity( int playerId)
HasSelectedHero bool HasSelectedHero( int playerId)
GetPlayer Player GetPlayer( int playerId)
GetNthPlayerIDOnTeam int GetNthPlayerIDOnTeam( int index, int team) returns the playerId
IncrementLastHits void IncrementLastHits( int playerId)
GetLastHits int GetLastHits( int playerId)
IncrementGoldBagsCollected void IncrementGoldBagsCollected( int playerId)
GetGoldBagsCollected int GetGoldBagsCollected( int playerId)
IncrementLastHitStreak void IncrementLastHitStreak( int playerId)
ClearLastHitStreak void ClearLastHitStreak( int playerId)
GetLastHitStreak int GetLastHitStreak( int playerId)
IncrementLastHitMultikill void IncrementLastHitMultikill( int playerId)
ClearLastHitMultikill void ClearLastHitMultikill( int playerId)
GetLastHitMultikill int GetLastHitMultikill( int playerId)
IncrementNearbyCreepDeaths void IncrementNearbyCreepDeaths( int playerId)
GetNearbyCreepDeaths int GetNearbyCreepDeaths( int playerId)
IncrementDenies void IncrementDenies( int playerId)
GetDenies int GetDenies( int playerId)
IncrementClaimedMisses void IncrementClaimedMisses( int playerId)
GetClaimedMisses int GetClaimedMisses( int playerId)
IncrementClaimedDenies void IncrementClaimedDenies( int playerId)
GetClaimedDenies int GetClaimedDenies( int playerId )
IncrementMisses void IncrementMisses( int playerId)
GetMisses int GetMisses( int playerId)
UpdateTeamSlot void UpdateTeamSlot( int playerId, int slot)
GetTeam int GetTeam( int playerId) returns teamId
IsBroadcaster bool IsBroadcaster( int playerId)
GetBroadcasterChannel uint GetBroadcasterChannel( int playerId)
GetBroadcasterChannelSlot uint GetBroadcasterChannelSlot( int playerId)
GetSteamAccountID uint GetSteamAccountID( int playerId)
IsFakeClient bool IsFakeClient( int playerId)
HaveAllPlayersJoined bool HaveAllPlayersJoined()
GetPlayerLoadedCompletely bool GetPlayerLoadedCompletely( int playerId)
SetPlayerReservedState void SetPlayerReservedState( int playerId, bool reserved)
GetPlayerReservedState bool GetPlayerReservedState( int playerId)
GetConnectionState unknown_variant_type GetConnectionState( int playerId)
HeroLevelUp void HeroLevelUp( int playerId)
SetLastBuybackTime void SetLastBuybackTime( int playerId, int time)
GetPlayerName string GetPlayerName( int playerId)
GetUnitShareMaskForPlayer int GetUnitShareMaskForPlayer( int playerId, int otherPlayerId)
IsHeroSharedWithPlayerID bool IsHeroSharedWithPlayerID( int playerId, int otherPlayerId)
AreUnitsSharedWithPlayerID bool AreUnitsSharedWithPlayerID( int playerId, int otherPlayerId)
IsDisableHelpSetForPlayerID bool IsDisableHelpSetForPlayerID( int playerId, int otherPlayerId)
SetUnitShareMaskForPlayer void SetUnitShareMaskForPlayer( int, int, int, bool )
GetNumCouriersForTeam int GetNumCouriersForTeam( int team)
GetNthCourierForTeam hscript GetNthCourierForTeam( int index, int team)
SetBuybackCooldownTime void SetBuybackCooldownTime( int playerId, float cooldown)
SetBuybackGoldLimitTime void SetBuybackGoldLimitTime( int playerId, float buybackGold)
ResetBuybackCostTime void ResetBuybackCostTime( int playerId)


extends CBaseEntity

Base game mode class

Function Signature Description
BeginThink bool BeginThink( string thinkName, function func, float intervalInSeconds) Start a think callback. Takes a function and an interval
EndThink void EndThink( string thinkName ) Stop a think callback.
SetAlwaysShowPlayerInventory void SetAlwaysShowPlayerInventory( bool alwaysShow) Show the player hero's inventory in the HUD, regardless of what unit is selected.
SetGoldSoundDisabled void SetGoldSoundDisabled( bool playSound) Turn the sound when gold is acquired off/on. Takes a bool.
SetRecommendedItemsDisabled void SetRecommendedItemsDisabled( bool disableRecItems) Turn the panel for showing recommended items at the shop off/on. Takes a bool.
SetCameraDistanceOverride void SetCameraDistanceOverride( float cameraDistance) Set a different camera distance; dota default is 1134.
SetOverrideSelectionEntity void SetOverrideSelectionEntity( Unit unit) Set an override for the default selection entity, instead of each player's hero.
SetRemoveIllusionsOnDeath void SetRemoveIllusionsOnDeath( bool removeIllusions) Make it so illusions are immediately removed upon death, rather than sticking around for a few seconds.
ClientLoadGridNav void ClientLoadGridNav() Tell clients that they need to load gridnav information. Used for things like allowing clients to identify valid locations to place buildings.


extends CBaseEntity

Animating models

Function Signature Description
LookupAttachment int LookupAttachment( string attachmentName ) Get the named attachement id
GetAttachmentOrigin vector GetAttachmentOrigin( int attachmentId ) Get the attachement id's origin vector
GetAttachmentAngles vector GetAttachmentAngles( int attachmentId) Get the attachement id's angles as a p,y,r vector
IsSequenceFinished bool IsSequenceFinished() Ask whether the main sequence is done playing
SetBodygroup void SetBodygroup( int, int ) Sets a bodygroup
SetModelScale void SetModelScale( float scale, float fadeTimeSeconds) Set the model scale


extends CBaseAnimating

Animated characters who have vertex flex capability.

Function Signature Description
GetCurrentScene hscript GetCurrentScene() Returns the instance of the oldest active scene entity (if any).
GetSceneByIndex hscript GetSceneByIndex( int ) Returns the instance of the scene entity at the specified index.


extends CBaseFlex

A Dota NPC Unit

Function Signature Description
IsCreature bool IsCreature() Is this a Creature type NPC
IsHero bool IsHero() Is this a hero or hero illusion?
IsRealHero bool IsRealHero() Is this a real hero?
IsTower bool IsTower() Is this a tower?
IsAlive bool IsAlive() Is this unit alive?
IsMechanical bool IsMechanical() Is the unit mechanical?
IsPhantom bool IsPhantom() Is this a phantom unit?
SetInitialGoalEntity void SetInitialGoalEntity( Entity goalEntity) Sets the initial waypoint goal for this NPC
GetInitialGoalEntity Entity GetInitialGoalEntity() Returns the initial waypoint goal for this NPC
SetMustReachEachGoalEntity void SetMustReachEachGoalEntity( bool mustReach) Set whether this NPC is required to reach each goal entity, rather than being allowed to 'unkink' their path
GetMustReachEachGoalEntity bool GetMustReachEachGoalEntity() Get whether this NPC is required to reach each goal entity, rather than being allowed to 'unkink' their path
AddNewModifier void AddNewModifier( Unit caster, Ability optionalSrcAbility, string modifierName, table modifierData) Add a modifier to this unit.
HasModifier bool HasModifier( string modifierName) Sees if this unit has a given modifier
RemoveModifierByName void RemoveModifierByName( string modifierName) Removes a modifier
RemoveModifierByNameAndCaster void RemoveModifierByNameAndCaster( string name, Unit caster) Removes a modifier that was cast by the given caster
AddItem void AddItem( Item itemName) Add an item to this unit's inventory.
AddAbility void AddAbility( string abilityName) Add an ability to this unit by name.
RemoveAbility void RemoveAbility( string abilityName) Remove an ability from this unit by name as defined in the keyvalues
HasAbility bool HasAbility( string abilityName) See whether this unit has an ability by name.
FindAbilityByName hscript FindAbilityByName( string abilityName) Retrieve an ability by name from the unit.
GetGoldBounty int GetGoldBounty() Get the gold bounty on this unit
SetDeathXP void SetDeathXP( int xpBounty) Set the XP bounty on this unit
GetDeathXP int GetDeathXP() Get the XP bounty on this unit
GetUnitName string GetUnitName() Get the name of this unit.
GetTeamNumber int GetTeamNumber() Get the team number of this unit.
GetPlayerOwner hscript GetPlayerOwner() Returns the player that owns this unit
SetMaximumGoldBounty void SetMaximumGoldBounty( int goldBounty) Set the maximum gold bounty for this unit.
SetMinimumGoldBounty void SetMinimumGoldBounty( int goldBounty) Set the minimum gold bounty for this unit.
GetTotalPurchasedUpgradeGoldCost int GetTotalPurchasedUpgradeGoldCost() Get how much gold has been spent on ability upgrades.
ForceKill void ForceKill( bool playAegisLines) Kill this unit immediately.
GetBaseDamageMin int GetBaseDamageMin() Get the minimum attack damage of this unit.
GetBaseDamageMax int GetBaseDamageMax() Get the maximum attack damage of this unit.
Heal void Heal( int amount, Unit source) Heal this unit.
GetMaxHealth int GetMaxHealth() Get the maximum health of this unit.
GetHealthPercent int GetHealthPercent() Get the current health percent of the unit.
SetMana void SetMana( float mana) Set the mana on this unit.
GetMaxMana float GetMaxMana() Get the maximum mana of this unit.
RespawnUnit void RespawnUnit() Respawns the target unit if it can be respawned.
GetLevel int GetLevel() Returns the level of this unit.
GetItemInSlot hscript GetItemInSlot( int slotId) Returns nth item in inventory slot (index is zero based)
CastAbilityOnTarget void CastAbilityOnTarget( Unit target, Ability ability, int ) Cast an ability on a specified target. Third Param can be 0 or -1.
CastAbilityNoTarget void CastAbilityNoTarget( Ability ability, int ) Cast an ability. Third Param can be 0 or -1.
SetOriginalModel void SetOriginalModel( string originalModel) Sets the original model of this entity, which it will tend to fall back to anytime its state changes
AddNoDraw void AddNoDraw() Adds the no draw flag.
RemoveNoDraw void RemoveNoDraw() Remove the no draw flag.
GetPlayerOwnerID int GetPlayerOwnerID() Get the owner player ID for this unit.
IsRangedAttacker bool IsRangedAttacker() Is this unit a ranged attacker?


extends CDOTA_BaseNPC

A building.

Function Signature Description
GetInvulnCount int GetInvulnCount() Get the invulnerability count for a building.
SetInvulnCount void SetInvulnCount( int ) Set the invulnerability counter of this building.


extends CDOTA_BaseNPC

A Dota NPC Unit

Function Signature Description
CreatureLevelUp void CreatureLevelUp( int numLevels) Level the creature up by the specified number of levels
AddItemDrop void AddItemDrop( PhysicalItem item ) Add the specified item drop to this creature
SetChampion void SetChampion( bool champion) Flag this unit as a champion creature.
IsChampion bool IsChampion() Is this unit a champion?
SetHPGain void SetHPGain( int hpPerLevel) Set the hit points gained per level on this creature.
SetManaGain void SetManaGain( int manaPerLevel) Set the mana points gained per level on this creature.
SetHPRegenGain void SetHPRegenGain( float regenPerLevel) Set the hit points regen gained per level on this creature.
SetManaRegenGain void SetManaRegenGain( float manaRegenGain) Set the mana points regen gained per level on this creature.
SetDamageGain void SetDamageGain( int damageGain) Set the damage gained per level on this creature.
SetArmorGain void SetArmorGain( float armorGain) Set the armor gained per level on this creature.
SetMagicResistanceGain void SetMagicResistanceGain( float magicResistGain) Set the magic resistance gained per level on this creature.
SetDisableResistanceGain void SetDisableResistanceGain( float disableResist) Set the disable resistance gained per level on this creature.
SetAttackTimeGain void SetAttackTimeGain( float attackSpeedGain) Set the attack time gained per level on this creature.
SetMoveSpeedGain void SetMoveSpeedGain( int moveSpeedGain) Set the move speed gained per level on this creature.
SetBountyGain void SetBountyGain( int bountyGain) Set the bounty gold gained per level on this creature.
SetXPGain void SetXPGain( int xpGain) Set the xp reward gained per level on this creature.


extends CDOTA_BaseNPC

A Dota Hero NPC

Function Signature Description
ModifyGold int ModifyGold( int goldAmmount, bool reliable, int ) Gives this hero some gold
GetGold int GetGold() Returns gold amount for the player owning this hero
SetGold void SetGold( int goldAmmount, bool reliable) Sets the gold amount for the player owning this hero
GetCurrentXP int GetCurrentXP() Returns the amount of XP
GetPlayerID int GetPlayerID() Returns player ID of the player owning this hero
RespawnHero void RespawnHero( bool buyback, bool, bool ) Respawn this hero.


extends CBaseEntity

An ability

Function Signature Description
GetAbilityName string GetAbilityName() Returns the name of this ability.
GetSpecialValueFor variant GetSpecialValueFor( string specialValue) Gets a value from this ability's special value block for its current level. Ability must have a "AbilitySpecial" block defined in it's KeyValues.
GetCastRange int GetCastRange() Gets the cast range of the ability.
IsFullyCastable bool IsFullyCastable() Returns whether the ability can be cast.
IsChanneling bool IsChanneling() Returns whether the ability is currently channeling.
IsInAbilityPhase bool IsInAbilityPhase() Returns whether the ability is currently casting.
GetCooldown float GetCooldown( int level) Get the cooldown duration for this ability at a given level, not the amount of cooldown actually left.
MarkAbilityButtonDirty void MarkAbilityButtonDirty() Mark the ability button for this ability as needing a refresh
SetLevel void SetLevel( int abilityLevel) Sets the level of this ability.


A quest

Function Signature Description
SetTextReplaceValue void SetTextReplaceValue( int questText, int value) Set a quest value
CompleteQuest void CompleteQuest() Mark this quest complete
SetTextReplaceString void SetTextReplaceString( string replace ) Set the text replace string for this quest


extends CDOTABaseAbility

A usable item.

Function Signature Description
SetPurchaseTime void SetPurchaseTime( float purchaseTime) Set the purchase time of this item
GetPurchaseTime float GetPurchaseTime() Get the purchase time of this item
SetPurchaser void SetPurchaser( Unit unit ) Set the purchaser of record for this item.
GetInitialCharges int GetInitialCharges() Get the initial number of charges this item has.
GetCurrentCharges int GetCurrentCharges() Get the number of charges this item currently has.
SetCurrentCharges void SetCurrentCharges( int charges) Set the number of charges on this item
GetPurchaser Unit GetPurchaser() Get the purchaser for this item.
Think void Think() Think this item
IsPermanent bool IsPermanent() Is this a permanent item?
StacksWithOtherOwners bool StacksWithOtherOwners()
SetStacksWithOtherOwners void SetStacksWithOtherOwners( bool stacks)
GetShareability int GetShareability() returns Item Sharing Type
GetCost int GetCost()
GetContainer hscript GetContainer() Get the container for this item.


extends CBaseAnimating

A physical item dropped in the world

Function Signature Description
GetCreationTime float GetCreationTime() Returns the game time when this item was created in the world
GetContainedItem Item GetContainedItem() Returned the contained item.
SetContainedItem void SetContainedItem( Item item) Set the contained item.


extends CBaseAnimating

the Player

Function Signature Description
GetPlayerID int GetPlayerID() Get the player's official PlayerID; notably is -1 when the player isn't yet on a team.
ReplaceHeroWith hscript ReplaceHeroWith( string, int, int ) (heroClassName, gold, XP) - replaces the player's hero with a new one of the specified class, gold and XP
GetAssignedHero hscript GetAssignedHero() Get the player's hero.
SetKillCamUnit void SetKillCamUnit( hscript ) Set the kill cam unit for this hero.
SetMusicStatus void SetMusicStatus( int, float ) (nMusicStatus, flIntensity) - Set the music status for this player, note this will only really apply if dota_music_battle_enable is off.


extends CBaseEntity

Server-side camera entity

Function Signature Description
GetFov int GetFov() get camera's current fov setting as integer
SetFov void SetFov( int degrees, float rate) set camera's current fov in integer degrees and fov change rate as float
ScreenFade void ScreenFade( int, int, int, int, float, float, int ) set screen fade effect
Enable void Enable() enable camera


extends CBaseEntity

Choreographed scene which controls animation and/or dialog on one or more actors.

Function Signature Description
EstimateLength float EstimateLength() Returns length of this scene in seconds.
IsPlayingBack bool IsPlayingBack() If this scene is currently playing.
IsPaused bool IsPaused() If this scene is currently paused.
Start void Start( Entity activator) Start scene playback, takes activatorEntity as param
Cancel void Cancel() Cancel scene playback
AddBroadcastTeamTarget void AddBroadcastTeamTarget( int team) Adds a team (by index) to the broadcast list
RemoveBroadcastTeamTarget void RemoveBroadcastTeamTarget( int entityIndex) Removes a team (by index) from the broadcast list
FindNamedEntity Entity FindNamedEntity( string entityReference) given an entity reference, such as !target, get actual entity from scene object
LoadSceneFromString bool LoadSceneFromString( string sceneName, string vcdFile) given a dummy scene name and a vcd string, load the scene
LoadSceneFromString Camera FindCamera() Get the camera


extends CBaseEntity

Dynamic, shadow casting light source

Function Signature Description
SetLinearAttenuation void SetLinearAttenuation( float attenuation) Set light linear attenuation value
SetQuadraticAttenuation void SetQuadraticAttenuation( float attenuation) Set light quadratic attenuation value
SetNearRange void SetNearRange( float nearRange) Set light minimum range
SetFarRange void SetFarRange( float farRange) Set light maximum range
SetVolumetrics void SetVolumetrics( bool on, float intensity, float noise, int planes, float planeOffset) Turn on/off light volumetrics


extends CBaseEntity


Function Signature Description
SpawnEntity void SpawnEntity() Create an entity at the location of the maker
SpawnEntityAtEntityOrigin void SpawnEntityAtEntityOrigin( Entity entity) Create an entity at the location of a specified entity instance
SpawnEntityAtNamedEntityOrigin void SpawnEntityAtNamedEntityOrigin( string entityName) Create an entity at the location of a named entity
SpawnEntityAtLocation void SpawnEntityAtLocation( vector location, vector orientation) Create an entity at a specified location and orientaton, orientation is Euler angle in degrees (pitch, yaw, roll)

Other Functions

Function Signature Description
RandomInt int RandomInt( int min, int max) Get a random int within a range
RandomFloat float RandomFloat( float min, float max) Get a random float within a range
RandomVector vector RandomVector( float distance) Get a random vector within a range
RollPercentage bool RollPercentage( int percent) Rolls a number from 1 to 100 and returns true if the roll is less than or equal to the number specified
DoIncludeScript bool DoIncludeScript( string scriptName, hscript ) Execute a script (internal)
ShowMessage void ShowMessage( string message) Print a hud message on all clients. Does not appear to work
GetMapName string GetMapName() Get the name of the map.
SendToConsole void SendToConsole( string conCommand) Send a string to the console as a client command
SendToServerConsole void SendToServerConsole( string conCommand) Send a string to the console as a server command
PrintLinkedConsoleMessage void PrintLinkedConsoleMessage( string message, string conCommand) Print a console message with a linked console command
InitLogFile void InitLogFile( string fileName, string log) If the given file doesn't exist, creates it with the given contents; does nothing if it exists
AppendToLogFile void AppendToLogFile( string message, string log) Appends a string to a log file on the server
GetWorldMinX float GetWorldMinX() Gets the world's minimum X position.
GetWorldMinY float GetWorldMinY() Gets the world's maximum Y position.
GetWorldMaxX float GetWorldMaxX() Gets the world's minimum X position.
GetWorldMaxY float GetWorldMaxY() Gets the world's maximum Y position.
Time float Time() Get the current server time
GetSystemTime string GetSystemTime() Get the current real world time
GetSystemDate string GetSystemDate() Get the current real world date
UTIL_RemoveImmediate void UTIL_RemoveImmediate( Entity entity) Immediately removes the specified entity
DoEntFire void DoEntFire( string target, string action, string value, float delay, Entity activator, hscript ) #EntFire:Generate and entity i/o event
EntFireByHandle void EntFireByHandle( Entity entity, string target, string value, float delay, Entity activator, hscript ) Generate and entity i/o event
IsValidEntity bool IsValidEntity( Entity entity) Checks to see if the given hScript is a valid entity
IsMarkedForDeletion bool IsMarkedForDeletion( Entity entity) Returns true if the entity is valid and marked for deletion.
DoUniqueString string DoUniqueString( string uniqueString) #UniqueString:Generate a string guaranteed to be unique across the life of the script VM, with an optional root string. Useful for adding data to tables when not sure what keys are already in use in that table.
ListenToGameEvent void ListenToGameEvent( string eventName, function listener, table luaOwner) Register as a listener for a game event from script.
FireGameEvent void FireGameEvent( string eventName, table params) Fire a game event.
FireGameEventLocal void FireGameEventLocal( string eventName, table params) Fire a game event without broadcasting to the client.
PauseGame void PauseGame( bool pause) Pause or unpause the game.
EntIndexToHScript Entity entityEntIndexToHScript( int entIndex) Turn an entity index integer to an HScript representing that entity's script instance.
PlayerInstanceFromIndex Player PlayerInstanceFromIndex( int playerIndex) Get a script instance of a player by index.
GetListenServerHost Player GetListenServerHost() Get the local player on a listen server.
ScreenShake void ScreenShake( vector center, float aplitude, float frequency, float duration, float radius, int shakeStatus, bool airShake) Start a screenshake with the following parameters. shakeStatus( SHAKE_START = 0, SHAKE_STOP = 1 )
SpawnEntityFromTable bool SpawnEntityFromTable( string className, table spawnTable, Entity owner, function spawnCallback, hscript ) Spawns a single entity from a table. Last param seems to always be nil. maybe player owner?
SpawnEntityGroupFromTable bool SpawnEntityGroupFromTable( hscript, bool, hscript ) Hierarchically spawn an entity group from a set of spawn tables.
PrecacheEntityFromTable bool PrecacheEntityFromTable( table keyValues ) Precache an entity from KeyValues in table
VectorToAngles qangle VectorToAngles( vector ) Get Qangles (with no roll) for a Vector.
RotatePosition vector RotatePosition( vector vec, qangle angle, vector origin) Rotate a Vector around a point.
RotateOrientation qangle RotateOrientation( qangle an1, qangle ang2) Rotate a QAngle by another QAngle.
RotationDelta qangle RotationDelta( qangle ang1, qangle ang2) Find the delta between two angles.
EmitSoundOn void EmitSoundOn( string soundName, Entity entity) Play named sound on Entity
EmitSoundOnClient void EmitSoundOnClient( string soundName, Player listeningPlayer) Play named sound only on the client for the passed in player
EmitGlobalSound void EmitGlobalSound( string soundName ) Play named sound for all players
StopSoundOn void StopSoundOn( string, hscript ) Stop named sound on Entity
GetPhysVelocity vector GetPhysVelocity( Entity object) Get Velocity for VPHYS or normal object
GetPhysAngularVelocity vector GetPhysAngularVelocity( Entity object) Get Angular Velocity for VPHYS or normal object
Say void Say( Player from, string text, bool team) Have Entity say string, and teamOnly or not. First param can be nil for an unowned broadcast
AddThinkToEnt void AddThinkToEnt( Entity entity, string functionName) Adds a late bound think function to the C++ think tables for the obj
LoadKeyValues variant LoadKeyValues( string file) Creates a table from the specified keyvalues text file
LoadKeyValuesFromString variant LoadKeyValuesFromString( string kvString) Creates a table from the specified keyvalues string
DebugDrawScreenTextLine void DebugDrawScreenTextLine( float x, float y, int lineOffset, string text, int r, int g, int b, int a, float duration) Draw text with a line offset
DebugDrawText void DebugDrawText( vector origin, string text, bool useViewCheck, float duration) Draw text in 3d
DebugDrawBox void DebugDrawBox( vector origin, vector min, vector max, int r, int g, int b, int a, float duration) Draw a debug overlay box
DebugDrawLine void DebugDrawLine( vector start, vector end, int r, int g, int b, bool zTest, float duration) Draw a debug overlay line
DebugDrawCircle void DebugDrawCircle( vector center, vector radius, vector rgb, float a, bool ztest, float duration) Draw a debug circle
DebugDrawLine_vCol void DebugDrawLine_vCol( vector start, vector end, vector rgb, bool ztest, float duration) Draw a debug line using color vec
DebugDrawBoxDirection void DebugDrawBoxDirection( vector center, vector min, vector max, vector forward, vector rgb, float a, float duration) Draw a debug forward box
DebugDrawClear void DebugDrawClear() Try to clear all the debug overlay info
GetFrameCount int GetFrameCount() Returns the engines current frame count
IsDedicatedServer bool IsDedicatedServer() Returns true if this server is a dedicated server.
CreateUnitByName hscript CreateUnitByName( string name, vector origin, bool findOpenSpot, hscript, hscript, int team) Creates a DOTA unit by its dota_npc_units.txt name.
CreateHeroForPlayer hscript CreateHeroForPlayer( string heroName, Player owningPlayer) Creates a DOTA hero by its dota_npc_units.txt name and sets it as the given player's controlled hero
CreateItem hscript CreateItem( string itemName, Unit owningUnit, Unit unitToGetOrigin) Create a DOTA item
CreateItemOnPosition PhysicalItem CreateItemOnPosition( vector position ) Create a physical item at a given location
FindClearSpaceForUnit void FindClearSpaceForUnit( Unit npc, vector origin, bool ) Place a unit somewhere not already occupied.
FindUnitsInRadius table FindUnitsInRadius( int targetTeam, vector position, Entity ent, float radius, int targetTypeTeam, int targetTypeUnit, int x, int y, bool ) Finds the units in a given radius with the given flags. 3rd param Entity appears to always be null, last 3 appear to be 0,0, false always
PrecacheUnit void PrecacheUnit( string unitName) Precaches all the resources for a given unit.
GetFrostyPointsForRound int GetFrostyPointsForRound( int playerId, int difficulty, int roundNumber)
GetGoldFrostyPointsForRound int GetGoldFrostyPointsForRound( int playerId, int difficulty, int roundNumber )
GetFrostyBoostAmount float GetFrostyBoostAmount( int playerId, int )
GetGoldFrostyBoostAmount float GetGoldFrostyBoostAmount( int, int )
SendFrostyPointsMessageToGC void SendFrostyPointsMessageToGC( table data)
SendFrostivusTimeElapsedToGC void SendFrostivusTimeElapsedToGC()
ExecuteOrderFromTable void ExecuteOrderFromTable( table ) Issue an order from a script table. table structure appears to contain { int UnitIndex, int OrderType, vector Position, bool Queue, int AbilityIndex, int TargetIndex } . UnitIndex is the unit to order. OrderType is the linked enum. Position is needed if the OrderType requires a position (move, castPoint, etc). Queue is used if the ability should be executed after the current order. AbilityIndex is used if OrderType is a cast, and TargetIndex is used if OrderType is a targeted cast.

Global Accessors

Accessor Name Description
Entities Instance of CEntities
ConVars Instance of ConVars
PlayerResource Instance of CDOTA_PlayerResource
ParticleManager Instance of CScriptParticleManager
HeroList Instance of HeroList


Picking States




Unit Targetting


Find Types


Quest Text Replacement


Particle Attach Types


Inventory Constants


Item Types


Inventory Access Flags


Gamerules State


Lobby/GC Teams


Gold Modifiers

  • DOTA_ModifyGold_Unspecified
  • DOTA_ModifyGold_Death
  • DOTA_ModifyGold_Buyback
  • DOTA_ModifyGold_PurchaseConsumable
  • DOTA_ModifyGold_PurchaseItem
  • DOTA_ModifyGold_AbandonedRedistribute
  • DOTA_ModifyGold_SellItem
  • DOTA_ModifyGold_AbilityCost

Unit Order Types


Item Sharing Types


Music Status


ConVar Flags


See also