[
  {
    "kind": "class",
    "name": "CBaseAnimatingActivity",
    "clientName": "CBaseAnimatingActivity",
    "extend": "CBaseModelEntity",
    "members": [
      {
        "kind": "function",
        "name": "ActiveSequenceDuration",
        "available": "server",
        "description": "Returns the duration in seconds of the active sequence.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCycle",
        "available": "server",
        "description": "Get the cycle of the animation.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSequence",
        "available": "server",
        "description": "Returns the name of the active sequence.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSequenceFinished",
        "available": "server",
        "description": "Ask whether the main sequence is done playing.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ResetSequence",
        "available": "server",
        "description": "Sets the active sequence by name, resetting the current cycle.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "sequenceName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SequenceDuration",
        "available": "server",
        "description": "Returns the duration in seconds of the given sequence name.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "sequenceName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCycle",
        "available": "server",
        "description": "Set the cycle of the animation.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cycle",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPoseParameter",
        "available": "server",
        "description": "Set the specified pose parameter to the specified value.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSequence",
        "available": "server",
        "description": "Sets the active sequence by name, keeping the current cycle.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "sequenceName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StopAnimation",
        "available": "server",
        "description": "Stop the current animation by setting playback rate to 0.0.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CBaseAnimatingOverlay",
    "clientName": "C_BaseAnimatingOverlay",
    "extend": "CBaseAnimatingActivity",
    "members": []
  },
  {
    "kind": "class",
    "name": "CBaseAnimGraph",
    "clientName": "CBaseAnimGraph",
    "extend": "CBaseModelEntity",
    "members": []
  },
  {
    "kind": "class",
    "name": "CBaseCombatCharacter",
    "clientName": "C_BaseCombatCharacter",
    "extend": "CBaseAnimatingOverlay",
    "members": []
  },
  {
    "kind": "class",
    "name": "CBaseEntity",
    "clientName": "C_BaseEntity",
    "extend": "CEntityInstance",
    "members": [
      {
        "kind": "function",
        "name": "AddEffects",
        "available": "server",
        "description": "Adds the render effect flag.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "flags",
            "types": [
              "EntityEffects"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ApplyAbsVelocityImpulse",
        "available": "server",
        "description": "Apply a Velocity Impulse.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "vecImpulse",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ApplyLocalAngularVelocityImpulse",
        "available": "server",
        "description": "Apply an Ang Velocity Impulse.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "angImpulse",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Attribute_GetFloatValue",
        "available": "server",
        "description": "Get float value for an entity attribute.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Attribute_GetIntValue",
        "available": "server",
        "description": "Get int value for an entity attribute.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Attribute_SetFloatValue",
        "available": "server",
        "description": "Set float value for an entity attribute.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Attribute_SetIntValue",
        "available": "server",
        "description": "Set int value for an entity attribute.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DeleteAttribute",
        "available": "server",
        "description": "Delete an entity attribute.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EmitSound",
        "available": "server",
        "description": "Plays a sound from this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "soundname",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EmitSoundParams",
        "available": "server",
        "description": "Plays/modifies a sound from this entity. changes sound if nPitch and/or flVol or flSoundTime is > 0.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "soundName",
            "types": [
              "string"
            ]
          },
          {
            "name": "pitch",
            "types": [
              "int"
            ]
          },
          {
            "name": "volume",
            "types": [
              "float"
            ]
          },
          {
            "name": "delay",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EyeAngles",
        "available": "server",
        "description": "Get the qangles that this entity is looking at.",
        "returns": [
          "QAngle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "EyePosition",
        "available": "server",
        "description": "Get vector to eye position - absolute coords.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "FirstMoveChild",
        "available": "server",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "FollowEntity",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CBaseEntity"
            ]
          },
          {
            "name": "boneMerge",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FollowEntityMerge",
        "available": "server",
        "description": "HEntity to follow, string BoneOrAttachName.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ent",
            "types": [
              "handle"
            ]
          },
          {
            "name": "boneOrAttachName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GatherCriteria",
        "available": "server",
        "description": "Returns a table containing the criteria that would be used for response queries on this entity. This is the same as the table that is passed to response rule script function callbacks.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "result",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbsOrigin",
        "available": "both",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbsScale",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAngles",
        "available": "server",
        "returns": [
          "QAngle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAnglesAsVector",
        "available": "server",
        "description": "Get entity pitch, yaw, roll as a vector.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAngularVelocity",
        "available": "server",
        "description": "Get the local angular velocity - returns a vector of pitch,yaw,roll.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseVelocity",
        "available": "server",
        "description": "Get Base? velocity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBoundingMaxs",
        "available": "server",
        "description": "Get a vector containing max bounds, centered on object.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBoundingMins",
        "available": "server",
        "description": "Get a vector containing min bounds, centered on object.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBounds",
        "available": "server",
        "description": "Get a table containing the 'Mins' & 'Maxs' vector bounds, centered on object.",
        "returns": [
          "EntityBounds"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCenter",
        "available": "server",
        "description": "Get vector to center of object - absolute coords.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetChildren",
        "available": "server",
        "description": "Get the entities parented to this entity.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CBaseEntity"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetContext",
        "available": "server",
        "description": "Looks up a context and returns it if available. May return string, float, or null (if the context isn't found).",
        "returns": [
          "string",
          "float",
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetForwardVector",
        "available": "server",
        "description": "Get the forward vector of the entity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHealth",
        "available": "both",
        "description": "Get the health of this entity.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLeftVector",
        "available": "server",
        "description": "Get the left vector of the entity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalAngles",
        "available": "server",
        "description": "Get entity local pitch, yaw, roll as a QAngle.",
        "returns": [
          "QAngle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalAngularVelocity",
        "available": "server",
        "description": "Maybe local angvel.",
        "returns": [
          "QAngle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalOrigin",
        "available": "server",
        "description": "Get entity local origin as a Vector.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalScale",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalVelocity",
        "available": "server",
        "description": "Get Entity relative velocity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMass",
        "available": "server",
        "description": "Get the mass of an entity. (returns 0 if it doesn't have a physics object).",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMaxHealth",
        "available": "both",
        "description": "Get the maximum health of this entity.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModelName",
        "available": "server",
        "description": "Returns the name of the model.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMoveParent",
        "available": "server",
        "description": "If in hierarchy, retrieves the entity's parent.",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOrigin",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOwner",
        "available": "server",
        "description": "Gets this entity's owner.",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOwnerEntity",
        "available": "server",
        "description": "Get the owner entity, if there is one.",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRightVector",
        "available": "server",
        "description": "Get the right vector of the entity. WARNING: This produces a left-handed coordinate system. Use GetLeftVector instead (which is aligned with the y axis of the entity).",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRootMoveParent",
        "available": "server",
        "description": "If in hierarchy, walks up the hierarchy to find the root parent.",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSoundDuration",
        "available": "server",
        "description": "Returns float duration of the sound. Takes soundname and optional actormodelname.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "soundname",
            "types": [
              "string"
            ]
          },
          {
            "name": "actormodel",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSpawnGroupHandle",
        "available": "server",
        "description": "Returns the spawn group handle of this entity.",
        "returns": [
          "SpawnGroupHandle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTeam",
        "available": "server",
        "description": "Get the team number of this entity.",
        "returns": [
          "DOTATeam_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTeamNumber",
        "available": "both",
        "description": "Get the team number of this entity.",
        "returns": [
          "DOTATeam_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUpVector",
        "available": "server",
        "description": "Get the up vector of the entity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetVelocity",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasAttribute",
        "available": "server",
        "description": "See if an entity has a particular attribute.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsAlive",
        "available": "server",
        "description": "Is this entity alive?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBaseNPC",
        "available": "both",
        "description": "Is this entity an CDOTA_BaseNPC?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDOTANPC",
        "available": "server",
        "description": "Is this entity a Dota NPC?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInstance",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "classOrClassName",
            "types": [
              "string",
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsNPC",
        "available": "server",
        "description": "Is this entity an CAI_BaseNPC?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPlayer",
        "available": "server",
        "description": "Back compat: Is this entity a player pawn *or* controller?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPlayerController",
        "available": "server",
        "description": "Is this entity a player controller?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPlayerPawn",
        "available": "server",
        "description": "Is this entity a player pawn?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Kill",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NextMovePeer",
        "available": "server",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PrecacheScriptSound",
        "available": "server",
        "description": "Precache a sound for later playing.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "soundname",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveEffects",
        "available": "server",
        "description": "Removes the render effect flag.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "flags",
            "types": [
              "EntityEffects"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAbsAngles",
        "available": "server",
        "description": "Set entity pitch, yaw, roll by component.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "pitch",
            "types": [
              "float"
            ]
          },
          {
            "name": "yaw",
            "types": [
              "float"
            ]
          },
          {
            "name": "roll",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAbsOrigin",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "origin",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAbsScale",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scale",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAngles",
        "available": "server",
        "description": "Set entity pitch, yaw, roll by component.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "pitch",
            "types": [
              "float"
            ]
          },
          {
            "name": "yaw",
            "types": [
              "float"
            ]
          },
          {
            "name": "roll",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAngularVelocity",
        "available": "server",
        "description": "Set the local angular velocity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "pitchVel",
            "types": [
              "float"
            ]
          },
          {
            "name": "yawVel",
            "types": [
              "float"
            ]
          },
          {
            "name": "rollVel",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetConstraint",
        "available": "server",
        "description": "Set the position of the constraint.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "pos",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetContext",
        "available": "server",
        "description": "Store any key/value pair in this entity's dialog contexts. Value must be a string. Will last for duration (set 0 to mean 'forever').",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "string"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetContextNum",
        "available": "server",
        "description": "Store any key/value pair in this entity's dialog contexts. Value must be a number (int or float). Will last for duration (set 0 to mean 'forever').",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "float"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetContextThink",
        "available": "both",
        "description": "Set a think function on this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "contextName",
            "types": [
              "string"
            ]
          },
          {
            "name": "thinkFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "float",
                  "nil"
                ],
                "args": [
                  {
                    "name": "entity",
                    "types": [
                      "CBaseEntity"
                    ]
                  }
                ]
              },
              "nil"
            ]
          },
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetEntityName",
        "available": "server",
        "description": "Set the name of an entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetForwardVector",
        "available": "server",
        "description": "Set the orientation of the entity to have this forward vector.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "v",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFriction",
        "available": "server",
        "description": "Set PLAYER friction, ignored for objects.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "friction",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGravity",
        "available": "server",
        "description": "Set PLAYER gravity, ignored for objects.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "gravity",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHealth",
        "available": "server",
        "description": "Set the health of this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "health",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLocalAngles",
        "available": "server",
        "description": "Set entity local pitch, yaw, roll by component.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "pitch",
            "types": [
              "float"
            ]
          },
          {
            "name": "yaw",
            "types": [
              "float"
            ]
          },
          {
            "name": "roll",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLocalOrigin",
        "available": "server",
        "description": "Set entity local origin from a Vector.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "origin",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLocalScale",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scale",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMass",
        "available": "server",
        "description": "Set the mass of an entity. (does nothing if it doesn't have a physics object).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mass",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaxHealth",
        "available": "server",
        "description": "Set the maximum health of this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "amt",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOrigin",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "v",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOwner",
        "available": "server",
        "description": "Sets this entity's owner. This entity will be returned by GetOwner() and GetOwnerEntity(). GetPlayerOwner() and GetPlayerOwnerID() will be automatically inferred from this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "owner",
            "types": [
              "CBaseEntity"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParent",
        "available": "server",
        "description": "Set the parent for this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "parent",
            "types": [
              "CBaseEntity"
            ]
          },
          {
            "name": "attachmentname",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTeam",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "teamNum",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetThink",
        "available": "both",
        "description": "Set a think function on this entity. Uses `CBaseEntity:SetContextThink` internally.\nNote: optional parameters can be given in any order.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "functionName",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "float",
                  "nil"
                ],
                "args": [
                  {
                    "name": "entity",
                    "types": [
                      "CBaseEntity"
                    ]
                  }
                ]
              },
              "string"
            ],
            "description": "If `context` is provided, think function would perform a dynamic lookup on `context` table. Otherwise searches for that function name in caller scope."
          },
          {
            "name": "context",
            "types": [
              "table",
              "nil"
            ]
          },
          {
            "name": "contextName",
            "types": [
              "string",
              "nil"
            ],
            "description": "Defaults to `functionName` if it's a string."
          },
          {
            "name": "initialDelay",
            "types": [
              "float",
              "nil"
            ],
            "description": "Defaults to 0 (next game frame)."
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetVelocity",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "vecVelocity",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StopSound",
        "available": "server",
        "description": "Stops a named sound playing from this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "soundname",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StopThink",
        "available": "both",
        "description": "Stops thinker created with `CBaseEntity.SetThink`.\nAlias for `CBaseEntity:SetContextThink(contextName, nil, 0)`.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "contextName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TakeDamage",
        "available": "server",
        "description": "Apply damage to this entity. Use CreateDamageInfo() to create a damageinfo object.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "damageInfo",
            "types": [
              "CTakeDamageInfo"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TransformPointEntityToWorld",
        "available": "server",
        "description": "Returns the input Vector transformed from entity to world space.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "point",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TransformPointWorldToEntity",
        "available": "server",
        "description": "Returns the input Vector transformed from world to entity space.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "point",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Trigger",
        "available": "server",
        "description": "Fires off this entity's OnTrigger responses.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ValidatePrivateScriptScope",
        "available": "server",
        "description": "Validates the private script scope and creates it if one doesn't exist.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CBaseModelEntity",
    "clientName": "C_BaseModelEntity",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "GetAttachmentAngles",
        "available": "server",
        "description": "Get the attachment id's angles as a p,y,r vector.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "attachment",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAttachmentForward",
        "available": "server",
        "description": "Get the attachment id's forward vector.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "attachment",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAttachmentOrigin",
        "available": "server",
        "description": "Get the attachment id's origin vector.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "attachment",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMaterialGroupHash",
        "available": "server",
        "description": "Get the material group hash of this entity.",
        "returns": [
          "uint"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMaterialGroupMask",
        "available": "server",
        "description": "Get the mesh group mask of this entity.",
        "returns": [
          "Uint64"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModelScale",
        "available": "server",
        "description": "Get scale of entity's model.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRenderAlpha",
        "available": "both",
        "description": "Get the alpha modulation of this entity.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRenderColor",
        "available": "server",
        "description": "Get the render color of the entity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ScriptLookupAttachment",
        "available": "server",
        "description": "Get the named attachment id.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "attachmentName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBodygroup",
        "available": "server",
        "description": "Sets a bodygroup.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "bodyGroup",
            "types": [
              "int"
            ]
          },
          {
            "name": "choice",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBodygroupByName",
        "available": "server",
        "description": "Sets a bodygroup by name.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaterialGroup",
        "available": "server",
        "description": "Set the material group of this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "materialGroup",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaterialGroupHash",
        "available": "server",
        "description": "Set the material group hash of this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hash",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaterialGroupMask",
        "available": "server",
        "description": "Set the mesh group mask of this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "meshGroupMask",
            "types": [
              "Uint64"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetModel",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "modelName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetModelScale",
        "available": "server",
        "description": "Set scale of entity's model.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scale",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRenderAlpha",
        "available": "server",
        "description": "Set the alpha modulation of this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "alpha",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRenderColor",
        "available": "server",
        "description": "Sets the render color of the entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "r",
            "types": [
              "int"
            ]
          },
          {
            "name": "g",
            "types": [
              "int"
            ]
          },
          {
            "name": "b",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRenderMode",
        "available": "server",
        "description": "Sets the render mode of the entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mode",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSingleMeshGroup",
        "available": "server",
        "description": "Set a single mesh group for this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "meshGroupName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSize",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mins",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "maxs",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSkin",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "skin",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CBasePlayerController",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "GetPawn",
        "available": "server",
        "description": "Returns the pawn for this controller.",
        "returns": [
          "handle"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CBasePlayerPawn",
    "extend": "CBaseCombatCharacter",
    "members": [
      {
        "kind": "function",
        "name": "GetController",
        "available": "server",
        "description": "Returns the controller for this pawn.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEquippedWeapons",
        "available": "server",
        "description": "Returns an array of all the equipped weapons.",
        "returns": [
          "table"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetWeaponCount",
        "available": "server",
        "description": "Gets the number of weapons currently equipped.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsNoclipping",
        "available": "server",
        "description": "Returns true if the player is in noclip mode.",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CBaseTrigger",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "Disable",
        "available": "server",
        "description": "Disable's the trigger.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Enable",
        "available": "server",
        "description": "Enable the trigger.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTouching",
        "available": "server",
        "description": "Checks whether the passed entity is touching the trigger.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "ent",
            "types": [
              "CBaseEntity"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CBodyComponent",
    "clientName": "CBodyComponent",
    "members": [
      {
        "kind": "function",
        "name": "AddImpulseAtPosition",
        "available": "both",
        "description": "Apply an impulse at a worldspace position to the physics.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddVelocity",
        "available": "both",
        "description": "Add linear and angular velocity to the physics object.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DetachFromParent",
        "available": "both",
        "description": "Detach from its parent.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAttachedToParent",
        "available": "both",
        "description": "Is attached to parent.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetAngularVelocity",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaterialGroup",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetVelocity",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CCustomGameEventManager",
    "instance": "CustomGameEventManager",
    "members": [
      {
        "kind": "function",
        "name": "RegisterListener",
        "available": "server",
        "description": "Register a callback to be called when a particular custom event arrives. Returns a listener ID that can be used to unregister later.",
        "returns": [
          "CustomGameEventListenerID"
        ],
        "args": [
          {
            "name": "eventName",
            "types": [
              "string"
            ]
          },
          {
            "name": "listener",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "userId",
                    "types": [
                      "EntityIndex"
                    ]
                  },
                  {
                    "name": "event",
                    "types": [
                      "table"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Send_ServerToAllClients",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "eventName",
            "types": [
              "string"
            ]
          },
          {
            "name": "eventData",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Send_ServerToPlayer",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "player",
            "types": [
              "CDOTAPlayerController"
            ]
          },
          {
            "name": "eventName",
            "types": [
              "string"
            ]
          },
          {
            "name": "eventData",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Send_ServerToTeam",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "eventName",
            "types": [
              "string"
            ]
          },
          {
            "name": "eventData",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UnregisterListener",
        "available": "server",
        "description": "Unregister a specific listener.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "listenerId",
            "types": [
              "CustomGameEventListenerID"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CCustomNetTableManager",
    "clientName": "CCustomNetTableManager",
    "instance": "CustomNetTables",
    "members": [
      {
        "kind": "function",
        "name": "GetTableValue",
        "available": "both",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "tableName",
            "types": [
              "string"
            ]
          },
          {
            "name": "keyName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTableValue",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "tableName",
            "types": [
              "string"
            ]
          },
          {
            "name": "keyName",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "handle"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDebugOverlayScriptHelper",
    "clientName": "CDebugOverlayScriptHelper",
    "instance": "debugoverlay",
    "members": [
      {
        "kind": "function",
        "name": "Axis",
        "available": "both",
        "description": "Draws an axis. Specify origin + orientation in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Box",
        "available": "both",
        "description": "Draws a world-space axis-aligned box. Specify bounds in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "BoxAngles",
        "available": "both",
        "description": "Draws an oriented box at the origin. Specify bounds in local space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Capsule",
        "available": "both",
        "description": "Draws a capsule. Specify base in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Circle",
        "available": "both",
        "description": "Draws a circle. Specify center in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CircleScreenOriented",
        "available": "both",
        "description": "Draws a circle oriented to the screen. Specify center in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Cone",
        "available": "both",
        "description": "Draws a wireframe cone. Specify endpoint and direction in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Cross",
        "available": "both",
        "description": "Draws a screen-aligned cross. Specify origin in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Cross3D",
        "available": "both",
        "description": "Draws a world-aligned cross. Specify origin in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Cross3DOriented",
        "available": "both",
        "description": "Draws an oriented cross. Specify origin in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DrawTickMarkedLine",
        "available": "both",
        "description": "Draws a dashed line. Specify endpoints in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EntityAttachments",
        "available": "both",
        "description": "Draws the attachments of the entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "ehandle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EntityAxis",
        "available": "both",
        "description": "Draws the axis of the entity origin.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "ehandle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EntityBounds",
        "available": "both",
        "description": "Draws bounds of an entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "ehandle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EntitySkeleton",
        "available": "both",
        "description": "Draws the skeleton of the entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "ehandle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EntityText",
        "available": "both",
        "description": "Draws text on an entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "ehandle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FilledRect2D",
        "available": "both",
        "description": "Draws a screen-space filled 2D rectangle. Coordinates are in pixels.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HorzArrow",
        "available": "both",
        "description": "Draws a horizontal arrow. Specify endpoints in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Line",
        "available": "both",
        "description": "Draws a line between two points.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Line2D",
        "available": "both",
        "description": "Draws a line between two points in screenspace.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PopDebugOverlayScope",
        "available": "both",
        "description": "Pops the identifier used to group overlays. Overlays marked with this identifier can be deleted in a big batch.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PushAndClearDebugOverlayScope",
        "available": "both",
        "description": "Pushes an identifier used to group overlays. Deletes all existing overlays using this overlay id.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PushDebugOverlayScope",
        "available": "both",
        "description": "Pushes an identifier used to group overlays. Overlays marked with this identifier can be deleted in a big batch.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAllInScope",
        "available": "both",
        "description": "Removes all overlays marked with a specific identifier, regardless of their lifetime.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SolidCone",
        "available": "both",
        "description": "Draws a solid cone. Specify endpoint and direction in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Sphere",
        "available": "both",
        "description": "Draws a wireframe sphere. Specify center in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SweptBox",
        "available": "both",
        "description": "Draws a swept box. Specify endpoints in world space and the bounds in local space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Text",
        "available": "both",
        "description": "Draws 2D text. Specify origin in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Texture",
        "available": "both",
        "description": "Draws a screen-space texture. Coordinates are in pixels.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "Vector2D"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Triangle",
        "available": "both",
        "description": "Draws a filled triangle. Specify vertices in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "VectorText3D",
        "available": "both",
        "description": "Draws 3D text. Specify origin + orientation in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "VertArrow",
        "available": "both",
        "description": "Draws a vertical arrow. Specify endpoints in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "YawArrow",
        "available": "both",
        "description": "Draws a arrow associated with a specific yaw. Specify endpoints in world space.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg9",
            "types": [
              "bool"
            ]
          },
          {
            "name": "arg10",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Aghanim_Spear",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "LaunchSpear",
        "available": "server",
        "description": "Launch Spear to a target position from a source position.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "start",
            "types": [
              "Vector"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Animation_Attack",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "SetPlaybackRate",
        "available": "server",
        "description": "Override playbackrate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Animation_TailSpin",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "SetPlaybackRate",
        "available": "server",
        "description": "Override playbackrate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_DataDriven",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "ApplyDataDrivenModifier",
        "available": "server",
        "description": "Applies a data driven modifier to the target.",
        "returns": [
          "CDOTA_Buff"
        ],
        "args": [
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "modifierTable",
            "types": [
              "table",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ApplyDataDrivenThinker",
        "available": "server",
        "description": "Applies a data driven thinker at the location.",
        "returns": [
          "CDOTA_Buff"
        ],
        "args": [
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "modifierTable",
            "types": [
              "table",
              "nil"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Lua",
    "clientName": "C_DOTA_Ability_Lua",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "CastFilterResult",
        "available": "both",
        "description": "Determine whether an issued command with no target is valid.",
        "returns": [
          "UnitFilterResult"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CastFilterResultLocation",
        "available": "both",
        "description": "Determine whether an issued command on a location is valid.",
        "returns": [
          "UnitFilterResult"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastFilterResultTarget",
        "available": "both",
        "description": "Determine whether an issued command on a target is valid.",
        "returns": [
          "UnitFilterResult"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityChargeRestoreTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityTextureName",
        "available": "client",
        "description": "Allows code overriding of the ability texture shown in the HUD.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAOERadius",
        "available": "both",
        "description": "Controls the size of the AOE casting cursor.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssociatedPrimaryAbilities",
        "available": "server",
        "description": "Returns abilities that are stolen simultaneously, or otherwise related in functionality.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssociatedSecondaryAbilities",
        "available": "server",
        "description": "Returns other abilities that are stolen simultaneously, or otherwise related in functionality.  Generally hidden abilities.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBehavior",
        "available": "both",
        "description": "Return cast behavior type of this ability.",
        "returns": [
          "DOTA_ABILITY_BEHAVIOR"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastAnimation",
        "available": "server",
        "description": "Return casting animation of this ability.",
        "returns": [
          "GameActivity_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastPoint",
        "available": "both",
        "description": "Return cast point of this ability.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastRange",
        "available": "both",
        "description": "Return cast range of this ability.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCastRangeBonus",
        "available": "both",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "handle"
            ]
          },
          {
            "name": "pseudoCastRange",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelAnimation",
        "available": "server",
        "description": "Return channel animation of this ability.",
        "returns": [
          "GameActivity_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetChannelledHealthCostPerSecond",
        "available": "both",
        "description": "Return health cost per second of channeling at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelledManaCostPerSecond",
        "available": "both",
        "description": "Return mana cost at the given level per second while channeling (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelStartTime",
        "available": "both",
        "description": "Return the channel start time of this ability.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetChannelTime",
        "available": "both",
        "description": "Return the channel time of this ability.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetConceptRecipientType",
        "available": "server",
        "description": "Return who hears speech when this spell is cast.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCooldown",
        "available": "both",
        "description": "Return cooldown of this ability.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomCastError",
        "available": "both",
        "description": "Return the error string of a failed command with no target.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomCastErrorLocation",
        "available": "both",
        "description": "Return the error string of a failed command on a location.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomCastErrorTarget",
        "available": "both",
        "description": "Return the error string of a failed command on a target.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomHudErrorMessage",
        "available": "both",
        "description": "(DOTA_INVALID_ORDERS nReason) Return the error string of a failed order.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "reason",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEffectiveCastRange",
        "available": "both",
        "description": "Return cast range of this ability, accounting for modifiers.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "target",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldCost",
        "available": "both",
        "description": "Return gold cost at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHealthCost",
        "available": "both",
        "description": "Return health cost at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetIntrinsicModifierName",
        "available": "server",
        "description": "Returns the name of the modifier applied passively by this ability.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetManaCost",
        "available": "both",
        "description": "Return mana cost at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlaybackRateOverride",
        "available": "server",
        "description": "Return the animation rate of the cast animation.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAttributeBonus",
        "available": "both",
        "description": "Is this ability an Attribute Bonus.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCosmetic",
        "available": "server",
        "description": "Is this a cosmetic only ability?",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsHiddenAbilityCastable",
        "available": "both",
        "description": "Returns true if this ability can be used when not on the action panel.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHiddenWhenStolen",
        "available": "server",
        "description": "Returns true if this ability is hidden when stolen by Spell Steal.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRefreshable",
        "available": "server",
        "description": "Returns true if this ability is refreshed by Refresher Orb.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStealable",
        "available": "server",
        "description": "Returns true if this ability can be stolen by Spell Steal.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPhaseInterrupted",
        "available": "server",
        "description": "Cast time did not complete successfully.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPhaseStart",
        "available": "server",
        "description": "Cast time begins (return true for successful cast).",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPinged",
        "available": "server",
        "description": "The ability was pinged.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "ctrlHeld",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilityUpgrade",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "upgradeAbility",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnChannelFinish",
        "available": "server",
        "description": "Channel finished.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interrupted",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnChannelThink",
        "available": "server",
        "description": "Channeling is taking place.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroCalculateStatBonus",
        "available": "server",
        "description": "Caster (hero only) gained a level, skilled an ability, or received a new stat bonus.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnHeroDiedNearby",
        "available": "server",
        "description": "A hero has died in the vicinity (ie Urn), takes table of params.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "unit",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "attacker",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "event",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroLevelUp",
        "available": "server",
        "description": "Caster gained a level.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnInventoryContentsChanged",
        "available": "server",
        "description": "Caster inventory changed.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnItemEquipped",
        "available": "server",
        "description": "Caster equipped item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnOwnerDied",
        "available": "server",
        "description": "Caster died.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnOwnerSpawned",
        "available": "server",
        "description": "Caster respawned or spawned for the first time.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnProjectileHit",
        "available": "server",
        "description": "Projectile has collided with a given target or reached its destination. If 'true` is returned, projectile would be destroyed.",
        "returns": [
          "bool",
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileHit_ExtraData",
        "available": "server",
        "description": "Projectile has collided with a given target or reached its destination. If 'true` is returned, projectile would be destroyed.",
        "returns": [
          "bool",
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "extraData",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileHitHandle",
        "available": "server",
        "description": "Projectile has collided with a given target or reached its destination. If 'true` is returned, projectile would be destroyed.",
        "returns": [
          "bool",
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "projectileHandle",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileThink",
        "available": "server",
        "description": "Projectile is actively moving.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileThink_ExtraData",
        "available": "server",
        "description": "Projectile is actively moving.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "extraData",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileThinkHandle",
        "available": "server",
        "description": "Projectile is actively moving.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "projectileHandle",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnSpellStart",
        "available": "server",
        "description": "Cast time finished, spell effects begin.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnStolen",
        "available": "server",
        "description": "Special behavior when stolen by Spell Steal.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "sourceAbility",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnToggle",
        "available": "server",
        "description": "Ability is toggled on/off.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnUnStolen",
        "available": "server",
        "description": "Special behavior when lost by Spell Steal.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnUpgrade",
        "available": "server",
        "description": "Ability gained a level.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OtherAbilitiesAlwaysInterruptChanneling",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PiercesDebuffImmunity",
        "available": "both",
        "description": "Return if an ability and its modifiers should pierce debuff immunity.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ProcsMagicStick",
        "available": "server",
        "description": "Returns true if this ability will generate magic stick charges for nearby enemies.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RequiresFacing",
        "available": "server",
        "description": "Does this ability need the caster to face the target before executing?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ResetToggleOnRespawn",
        "available": "server",
        "description": "Returns true if this ability should return to the default toggle state when its parent respawns.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpeakTrigger",
        "available": "server",
        "description": "Return the type of speech used.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Init",
        "available": "both",
        "abstract": true,
        "description": "Called first when ability entity is created.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Precache",
        "available": "server",
        "abstract": true,
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "context",
            "types": [
              "CScriptPrecacheContext"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Spawn",
        "available": "both",
        "abstract": true,
        "description": "Called when ability entity is created, after Init.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Nian_Dive",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "SetPlaybackRate",
        "available": "server",
        "description": "Override playbackrate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Nian_Leap",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "SetPlaybackRate",
        "available": "server",
        "description": "Override playbackrate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Ability_Nian_Roar",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "GetCastCount",
        "available": "server",
        "description": "Number of times Nian has used the roar.",
        "returns": [
          "int"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC",
    "clientName": "C_DOTA_BaseNPC",
    "extend": "CBaseAnimatingOverlay",
    "members": [
      {
        "kind": "function",
        "name": "AddAbility",
        "available": "server",
        "description": "Add an ability to this unit by name.",
        "returns": [
          "CDOTABaseAbility"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddActivityModifier",
        "available": "server",
        "description": "Add an activity modifier that affects future StartGesture calls.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "description": "The name of the activity modifier to add, e.g. 'haste'.",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddItem",
        "available": "server",
        "description": "Add an item to this unit's inventory.",
        "returns": [
          "CDOTA_Item"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddItemByName",
        "available": "server",
        "description": "Add an item to this unit's inventory.",
        "returns": [
          "CDOTA_Item"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddNewModifier",
        "available": "server",
        "description": "Add a modifier to this unit.",
        "returns": [
          "CDOTA_Buff"
        ],
        "args": [
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          },
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility",
              "nil"
            ]
          },
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "modifierTable",
            "types": [
              "table",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddNoDraw",
        "available": "server",
        "description": "Adds the no draw flag.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "AddSpeechBubble",
        "available": "server",
        "description": "Add a speech bubble(1-4 live at a time) to this NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "bubble",
            "types": [
              "int"
            ]
          },
          {
            "name": "speech",
            "types": [
              "string"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          },
          {
            "name": "unOffsetX",
            "types": [
              "uint"
            ]
          },
          {
            "name": "unOffsetY",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AlertNearbyUnits",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "attacker",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AngerNearbyUnits",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "AttackNoEarlierThan",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          },
          {
            "name": "timeDisparityTolerance",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AttackReady",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "BoundingRadius2D",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CalculateGenericBonuses",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CanBeSeenByAnyOpposingTeam",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CanEntityBeSeenByMyTeam",
        "available": "server",
        "description": "Check FoW to see if an entity is visible.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CanSellItems",
        "available": "server",
        "description": "Query if this unit can sell items.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CastAbilityImmediately",
        "available": "server",
        "description": "Cast an ability immediately.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "playerIndex",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastAbilityNoTarget",
        "available": "server",
        "description": "Cast an ability with no target.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "playerIndex",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastAbilityOnPosition",
        "available": "server",
        "description": "Cast an ability on a position.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "position",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "playerIndex",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastAbilityOnTarget",
        "available": "server",
        "description": "Cast an ability on a target entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "playerIndex",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastAbilityToggle",
        "available": "server",
        "description": "Toggle an ability.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "playerIndex",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ChangeTeam",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "teamNum",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearActivityModifiers",
        "available": "server",
        "description": "Clear Activity modifiers.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ConsumeItem",
        "available": "server",
        "description": "Consume the item, deleting it from the inventory and granting the hero the specified bonuses.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DestroyAllSpeechBubbles",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DisassembleItem",
        "available": "server",
        "description": "Disassemble the passed item in this unit's inventory.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DropItemAtPosition",
        "available": "server",
        "description": "Drop an item at a given point.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "dest",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DropItemAtPositionImmediate",
        "available": "server",
        "description": "Immediately drop a carried item at a given position.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          },
          {
            "name": "position",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EjectItemFromStash",
        "available": "server",
        "description": "Drops the selected item out of this unit's stash.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FaceTowards",
        "available": "server",
        "description": "This unit will be set to face the target point.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FadeGesture",
        "available": "server",
        "description": "Fade and remove the given gesture activity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAbilityByName",
        "available": "both",
        "description": "Retrieve an ability by name from the unit.",
        "returns": [
          "CDOTABaseAbility",
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllModifiers",
        "available": "server",
        "description": "Returns a table of all of the modifiers on the NPC.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CDOTA_Buff"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "FindAllModifiersByName",
        "available": "server",
        "description": "Returns a table of all of the modifiers on the NPC with the passed name (modifierName).",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CDOTA_Buff"
            ]
          }
        ],
        "args": [
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindItemInInventory",
        "available": "server",
        "description": "Get handle to first item in inventory, else nil.",
        "returns": [
          "CDOTA_Item",
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindModifierByName",
        "available": "server",
        "description": "Return a handle to the modifier of the given name if found, else nil (string Name ).",
        "returns": [
          "CDOTA_Buff",
          "nil"
        ],
        "args": [
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindModifierByNameAndCaster",
        "available": "server",
        "description": "Return a handle to the modifier of the given name from the passed caster if found, else nil.",
        "returns": [
          "CDOTA_Buff",
          "nil"
        ],
        "args": [
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ForceKill",
        "available": "server",
        "description": "Kill this unit immediately.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "reincarnate",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ForcePlayActivityOnce",
        "available": "server",
        "description": "Play an activity once, and then go back to idle.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityByIndex",
        "available": "server",
        "description": "Retrieve an ability by index from the unit.",
        "returns": [
          "CDOTABaseAbility",
          "nil"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityCount",
        "available": "both",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAcquisitionRange",
        "available": "server",
        "description": "Gets the range at which this unit will auto-acquire.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAdditionalBattleMusicWeight",
        "available": "server",
        "description": "Combat involving this creature will have this weight added to the music calcuations.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAggroTarget",
        "available": "server",
        "description": "Returns this unit's aggro target.",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttackAnimationPoint",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttackCapability",
        "available": "server",
        "returns": [
          "DOTAUnitAttackCapability_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttackDamage",
        "available": "server",
        "description": "Returns a random integer between the minimum and maximum base damage of the unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttackRangeBuffer",
        "available": "server",
        "description": "Gets the attack range buffer.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttackSpeed",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "ignoreTempAttackSpeed",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAttacksPerSecond",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "ignoreTempAttackSpeed",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAttackTarget",
        "available": "server",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAverageTrueAttackDamage",
        "available": "server",
        "description": "Returns the average value of the minimum and maximum damage values.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetBaseAttackRange",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseAttackTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseDamageMax",
        "available": "server",
        "description": "Get the maximum attack damage of this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseDamageMin",
        "available": "server",
        "description": "Get the minimum attack damage of this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseDayTimeVisionRange",
        "available": "server",
        "description": "Returns the vision range before modifiers.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseHealthBarOffset",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseHealthRegen",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseMagicalResistanceValue",
        "available": "both",
        "description": "Returns base magical armor value.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseMaxHealth",
        "available": "server",
        "description": "Gets the base max health value.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseMoveSpeed",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseNightTimeVisionRange",
        "available": "server",
        "description": "Returns the vision range after modifiers.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBonusManaRegen",
        "available": "server",
        "description": "This Mana regen is derived from constant bonuses like Basilius.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastPoint",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "attack",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCastRangeBonus",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCloneSource",
        "available": "server",
        "description": "Get clone source (Meepo Prime, if this is a Meepo).",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCollisionPadding",
        "available": "both",
        "description": "Returns the size of the collision padding around the hull.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCooldownReduction",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCreationTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCurrentActiveAbility",
        "available": "server",
        "description": "Get the ability this unit is currently casting.",
        "returns": [
          "CDOTABaseAbility",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCurrentVisionRange",
        "available": "both",
        "description": "Gets the current vision range.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCursorCastTarget",
        "available": "server",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCursorPosition",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCursorTargetingNothing",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamageMax",
        "available": "both",
        "description": "Get the maximum attack damage of this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamageMin",
        "available": "both",
        "description": "Get the minimum attack damage of this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDayTimeVisionRange",
        "available": "both",
        "description": "Returns the vision range after modifiers.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDeathXP",
        "available": "server",
        "description": "Get the XP bounty on this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDisplayAttackSpeed",
        "available": "server",
        "description": "Attack speed expressed as constant value.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEvasion",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetForceAttackTarget",
        "available": "server",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetGoldBounty",
        "available": "server",
        "description": "Get the gold bounty on this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHasteFactor",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHealthDeficit",
        "available": "server",
        "description": "Returns integer amount of health missing from max.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHealthPercent",
        "available": "both",
        "description": "Get the current health percent of the unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHealthRegen",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHullRadius",
        "available": "both",
        "description": "Get the collision hull radius of this NPC.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetIdealSpeed",
        "available": "both",
        "description": "Returns speed after all modifiers.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetIdealSpeedNoSlows",
        "available": "both",
        "description": "Returns speed after all modifiers, but excluding those that reduce speed.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetIncreasedAttackSpeed",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "ignoreTempAttackSpeed",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetInitialGoalEntity",
        "available": "server",
        "description": "Returns the initial waypoint goal for this NPC.",
        "returns": [
          "CBaseEntity",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetInitialGoalPosition",
        "available": "server",
        "description": "Get waypoint position for this NPC.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetItemInSlot",
        "available": "server",
        "description": "Returns nth item in inventory slot (index is zero based).",
        "returns": [
          "CDOTA_Item",
          "nil"
        ],
        "args": [
          {
            "name": "slot",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLastAttackTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLastDamageTime",
        "available": "server",
        "description": "Get the last time this NPC took damage.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLastIdleChangeTime",
        "available": "server",
        "description": "Get the last game time that this unit switched to/from idle state.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLevel",
        "available": "both",
        "description": "Returns the level of this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMainControllingPlayer",
        "available": "server",
        "description": "Returns the player ID of the controlling player.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMana",
        "available": "both",
        "description": "Get the mana on this unit.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetManaPercent",
        "available": "server",
        "description": "Get the percent of mana remaining.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetManaRegen",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMaximumGoldBounty",
        "available": "server",
        "description": "Get the maximum gold bounty for this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMaxMana",
        "available": "both",
        "description": "Get the maximum mana of this unit.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMinimumGoldBounty",
        "available": "server",
        "description": "Get the minimum gold bounty for this unit.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModelRadius",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModifierCount",
        "available": "server",
        "description": "How many modifiers does this unit have?",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModifierNameByIndex",
        "available": "server",
        "description": "Get a modifier name by index.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierStackCount",
        "available": "both",
        "description": "Gets the stack count of a given modifier.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMoveSpeedModifier",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "baseSpeed",
            "types": [
              "float"
            ]
          },
          {
            "name": "returnUnslowed",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMustReachEachGoalEntity",
        "available": "server",
        "description": "Set whether this NPC is required to reach each goal entity, rather than being allowed to unkink their path.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNeutralSpawnerName",
        "available": "server",
        "description": "Get the name of this camp's neutral spawner.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNeverMoveToClearSpace",
        "available": "server",
        "description": "If set to true, we will never attempt to move this unit to clear space, even when it unphases.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNightTimeVisionRange",
        "available": "both",
        "description": "Returns the vision range after modifiers.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOpposingTeamNumber",
        "available": "both",
        "returns": [
          "DOTATeam_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPaddedCollisionRadius",
        "available": "both",
        "description": "Get the collision hull radius (including padding) of this NPC.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPhysicalArmorBaseValue",
        "available": "both",
        "description": "Returns base physical armor value.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPhysicalArmorValue",
        "available": "both",
        "description": "Returns current physical armor value.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "ignoreBase",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlayerOwner",
        "available": "server",
        "description": "Returns the player that owns this unit.",
        "returns": [
          "CDOTAPlayerController"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPlayerOwnerID",
        "available": "both",
        "description": "Get the owner player ID for this unit.",
        "returns": [
          "PlayerID"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetProjectileSpeed",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRangedProjectileName",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRangeToUnit",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "npc",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetRemainingPathLength",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSecondsPerAttack",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "ignoreTempAttackSpeed",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSpellAmplification",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "baseOnly",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetStatusResistance",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTotalPurchasedUpgradeGoldCost",
        "available": "both",
        "description": "Get how much gold has been spent on ability upgrades.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUnitLabel",
        "available": "both",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUnitLocToken",
        "available": "client",
        "description": "Get the localization token for this unit's name.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUnitName",
        "available": "both",
        "description": "Get the name of this unit.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GiveMana",
        "available": "server",
        "description": "Give mana to this unit, this can be used for mana gained by abilities or item usage.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mana",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasAbility",
        "available": "server",
        "description": "See whether this unit has an ability by name.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasAnyActiveAbilities",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasAttackCapability",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasFlyingVision",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasFlyMovementCapability",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasGroundMovementCapability",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasInventory",
        "available": "server",
        "description": "Does this unit have an inventory.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasItemInInventory",
        "available": "both",
        "description": "See whether this unit has an item by name.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasModifier",
        "available": "both",
        "description": "Sees if this unit has a given modifier.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "scriptName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasMovementCapability",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasScepter",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Heal",
        "available": "server",
        "description": "Heal this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "amount",
            "types": [
              "float"
            ]
          },
          {
            "name": "inflictor",
            "types": [
              "CDOTABaseAbility",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HealWithParams",
        "available": "server",
        "description": "Heal this unit (with more parameters).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "amount",
            "types": [
              "float"
            ]
          },
          {
            "name": "inflictor",
            "types": [
              "handle"
            ]
          },
          {
            "name": "lifesteal",
            "types": [
              "bool"
            ]
          },
          {
            "name": "amplify",
            "types": [
              "bool"
            ]
          },
          {
            "name": "source",
            "types": [
              "handle"
            ]
          },
          {
            "name": "spellLifesteal",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Hold",
        "available": "server",
        "description": "Hold position.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Interrupt",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "InterruptChannel",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "InterruptMotionControllers",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "findClearSpace",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsAlive",
        "available": "server",
        "description": "Is this unit alive?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAncient",
        "available": "both",
        "description": "Is this unit an Ancient?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAttackImmune",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAttacking",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAttackingEntity",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsBarracks",
        "available": "both",
        "description": "Is this unit a Barracks?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBlind",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBlockDisabled",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBoss",
        "available": "both",
        "description": "Is this unit a boss?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBossCreature",
        "available": "server",
        "description": "Is this unit a Boss Creature? (used by custom games).",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBuilding",
        "available": "both",
        "description": "Is this unit a building?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsChanneling",
        "available": "server",
        "description": "Is this unit currently channeling a spell?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsClone",
        "available": "server",
        "description": "Is this unit a clone? (Meepo).",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCommandRestricted",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsConsideredHero",
        "available": "both",
        "description": "Is this unit a considered a hero for targeting purposes?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsControllableByAnyPlayer",
        "available": "both",
        "description": "Is this unit controlled by any non-bot player?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCourier",
        "available": "both",
        "description": "Is this unit a courier?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCreature",
        "available": "both",
        "description": "Is this a Creature type NPC?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCreep",
        "available": "both",
        "description": "Is this unit a creep?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCreepHero",
        "available": "both",
        "description": "Is this unit a creep hero?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCurrentlyHorizontalMotionControlled",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCurrentlyVerticalMotionControlled",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDebuffImmune",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDisarmed",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDominated",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsEvadeDisabled",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsFeared",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsFort",
        "available": "both",
        "description": "Is this unit an Ancient?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsFrozen",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHero",
        "available": "both",
        "description": "Is this a hero or hero illusion?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHeroWard",
        "available": "server",
        "description": "Is this a Hero Ward?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHexed",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsIdle",
        "available": "server",
        "description": "Is this creature currently idle?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsIllusion",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInRangeOfShop",
        "available": "server",
        "description": "Ask whether this unit is in range of the specified shop.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "shopType",
            "types": [
              "DOTA_SHOP_TYPE"
            ]
          },
          {
            "name": "physical",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsInventoryEnabled",
        "available": "client",
        "description": "Does this unit have an inventory.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInvisible",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInvulnerable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsLowAttackPriority",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsMagicImmune",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsMovementImpaired",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsMoving",
        "available": "both",
        "description": "Is this unit moving?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsMuted",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsNeutralUnitType",
        "available": "both",
        "description": "Is this a neutral?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsNightmared",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsOpposingTeam",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsOther",
        "available": "both",
        "description": "Is this unit a ward-type unit?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsOutOfGame",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsOwnedByAnyPlayer",
        "available": "both",
        "description": "Is this unit owned by any non-bot player?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPhantom",
        "available": "both",
        "description": "Is this a phantom unit?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPhantomBlocker",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPhased",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPositionInRange",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "position",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "range",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsRangedAttacker",
        "available": "both",
        "description": "Is this unit a ranged attacker?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRealHero",
        "available": "both",
        "description": "Is this a real hero?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsReincarnating",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRooted",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsShrine",
        "available": "server",
        "description": "Is this a shrine?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSilenced",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSpeciallyDeniable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSpeciallyUndeniable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStrongIllusion",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStunned",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSummoned",
        "available": "both",
        "description": "Is this unit summoned?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTaunted",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTempestDouble",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTower",
        "available": "both",
        "description": "Is this a tower?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsUnableToMiss",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsUnselectable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsUntargetable",
        "available": "client",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsUntargetableFrom",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "targettingSource",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsWard",
        "available": "server",
        "description": "Is this a Ward?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsZombie",
        "available": "server",
        "description": "Is this entity an Undying Zombie?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Kill",
        "available": "server",
        "description": "Kills this NPC, with the params Ability and Attacker.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility",
              "nil"
            ]
          },
          {
            "name": "attacker",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MakeIllusion",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "MakePhantomBlocker",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "MakeVisibleDueToAttack",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "radius",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MakeVisibleToTeam",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ManageModelChanges",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ModifyHealth",
        "available": "server",
        "description": "Sets the health to a specific value, with optional flags or inflictors.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "desiredHealthValue",
            "types": [
              "int"
            ]
          },
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility",
              "nil"
            ]
          },
          {
            "name": "lethal",
            "types": [
              "bool"
            ]
          },
          {
            "name": "additionalFlags",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MoveToNPC",
        "available": "server",
        "description": "Move to follow a unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "npc",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MoveToNPCToGiveItem",
        "available": "server",
        "description": "Give an item to another unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "npc",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MoveToPosition",
        "available": "server",
        "description": "Issue a Move-To command.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "dest",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MoveToPositionAggressive",
        "available": "server",
        "description": "Issue an Attack-Move-To command.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "dest",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MoveToTargetToAttack",
        "available": "server",
        "description": "Move to a target to attack.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "NoHealthBar",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NoTeamMoveTo",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NoTeamSelect",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NotifyWearablesOfModelChange",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "originalModel",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "NotOnMinimap",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NotOnMinimapForEnemies",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NoUnitCollision",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnCommandMoveToDirection",
        "available": "server",
        "description": "Tells the underlying AI to move in the given direction, skipping Dota orders.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "pos",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PassivesDisabled",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PatrolToPosition",
        "available": "server",
        "description": "Issue a Patrol-To command.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "dest",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PerformAttack",
        "available": "server",
        "description": "Performs an attack on a target.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "useCastAttackOrb",
            "types": [
              "bool"
            ]
          },
          {
            "name": "processProcs",
            "types": [
              "bool"
            ]
          },
          {
            "name": "skipCooldown",
            "types": [
              "bool"
            ]
          },
          {
            "name": "ignoreInvis",
            "types": [
              "bool"
            ]
          },
          {
            "name": "useProjectile",
            "types": [
              "bool"
            ]
          },
          {
            "name": "fakeAttack",
            "types": [
              "bool"
            ]
          },
          {
            "name": "neverMiss",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PickupDroppedItem",
        "available": "server",
        "description": "Pick up a dropped item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PickupRune",
        "available": "server",
        "description": "Pick up a rune.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PlayVCD",
        "available": "server",
        "description": "Play a VCD on the NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "vcd",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ProvidesVision",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Purge",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "removePositiveBuffs",
            "types": [
              "bool"
            ]
          },
          {
            "name": "removeDebuffs",
            "types": [
              "bool"
            ]
          },
          {
            "name": "frameOnly",
            "types": [
              "bool"
            ]
          },
          {
            "name": "removeStuns",
            "types": [
              "bool"
            ]
          },
          {
            "name": "removeExceptions",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueueConcept",
        "available": "server",
        "description": "Queue a response system concept with the TLK_DOTA_CUSTOM concept, after a delay.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "delay",
            "types": [
              "float"
            ]
          },
          {
            "name": "criteriaTable",
            "types": [
              "handle"
            ]
          },
          {
            "name": "completionCallbackFn",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "didActuallySpeak",
                    "types": [
                      "bool"
                    ]
                  },
                  {
                    "name": "callbackInfo",
                    "types": [
                      "table"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          },
          {
            "name": "callbackInfo",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueueTeamConcept",
        "available": "server",
        "description": "Queue a response system concept with the TLK_DOTA_CUSTOM concept, after a delay, for the same team this speaker is on.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "delay",
            "types": [
              "float"
            ]
          },
          {
            "name": "criteriaTable",
            "types": [
              "handle"
            ]
          },
          {
            "name": "completionCallbackFn",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "didActuallySpeak",
                    "types": [
                      "bool"
                    ]
                  },
                  {
                    "name": "callbackInfo",
                    "types": [
                      "table"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          },
          {
            "name": "callbackInfo",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueueTeamConceptNoSpectators",
        "available": "server",
        "description": "Queue a response system concept with the TLK_DOTA_CUSTOM concept, after a delay, for the same team this speaker is on. Is not played for spectators.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "delay",
            "types": [
              "float"
            ]
          },
          {
            "name": "criteriaTable",
            "types": [
              "handle"
            ]
          },
          {
            "name": "completionCallbackFn",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "didActuallySpeak",
                    "types": [
                      "bool"
                    ]
                  },
                  {
                    "name": "callbackInfo",
                    "types": [
                      "table"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          },
          {
            "name": "callbackInfo",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAbility",
        "available": "server",
        "description": "Remove an ability from this unit by name.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAbilityByHandle",
        "available": "server",
        "description": "Remove the passed ability from this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAbilityFromIndexByName",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAllModifiers",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "targets",
            "description": "0=all, 1=enemy, 2=ally",
            "types": [
              {
                "kind": "literal",
                "value": 0
              },
              {
                "kind": "literal",
                "value": 1
              },
              {
                "kind": "literal",
                "value": 2
              }
            ]
          },
          {
            "name": "now",
            "types": [
              "bool"
            ]
          },
          {
            "name": "permanent",
            "types": [
              "bool"
            ]
          },
          {
            "name": "death",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAllModifiersOfName",
        "available": "server",
        "description": "Removes all copies of a modifier.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scriptName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveGesture",
        "available": "server",
        "description": "Remove the given gesture activity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveHorizontalMotionController",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "buff",
            "types": [
              "CDOTA_Buff"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveItem",
        "available": "server",
        "description": "Removes the passed item from this unit's inventory and deletes it.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveModifierByName",
        "available": "server",
        "description": "Removes a modifier.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scriptName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveModifierByNameAndCaster",
        "available": "server",
        "description": "Removes a modifier that was cast by the given caster.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scriptName",
            "types": [
              "string"
            ]
          },
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveNoDraw",
        "available": "server",
        "description": "Remove the no draw flag.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RemoveVerticalMotionController",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "buff",
            "types": [
              "CDOTA_Buff"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RespawnUnit",
        "available": "server",
        "description": "Respawns the target unit if it can be respawned.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Script_GetAttackRange",
        "available": "both",
        "description": "Gets this unit's attack range after all modifiers.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Script_GetMagicalArmorValue",
        "available": "both",
        "description": "Returns current magical armor value.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "inflictor",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Script_IsDeniable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Script_ReduceMana",
        "available": "server",
        "description": "Remove mana from this unit, this can be used for involuntary mana loss, not for mana that is spent.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "mana",
            "types": [
              "float"
            ]
          },
          {
            "name": "ability",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SellItem",
        "available": "server",
        "description": "Sells the passed item in this unit's inventory.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAbilityByIndex",
        "available": "server",
        "description": "Set the ability by index.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAcquisitionRange",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "range",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAdditionalBattleMusicWeight",
        "available": "server",
        "description": "Combat involving this creature will have this weight added to the music calcuations.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "weight",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAggroTarget",
        "available": "server",
        "description": "Set this unit's aggro target to a specified unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "aggroTarget",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAttackCapability",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "attackCapabilities",
            "types": [
              "DOTAUnitAttackCapability_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAttacking",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "attackTarget",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseAttackTime",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "baseAttackTime",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseDamageMax",
        "available": "server",
        "description": "Sets the maximum base damage.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "max",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseDamageMin",
        "available": "server",
        "description": "Sets the minimum base damage.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "min",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseHealthRegen",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "healthRegen",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseMagicalResistanceValue",
        "available": "server",
        "description": "Sets base magical armor value.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "magicalResistanceValue",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseManaRegen",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "manaRegen",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseMaxHealth",
        "available": "server",
        "description": "Set a new base max health value.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "baseMaxHealth",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseMoveSpeed",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "moveSpeed",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCanSellItems",
        "available": "server",
        "description": "Set whether or not this unit is allowed to sell items (bCanSellItems).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "canSell",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetControllableByAllPlayers",
        "available": "server",
        "description": "Set this unit controllable by all players.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "controllableByAllPlayers",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetControllableByPlayer",
        "available": "server",
        "description": "Set this unit controllable by the player with the passed ID.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "skipAdjustingPosition",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCursorCastTarget",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCursorPosition",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCursorTargetingNothing",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "targetingNothing",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomHealthLabel",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "label",
            "types": [
              "string"
            ]
          },
          {
            "name": "r",
            "types": [
              "int"
            ]
          },
          {
            "name": "g",
            "types": [
              "int"
            ]
          },
          {
            "name": "b",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDayTimeVisionRange",
        "available": "server",
        "description": "Set the base vision range.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "range",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDeathXP",
        "available": "server",
        "description": "Set the XP bounty on this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "xpBounty",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFollowRange",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "followRange",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetForceAttackTarget",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "npc",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetForceAttackTargetAlly",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "npc",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHasInventory",
        "available": "server",
        "description": "Set if this unit has an inventory.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hasInventory",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHealthBarOffsetOverride",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "offset",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHullRadius",
        "available": "server",
        "description": "Set the collision hull radius of this NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hullRadius",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetIdleAcquire",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "idleAcquire",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInitialGoalEntity",
        "available": "server",
        "description": "Sets the initial waypoint goal for this NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "goal",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInitialGoalPosition",
        "available": "server",
        "description": "Set waypoint position for this NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "position",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMana",
        "available": "server",
        "description": "Set the mana on this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mana",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaximumGoldBounty",
        "available": "server",
        "description": "Set the maximum gold bounty for this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "goldBountyMax",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaxMana",
        "available": "server",
        "description": "Set the maximum mana of this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "maxMana",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMinimumGoldBounty",
        "available": "server",
        "description": "Set the minimum gold bounty for this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "goldBountyMin",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetModifierStackCount",
        "available": "server",
        "description": "Sets the stack count of a given modifier.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scriptName",
            "types": [
              "string"
            ]
          },
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "stackCount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMoveCapability",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "moveCapabilities",
            "types": [
              "DOTAUnitMoveCapability_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMustReachEachGoalEntity",
        "available": "server",
        "description": "Set whether this NPC is required to reach each goal entity, rather than being allowed to unkink their path.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "must",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNeverMoveToClearSpace",
        "available": "server",
        "description": "If set to true, we will never attempt to move this unit to clear space, even when it unphases.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "neverMoveToClearSpace",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNightTimeVisionRange",
        "available": "server",
        "description": "Returns the vision range after modifiers.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "range",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOrigin",
        "available": "server",
        "description": "Set the unit's origin.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOriginalModel",
        "available": "server",
        "description": "Sets the original model of this entity, which it will tend to fall back to anytime its state changes.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "modelName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPhysicalArmorBaseValue",
        "available": "server",
        "description": "Sets base physical armor value.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "physicalArmorValue",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRangedProjectileName",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "projectileName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRevealRadius",
        "available": "server",
        "description": "Sets the client side map reveal radius for this unit.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "revealRadius",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetShouldComputeRemainingPathLength",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "compute",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetShouldDoFlyHeightVisual",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "shouldVisuallyFly",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStolenScepter",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "stolenScepter",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUnitCanRespawn",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "canRespawn",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUnitName",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldIdleAcquire",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpeakConcept",
        "available": "server",
        "description": "Speak a response system concept with the TLK_DOTA_CUSTOM concept.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "criteriaTable",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SpendMana",
        "available": "server",
        "description": "Spend mana from this unit, this can be used for spending mana from abilities or item usage.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "manaSpent",
            "types": [
              "float"
            ]
          },
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartGesture",
        "available": "server",
        "description": "Add the given gesture activity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartGestureFadeWithSequenceSettings",
        "available": "server",
        "description": "Add the given gesture activity faded according to its sequence settings.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartGestureWithFade",
        "available": "server",
        "description": "Add the given gesture activity faded according to to the parameters.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          },
          {
            "name": "fadeIn",
            "types": [
              "float"
            ]
          },
          {
            "name": "fadeOut",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartGestureWithFadeAndPlaybackRate",
        "available": "server",
        "description": "Add the given gesture activity faded according to to the parameters and with a playback rate override.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "int"
            ]
          },
          {
            "name": "fadeIn",
            "types": [
              "float"
            ]
          },
          {
            "name": "fadeOut",
            "types": [
              "float"
            ]
          },
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartGestureWithPlaybackRate",
        "available": "server",
        "description": "Add the given gesture activity with a playback rate override.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activity",
            "types": [
              "GameActivity_t"
            ]
          },
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Stop",
        "available": "server",
        "description": "Stop the current order.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "StopFacing",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SwapAbilities",
        "available": "server",
        "description": "Swaps the slots of the two passed abilities and sets them enabled/disabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName1",
            "types": [
              "string"
            ]
          },
          {
            "name": "abilityName2",
            "types": [
              "string"
            ]
          },
          {
            "name": "enable1",
            "types": [
              "bool"
            ]
          },
          {
            "name": "enable2",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SwapItems",
        "available": "server",
        "description": "Swap the contents of two item slots (slot1, slot2).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "slot1",
            "types": [
              "int"
            ]
          },
          {
            "name": "slot2",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TakeItem",
        "available": "server",
        "description": "Removed the passed item from this unit's inventory. Returns the passed item.",
        "returns": [
          "CDOTA_Item"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TimeUntilNextAttack",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "TriggerModifierDodge",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "handle"
            ]
          },
          {
            "name": "buff",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TriggerSpellAbsorb",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "TriggerSpellReflect",
        "available": "server",
        "description": "Trigger the Lotus Orb-like effect.(hAbility).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UnHideAbilityToSlot",
        "available": "server",
        "description": "Makes the first ability unhidden, and puts it where second ability currently is. Will do nothing if the first ability is already unhidden and in a valid slot.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          },
          {
            "name": "replacedAbilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UnitCanRespawn",
        "available": "both",
        "description": "Can the unit respawn?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "WasKilledPassively",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_Building",
    "extend": "CDOTA_BaseNPC",
    "members": [
      {
        "kind": "function",
        "name": "GetInvulnCount",
        "available": "server",
        "description": "Get the invulnerability count for a building.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetInvulnCount",
        "available": "server",
        "description": "Set the invulnerability counter of this building.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "invulnCount",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_Creature",
    "extend": "CDOTA_BaseNPC",
    "members": [
      {
        "kind": "function",
        "name": "AddItemDrop",
        "available": "server",
        "description": "Add the specified item drop to this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "dropData",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CreatureLevelUp",
        "available": "server",
        "description": "Level the creature up by the specified number of levels.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "levels",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDisableResistance",
        "available": "server",
        "description": "Set creature's current disable resistance.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUltimateDisableResistance",
        "available": "server",
        "description": "Set creature's current disable resistance from ultimates.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsChampion",
        "available": "server",
        "description": "Is this unit a champion?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsReincarnating",
        "available": "server",
        "description": "Is this creature respawning?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RemoveAllItemDrops",
        "available": "server",
        "description": "Remove all item drops from this creature.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetAggroOnOwnerOnDamage",
        "available": "server",
        "description": "Does this creature aggro on the owner of the attacking unit when taking damage?",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "aggro",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetArmorGain",
        "available": "server",
        "description": "Set the armor gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "armorGain",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAttackTimeGain",
        "available": "server",
        "description": "Set the attack time gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "attackTimeGain",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBountyGain",
        "available": "server",
        "description": "Set the bounty gold gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "bountyGain",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetChampion",
        "available": "server",
        "description": "Flag this unit as a champion creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "isChampion",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamageGain",
        "available": "server",
        "description": "Set the damage gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damageGain",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDisableResistance",
        "available": "server",
        "description": "Set creature's current disable resistance.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disableResistance",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDisableResistanceGain",
        "available": "server",
        "description": "Set the disable resistance gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disableResistanceGain",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetEconItemGroup",
        "available": "server",
        "description": "Switches visible econ item group.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "group",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHPGain",
        "available": "server",
        "description": "Set the hit points gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hpGain",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHPRegenGain",
        "available": "server",
        "description": "Set the hit points regen gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hpRegenGain",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMagicResistanceGain",
        "available": "server",
        "description": "Set the magic resistance gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "magicResistanceGain",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetManaGain",
        "available": "server",
        "description": "Set the mana points gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "manaGain",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetManaRegenGain",
        "available": "server",
        "description": "Set the mana points regen gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "manaRegenGain",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMoveSpeedGain",
        "available": "server",
        "description": "Set the move speed gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "moveSpeedGain",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRequiresReachingEndPath",
        "available": "server",
        "description": "Set whether creatures require reaching their end path before becoming idle.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "requiresReachingEndPath",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUltimateDisableResistance",
        "available": "server",
        "description": "Set creature's current disable resistance from ultimates.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ultDisableResistance",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetXPGain",
        "available": "server",
        "description": "Set the XP gained per level on this creature.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "xpGain",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_Hero",
    "clientName": "C_DOTA_BaseNPC_Hero",
    "extend": "CDOTA_BaseNPC",
    "members": [
      {
        "kind": "function",
        "name": "AddExperience",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "xp",
            "types": [
              "float"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyXP_Reason"
            ]
          },
          {
            "name": "applyBotDifficultyScaling",
            "types": [
              "bool"
            ]
          },
          {
            "name": "incrementTotal",
            "types": [
              "bool"
            ]
          },
          {
            "name": "cloneCount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Buyback",
        "available": "server",
        "description": "Spend the gold and buyback with this hero.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CalculateStatBonus",
        "available": "server",
        "description": "Recalculate all stats after the hero gains stats.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "force",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CanEarnGold",
        "available": "server",
        "description": "Returns boolean value result of buyback gold limit time less than game time.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearLastHitMultikill",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearLastHitStreak",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearStreak",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityPoints",
        "available": "server",
        "description": "Gets the current unspent ability points.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAdditionalOwnedUnits",
        "available": "server",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAgility",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAgilityGain",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssists",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttacker",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetBaseAgility",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseDamageMax",
        "available": "server",
        "description": "Hero damage is also affected by attributes.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseDamageMin",
        "available": "server",
        "description": "Hero damage is also affected by attributes.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseIntellect",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseManaRegen",
        "available": "server",
        "description": "Returns the base mana regen.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBaseStrength",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBonusDamageFromPrimaryStat",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBuybackCooldownTime",
        "available": "server",
        "description": "Return float value for the amount of time left on cooldown for this hero's buyback.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBuybackCost",
        "available": "server",
        "description": "Return integer value for the gold cost of a buyback.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBuybackGoldLimitTime",
        "available": "server",
        "description": "Returns the amount of time gold gain is limited after buying back.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCurrentXP",
        "available": "server",
        "description": "Returns the amount of XP.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDeathGoldCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDeaths",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDenies",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetGold",
        "available": "server",
        "description": "Returns gold amount for the player owning this hero.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetGoldBounty",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHeroFacetID",
        "available": "both",
        "returns": [
          "uint"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHeroID",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetIncreasedAttackSpeed",
        "available": "server",
        "description": "Hero attack speed is also affected by agility.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "ignoreTempAttackSpeed",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetIntellect",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "skipNoConsume",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetIntellectGain",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetKills",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLastHits",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMostRecentDamageTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMultipleKillCount",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNumAttackers",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNumItemsInInventory",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNumItemsInStash",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPhysicalArmorBaseValue",
        "available": "server",
        "description": "Hero armor is affected by attributes.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPlayerID",
        "available": "server",
        "description": "Returns player ID of the player owning this hero.",
        "returns": [
          "PlayerID"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPrimaryAttribute",
        "available": "server",
        "returns": [
          "Attributes"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPrimaryStatValue",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetReplicatingOtherHero",
        "available": "server",
        "description": "If hero is under Replicate effect, returns original hero entity.",
        "returns": [
          "CDOTA_BaseNPC_Hero",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRespawnsDisabled",
        "available": "server",
        "description": "Is this hero prevented from respawning?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRespawnTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStreak",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStrength",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStrengthGain",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTimeUntilRespawn",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTogglableWearable",
        "available": "server",
        "description": "Get wearable entity in slot (slot).",
        "returns": [
          "CBaseAnimatingActivity",
          "nil"
        ],
        "args": [
          {
            "name": "slotType",
            "types": [
              "DOTASlotType_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasAnyAvailableInventorySpace",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasFlyingVision",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasOwnerAbandoned",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasRoomForItem",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "includeStashCombines",
            "types": [
              "bool"
            ]
          },
          {
            "name": "allowSelling",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HeroLevelUp",
        "available": "server",
        "description": "Levels up the hero, true or false to play effects.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playEffects",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementAssists",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "killerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementDeaths",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "killerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementDenies",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncrementKills",
        "available": "server",
        "description": "Passed ID is for the victim, killer ID is ID of the current hero.  Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "victimId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementLastHitMultikill",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncrementLastHits",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncrementLastHitStreak",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncrementNearbyCreepDeaths",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncrementStreak",
        "available": "server",
        "description": "Value is stored in PlayerResource.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsBuybackDisabledByDevilsBargain",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsReincarnating",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStashEnabled",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "KilledHero",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hero",
            "types": [
              "CDOTA_BaseNPC_Hero"
            ]
          },
          {
            "name": "inflictor",
            "types": [
              "CDOTABaseAbility",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyAgility",
        "available": "server",
        "description": "Adds passed value to base attribute value, then calls CalculateStatBonus.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "newAgility",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyGold",
        "available": "server",
        "description": "Gives this hero some gold.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "goldChange",
            "types": [
              "int"
            ]
          },
          {
            "name": "reliable",
            "types": [
              "bool"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyGold_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyGoldFiltered",
        "available": "server",
        "description": "Gives this hero some gold, using the gold filter if extra filtering is on.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "goldChange",
            "types": [
              "int"
            ]
          },
          {
            "name": "reliable",
            "types": [
              "bool"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyGold_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyIntellect",
        "available": "server",
        "description": "Adds passed value to base attribute value, then calls CalculateStatBonus.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "newIntellect",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyStrength",
        "available": "server",
        "description": "Adds passed value to base attribute value, then calls CalculateStatBonus.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "newStrength",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PerformTaunt",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RecordLastHit",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RespawnHero",
        "available": "server",
        "description": "Respawn this hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "buyBack",
            "types": [
              "bool"
            ]
          },
          {
            "name": "respawnPenalty",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAbilityPoints",
        "available": "server",
        "description": "Sets the current unspent ability points.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "points",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseAgility",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "agility",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseIntellect",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "intellect",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBaseStrength",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "strength",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBotDifficulty",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "difficulty",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBuybackCooldownTime",
        "available": "server",
        "description": "Sets the buyback cooldown time.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBuyBackDisabledByDevilsBargain",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "buybackDisabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBuybackGoldLimitTime",
        "available": "server",
        "description": "Set the amount of time gold gain is limited after buying back.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomDeathXP",
        "available": "server",
        "description": "Sets a custom experience value for this hero.  Note, GameRules boolean must be set for this to work!",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGold",
        "available": "server",
        "description": "Sets the gold amount for the player owning this hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "gold",
            "types": [
              "int"
            ]
          },
          {
            "name": "reliable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPlayerID",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPrimaryAttribute",
        "available": "server",
        "description": "Set this hero's primary attribute value.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "primaryAttribute",
            "types": [
              "Attributes"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRespawnPosition",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "origin",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRespawnsDisabled",
        "available": "server",
        "description": "Prevent this hero from respawning.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disableRespawns",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStashEnabled",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTimeUntilRespawn",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldDoFlyHeightVisual",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpendGold",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cost",
            "types": [
              "int"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyGold_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpgradeAbility",
        "available": "server",
        "description": "This upgrades the passed ability if it exists and the hero has enough ability points.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "WillReincarnate",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_LotusPool",
    "extend": "CDOTA_BaseNPC_Building",
    "members": []
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_NeutralItemStash",
    "extend": "CDOTA_BaseNPC_Building",
    "members": []
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_Shop",
    "extend": "CDOTA_BaseNPC_Building",
    "members": [
      {
        "kind": "function",
        "name": "GetShopType",
        "available": "server",
        "description": "Get the DOTA_SHOP_TYPE.",
        "returns": [
          "DOTA_SHOP_TYPE"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetShopType",
        "available": "server",
        "description": "Set the DOTA_SHOP_TYPE.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "shopType",
            "types": [
              "DOTA_SHOP_TYPE"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_Trap_Ward",
    "extend": "CDOTA_BaseNPC_Creature",
    "members": [
      {
        "kind": "function",
        "name": "GetTrapTarget",
        "available": "server",
        "description": "Get the trap target for this entity.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetAnimation",
        "available": "server",
        "description": "Set the animation sequence for this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "animation",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_BaseNPC_Watch_Tower",
    "extend": "CDOTA_BaseNPC_Building",
    "members": [
      {
        "kind": "function",
        "name": "GetInteractAbilityName",
        "available": "server",
        "description": "The name of the ability used when triggering interaction on the outpost.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetInteractAbilityName",
        "available": "server",
        "description": "The name of the ability used when triggering interaction on the outpost.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interactAbilityName",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Buff",
    "clientName": "CDOTA_Buff",
    "members": [
      {
        "kind": "function",
        "name": "AddParticle",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          },
          {
            "name": "destroyImmediately",
            "types": [
              "bool"
            ]
          },
          {
            "name": "statusEffect",
            "types": [
              "bool"
            ]
          },
          {
            "name": "priority",
            "types": [
              "int"
            ]
          },
          {
            "name": "heroEffect",
            "types": [
              "bool"
            ]
          },
          {
            "name": "overheadEffect",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CheckStateToTable",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "table",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DecrementStackCount",
        "available": "both",
        "description": "Decrease this modifier's stack count by 1.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Destroy",
        "available": "both",
        "description": "Run all associated destroy functions, then remove the modifier.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DestroyOnExpire",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ForceRefresh",
        "available": "both",
        "description": "Run all associated refresh functions on this modifier as if it was re-applied.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbility",
        "available": "both",
        "description": "Get the ability that generated the modifier.",
        "returns": [
          "CDOTABaseAbility",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraDuration",
        "available": "both",
        "description": "Returns aura stickiness (default 0.5).",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraOwner",
        "available": "both",
        "description": "Returns the owner of the aura modifier, that applied this modifier. Always `nil` on the client.",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCaster",
        "available": "both",
        "description": "Get the owner of the ability responsible for the modifier.",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetClass",
        "available": "both",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCreationTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDieTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDuration",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetElapsedTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLastAppliedTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetName",
        "available": "both",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetParent",
        "available": "both",
        "description": "Get the unit the modifier is parented to.",
        "returns": [
          "CDOTA_BaseNPC"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRemainingTime",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSerialNumber",
        "available": "both",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStackCount",
        "available": "both",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasFunction",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "function",
            "types": [
              "modifierfunction"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementStackCount",
        "available": "both",
        "description": "Increase this modifier's stack count by 1.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDebuff",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHexDebuff",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsNull",
        "available": "both",
        "description": "Has underlying C++ entity object been deleted?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStunDebuff",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SendBuffRefreshToClients",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetDuration",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "duration",
            "types": [
              "float"
            ]
          },
          {
            "name": "informClient",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOverheadEffectOffset",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "offset",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStackCount",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "count",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartIntervalThink",
        "available": "both",
        "description": "Start this modifier's think function (OnIntervalThink) with the given interval (float).  To stop, call with -1.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_CustomUIManager",
    "instance": "CustomUI",
    "members": [
      {
        "kind": "function",
        "name": "DynamicHud_Create",
        "available": "server",
        "description": "Create a new custom UI HUD element for the specified player(s).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "elementId",
            "types": [
              "string"
            ]
          },
          {
            "name": "layoutFileName",
            "types": [
              "string"
            ]
          },
          {
            "name": "dialogVariables",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DynamicHud_Destroy",
        "available": "server",
        "description": "Destroy a custom hud element.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "elementId",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DynamicHud_SetDialogVariables",
        "available": "server",
        "description": "Add or modify dialog variables for an existing custom hud element.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "elementId",
            "types": [
              "string"
            ]
          },
          {
            "name": "dialogVariables",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DynamicHud_SetVisible",
        "available": "server",
        "description": "Toggle the visibility of an existing custom hud element.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "elementId",
            "types": [
              "string"
            ]
          },
          {
            "name": "visible",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Item",
    "clientName": "C_DOTA_Item",
    "extend": "CDOTABaseAbility",
    "members": [
      {
        "kind": "function",
        "name": "CanBeUsedOutOfInventory",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CanOnlyPlayerHeroPickup",
        "available": "client",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetContainer",
        "available": "server",
        "description": "Get the container for this item.",
        "returns": [
          "CDOTA_Item_Physical",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCurrentCharges",
        "available": "both",
        "description": "Get the number of charges this item currently has.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetInitialCharges",
        "available": "both",
        "description": "Get the initial number of charges this item has.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetItemSlot",
        "available": "both",
        "returns": [
          {
            "kind": "literal",
            "value": -1
          },
          "DOTAScriptInventorySlot_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetItemState",
        "available": "server",
        "description": "Gets whether item is unequipped or ready.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetParent",
        "available": "server",
        "description": "Get the parent for this item.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPurchaser",
        "available": "server",
        "description": "Get the purchaser for this item.",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPurchaseTime",
        "available": "server",
        "description": "Get the purchase time of this item.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSecondaryCharges",
        "available": "both",
        "description": "Get the number of secondary charges this item currently has.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetShareability",
        "available": "both",
        "returns": [
          "EShareAbility"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetValuelessCharges",
        "available": "server",
        "description": "Get the number of valueless charges this item currently has.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsActiveNeutral",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAlertableItem",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCastOnPickup",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCombinable",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCombineLocked",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDisassemblable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDroppable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInBackpack",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsItem",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsKillable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsMuted",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPermanent",
        "available": "both",
        "description": "Is this a permanent item?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPurchasable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRecipe",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRecipeGenerated",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSellable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStackable",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "LaunchLoot",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "autoUse",
            "types": [
              "bool"
            ]
          },
          {
            "name": "height",
            "types": [
              "float"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          },
          {
            "name": "endPoint",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "teleportOwner",
            "types": [
              "CDOTA_BaseNPC_Hero",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "LaunchLootInitialHeight",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "autoUse",
            "types": [
              "bool"
            ]
          },
          {
            "name": "initialHeight",
            "types": [
              "float"
            ]
          },
          {
            "name": "launchHeight",
            "types": [
              "float"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          },
          {
            "name": "endPoint",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "LaunchLootRequiredHeight",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "autoUse",
            "types": [
              "bool"
            ]
          },
          {
            "name": "requiredHeight",
            "types": [
              "float"
            ]
          },
          {
            "name": "height",
            "types": [
              "float"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          },
          {
            "name": "endPoint",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyNumValuelessCharges",
        "available": "server",
        "description": "Modifies the number of valueless charges on this item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "charges",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnEquip",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnUnequip",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RequiresCharges",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetCanBeUsedOutOfInventory",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCastOnPickup",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "castOnPickUp",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCombineLocked",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "combineLocked",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCurrentCharges",
        "available": "server",
        "description": "Set the number of charges on this item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "charges",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDroppable",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "droppable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetItemState",
        "available": "server",
        "description": "Sets whether item is unequipped or ready.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "state",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOnlyPlayerHeroPickup",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "onlyPlayerHero",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPurchaser",
        "available": "server",
        "description": "Set the purchaser of record for this item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "purchaser",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPurchaseTime",
        "available": "server",
        "description": "Set the purchase time of this item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSecondaryCharges",
        "available": "server",
        "description": "Set the number of secondary charges on this item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "charges",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSellable",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "sellable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetShareability",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "shareability",
            "types": [
              "EShareAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStacksWithOtherOwners",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "stacksWithOtherOwners",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SpendCharge",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "delayRemove",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StacksWithOtherOwners",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Think",
        "available": "server",
        "description": "Think this item.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Item_BagOfGold",
    "extend": "CDOTA_Item",
    "members": [
      {
        "kind": "function",
        "name": "SetLifeTime",
        "available": "server",
        "description": "Set the life time of this item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Item_DataDriven",
    "extend": "CDOTA_Item",
    "members": [
      {
        "kind": "function",
        "name": "ApplyDataDrivenModifier",
        "available": "server",
        "description": "Applies a data driven modifier to the target.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "modifierTable",
            "types": [
              "table",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ApplyDataDrivenThinker",
        "available": "server",
        "description": "Applies a data driven thinker at the location.",
        "returns": [
          "CDOTA_Buff"
        ],
        "args": [
          {
            "name": "caster",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "modifierName",
            "types": [
              "string"
            ]
          },
          {
            "name": "modifierTable",
            "types": [
              "table",
              "nil"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Item_EmptyBottle",
    "clientName": "C_DOTA_Item_EmptyBottle",
    "extend": "CDOTA_Item",
    "members": [
      {
        "kind": "function",
        "name": "ClearStoredRune",
        "available": "server",
        "description": "Clear the stored rune.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnRune",
        "available": "server",
        "description": "Place a rune in the bottle.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "runeType",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStoredRune",
        "available": "server",
        "description": "Set the stored rune.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "runeType",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Item_Lua",
    "clientName": "C_DOTA_Item_Lua",
    "extend": "CDOTA_Item",
    "members": [
      {
        "kind": "function",
        "name": "CanUnitPickUp",
        "available": "server",
        "description": "Returns true if this item can be picked up by the target unit.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "unit",
            "description": "Unit trying to pick up the item.",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastFilterResult",
        "available": "both",
        "description": "Determine whether an issued command with no target is valid.",
        "returns": [
          "UnitFilterResult"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CastFilterResultLocation",
        "available": "both",
        "description": "Determine whether an issued command on a location is valid.",
        "returns": [
          "UnitFilterResult"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CastFilterResultTarget",
        "available": "both",
        "description": "Determine whether an issued command on a target is valid.",
        "returns": [
          "UnitFilterResult"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityTextureName",
        "available": "client",
        "description": "Allows code overriding of the item texture shown in the HUD.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAOERadius",
        "available": "client",
        "description": "Controls the size of the AOE casting cursor.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssociatedPrimaryAbilities",
        "available": "server",
        "description": "Returns abilities that are stolen simultaneously, or otherwise related in functionality.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssociatedSecondaryAbilities",
        "available": "server",
        "description": "Returns other abilities that are stolen simultaneously, or otherwise related in functionality.  Generally hidden abilities.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBehavior",
        "available": "both",
        "description": "Return cast behavior type of this ability.",
        "returns": [
          "DOTA_ABILITY_BEHAVIOR"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastRange",
        "available": "both",
        "description": "Return cast range of this ability.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelledHealthCostPerSecond",
        "available": "both",
        "description": "Return health cost per second of channeling at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelledManaCostPerSecond",
        "available": "both",
        "description": "Return mana cost at the given level per second while channeling (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelStartTime",
        "available": "both",
        "description": "Return the channel start time of this ability.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetChannelTime",
        "available": "both",
        "description": "Return the channel time of this ability.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetConceptRecipientType",
        "available": "server",
        "description": "Return who hears speech when this spell is cast.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCooldown",
        "available": "both",
        "description": "Return cooldown of this ability.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomCastError",
        "available": "both",
        "description": "Return the error string of a failed command with no target.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomCastErrorLocation",
        "available": "both",
        "description": "Return the error string of a failed command on a location.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomCastErrorTarget",
        "available": "both",
        "description": "Return the error string of a failed command on a target.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomHudErrorMessage",
        "available": "both",
        "description": "(DOTA_INVALID_ORDERS nReason) Return the error string of a failed order.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "reason",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEffectiveCastRange",
        "available": "both",
        "description": "Return cast range of this ability, taking modifiers into account.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "target",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldCost",
        "available": "both",
        "description": "Return gold cost at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHealthCost",
        "available": "both",
        "description": "Return health cost at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetIntrinsicModifierName",
        "available": "server",
        "description": "Returns the name of the modifier applied passively by this ability.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetManaCost",
        "available": "both",
        "description": "Return mana cost at the given level (-1 is current).",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlaybackRateOverride",
        "available": "server",
        "description": "Return the animation rate of the cast animation.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHiddenAbilityCastable",
        "available": "server",
        "description": "Returns true if this ability can be used when not on the action panel.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHiddenWhenStolen",
        "available": "server",
        "description": "Returns true if this ability is hidden when stolen by Spell Steal.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsMuted",
        "available": "both",
        "description": "Returns whether this item is muted or not.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRefreshable",
        "available": "server",
        "description": "Returns true if this ability is refreshed by Refresher Orb.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStealable",
        "available": "server",
        "description": "Returns true if this ability can be stolen by Spell Steal.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPhaseInterrupted",
        "available": "server",
        "description": "Cast time did not complete successfully.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPhaseStart",
        "available": "server",
        "description": "Cast time begins (return true for successful cast).",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnChannelFinish",
        "available": "server",
        "description": "Channel finished.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interrupted",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnChannelThink",
        "available": "server",
        "description": "Channeling is taking place.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnChargeCountChanged",
        "available": "server",
        "description": "Runs when item's charge count changes. bSpent is true when the charge count change is coming from SpendCharge.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "spent",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroCalculateStatBonus",
        "available": "server",
        "description": "Caster (hero only) gained a level, skilled an ability, or received a new stat bonus.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnHeroDiedNearby",
        "available": "server",
        "description": "A hero has died in the vicinity (ie Urn), takes table of params.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "unit",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "attacker",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "event",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroLevelUp",
        "available": "server",
        "description": "Caster gained a level.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnInventoryContentsChanged",
        "available": "server",
        "description": "Caster inventory changed.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnItemEquipped",
        "available": "server",
        "description": "Caster equipped item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnOwnerDied",
        "available": "server",
        "description": "Caster died.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnOwnerSpawned",
        "available": "server",
        "description": "Caster respawned or spawned for the first time.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnProjectileHit",
        "available": "server",
        "description": "Projectile has collided with a given target or reached its destination. If 'true` is returned, projectile would be destroyed.",
        "returns": [
          "bool",
          "nil"
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileThink",
        "available": "server",
        "description": "Projectile is actively moving.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnSpellStart",
        "available": "server",
        "description": "Cast time finished, spell effects begin.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnStolen",
        "available": "server",
        "description": "Special behavior when stolen by Spell Steal.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "sourceAbility",
            "types": [
              "CDOTABaseAbility"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnToggle",
        "available": "server",
        "description": "Ability is toggled on/off.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnUnStolen",
        "available": "server",
        "description": "Special behavior when lost by Spell Steal.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnUpgrade",
        "available": "server",
        "description": "Ability gained a level.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ProcsMagicStick",
        "available": "server",
        "description": "Returns true if this ability will generate magic stick charges for nearby enemies.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpeakTrigger",
        "available": "server",
        "description": "Return the type of speech used.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Precache",
        "available": "server",
        "abstract": true,
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "context",
            "types": [
              "CScriptPrecacheContext"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Spawn",
        "available": "both",
        "abstract": true,
        "description": "Called when ability entity is created, after Init.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Item_Physical",
    "extend": "CBaseAnimatingActivity",
    "members": [
      {
        "kind": "function",
        "name": "GetContainedItem",
        "available": "server",
        "description": "Returned the contained item.",
        "returns": [
          "CDOTA_Item"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCreationTime",
        "available": "server",
        "description": "Returns the game time when this item was created in the world.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsLoot",
        "available": "server",
        "description": "Is this drop flagged as a loot drop?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetContainedItem",
        "available": "server",
        "description": "Set the contained item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetIsLoot",
        "available": "server",
        "description": "Set if this drop is flagged as a loot drop.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "isLoot",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_ItemSpawner",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "GetItemName",
        "available": "server",
        "description": "Returns the item name.",
        "returns": [
          "string"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_MapTree",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "CutDown",
        "available": "server",
        "description": "Cuts down this tree.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "teamNumberKnownTo",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CutDownRegrowAfter",
        "available": "server",
        "description": "Cuts down this tree.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "regrowAfter",
            "types": [
              "float"
            ]
          },
          {
            "name": "teamNumberKnownTo",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GrowBack",
        "available": "server",
        "description": "Grows back the tree if it was cut down.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStanding",
        "available": "server",
        "description": "Returns true if the tree is standing, false if it has been cut down.",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Modifier_Lua",
    "clientName": "CDOTA_Modifier_Lua",
    "extend": "CDOTA_Buff",
    "members": [
      {
        "kind": "function",
        "name": "AllowIllusionDuplicate",
        "available": "both",
        "description": "True/false if this modifier is active on illusions.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CanParentBeAutoAttacked",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DestroyOnExpire",
        "available": "both",
        "description": "True/false if this buff is removed when the duration expires.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttributes",
        "available": "both",
        "description": "Return the types of attributes applied to this modifier.",
        "returns": [
          "DOTAModifierAttribute_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraDuration",
        "available": "both",
        "description": "Returns aura stickiness.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraEntityReject",
        "available": "both",
        "description": "Return true/false if this entity should receive the aura under specific conditions.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAuraRadius",
        "available": "both",
        "description": "Return the range around the parent this aura tries to apply its buff.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraSearchFlags",
        "available": "both",
        "description": "Return the unit flags this aura respects when placing buffs.",
        "returns": [
          "DOTA_UNIT_TARGET_FLAGS"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraSearchTeam",
        "available": "both",
        "description": "Return the teams this aura applies its buff to.",
        "returns": [
          "DOTA_UNIT_TARGET_TEAM"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAuraSearchType",
        "available": "both",
        "description": "Return the unit classifications this aura applies its buff to.",
        "returns": [
          "DOTA_UNIT_TARGET_TYPE"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCritDamage",
        "available": "both",
        "description": "A Modifier that listens to MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE has to have a GetCritDamage implementation so we can know when to evaluate it. Value should be in 'times the original value format' e.g: 1.5 not 150.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEffectAttachType",
        "available": "both",
        "description": "Return the attach type of the particle system from GetEffectName.",
        "returns": [
          "ParticleAttachment_t"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEffectName",
        "available": "both",
        "description": "Return the name of the particle system that is created while this modifier is active.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHeroEffectName",
        "available": "both",
        "description": "Return the name of the hero effect particle system that is created while this modifier is active.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModifierAura",
        "available": "both",
        "description": "The name of the secondary modifier that will be applied by this modifier (if it is an aura).",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPriority",
        "available": "both",
        "description": "Return the priority order this modifier will be applied over others.",
        "returns": [
          "modifierpriority"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStatusEffectName",
        "available": "both",
        "description": "Return the name of the status effect particle system that is created while this modifier is active.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTexture",
        "available": "both",
        "description": "Return the name of the buff icon to be shown for this modifier.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HeroEffectPriority",
        "available": "both",
        "description": "Relationship of this hero effect with those from other buffs (higher is more likely to be shown).",
        "returns": [
          "modifierpriority"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAura",
        "available": "both",
        "description": "True/false if this modifier is an aura.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAuraActiveOnDeath",
        "available": "both",
        "description": "True/false if this aura provides buffs when the parent is dead.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDebuff",
        "available": "both",
        "description": "True/false if this modifier should be displayed as a debuff.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHidden",
        "available": "both",
        "description": "True/false if this modifier should be displayed on the buff bar.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPermanent",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPurgable",
        "available": "both",
        "description": "True/false if this modifier can be purged.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPurgeException",
        "available": "both",
        "description": "True/false if this modifier can be purged by strong dispels.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStunDebuff",
        "available": "both",
        "description": "True/false if this modifier is considered a stun for purge reasons.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnCreated",
        "available": "both",
        "description": "Runs when the modifier is created.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "params",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnDestroy",
        "available": "both",
        "description": "Runs when the modifier is destroyed (after unit loses modifier).",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnIntervalThink",
        "available": "both",
        "description": "Runs when the think interval occurs.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnRefresh",
        "available": "both",
        "description": "Runs when the modifier is refreshed.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "params",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnRemoved",
        "available": "both",
        "description": "Runs when the modifier is destroyed (before unit loses modifier).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "death",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnStackCountChanged",
        "available": "both",
        "description": "Runs when stack count changes (param is old count).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "stackCount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "PiercesDebuffImmunity",
        "available": "both",
        "description": "Returns true or false on if the effects of this modifier should pierce debuff immunity. By default uses the setting from the ability.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RemoveOnDeath",
        "available": "both",
        "description": "True/false if this modifier is removed when the parent dies.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetHasCustomTransmitterData",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hasCustomData",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldUseOverheadOffset",
        "available": "both",
        "description": "Apply the overhead offset to the attached effect.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "StatusEffectPriority",
        "available": "both",
        "description": "Relationship of this status effect with those from other buffs (higher is more likely to be shown).",
        "returns": [
          "modifierpriority"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "BotAttackScoreBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "CheckState",
        "available": "both",
        "abstract": true,
        "description": "Return a map of enabled/disabled states.",
        "returns": [
          {
            "kind": "table",
            "key": [
              "modifierstate"
            ],
            "value": [
              "bool"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DeclareFunctions",
        "available": "both",
        "abstract": true,
        "description": "Return a list of modifier functions this modifier implements.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "modifierfunction"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbsoluteNoDamageMagical",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbsoluteNoDamagePhysical",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbsoluteNoDamagePure",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbsorbSpell",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetActivityTranslationModifiers",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "string"
        ]
      },
      {
        "kind": "function",
        "name": "GetAllowEtherealAttack",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetAlwaysAllowAttack",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAlwaysAutoAttackWhileHoldPosition",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetAttackSound",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "string"
        ]
      },
      {
        "kind": "function",
        "name": "GetBaseAttackPostBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetBonusDayVision",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetBonusDayVisionPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetBonusNightVision",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetBonusNightVisionUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetBonusVisionPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetBuffAmplification",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetConvertAttackPhysicalToPure",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetCriticalStrikeBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetDisableAutoAttack",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDisableHealing",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDisableManaGain",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetFixedDayVision",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetFixedNightVision",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetForceDrawOnMinimap",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetIsIllusion",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMagicalArmorPiercingPercentageTarget",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetMinHealth",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetMinMana",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAbilityLayout",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAbilityPoints",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAdditionalNutralItemDrops",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAoEBonusConstant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAoEBonusConstantStacking",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAoEBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackHeightBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackPointConstant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackRangeBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackRangeBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackRangeBonusUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackRangeOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackSpeed_Limit",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackSpeedAbsoluteMax",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackSpeedBaseOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackSpeedBonus_Constant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackSpeedPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAttackSpeedReductionPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAvoidAttackProcs",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAvoidDamage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAvoidDamageAfterReductions",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierAvoidSpell",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseArmorPerAgiBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseAttack_BonusDamage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseAttackSpeedPerAgiBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseAttackTimeConstant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseAttackTimeConstant_Adjust",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseAttackTimePercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseDamageOutgoing_Percentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseDamageOutgoing_PercentageUnique",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseHpRegenPerStrBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseMagicResistPerIntBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseManaRegenPerIntBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBaseRegen",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBecomeAgility",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBecomeIntelligence",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBecomeStrength",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBecomeUniversal",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusDamageOutgoing_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusLotusHeal",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusStats_Agility",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusStats_Agility_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusStats_Intellect",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusStats_Intellect_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusStats_Strength",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusStats_Strength_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBonusUphillMissChance",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierBuybackPenaltyPercent",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCanAttackTrees",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCastRangeBonus",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCastRangeBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCastRangeBonusStacking",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCastRangeBonusTarget",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierChangeAbilityValue",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierConstantDeathGoldCost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierConstantHealthRegen",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierConstantManaRegen",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierConstantManaRegenUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierConstantRespawnTime",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierConvertManaCostToHealthCost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCooldownReduction_Constant",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCreateBonusIllusionChance",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCreateBonusIllusionCount",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierCreepDenyPercent",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDamageOutgoing_Percentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDamageOutgoing_Percentage_Illusion",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDamageOutgoing_Percentage_Illusion_Amplify",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDamageOutgoing_PercentageMultiplicative",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDisableTurning",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDisassembleAnything",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierDodgeProjectile",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierEvasion_Constant",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierExtraHealthBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierExtraHealthPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierExtraManaBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierExtraManaBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierExtraManaPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierExtraStrengthBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierFixedAttackRate",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierFixedManaRegen",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierForceMaxHealth",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierForceMaxMana",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierFoWTeam",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHasBonusNeutralItemChoice",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealAmplify_PercentageSource",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealAmplify_PercentageTarget",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealthBarPips",
        "available": "both",
        "abstract": true,
        "description": "Return value is a count of pips.",
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealthBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealthcostReduction_Constant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealthRegenPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHealthRegenPercentageUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHeroFacetOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHeroLevelScale",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHPRegenAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierHPRegenMultiplierPreAmplification",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIgnoreCastAngle",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIgnoreCooldown",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIgnoreMovespeedLimit",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIgnorePhysicalArmor",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIllusionLabel",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIncomingDamage_Percentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIncomingDamageConstant",
        "available": "both",
        "abstract": true,
        "description": "This property controls 'universal' shield, if defined both on client and server. Return value on client should be current shield health, as a positive integer, on server - amount of damage blocked.",
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIncomingPhysicalDamage_Percentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIncomingPhysicalDamageConstant",
        "available": "both",
        "abstract": true,
        "description": "This property controls 'physical' shield, if defined both on client and server. Return value on client should be current shield health, as a positive integer, on server - amount of damage blocked.",
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIncomingSpellDamageConstant",
        "available": "both",
        "abstract": true,
        "description": "This property controls 'spell' shield, if defined both on client and server. Return value on client should be current shield health, as a positive integer, on server - amount of damage blocked.",
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierInnateDamageBlockPctOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIntellectNone",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierInventorySlotRestricted",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierInvisibilityAttackBehaviorException",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierInvisibilityLevel",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierIsPackRat",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierItemSellbackCost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierKillStreakBonusGoldPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierKnockbackAmplification_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierLifestealRegenAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagical_ConstantBlock",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagicalResistanceBaseReduction",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagicalResistanceBonus",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagicalResistanceBonusIllusions",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagicalResistanceBonusUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagicalResistanceDecrepifyUnique",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMagicalResistanceDirectModification",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierManaBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierManacostReduction_Constant",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierManaDrainAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMaxAttackRange",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMinPhysicalArmor",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMiss_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMiss_Percentage_Target",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierModelChange",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "string"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierModelScale",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierModelScaleAnimateTime",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierModelScaleConstant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierModelScaleUseInOutEase",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeed_Absolute",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeed_AbsoluteMax",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeed_AbsoluteMin",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeed_Limit",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeed_MaxOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeed_MinOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Constant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Constant_Unique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Constant_Unique_2",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Percentage_Unique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Special_Boots",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedBonus_Special_Boots_2",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedMax_BonusConstant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedPostMultiplierBonus_Constant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMoveSpeedReductionPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMPRegenAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMPRegenAmplify_Percentage_Unique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierMPRestoreAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "description": "Total amplify value is clamped to 0.",
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierNegativeEvasion_Constant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierNeutralEnhancementOptions",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierNeutralTrinketOptions",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierNoFreeTPScrollOnDeath",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierNoVisionOfAttacker",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideAbilitySpecial",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierOverrideAbilitySpecialEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideAbilitySpecialValue",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierOverrideAbilitySpecialEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideAttackDamage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideBaseDamage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideCreepBounty",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideUntargetableFrom",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierOverrideUntargetableTo",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageAttackAnimTime",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageCasttime",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageConvertExpToGold",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageCooldown",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageCooldownOngoing",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageCooldownStacking",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageDeathGoldCost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageExpRateBoost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageGoldRateBoost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageHealthcost",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageHealthcostStacking",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageKillAssistGoldBoost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageManacost",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageManacostStacking",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPercentageRespawnTime",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPersistentInvisibility",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysical_ConstantBlock",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysical_ConstantBlockBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysical_ConstantBlockSpecial",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysical_ConstantBlockUnavoidablePreArmor",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalArmorBase_Percentage",
        "available": "both",
        "abstract": true,
        "description": "Values above 100% are ignored.",
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalArmorBonus",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalArmorBonusPost",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalArmorBonusUnique",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalArmorBonusUniqueActive",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalArmorTotal_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPhysicalDamageOutgoing_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_BonusDamage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_BonusDamage_Proc",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_BonusDamage_Target",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_BonusDamagePostCrit",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_CriticalStrike",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_DeadlyBlow",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreAttack_Target_CriticalStrike",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPrereduceIncomingDamage_Mult",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPreserveNeutralItemPassives",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProcAttack_BonusDamage_Magical",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProcAttack_BonusDamage_Magical_Target",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProcAttack_BonusDamage_Physical",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProcAttack_BonusDamage_Pure",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProcAttack_ConvertPhysicalToMagical",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProcAttack_Feedback",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProjectileName",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "string"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProjectileSpeed",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProjectileSpeedBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProjectileSpeedBonusPercentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProjectileSpeedTarget",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProperty_MagicalLifesteal",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProperty_PhysicalLifesteal",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyConsumableUseSpeed",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyForbidIllusions",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyHealingAmplificationUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyManacostOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyRedirectHealthGain",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyRestorationAmplification",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyRestorationAmplificationUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertySuppressInvalidMoveAttackOrders",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropertyUpgradeNeutralArtifacts",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierPropetyFailAttack",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierProvidesFOWVision",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierRadarCooldownReduction",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierScepter",
        "available": "both",
        "abstract": true,
        "description": "Applies scepter when this property is active",
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierShard",
        "available": "both",
        "abstract": true,
        "description": "Applies shard when this property is active",
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierShareXPRune",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSlowResistance_Stacking",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GEtModifierSlowResistance_Unique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSlowResistanceAppliesToAttacks",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellAmplify_PercentageTarget",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellAmplify_PercentageUnique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellLifestealRegenAmplify_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellLifestealRegenAmplify_Percentage_Unique",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellRedirectTarget",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSpellsRequireHP",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierStackingRespawnTime",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierStatusResistance",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierStatusResistanceCaster",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierStatusResistanceStacking",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierStrongIllusion",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSuperIllusion",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSuperIllusionWithItems",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSuperIllusionWithUltimate",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierSuppressFullscreenDeathFX",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTempestDouble",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTickGold_Multiplier",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTotal_ConstantBlock",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTotal_ConstantBlockStacking",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTotalDamageOutgoing_Percentage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTotalPercentageManaRegen",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTurnRate_Override",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTurnRate_Percentage",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierTurnRateConstant",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierUnitDisllowUpgrading",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierUnitStatsNeedsRefresh",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierXPDuringDeath",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModifierXPFountainCountdownTimeOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetModofierPropertyPseudoRandomBonus",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetOverrideAnimation",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "GameActivity_t"
        ]
      },
      {
        "kind": "function",
        "name": "GetOverrideAnimationRate",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetOverrideAttackMagical",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPhysicalArmorPiercingPercentageTarget",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetPrimaryStatDamageMultiplier",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetRedirectSpell",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetReflectSpell",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetRequiredLevel",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetSkipAttackRegulator",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetSuppressAttackProcs",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetSuppressCleave",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSuppressCrit",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetSuppressIncomingCrit",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetSuppressTeleport",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTierTokenReroll",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetTriggerCosmeticAndEndAttack",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetUnitLifetimeFraction",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetVisionDegreeRestriction",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "GetVisualZDelta",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "GetVisualZSpeedBaseOverride",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "HasBonusNeutralItemPassive",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "MinAttributeLevel",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "MODIFIER_PROPERTY_INCOMING_DAMAGE_CONSTANT_POST",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilityEndChannel",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilityExecuted",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilityFullyCast",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilityStart",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilitySwapped",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAbilityToggled",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAssist",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttack",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackAllied",
        "available": "both",
        "abstract": true,
        "description": "Happens even if attack can't be issued.",
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackCancelled",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttacked",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackFail",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackFinished",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackLanded",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackRecord",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackRecordDestroy",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttackStart",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnAttemptProjectileDodge",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnBreakInvisibility",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnBuildingKilled",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierInstanceEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnCleaveAttackLanded",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDamageCalculated",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDamageHPLoss",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDamagePrevented",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDayStarted",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDeath",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierInstanceEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDeathCompleted",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierInstanceEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnDominated",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnForceProcMagicStick",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnFoWTeamChanged",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnHealReceived",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierHealEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnHealthGained",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierHealEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroBeginDying",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroKilled",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnIllusionCreated",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnKill",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnMagicDamageCalculated",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnManaGained",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnModelChanged",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnModifierAdded",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAddedEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnModifierRefreshed",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAddedEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnModifierRemoved",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAddedEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnMuteDamageAbilities",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnNightStarted",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnOrder",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnOrderReceived",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnProcessCleave",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileDodge",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnProjectileObstructionHit",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnPureDamageCalculated",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnPurged",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnRedirectHealthGain",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnRespawn",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnRuneSpawn",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnScepterUpgradeSelected",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnSetLocation",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnShardUpgradeSelected",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnSpellAppliedSuccessfully",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnSpellTargetReady",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnSpentHealth",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnSpentItemCharge",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnSpentMana",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAbilityEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnStateChanged",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTakeDamage",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierInstanceEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTakeDamageKillCredit",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierAttackEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTakeDamagePostUnavoidableBlock",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTeleported",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTeleporting",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTierTokenRerolled",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnTooltip",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "OnTooltip2",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      },
      {
        "kind": "function",
        "name": "OnTreeCutDown",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "OnUnitMoved",
        "available": "both",
        "abstract": true,
        "args": [
          {
            "name": "event",
            "types": [
              "ModifierUnitEvent"
            ]
          }
        ],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "PreserveParticlesOnModelChanged",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "kind": "function",
        "name": "ReincarnateSuppressFX",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "nil"
        ]
      },
      {
        "kind": "function",
        "name": "ReincarnateTime",
        "available": "both",
        "abstract": true,
        "args": [],
        "returns": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Modifier_Lua_Horizontal_Motion",
    "clientName": "CDOTA_Modifier_Lua_Horizontal_Motion",
    "extend": "CDOTA_Modifier_Lua",
    "members": [
      {
        "kind": "function",
        "name": "ApplyHorizontalMotionController",
        "available": "server",
        "description": "Starts the horizontal motion controller effects for this buff.  Returns true if successful.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPriority",
        "available": "server",
        "description": "Get the priority.",
        "returns": [
          "modifierpriority"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnHorizontalMotionInterrupted",
        "available": "server",
        "description": "Called when the motion gets interrupted.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetPriority",
        "available": "server",
        "description": "Set the priority.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "motionPriority",
            "types": [
              "modifierpriority"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpdateHorizontalMotion",
        "available": "server",
        "description": "Perform any motion from the given interval on the NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "me",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "dt",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Modifier_Lua_Motion_Both",
    "clientName": "CDOTA_Modifier_Lua_Motion_Both",
    "extend": "CDOTA_Modifier_Lua",
    "members": [
      {
        "kind": "function",
        "name": "ApplyHorizontalMotionController",
        "available": "server",
        "description": "Starts the horizontal motion controller effects for this buff.  Returns true if successful.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ApplyVerticalMotionController",
        "available": "server",
        "description": "Starts the vertical motion controller effects for this buff.  Returns true if successful.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPriority",
        "available": "server",
        "description": "Get the priority.",
        "returns": [
          "modifierpriority"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnHorizontalMotionInterrupted",
        "available": "server",
        "description": "Called when the motion gets interrupted.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnVerticalMotionInterrupted",
        "available": "server",
        "description": "Called when the motion gets interrupted.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetPriority",
        "available": "server",
        "description": "Set the priority.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "motionPriority",
            "types": [
              "modifierpriority"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpdateHorizontalMotion",
        "available": "server",
        "description": "Perform any motion from the given interval on the NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "me",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "dt",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpdateVerticalMotion",
        "available": "server",
        "description": "Perform any motion from the given interval on the NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "me",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "dt",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Modifier_Lua_Vertical_Motion",
    "clientName": "CDOTA_Modifier_Lua_Vertical_Motion",
    "extend": "CDOTA_Modifier_Lua",
    "members": [
      {
        "kind": "function",
        "name": "ApplyVerticalMotionController",
        "available": "server",
        "description": "Starts the vertical motion controller effects for this buff.  Returns true if successful.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMotionPriority",
        "available": "server",
        "description": "Get the priority.",
        "returns": [
          "modifierpriority"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnVerticalMotionInterrupted",
        "available": "server",
        "description": "Called when the motion gets interrupted.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetMotionPriority",
        "available": "server",
        "description": "Set the priority.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "motionPriority",
            "types": [
              "modifierpriority"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpdateVerticalMotion",
        "available": "server",
        "description": "Perform any motion from the given interval on the NPC.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "me",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "dt",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_NeutralSpawner",
    "extend": "CPointEntity",
    "members": [
      {
        "kind": "function",
        "name": "CreatePendingUnits",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SelectSpawnType",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpawnNextBatch",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ignoreBlockers",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_PlayerResource",
    "extend": "CBaseEntity",
    "instance": "PlayerResource",
    "members": [
      {
        "kind": "function",
        "name": "AddAegisPickup",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddCandyEvent",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "reason",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddClaimedFarm",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "farmValue",
            "types": [
              "float"
            ]
          },
          {
            "name": "earnedValue",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddGoldSpentOnSupport",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "cost",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddNeutralItemToStash",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "teamNumber",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "item",
            "types": [
              "CDOTA_Item"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddRunePickup",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "runes",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AreUnitsSharedWithPlayerID",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "unitOwnerPlayerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "otherPlayerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CanRepick",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearKillsMatrix",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearLastHitMultikill",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearLastHitStreak",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearPlayer",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearRawPlayerDamageMatrix",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearStreak",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAegisPickups",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAssists",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetBroadcasterChannel",
        "available": "server",
        "returns": [
          "uint"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetBroadcasterChannelSlot",
        "available": "server",
        "returns": [
          "uint"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetClaimedDenies",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetClaimedFarm",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "onlyEarned",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetClaimedMisses",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetConnectionState",
        "available": "server",
        "returns": [
          "DOTAConnectionState_t"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCreepDamageTaken",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "total",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomBuybackCooldown",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomBuybackCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomTeamAssignment",
        "available": "server",
        "description": "Get the current custom team assignment for this player.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDamageDoneToHero",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "victimId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDeaths",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDenies",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEventGameUpgrades",
        "available": "server",
        "description": "(nPlayerID).",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEventPointsForPlayerID",
        "available": "server",
        "returns": [
          "uint"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEventPremiumPoints",
        "available": "server",
        "returns": [
          "uint"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEventRanks",
        "available": "server",
        "returns": [
          "unknown"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGold",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldLostToDeath",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldPerMin",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldSpentOnBuybacks",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldSpentOnConsumables",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldSpentOnItems",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldSpentOnSupport",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHealing",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroDamageTaken",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "total",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetKills",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetKillsDoneToHero",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "victimId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLabyrinthEventGameHeroUnlocks",
        "available": "server",
        "description": "(nPlayerID).",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLastHitMultikill",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLastHits",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLastHitStreak",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLevel",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLiveSpectatorTeam",
        "available": "server",
        "returns": [
          "DOTATeam_t",
          {
            "kind": "literal",
            "value": -1
          }
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMisses",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNearbyCreepDeaths",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNetworkedEventActionClaimCount",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "eventId",
            "types": [
              "int"
            ]
          },
          {
            "name": "unActionId",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNetworkedEventActionClaimCountByName",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "eventId",
            "types": [
              "int"
            ]
          },
          {
            "name": "actionName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNetWorth",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNthCourierForTeam",
        "available": "server",
        "returns": [
          "CDOTA_Unit_Courier",
          "nil"
        ],
        "args": [
          {
            "name": "courierIndex",
            "types": [
              "int"
            ]
          },
          {
            "name": "teamNumber",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNthPlayerIDOnTeam",
        "available": "server",
        "returns": [
          "PlayerID"
        ],
        "args": [
          {
            "name": "teamNumber",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "nthPlayer",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNumConnectedHumanPlayers",
        "available": "server",
        "description": "Players on a valid team (radiant, dire, or custom*) who haven't abandoned the game.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNumConsumablesPurchased",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNumCouriersForTeam",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "teamNumber",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetNumItemsPurchased",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPartyID",
        "available": "server",
        "returns": [
          "Uint64"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlayer",
        "available": "server",
        "description": "Returns player entity for a player with specified id. Player entity represents a single connection, so a different entity might be returned. When player is disconnected nil would be returned.",
        "returns": [
          "CDOTAPlayerController",
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlayerCount",
        "available": "server",
        "description": "Includes spectators and players not assigned to a team.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPlayerCountForTeam",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlayerLoadedCompletely",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPlayerName",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetPreferredCourierForPlayer",
        "available": "server",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetRawPlayerDamage",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetReliableGold",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetRespawnSeconds",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetRoshanKills",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetRunePickups",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSelectedHeroEntity",
        "available": "server",
        "returns": [
          "CDOTA_BaseNPC_Hero",
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSelectedHeroID",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSelectedHeroName",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSteamAccountID",
        "available": "server",
        "returns": [
          "uint"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSteamID",
        "available": "server",
        "description": "Get the 64 bit steam ID for a given player.",
        "returns": [
          "Uint64"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetStreak",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetStuns",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTeam",
        "available": "server",
        "returns": [
          "DOTATeam_t"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTeamKills",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTeamPlayerCount",
        "available": "server",
        "description": "(Deprecated: use GetNumConnectedHumanPlayers) Players on a valid team (radiant, dire, or custom*) who haven't abandoned the game.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTimeOfLastConsumablePurchase",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTimeOfLastDeath",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTimeOfLastItemPurchase",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTotalEarnedGold",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTotalEarnedXP",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTotalGoldSpent",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTowerDamageTaken",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "total",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTowerKills",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetUnitShareMaskForPlayer",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "otherPlayerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetUnreliableGold",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetXPPerMin",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasCustomGameTicketForPlayerID",
        "available": "server",
        "description": "Does this player have a custom game ticket for this game?",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasRandomed",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasSelectedHero",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "HasSetNetworkedEventActionClaimCount",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HaveAllPlayersJoined",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncrementAssists",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "victimId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementClaimedDenies",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementClaimedMisses",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementDeaths",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "killerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementDenies",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementKills",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "victimId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementLastHitMultikill",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "count",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementLastHits",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "count",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementLastHitStreak",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "count",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementMisses",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementNearbyCreepDeaths",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "creeps",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementStreak",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "count",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementTotalEarnedXP",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "xp",
            "types": [
              "int"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyXP_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsBroadcaster",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsDisableHelpSetForPlayerID",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "otherPlayerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsFakeClient",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsHeroSelected",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "heroname",
            "types": [
              "string"
            ]
          },
          {
            "name": "ignoreUnrevealedPick",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsHeroSharedWithPlayerID",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "unitOwnerPlayerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "otherPlayerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsValidPlayer",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsValidPlayerID",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsValidTeamPlayer",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsValidTeamPlayerID",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyGold",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "goldChange",
            "types": [
              "int"
            ]
          },
          {
            "name": "reliable",
            "types": [
              "bool"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyGold_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "NumPlayers",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NumTeamPlayers",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RecordConsumableAbilityChargeChange",
        "available": "server",
        "description": "Increment or decrement consumable charges (nPlayerID, item_definition_index, nChargeIncrementOrDecrement).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "itemDefinitionIndex",
            "types": [
              "int"
            ]
          },
          {
            "name": "chargeIncrementOrDecrement",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RecordEventActionGrant",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "event",
            "types": [
              "int"
            ]
          },
          {
            "name": "unActionId",
            "types": [
              "int"
            ]
          },
          {
            "name": "unAudit",
            "types": [
              "int"
            ]
          },
          {
            "name": "unQuantity",
            "types": [
              "uint"
            ]
          },
          {
            "name": "unAuditData",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RecordEventActionGrantForPrimaryEvent",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "actionName",
            "types": [
              "string"
            ]
          },
          {
            "name": "unAudit",
            "types": [
              "int"
            ]
          },
          {
            "name": "unQuantity",
            "types": [
              "uint"
            ]
          },
          {
            "name": "unAuditData",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ReplaceHeroWith",
        "available": "server",
        "description": "Replaces the player's hero with a new one of the specified class, gold and XP.",
        "returns": [
          "CDOTA_BaseNPC_Hero"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "heroClass",
            "types": [
              "string"
            ]
          },
          {
            "name": "gold",
            "types": [
              "int"
            ]
          },
          {
            "name": "xp",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ReplaceHeroWithNoTransfer",
        "available": "server",
        "description": "Replaces the player's hero with a new one of the specified class, gold and XP, without transferring items/abilities if same hero.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "heroClass",
            "types": [
              "string"
            ]
          },
          {
            "name": "gold",
            "types": [
              "int"
            ]
          },
          {
            "name": "xp",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ResetBuybackCostTime",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ResetTotalEarnedGold",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBuybackCooldownTime",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "buybackCooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBuybackGoldLimitTime",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "buybackCooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCameraTarget",
        "available": "server",
        "description": "Force the given player's camera to follow the given entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "target",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCanRepick",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "canRepick",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomBuybackCooldown",
        "available": "server",
        "description": "Set the buyback cooldown for this player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "cooldownTime",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomBuybackCost",
        "available": "server",
        "description": "Set the buyback cost for this player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "goldCost",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomIntParam",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "param",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomPlayerColor",
        "available": "server",
        "description": "Set custom color for player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "r",
            "types": [
              "int"
            ]
          },
          {
            "name": "g",
            "types": [
              "int"
            ]
          },
          {
            "name": "b",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomTeamAssignment",
        "available": "server",
        "description": "Set custom team assignment for this player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "teamAssignment",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGold",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "gold",
            "types": [
              "int"
            ]
          },
          {
            "name": "reliable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHasRandomed",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLastBuybackTime",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "lastBuybackTime",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOverrideSelectionEntity",
        "available": "server",
        "description": "Set the forced selection entity for a player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "entity",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUnitShareMaskForPlayer",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "otherPlayerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "flag",
            "types": [
              "int"
            ]
          },
          {
            "name": "state",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SpendGold",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "cost",
            "types": [
              "int"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyGold_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpdateTeamSlot",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "teamNumber",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "desiredSlot",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "WhoSelectedHero",
        "available": "server",
        "returns": [
          "PlayerID"
        ],
        "args": [
          {
            "name": "heroFilename",
            "types": [
              "string"
            ]
          },
          {
            "name": "ignoreUnrevealedPick",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_ShopTrigger",
    "extend": "CBaseTrigger",
    "members": [
      {
        "kind": "function",
        "name": "GetShopType",
        "available": "server",
        "description": "Get the DOTA_SHOP_TYPE.",
        "returns": [
          "DOTA_SHOP_TYPE"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetShopType",
        "available": "server",
        "description": "Set the DOTA_SHOP_TYPE.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "shopType",
            "types": [
              "DOTA_SHOP_TYPE"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_SimpleObstruction",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "IsEnabled",
        "available": "server",
        "description": "Returns whether the obstruction is currently active.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetEnabled",
        "available": "server",
        "description": "Enable or disable the obstruction.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          },
          {
            "name": "force",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Unit_Courier",
    "extend": "CDOTA_BaseNPC",
    "members": [
      {
        "kind": "function",
        "name": "RespawnCourier",
        "available": "server",
        "description": "Respawn the courier.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "UpgradeCourier",
        "available": "server",
        "description": "Upgrade the courier ( int param ) times.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Unit_CustomGameAnnouncer",
    "extend": "CDOTA_BaseNPC",
    "members": [
      {
        "kind": "function",
        "name": "SetServerAuthoritative",
        "available": "server",
        "description": "Determines whether response criteria is matched on server or client.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "isServerAuthoritative",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Unit_CustomGameAnnouncerAghanim",
    "extend": "CDOTA_BaseNPC",
    "members": [
      {
        "kind": "function",
        "name": "SetAnimation",
        "available": "server",
        "description": "Set the animation sequence for this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "animation",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetServerAuthoritative",
        "available": "server",
        "description": "Determines whether response criteria is matched on server or client.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "isServerAuthoritative",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Unit_Nian",
    "extend": "CDOTA_BaseNPC_Creature",
    "members": [
      {
        "kind": "function",
        "name": "GetHorn",
        "available": "server",
        "description": "Is the Nian horn?",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTail",
        "available": "server",
        "description": "Is the Nian's tail broken?",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHornAlive",
        "available": "server",
        "description": "Is the Nian's horn broken?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTailAlive",
        "available": "server",
        "description": "Is the Nian's tail broken?",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTA_Unit_Scout",
    "extend": "CDOTA_BaseNPC",
    "members": []
  },
  {
    "kind": "class",
    "name": "CDOTABaseAbility",
    "clientName": "C_DOTABaseAbility",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "CanAbilityBeUpgraded",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CastAbility",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ContinueCasting",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "CreateVisibilityNode",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "radius",
            "types": [
              "float"
            ]
          },
          {
            "name": "duration",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DecrementModifierRefCount",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "EnableAbilityChargesOnTalentUpgrade",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "handle"
            ]
          },
          {
            "name": "talentName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EndChannel",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interrupted",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EndCooldown",
        "available": "server",
        "description": "Clear the cooldown remaining on this ability.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ForceSetFrozenCooldown",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityChargeRestoreTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAbilityDamage",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityDamageType",
        "available": "server",
        "returns": [
          "DAMAGE_TYPES"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityIndex",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityKeyValues",
        "available": "server",
        "description": "Gets the key values definition for this ability.",
        "returns": [
          "table"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityName",
        "available": "both",
        "description": "Returns the name of this ability.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityTargetFlags",
        "available": "server",
        "returns": [
          "DOTA_UNIT_TARGET_FLAGS"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityTargetTeam",
        "available": "server",
        "returns": [
          "DOTA_UNIT_TARGET_TEAM"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityTargetType",
        "available": "server",
        "returns": [
          "DOTA_UNIT_TARGET_TYPE"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAbilityType",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAltCastState",
        "available": "server",
        "description": "Gets the current Alt Cast State.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAnimationIgnoresModelScale",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAOERadius",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssociatedPrimaryAbilities",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssociatedSecondaryAbilities",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAutoCastState",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBackswingTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBehavior",
        "available": "both",
        "returns": [
          "DOTA_ABILITY_BEHAVIOR"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBehaviorInt",
        "available": "both",
        "description": "Get ability behavior flags as an int for compatability.",
        "returns": [
          "DOTA_ABILITY_BEHAVIOR"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCaster",
        "available": "both",
        "description": "Get the owner of this ability.",
        "returns": [
          "CDOTA_BaseNPC"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastPoint",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastPointModifier",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCastRange",
        "available": "server",
        "description": "Gets the cast range of the ability.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector",
              "nil"
            ]
          },
          {
            "name": "target",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelledHealthCostPerSecond",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelledManaCostPerSecond",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetChannelStartTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetChannelTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCloneSource",
        "available": "server",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetConceptRecipientType",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCooldown",
        "available": "server",
        "description": "Get the cooldown duration for this ability at a given level, not the amount of cooldown actually left.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCooldownTime",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCooldownTimeRemaining",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCurrentAbilityCharges",
        "available": "both",
        "description": "The number of charges remaining on this ability.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCursorPosition",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCursorTarget",
        "available": "server",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCursorTargetingNothing",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDuration",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEffectiveCastRange",
        "available": "server",
        "description": "Gets the cast range of the ability, taking modifiers into account.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "target",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEffectiveCooldown",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEffectiveHealthCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetEffectiveManaCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGoldCostForUpgrade",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHealthCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroLevelRequiredToUpgrade",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetInitialAbilityCharges",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetIntrinsicModifierName",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLevel",
        "available": "both",
        "description": "Get the current level of the ability.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLevelSpecialValueFor",
        "available": "both",
        "description": "Gets a value from this ability's special value block for passed level.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLevelSpecialValueNoOverride",
        "available": "both",
        "description": "Gets a value from this ability's special value block for passed level, ignoring MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetManaCost",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMaxAbilityCharges",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMaxLevel",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModifierValue",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetModifierValueBonus",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPlaybackRateOverride",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSharedCooldownName",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSpecialValueFor",
        "available": "both",
        "description": "Gets a value from this ability's special value block for its current level.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetStolenActivityModifier",
        "available": "server",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetToggleState",
        "available": "both",
        "description": "Whether or not this ability is toggled.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUpgradeRecommended",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HeroXPChange",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "xp",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IncrementModifierRefCount",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsActivated",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAttributeBonus",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsChanneling",
        "available": "server",
        "description": "Returns whether the ability is currently channeling.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCooldownReady",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsCosmetic",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CBaseEntity"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsFullyCastable",
        "available": "server",
        "description": "Returns whether the ability can be cast.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHidden",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHiddenAsSecondaryAbility",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHiddenWhenStolen",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInAbilityPhase",
        "available": "server",
        "description": "Returns whether the ability is currently casting.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsItem",
        "available": "both",
        "description": "Whether or not this ability is an item.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsOwnersGoldEnough",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "issuerPlayerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsOwnersGoldEnoughForUpgrade",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsOwnersManaEnough",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPassive",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsRefreshable",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSharedWithTeammates",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStealable",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsStolen",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsToggle",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTrained",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "MarkAbilityButtonDirty",
        "available": "server",
        "description": "Mark the ability button for this ability as needing a refresh.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "NumModifiersUsingAbility",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPhaseInterrupted",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPhaseStart",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnAbilityPinged",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "ctrlHeld",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnChannelFinish",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interrupted",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnChannelThink",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "OnHeroCalculateStatBonus",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnHeroLevelUp",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnOwnerDied",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnOwnerSpawned",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnSpellStart",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnToggle",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "OnUpgrade",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PayGoldCost",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PayGoldCostForUpgrade",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PayHealthCost",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PayManaCost",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PlaysDefaultAnimWhenStolen",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ProcsMagicStick",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RefCountsModifiers",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RefreshCharges",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RefreshIntrinsicModifier",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RefundHealthCost",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RefundManaCost",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RequiresFacing",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ResetToggleOnRespawn",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetAbilityIndex",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetActivated",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activated",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAltCastState",
        "available": "server",
        "description": "Set Alt Cast State to a specific value (true for on, false for off).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "altCastEnabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetChanneling",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "channeling",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCurrentAbilityCharges",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "charges",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFrozenCooldown",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "frozenCooldown",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHidden",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hidden",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInAbilityPhase",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "inAbilityPhase",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLevel",
        "available": "server",
        "description": "Sets the level of this ability.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "level",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOverrideCastPoint",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "castPoint",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRefCountsModifiers",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "refCounts",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStealable",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "stealable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStolen",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "stolen",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUpgradeRecommended",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "upgradeRecommended",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldAltCast",
        "available": "server",
        "description": "This is what the Alt Cast State of the ability was when it was initially cast. Updated during Execute Orders.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ShouldUseResources",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpeakAbilityConcept",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "concept",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SpeakTrigger",
        "available": "server",
        "returns": [
          "unknown"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "StartCooldown",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ToggleAbility",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ToggleAltCast",
        "available": "server",
        "description": "Toggle the Alt Cast State of an Ability.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ToggleAutoCast",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "UpgradeAbility",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "supressSpeech",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UseResources",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mana",
            "types": [
              "bool"
            ]
          },
          {
            "name": "useHealth",
            "types": [
              "bool"
            ]
          },
          {
            "name": "gold",
            "types": [
              "bool"
            ]
          },
          {
            "name": "cooldown",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTABaseGameMode",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "AddAbilityUpgradeToWhitelist",
        "available": "server",
        "description": "Const char* pszAbilityName.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddItemToCustomShop",
        "available": "server",
        "description": "Add an item to purchase at a custom shop.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "shopName",
            "types": [
              "string"
            ]
          },
          {
            "name": "category",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddRealTimeCombatAnalyzerQuery",
        "available": "server",
        "description": "Begin tracking a sequence of events using the real time combat analyzer.",
        "returns": [
          "CombatAnalyzerQueryID"
        ],
        "args": [
          {
            "name": "queryTable",
            "types": [
              "handle"
            ]
          },
          {
            "name": "player",
            "types": [
              "CDOTAPlayerController"
            ]
          },
          {
            "name": "queryName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AllocateFowBlockerRegion",
        "available": "server",
        "description": "Allocates an entity which can be used by custom games to control FoW occlusion volumes.",
        "returns": [
          "CFoWBlockerRegion"
        ],
        "args": [
          {
            "name": "minX",
            "types": [
              "float"
            ]
          },
          {
            "name": "minY",
            "types": [
              "float"
            ]
          },
          {
            "name": "maxX",
            "types": [
              "float"
            ]
          },
          {
            "name": "maxY",
            "types": [
              "float"
            ]
          },
          {
            "name": "gridSize",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AreWeatherEffectsDisabled",
        "available": "server",
        "description": "Get if weather effects are disabled on the client.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearBountyRunePickupFilter",
        "available": "server",
        "description": "Clear the script filter that controls bounty rune pickup behavior.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearDamageFilter",
        "available": "server",
        "description": "Clear the script filter that controls how a unit takes damage.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearExecuteOrderFilter",
        "available": "server",
        "description": "Clear the script filter that controls when a unit picks up an item.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearHealingFilter",
        "available": "server",
        "description": "Clear the script filter that controls how a unit heals.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearItemAddedToInventoryFilter",
        "available": "server",
        "description": "Clear the script filter that controls the item added to inventory filter.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearModifierGainedFilter",
        "available": "server",
        "description": "Clear the script filter that controls the modifier filter.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearModifyExperienceFilter",
        "available": "server",
        "description": "Clear the script filter that controls how hero experience is modified.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearModifyGoldFilter",
        "available": "server",
        "description": "Clear the script filter that controls how hero gold is modified.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearRuneSpawnFilter",
        "available": "server",
        "description": "Clear the script filter that controls what rune spawns.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearTrackingProjectileFilter",
        "available": "server",
        "description": "Clear the script filter that controls when tracking projectiles are launched.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DisableClumpingBehaviorByDefault",
        "available": "server",
        "description": "Disable npc_dota_creature clumping behavior by default.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DisableHudFlip",
        "available": "server",
        "description": "Use to disable hud flip for this mod.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EnableAbilityUpgradeWhitelist",
        "available": "server",
        "description": "Bool bEnabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAlwaysShowPlayerInventory",
        "available": "server",
        "description": "Show the player hero's inventory in the HUD, regardless of what unit is selected.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAlwaysShowPlayerNames",
        "available": "server",
        "description": "Get whether player names are always shown, regardless of client setting.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAnnouncerDisabled",
        "available": "server",
        "description": "Are in-game announcers disabled?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAnnouncerGameModeAnnounceDisabled",
        "available": "server",
        "description": "Is the announcer announcing the mode / saying Choose Your Hero on start of custom games disabled?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCameraDistanceOverride",
        "available": "server",
        "description": "Set a different camera distance; dota default is 1134.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomAttributeDerivedStatValue",
        "available": "server",
        "description": "Get current derived stat value constant.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "derivedStatType",
            "types": [
              "AttributeDerivedStats"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCustomBackpackCooldownPercent",
        "available": "server",
        "description": "Get the current rate cooldown ticks down for items in the backpack.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomBackpackSwapCooldown",
        "available": "server",
        "description": "Get the current custom backpack swap cooldown.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomBuybackCooldownEnabled",
        "available": "server",
        "description": "Turns on capability to define custom buyback cooldowns.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomBuybackCostEnabled",
        "available": "server",
        "description": "Turns on capability to define custom buyback costs.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomDireScore",
        "available": "server",
        "description": "Get the topbar score display value for dire.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomGlyphCooldown",
        "available": "server",
        "description": "Get the current custom glyph cooldown.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomHeroMaxLevel",
        "available": "server",
        "description": "Allows definition of the max level heroes can achieve (default is 25).",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomRadiantScore",
        "available": "server",
        "description": "Get the topbar score display value for radiant.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomScanCooldown",
        "available": "server",
        "description": "Get the current custom scan cooldown.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDaynightCycleAdvanceRate",
        "available": "server",
        "description": "Get the rate at which the day/night cycle advances (1.0 = default).",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEventGameSeed",
        "available": "server",
        "description": "Get the Game Seed passed from the GC.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEventWindowStartTime",
        "available": "server",
        "description": "Get the Event Window Start Time passed from the GC.",
        "returns": [
          "uint"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetFixedRespawnTime",
        "available": "server",
        "description": "Gets the fixed respawn time.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetFogOfWarDisabled",
        "available": "server",
        "description": "Turn the fog of war on or off.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetGoldSoundDisabled",
        "available": "server",
        "description": "Turn the sound when gold is acquired off/on.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHUDVisible",
        "available": "server",
        "description": "Returns the HUD element visibility.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "element",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMaximumAttackSpeed",
        "available": "server",
        "description": "Get the maximum attack speed for units.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetMinimumAttackSpeed",
        "available": "server",
        "description": "Get the minimum attack speed for units.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRecommendedItemsDisabled",
        "available": "server",
        "description": "Turn the panel for showing recommended items at the shop off/on.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetRespawnTimeScale",
        "available": "server",
        "description": "Returns the scale applied to non-fixed respawn times.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStashPurchasingDisabled",
        "available": "server",
        "description": "Turn purchasing items to the stash off/on. If purchasing to the stash is off the player must be at a shop to purchase items.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetStickyItemDisabled",
        "available": "server",
        "description": "Hide the sticky item in the quickbuy.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTopBarTeamValuesOverride",
        "available": "server",
        "description": "Override the values of the team values on the top game bar.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTopBarTeamValuesVisible",
        "available": "server",
        "description": "Turning on/off the team values on the top game bar.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTowerBackdoorProtectionEnabled",
        "available": "server",
        "description": "Gets whether tower backdoor protection is enabled or not.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetUseCustomHeroLevels",
        "available": "server",
        "description": "Are custom-defined XP values for hero level ups in use?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetWaterRuneLastSpawnTime",
        "available": "server",
        "description": "Gets the time from game start during which water runes spawn.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsAbilityUpgradeWhitelisted",
        "available": "server",
        "description": "Const char* pszAbilityName.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsBuybackEnabled",
        "available": "server",
        "description": "Enables or disables buyback completely.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDaynightCycleDisabled",
        "available": "server",
        "description": "Is the day/night cycle disabled?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ListenForQueryFailed",
        "available": "server",
        "description": "Set function and context for real time combat analyzer query failed.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "function",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "result",
                    "types": [
                      "CombatAnalyzerQueryResult"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ListenForQueryProgressChanged",
        "available": "server",
        "description": "Set function and context for real time combat analyzer query progress changed.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "function",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "result",
                    "types": [
                      "CombatAnalyzerQueryResult"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ListenForQuerySucceeded",
        "available": "server",
        "description": "Set function and context for real time combat analyzer query succeeded.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "function",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "result",
                    "types": [
                      "CombatAnalyzerQueryResult"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveAbilityUpgradeFromWhitelist",
        "available": "server",
        "description": "Const char* pszAbilityName.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveItemFromCustomShop",
        "available": "server",
        "description": "Remove an item to purchase at a custom shop.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "shopName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveRealTimeCombatAnalyzerQuery",
        "available": "server",
        "description": "Stop tracking a combat analyzer query.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "queryId",
            "types": [
              "CombatAnalyzerQueryID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAbilityTuningValueFilter",
        "available": "server",
        "description": "Set a filter function to control the tuning values that abilities use. (Modify the table and Return true to use new values, return false to use the old values).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "AbilityTuningValueFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAllowNeutralItemDrops",
        "available": "server",
        "description": "If set to true, neutral items will be dropped on killing neutral monsters.  Otherwise nothing will be dropped.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAlwaysShowPlayerInventory",
        "available": "server",
        "description": "Show the player hero's inventory in the HUD, regardless of what unit is selected.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "alwaysShow",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAlwaysShowPlayerNames",
        "available": "server",
        "description": "Set whether player names are always shown, regardless of client setting.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAnnouncerDisabled",
        "available": "server",
        "description": "Mutes the in-game announcer.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAnnouncerGameModeAnnounceDisabled",
        "available": "server",
        "description": "Disables the announcer announcing the mode / saying Choose Your Hero on start of custom games.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBotsAlwaysPushWithHuman",
        "available": "server",
        "description": "Set if the bots should try their best to push with a human player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "alwaysPush",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBotsInLateGame",
        "available": "server",
        "description": "Set if bots should enable their late game behavior.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "lateGame",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBotsMaxPushTier",
        "available": "server",
        "description": "Set the max tier of tower that bots want to push. (-1 to disable).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "maxTier",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBotThinkingEnabled",
        "available": "server",
        "description": "Enables/Disables bots in custom games. Note: this will only work with default heroes in the dota map.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBountyRunePickupFilter",
        "available": "server",
        "description": "Set a filter function to control the behavior when a bounty rune is picked up. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "BountyRunePickupFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBountyRuneSpawnInterval",
        "available": "server",
        "description": "Set bounty rune spawn rate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBuybackEnabled",
        "available": "server",
        "description": "Enables or disables buyback completely.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCameraDistanceOverride",
        "available": "server",
        "description": "Set a different camera distance; dota default is 1134.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cameraDistanceOverride",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCameraSmoothCountOverride",
        "available": "server",
        "description": "Set a different camera smooth count; dota default is 8.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "smoothCount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCameraZRange",
        "available": "server",
        "description": "Sets the camera Z range.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "minZ",
            "types": [
              "float"
            ]
          },
          {
            "name": "maxZ",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCanSellAnywhere",
        "available": "server",
        "description": "Bool bAllow.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "allow",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomAttributeDerivedStatValue",
        "available": "server",
        "description": "Modify derived stat value constants.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "statType",
            "types": [
              "AttributeDerivedStats"
            ]
          },
          {
            "name": "newValue",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomBackpackCooldownPercent",
        "available": "server",
        "description": "Set the rate cooldown ticks down for items in the backpack.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "percent",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomBackpackSwapCooldown",
        "available": "server",
        "description": "Set a custom cooldown for swapping items into the backpack.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomBuybackCooldownEnabled",
        "available": "server",
        "description": "Turns on capability to define custom buyback cooldowns.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomBuybackCostEnabled",
        "available": "server",
        "description": "Turns on capability to define custom buyback costs.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomDireScore",
        "available": "server",
        "description": "Sets the topbar score display value for dire.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "score",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameForceHero",
        "available": "server",
        "description": "Force all players to use the specified hero and disable the normal hero selection process. Must be used before hero selection.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGlyphCooldown",
        "available": "server",
        "description": "Set a custom cooldown for team Glyph ability.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomHeroMaxLevel",
        "available": "server",
        "description": "Allows definition of the max level heroes can achieve (default is 25).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "maxLevel",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomRadiantScore",
        "available": "server",
        "description": "Sets the topbar score display value for radiant.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "score",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomScanCooldown",
        "available": "server",
        "description": "Set a custom cooldown for team Scan ability.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomScanMaxCharges",
        "available": "server",
        "description": "Set a custom max charges for team Scan ability.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "maxCharges",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomTerrainWeatherEffect",
        "available": "server",
        "description": "Set the effect used as a custom weather effect, when units are on non-default terrain, in this mode.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "effectName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomXPRequiredToReachNextLevel",
        "available": "server",
        "description": "Allows definition of a table of hero XP values.\nRequires `SetUseCustomHeroLevels` to be enabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "table",
            "types": [
              {
                "kind": "table",
                "key": [
                  "int"
                ],
                "value": [
                  "int"
                ]
              }
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamageFilter",
        "available": "server",
        "description": "Set a filter function to control the behavior when a unit takes damage. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "DamageFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDaynightCycleAdvanceRate",
        "available": "server",
        "description": "Sets the rate at which the day/night cycle advances (1.0 = default).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "rate",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDaynightCycleDisabled",
        "available": "server",
        "description": "Enable or disable the day/night cycle.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDeathOverlayDisabled",
        "available": "server",
        "description": "Specify whether the full screen death overlay effect plays when the selected hero dies.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDeathTipsDisabled",
        "available": "server",
        "description": "Disables chat tips on death.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDefaultStickyItem",
        "available": "server",
        "description": "Sets the default sticky item in the quickbuy.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "item",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDraftingBanningTimeOverride",
        "available": "server",
        "description": "Set drafting hero banning time.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDraftingHeroPickSelectTimeOverride",
        "available": "server",
        "description": "Set drafting hero pick time.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetExecuteOrderFilter",
        "available": "server",
        "description": "Set a filter function to control the behavior when a unit picks up an item. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "ExecuteOrderFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFixedRespawnTime",
        "available": "server",
        "description": "Set a fixed delay for all players to respawn after.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "fixedRespawnTime",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFogOfWarDisabled",
        "available": "server",
        "description": "Turn the fog of war on or off.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetForcedHeroCapOnReset",
        "available": "server",
        "description": "Caps the number of players spawned when the game is reset. Used in tutorials where players are spawned in the script.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "cap",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetForcedHUDSkin",
        "available": "server",
        "description": "Specify a HUD skin that is forced on for this game mode.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetForceRightClickAttackDisabled",
        "available": "server",
        "description": "Prevent users from using the right click deny setting.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFountainConstantManaRegen",
        "available": "server",
        "description": "Set the constant rate that the fountain will regen mana. (-1 for default).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "constantManaRegen",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFountainPercentageHealthRegen",
        "available": "server",
        "description": "Set the percentage rate that the fountain will regen health. (-1 for default).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "percentageHealthRegen",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFountainPercentageManaRegen",
        "available": "server",
        "description": "Set the percentage rate that the fountain will regen mana. (-1 for default).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "percentageManaRegen",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFreeCourierModeEnabled",
        "available": "server",
        "description": "If set to true, enable 7.23 free courier mode.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFriendlyBuildingMoveToEnabled",
        "available": "server",
        "description": "Allows clicks on friendly buildings to be handled normally.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGiveFreeTPOnDeath",
        "available": "server",
        "description": "Bool bGive.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "give",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGoldSoundDisabled",
        "available": "server",
        "description": "Turn the sound when gold is acquired off/on.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHealingFilter",
        "available": "server",
        "description": "Set a filter function to control the behavior when a unit heals. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "HealingFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHudCombatEventsDisabled",
        "available": "server",
        "description": "Specify whether the default combat events will show in the HUD.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHUDVisible",
        "available": "server",
        "description": "Set the HUD element visibility.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hudElement",
            "types": [
              "DOTAHUDVisibility_t"
            ]
          },
          {
            "name": "visible",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInnateMeleeDamageBlockAmount",
        "available": "server",
        "description": "Set the amount blocked innately by melee heroes.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "amount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInnateMeleeDamageBlockPercent",
        "available": "server",
        "description": "Set the percent chance a melee hero will innately block damage.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "percent",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInnateMeleeDamageBlockPerLevelAmount",
        "available": "server",
        "description": "Set the amount innately blocked by melee heroes gained per level.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "perLevelAmount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetItemAddedToInventoryFilter",
        "available": "server",
        "description": "Set a filter function to control what happens to items that are added to an inventory, return false to cancel the event.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "ItemAddedToInventoryFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetKillableTombstones",
        "available": "server",
        "description": "Set whether tombstones can be channeled to be removed by enemy heroes.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetKillingSpreeAnnouncerDisabled",
        "available": "server",
        "description": "Mutes the in-game killing spree announcer.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLoseGoldOnDeath",
        "available": "server",
        "description": "Use to disable gold loss on death.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetLuaGameMode",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "script",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMaximumAttackSpeed",
        "available": "server",
        "description": "Set the maximum attack speed for units.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "maxSpeed",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMinimumAttackSpeed",
        "available": "server",
        "description": "Set the minimum attack speed for units.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "minSpeed",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetModifierGainedFilter",
        "available": "server",
        "description": "Set a filter function to control modifiers that are gained, return false to destroy modifier.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "ModifierGainedFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetModifyExperienceFilter",
        "available": "server",
        "description": "Set a filter function to control the behavior when a hero's experience is modified. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "ModifyExperienceFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetModifyGoldFilter",
        "available": "server",
        "description": "Set a filter function to control the behavior when a hero's gold is modified. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "ModifyGoldFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNeutralItemHideUndiscoveredEnabled",
        "available": "server",
        "description": "When enabled, undiscovered items in the neutral item stash are hidden.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNeutralStashEnabled",
        "available": "server",
        "description": "Allow items to be sent to the neutral stash.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNeutralStashTeamViewOnlyEnabled",
        "available": "server",
        "description": "When enabled, the all neutral items tab cannot be viewed.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOverrideSelectionEntity",
        "available": "server",
        "description": "Set an override for the default selection entity, instead of each player's hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "overrideEntity",
            "types": [
              "CDOTA_BaseNPC",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPauseEnabled",
        "available": "server",
        "description": "Set pausing enabled/disabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPlayerHeroAvailabilityFiltered",
        "available": "server",
        "description": "Bool bFilter.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filter",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPowerRuneSpawnInterval",
        "available": "server",
        "description": "Set power rune spawn rate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRandomHeroBonusItemGrantDisabled",
        "available": "server",
        "description": "Disables bonus items for randoming a hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRecommendedItemsDisabled",
        "available": "server",
        "description": "Turn the panel for showing recommended items at the shop off/on.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRemoveIllusionsOnDeath",
        "available": "server",
        "description": "Make it so illusions are immediately removed upon death, rather than sticking around for a few seconds.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "remove",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRespawnTimeScale",
        "available": "server",
        "description": "Sets the scale applied to non-fixed respawn times. 1 = default DOTA respawn calculations.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRuneEnabled",
        "available": "server",
        "description": "Set if a given type of rune is enabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "rune",
            "types": [
              "DOTA_RUNES"
            ]
          },
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRuneSpawnFilter",
        "available": "server",
        "description": "Set a filter function to control what rune spawns. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "RuneSpawnFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSelectionGoldPenaltyEnabled",
        "available": "server",
        "description": "Enable/disable gold penalty for late picking.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSendToStashEnabled",
        "available": "server",
        "description": "Allow items to be sent to the stash.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStashPurchasingDisabled",
        "available": "server",
        "description": "Turn purchasing items to the stash off/on. If purchasing to the stash is off the player must be at a shop to purchase items.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStickyItemDisabled",
        "available": "server",
        "description": "Hide the sticky item in the quickbuy.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTopBarTeamValue",
        "available": "server",
        "description": "Set the team values on the top game bar.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTopBarTeamValuesOverride",
        "available": "server",
        "description": "Override the values of the team values on the top game bar.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "override",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTopBarTeamValuesVisible",
        "available": "server",
        "description": "Turning on/off the team values on the top game bar.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "visible",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTowerBackdoorProtectionEnabled",
        "available": "server",
        "description": "Enables/Disables tower backdoor protection.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTPScrollSlotItemOverride",
        "available": "server",
        "description": "Sets the item which goes in the TP scroll slot.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTrackingProjectileFilter",
        "available": "server",
        "description": "Set a filter function to control when tracking projectiles are launched. (Modify the table and Return true to use new values, return false to cancel the event).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "filterFunc",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "bool"
                ],
                "args": [
                  {
                    "name": "event",
                    "types": [
                      "TrackingProjectileFilterEvent"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "context",
            "types": [
              "table"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUnseenFogOfWarEnabled",
        "available": "server",
        "description": "Enable or disable unseen fog of war. When enabled parts of the map the player has never seen will be completely hidden by fog of war.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUseCustomHeroLevels",
        "available": "server",
        "description": "Turn on custom-defined XP values for hero level ups.  The table should be defined before switching this on.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUseDefaultDOTARuneSpawnLogic",
        "available": "server",
        "description": "If set to true, use current rune spawn rules.  Either setting respects custom spawn intervals.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUseTurboCouriers",
        "available": "server",
        "description": "Enables or disables turbo couriers.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetWaterRuneLastSpawnTime",
        "available": "server",
        "description": "Sets the time from game start during which water runes spawn.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetWeatherEffectsDisabled",
        "available": "server",
        "description": "Set if weather effects are disabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "disable",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetXPRuneSpawnInterval",
        "available": "server",
        "description": "Set xp rune spawn rate.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "interval",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldGiveFreeTPOnDeath",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTAGameManager",
    "clientName": "CDOTAGameManager",
    "instance": "DOTAGameManager",
    "members": [
      {
        "kind": "function",
        "name": "GetHeroDataByName_Script",
        "available": "both",
        "description": "Get the hero unit.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroIDByName",
        "available": "both",
        "description": "Get the hero ID given the hero name.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroLocTokenByID",
        "available": "both",
        "description": "Get the localization token for the given hero ID.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroNameByID",
        "available": "both",
        "description": "Get the hero name given a hero ID.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "heroId",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroNameForUnitName",
        "available": "both",
        "description": "Get the hero name given a unit name.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "unitName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroUnitNameByID",
        "available": "both",
        "description": "Get the hero unit name given the hero ID.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "heroId",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTAGameRules",
    "clientName": "CDOTAGameRules",
    "instance": "GameRules",
    "members": [
      {
        "kind": "function",
        "name": "AddBotPlayerWithEntityScript",
        "available": "server",
        "description": "Spawn a bot player of the passed hero name, player name, and team.",
        "returns": [
          "CDOTA_BaseNPC_Hero",
          "nil"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          },
          {
            "name": "playerName",
            "types": [
              "string"
            ]
          },
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "entityScript",
            "description": "Path to a script file executed in the context of spawned hero entity.",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddEventMetadataLeaderboardEntry",
        "available": "server",
        "description": "Event-only.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "nameSuffix",
            "types": [
              "string"
            ]
          },
          {
            "name": "stars",
            "types": [
              "uint"
            ]
          },
          {
            "name": "maxStars",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData1",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData2",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData3",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData4",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData5",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData6",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddEventMetadataLeaderboardEntryRawScore",
        "available": "server",
        "description": "Event-only.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "nameSuffix",
            "types": [
              "string"
            ]
          },
          {
            "name": "score",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData1",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData2",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData3",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData4",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData5",
            "types": [
              "uint"
            ]
          },
          {
            "name": "extraData6",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddHeroIDToBlacklist",
        "available": "server",
        "description": "Add the hero ID to the hero blacklist if it is not already present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddHeroIDToWhitelist",
        "available": "server",
        "description": "Add the hero ID to the hero whitelist if it is not already present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddHeroToBlacklist",
        "available": "server",
        "description": "Add the hero to the hero blacklist if it is not already present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddHeroToPlayerAvailability",
        "available": "server",
        "description": "Adds hero of given ID to available heroes of player of given ID.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddHeroToWhitelist",
        "available": "server",
        "description": "Add the hero to the hero whitelist if it is not already present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddItemToWhiteList",
        "available": "server",
        "description": "Add an item to the whitelist.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddMinimapDebugPoint",
        "available": "server",
        "description": "Add a point on the minimap.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddMinimapDebugPointForTeam",
        "available": "server",
        "description": "Add a point on the minimap for a specific team.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg6",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg7",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg8",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "BeginNightstalkerNight",
        "available": "server",
        "description": "Begin night stalker night.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "duration",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "BeginTemporaryNight",
        "available": "server",
        "description": "Begin temporary night.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "duration",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "BotPopulate",
        "available": "server",
        "description": "Fills all the teams with bots if cheat mode is enabled.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearHeroBlacklist",
        "available": "server",
        "description": "Clears the hero blacklist.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearHeroWhitelist",
        "available": "server",
        "description": "Clears the hero whitelist.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ClearPlayerHeroAvailability",
        "available": "server",
        "description": "Clears available heroes of player of given ID.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ClearRiverPaint",
        "available": "server",
        "description": "Clears the current river paint.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Defeated",
        "available": "server",
        "description": "Kills the ancient, etc.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DidMatchSignoutTimeOut",
        "available": "server",
        "description": "True when we have waited some time after end of the game and not received signout.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "EnableCustomGameSetupAutoLaunch",
        "available": "server",
        "description": "Enabled (true) or disable (false) auto launch for custom game setup.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ExecuteTeamPing",
        "available": "server",
        "description": "Sends a minimap ping to all players on the team.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "xCoord",
            "types": [
              "float"
            ]
          },
          {
            "name": "yCoord",
            "types": [
              "float"
            ]
          },
          {
            "name": "entity",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "type",
            "types": [
              {
                "kind": "literal",
                "value": 0
              },
              {
                "kind": "literal",
                "value": 1
              },
              {
                "kind": "literal",
                "value": 2
              },
              {
                "kind": "literal",
                "value": 3
              },
              {
                "kind": "literal",
                "value": 4
              },
              {
                "kind": "literal",
                "value": 5
              },
              {
                "kind": "literal",
                "value": 6
              }
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FinishCustomGameSetup",
        "available": "server",
        "description": "Indicate that the custom game setup phase is complete, and advance to the game.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ForceCreepSpawn",
        "available": "server",
        "description": "Spawn the next wave of creeps.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ForceGameStart",
        "available": "server",
        "description": "Transition game state to DOTA_GAMERULES_STATE_GAME_IN_PROGRESS.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAnnouncer",
        "available": "server",
        "description": "Get the announcer for a team.",
        "returns": [
          "CDOTA_BaseNPC",
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetBannedHeroes",
        "available": "both",
        "description": "Returns the hero unit names banned in this game, if any.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "string"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetBannedHeroIDs",
        "available": "both",
        "description": "Returns the hero unit IDs banned in this game, if any.",
        "returns": [
          "table"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomGameDifficulty",
        "available": "both",
        "description": "Returns the difficulty level of the custom game mode.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetCustomGameTeamMaxPlayers",
        "available": "server",
        "description": "Get whether a team is selectable during game setup.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDifficulty",
        "available": "both",
        "description": "Returns difficulty level of the custom game mode.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDOTATime",
        "available": "both",
        "description": "Returns the actual DOTA in-game clock time.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "includePreGame",
            "types": [
              "bool"
            ]
          },
          {
            "name": "includeNegativeTime",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetDroppedItem",
        "available": "server",
        "description": "Gets the Xth dropped item.",
        "returns": [
          "CDOTA_Item_Physical",
          "nil"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGameFrameTime",
        "available": "both",
        "description": "Returns the number of seconds elapsed since the last frame was renderered. This time doesn't count up when the game is paused.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetGameModeEntity",
        "available": "server",
        "description": "Get the game mode entity.",
        "returns": [
          "CDOTABaseGameMode"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetGameSessionConfigValue",
        "available": "server",
        "description": "Get a string value from the game session config (map options).",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetGameTime",
        "available": "both",
        "description": "Returns the number of seconds elapsed since map start. This time doesn't count up when the game is paused.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetIetmStockDuration",
        "available": "both",
        "description": "Get the time it takes to add a new item to stock.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetItemStockCount",
        "available": "both",
        "description": "Get the stock count of the item.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "playerId",
            "description": "Used only for items with \"PlayerSpecificCooldown\"",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetItemStockTime",
        "available": "both",
        "description": "Get the time an item will be added to stock.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "playerId",
            "description": "Used only for items with \"PlayerSpecificCooldown\"",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetMatchSignoutComplete",
        "available": "server",
        "description": "Have we received the post match signout message that includes reward information.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNeutralInitialSpawnOffset",
        "available": "both",
        "description": "Gets the extra offset to initial neutral creep spawn delay.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNextBountyRuneSpawnTime",
        "available": "server",
        "description": "Gets next bounty rune spawn time.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNextRuneSpawnTime",
        "available": "server",
        "description": "Gets next rune spawn time.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetNianTotalDamageTaken",
        "available": "server",
        "description": "For New Bloom, get total damage taken by the Nian / Year Beast.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPlayerCustomGameAccountRecord",
        "available": "server",
        "deprecated": "Unreleased.",
        "description": "Gets the player's custom game account record, as it looked at the start of this session.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetStateTransitionTime",
        "available": "server",
        "description": "Get time remaining between state changes.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTimeOfDay",
        "available": "server",
        "description": "Get the time of day.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetWeatherWindDirection",
        "available": "both",
        "description": "Get Weather Wind Direction Vector.",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IncreaseItemStock",
        "available": "server",
        "description": "Increase an item's stock count, clamped to item max.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "count",
            "description": "Negative values decrease stock count.",
            "types": [
              "int"
            ]
          },
          {
            "name": "playerId",
            "description": "Values other than -1 work only for items with \"PlayerSpecificCooldown\" property.",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsCheatMode",
        "available": "both",
        "description": "Are cheats enabled on the server.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDaytime",
        "available": "server",
        "description": "Is it day time?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsDev",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsGamePaused",
        "available": "server",
        "description": "Returns whether the game is paused.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsHeroEnabledViaLists",
        "available": "both",
        "description": "Is the hero not blacklisted, and is it either whitelisted or the whitelist is empty?",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsHeroRespawnEnabled",
        "available": "server",
        "description": "Returns whether hero respawn is enabled.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsInBanPhase",
        "available": "server",
        "description": "Are we in the ban phase of hero pick?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsItemInWhiteList",
        "available": "server",
        "description": "Query an item in the whitelist.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsNightstalkerNight",
        "available": "server",
        "description": "Is it night stalker night-time?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSuggestAbilitiesEnabled",
        "available": "server",
        "description": "Returns whether Dota Plus ability suggestions are enabled or disabled.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsSuggestItemsEnabled",
        "available": "server",
        "description": "Returns whether Dota Plus item suggestions are enabled or disabled.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsTemporaryNight",
        "available": "server",
        "description": "Is it temporarily night-time?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "LockCustomGameSetupTeamAssignment",
        "available": "server",
        "description": "Lock (true) or unlock (false) team assignemnt. If team assignment is locked players cannot change teams.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "locked",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MakeTeamLose",
        "available": "server",
        "description": "Makes the specified team lose.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ModifyGoldFiltered",
        "available": "server",
        "description": "Like ModifyGold, but will use the gold filter if SetFilterMoreGold has been set true.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          },
          {
            "name": "goldChange",
            "types": [
              "int"
            ]
          },
          {
            "name": "reliable",
            "types": [
              "bool"
            ]
          },
          {
            "name": "reason",
            "types": [
              "EDOTA_ModifyGold_Reason"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "NumDroppedItems",
        "available": "server",
        "description": "Returns the number of items currently dropped on the ground.",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PlayerHasCustomGameHostPrivileges",
        "available": "server",
        "description": "Whether a player has custom game host privileges (shuffle teams, etc.).",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "player",
            "types": [
              "CDOTAPlayerController"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Playtesting_UpdateAddOnKeyValues",
        "available": "server",
        "description": "Updates custom hero, unit and ability KeyValues in memory with the latest values from disk.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "PrepareSpawners",
        "available": "server",
        "description": "Prepare Dota lane style spawners with a given interval.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveFakeClient",
        "available": "server",
        "description": "Removes a fake client.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "playerId",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveHeroFromBlacklist",
        "available": "server",
        "description": "Remove the hero from the hero blacklist if present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveHeroFromWhitelist",
        "available": "server",
        "description": "Remove the hero from the hero whitelist if present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveHeroIDFromBlacklist",
        "available": "server",
        "description": "Remove the hero ID from the hero blacklist if present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveHeroIDFromWhitelist",
        "available": "server",
        "description": "Remove the hero ID from the hero whitelist if present.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveItemFromWhiteList",
        "available": "server",
        "description": "Remove an item from the whitelist.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ResetDefeated",
        "available": "server",
        "description": "Restart after killing the ancient, etc.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ResetGameTime",
        "available": "server",
        "description": "Restart gametime from 0.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ResetPlayer",
        "available": "server",
        "description": "Resets the player of a given ID.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ResetToCustomGameSetup",
        "available": "server",
        "description": "Restart at custom game setup.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ResetToHeroSelection",
        "available": "server",
        "description": "Restart the game at hero selection.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Script_GetMatchID",
        "available": "server",
        "description": "Get the MatchID for this game.",
        "returns": [
          "Uint64"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SendCustomMessage",
        "available": "server",
        "description": "Sends a message on behalf of a player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SendCustomMessageToTeam",
        "available": "server",
        "description": "Sends a message on behalf of a player to the specified team.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAllowOutpostBonuses",
        "available": "server",
        "description": "Allow Outposts granting XP.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCreepMinimapIconScale",
        "available": "server",
        "description": "Scale the creep icons on the minimap.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scale",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCreepSpawningEnabled",
        "available": "server",
        "description": "Sets whether the regular Dota creeps spawn.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameAccountRecordSaveFunction",
        "available": "server",
        "deprecated": "Unreleased.",
        "description": "Sets a callback to handle saving custom game account records (callback is passed a Player ID and should return a flat simple table).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameAllowBattleMusic",
        "available": "server",
        "description": "Sets a flag to enable/disable the default music handling code for custom games.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "allow",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameAllowHeroPickMusic",
        "available": "server",
        "description": "Sets a flag to enable/disable the default music handling code for custom games.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "allow",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameAllowMusicAtGameStart",
        "available": "server",
        "description": "Sets a flag to enable/disable the default music handling code for custom games.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "allow",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameAllowSecondaryAbilitiesOnOtherUnits",
        "available": "server",
        "description": "Sets a flag to enable/disable the casting secondary abilities from units other than the player's own hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameBansPerTeam",
        "available": "server",
        "description": "Set number of hero bans each team gets.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameDifficulty",
        "available": "server",
        "description": "Set the difficulty level of the custom game mode.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "difficulty",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameEndDelay",
        "available": "server",
        "description": "Sets the game end delay.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "delay",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameSetupAutoLaunchDelay",
        "available": "server",
        "description": "Set the amount of time to wait for auto launch.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "delay",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameSetupRemainingTime",
        "available": "server",
        "description": "Set the amount of remaining time, in seconds, for custom game setup. 0 = finish immediately, -1 = wait forever.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "remainingTime",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameSetupTimeout",
        "available": "server",
        "description": "Setup (pre-gameplay) phase timeout. 0 = instant, -1 = forever (until FinishCustomGameSetup is called).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "timeout",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomGameTeamMaxPlayers",
        "available": "server",
        "description": "Set whether a team is selectable during game setup.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "maxPlayers",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomVictoryMessage",
        "available": "server",
        "description": "Sets the victory message.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "message",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetCustomVictoryMessageDuration",
        "available": "server",
        "description": "Sets the victory message duration.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "duration",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetEnableAlternateHeroGrids",
        "available": "server",
        "description": "Allow alternate hero grids to be used (DOTA+, etc).  True by default.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetEventMetadataCustomTable",
        "available": "server",
        "description": "Event-only.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "metadataTable",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetEventSignoutCustomTable",
        "available": "server",
        "description": "Event-only.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "metadataTable",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFilterMoreGold",
        "available": "server",
        "description": "Sets whether to filter more gold events than normal.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFirstBloodActive",
        "available": "server",
        "description": "Sets whether First Blood has been triggered.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "active",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGameWinner",
        "available": "server",
        "description": "Makes the specified team win.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGlyphCooldown",
        "available": "server",
        "description": "Set Glyph cooldown for team.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "cooldown",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGoldPerTick",
        "available": "server",
        "description": "Set the auto gold increase per timed interval.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "amount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetGoldTickTime",
        "available": "server",
        "description": "Set the time interval between auto gold increases.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHeroMinimapIconScale",
        "available": "server",
        "description": "Scale the hero minimap icons on the minimap.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scale",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHeroRespawnEnabled",
        "available": "server",
        "description": "Control if the normal DOTA hero respawn rules apply.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHeroSelectionTime",
        "available": "server",
        "description": "Sets the amount of time players have to pick their hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "selectionTime",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHeroSelectPenaltyTime",
        "available": "server",
        "description": "Sets amount of penalty time before randoming a hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHideBlacklistedHeroes",
        "available": "server",
        "description": "Should blacklisted heroes be hidden, or just dimmed, in hero picking?",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHideKillMessageHeaders",
        "available": "server",
        "description": "Sets whether the multikill, streak, and first-blood banners appear at the top of the screen.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hideHeaders",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetIgnoreLobbyTeamsInCustomGame",
        "available": "server",
        "description": "Set whether custom and event games should ignore Lobby teams when assigning players to teams. Defaults to true.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetItemStockCount",
        "available": "server",
        "description": "Set the stock count of the item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "count",
            "types": [
              "int"
            ]
          },
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          },
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          },
          {
            "name": "playerId",
            "description": "Used only for items with \"PlayerSpecificCooldown\"",
            "types": [
              "PlayerID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNeutralInitialSpawnOffset",
        "available": "server",
        "description": "Sets the extra offset to initial neutral creep spawn delay.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNextBountyRuneSpawnTime",
        "available": "server",
        "description": "Sets next bounty rune spawn time.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetNextRuneSpawnTime",
        "available": "server",
        "description": "Sets next rune spawn time.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOverlayHealthBarUnit",
        "available": "server",
        "description": "Show this unit's health on the overlay health bar.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "unit",
            "types": [
              "CDOTA_BaseNPC"
            ]
          },
          {
            "name": "style",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPostGameColumns",
        "available": "server",
        "description": "Set columns to show in post game.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPostGameLayout",
        "available": "server",
        "description": "Configure post game to be single or double column layout.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPostGameTeamScores",
        "available": "server",
        "description": "Set score value for each team. First element is for DOTA_TEAM_GOODGUYS.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPostGameTime",
        "available": "server",
        "description": "Sets the amount of time players have between the game ending and the server disconnecting them.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetPreGameTime",
        "available": "server",
        "description": "Sets the amount of time players have between picking their hero and game start.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRiverPaint",
        "available": "server",
        "description": "Paints the river for a duration.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRuneMinimapIconScale",
        "available": "server",
        "description": "Scale the rune icons on the minimap.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "minimapRuneIconScale",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetRuneSpawnTime",
        "available": "server",
        "description": "Sets the amount of time between rune spawns.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSafeToLeave",
        "available": "server",
        "description": "Mark this game as safe to leave.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "safeToLeave",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSameHeroSelectionEnabled",
        "available": "server",
        "description": "When true, players can repeatedly pick the same hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetShowcaseTime",
        "available": "server",
        "description": "Sets the amount of time players have between the strategy phase and entering the pre-game phase.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSpeechUseSpawnInsteadOfRespawnConcept",
        "available": "server",
        "description": "Set whether to speak a Spawn concept instead of a Respawn concept on respawn.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStartingGold",
        "available": "server",
        "description": "Set the starting gold amount.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "amount",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStrategyTime",
        "available": "server",
        "description": "Sets the amount of time players have between the hero selection and entering the showcase phase.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSuggestAbilitiesEnabled",
        "available": "server",
        "description": "Sets Dota Plus ability suggestions enabled or disabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSuggestItemsEnabled",
        "available": "server",
        "description": "Sets Dota Plus ability item enabled or disabled.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTimeOfDay",
        "available": "server",
        "description": "Set the time of day.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTreeRegrowTime",
        "available": "server",
        "description": "Sets the tree regrow time in seconds.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "time",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUseBaseGoldBountyOnHeroes",
        "available": "server",
        "description": "Heroes will use the basic NPC functionality for determining their bounty, rather than DOTA specific formulas.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "useBaseGoldBounties",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUseCustomHeroXPValues",
        "available": "server",
        "description": "Allows heroes in the map to give a specific amount of XP (this value must be set).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "useCustomXPValues",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetUseUniversalShopMode",
        "available": "server",
        "description": "When true, all items are available at as long as any shop is in range.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "useUniversalShopMode",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetWeatherWindDirection",
        "available": "server",
        "description": "Set Weather Wind Direction Vector.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetWhiteListEnabled",
        "available": "server",
        "description": "Item whitelist functionality enable/disable.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "whiteListEnabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldHideBlacklistedHeroes",
        "available": "both",
        "description": "Are blacklisted heroes hidden, or just dimmed, in hero picking?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpawnAndReleaseCreeps",
        "available": "server",
        "description": "Spawn and release the next creep wave from Dota lane style spawners.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpawnNeutralCreeps",
        "available": "server",
        "description": "Spawn and release the next set of neutral camps.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "State_Get",
        "available": "both",
        "description": "Get the current Gamerules state.",
        "returns": [
          "DOTA_GameState"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTAPlayerController",
    "clientName": "C_DOTAPlayerController",
    "extend": "CBaseAnimatingActivity",
    "members": [
      {
        "kind": "function",
        "name": "CheckForCourierSpawning",
        "available": "server",
        "description": "Attempt to spawn the appropriate couriers for this mode.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "hero",
            "types": [
              "CDOTA_BaseNPC_Hero"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetActiveAbility",
        "available": "client",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAssignedHero",
        "available": "server",
        "description": "Get the player's hero.",
        "returns": [
          "CDOTA_BaseNPC_Hero"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetClickBehaviors",
        "available": "client",
        "returns": [
          "unknown"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPlayerID",
        "available": "server",
        "description": "Get the player's official PlayerID; notably is -1 when the player isn't yet on a team.",
        "returns": [
          "PlayerID"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetQueryUnit",
        "available": "client",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "MakeRandomHeroSelection",
        "available": "server",
        "description": "Randoms this player's hero.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetAssignedHeroEntity",
        "available": "server",
        "description": "Sets this player's hero .",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "hero",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetKillCamUnit",
        "available": "server",
        "description": "Set the kill cam unit for this hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetMusicStatus",
        "available": "server",
        "description": "Set the music status for this player, note this will only really apply if dota_music_battle_enable is off.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "musicStatus",
            "types": [
              "int"
            ]
          },
          {
            "name": "intensity",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetSelectedHero",
        "available": "server",
        "description": "Sets this player's hero selection.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ShouldDisplayInWorldUIElements",
        "available": "client",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpawnCourierAtPosition",
        "available": "server",
        "description": "Spawn a courier for this player at the given position.",
        "returns": [
          "CDOTA_Unit_Courier"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDotaQuest",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "AddSubquest",
        "available": "server",
        "description": "Add a subquest to this quest.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "subquest",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CompleteQuest",
        "available": "server",
        "description": "Mark this quest complete.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSubquest",
        "available": "server",
        "description": "Finds a subquest from this quest by index.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "index",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetSubquestByName",
        "available": "server",
        "description": "Finds a subquest from this quest by name.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveSubquest",
        "available": "server",
        "description": "Remove a subquest from this quest.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "subquest",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTextReplaceString",
        "available": "server",
        "description": "Set the text replace string for this quest.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "string",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTextReplaceValue",
        "available": "server",
        "description": "Set a quest value.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "valueSlot",
            "types": [
              "int"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDotaSubquestBase",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "CompleteSubquest",
        "available": "server",
        "description": "Mark this subquest complete.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetTextReplaceString",
        "available": "server",
        "description": "Set the text replace string for this subquest.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "string",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTextReplaceValue",
        "available": "server",
        "description": "Set a subquest value.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "valueSlot",
            "types": [
              "int"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTATutorial",
    "instance": "Tutorial",
    "members": [
      {
        "kind": "function",
        "name": "AddBot",
        "available": "server",
        "description": "Add a computer controlled bot.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddQuest",
        "available": "server",
        "description": "Add a quest to the quest log.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddShopWhitelistItem",
        "available": "server",
        "description": "Add an item to the shop whitelist.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CompleteQuest",
        "available": "server",
        "description": "Complete a quest,.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CreateLocationTask",
        "available": "server",
        "description": "Add a task to move to a specific location.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EnableCreepAggroViz",
        "available": "server",
        "description": "Alert the player when a creep becomes agro to their hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EnablePlayerOffscreenTip",
        "available": "server",
        "description": "Enable the tip to alert players how to find their hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "EnableTowerAggroViz",
        "available": "server",
        "description": "Alert the player when a tower becomes agro to their hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FinishTutorial",
        "available": "server",
        "description": "End the tutorial.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ForceGameStart",
        "available": "server",
        "description": "Force the start of the game.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsItemInWhiteList",
        "available": "server",
        "description": "Is this item currently in the white list.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "MoveCameraToLocation",
        "available": "server",
        "description": "Moves the camera to a position.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveShopWhitelistItem",
        "available": "server",
        "description": "Remove an item from the shop whitelist.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SelectHero",
        "available": "server",
        "description": "Select a hero for the local player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "heroName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SelectPlayerTeam",
        "available": "server",
        "description": "Select the team for the local player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetItemGuide",
        "available": "server",
        "description": "Set the current item guide.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOrModifyPlayerGold",
        "available": "server",
        "description": "Set gold amount for the tutorial player.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "goldAmount",
            "types": [
              "int"
            ]
          },
          {
            "name": "setNotModify",
            "description": "When true sets gold amount, otherwise modifies it",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetQuickBuy",
        "available": "server",
        "description": "Set players quick buy item.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "itemName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetShopOpen",
        "available": "server",
        "description": "Set the shop open or closed.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "open",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTutorialConvar",
        "available": "server",
        "description": "Set a tutorial convar.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetTutorialUI",
        "available": "server",
        "description": "Set the UI to use a reduced version to focus attention to specific elements.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetWhiteListEnabled",
        "available": "server",
        "description": "Set if we should whitelist shop items.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "whiteListEnabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "StartTutorialMode",
        "available": "server",
        "description": "Initialize Tutorial Mode.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "UpgradePlayerAbility",
        "available": "server",
        "description": "Upgrade a specific ability for the local hero.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "abilityName",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDotaTutorialNPCBlocker",
    "extend": "CBaseAnimatingOverlay",
    "members": [
      {
        "kind": "function",
        "name": "SetEnabled",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOtherBlocker",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "blocker",
            "types": [
              "handle"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CDOTAVoteSystem",
    "instance": "VoteSystem",
    "members": [
      {
        "kind": "function",
        "name": "StartVote",
        "available": "server",
        "description": "Starts a vote, based upon a table of parameters.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CEntities",
    "clientName": "CEntities",
    "instance": "Entities",
    "members": [
      {
        "kind": "function",
        "name": "CreateByClassname",
        "available": "server",
        "description": "Creates an entity by classname.",
        "returns": [
          "CBaseEntity"
        ],
        "args": [
          {
            "name": "className",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllByClassname",
        "available": "server",
        "description": "Finds all entities by class name. Returns an array containing all the found entities.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CBaseEntity"
            ]
          }
        ],
        "args": [
          {
            "name": "className",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllByClassnameWithin",
        "available": "server",
        "description": "Find entities by class name within a radius.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllByModel",
        "available": "server",
        "description": "Find entities by model name.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CBaseEntity"
            ]
          }
        ],
        "args": [
          {
            "name": "modelName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllByName",
        "available": "server",
        "description": "Find all entities by name. Returns an array containing all the found entities in it.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CBaseEntity"
            ]
          }
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllByNameWithin",
        "available": "server",
        "description": "Find entities by name within a radius.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllByTarget",
        "available": "server",
        "description": "Find entities by targetname.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CBaseEntity"
            ]
          }
        ],
        "args": [
          {
            "name": "target",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindAllInSphere",
        "available": "server",
        "description": "Find entities within a radius.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByClassname",
        "available": "server",
        "description": "Find entities by class name. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "CBaseEntity",
          "nil"
        ],
        "args": [
          {
            "name": "previous",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "className",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByClassnameNearest",
        "available": "server",
        "description": "Find entities by class name nearest to a point.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByClassnameWithin",
        "available": "server",
        "description": "Find entities by class name within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByModel",
        "available": "server",
        "description": "Find entities by model name. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "CBaseEntity",
          "nil"
        ],
        "args": [
          {
            "name": "previous",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "modelName",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByModelWithin",
        "available": "server",
        "description": "Find entities by model name within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByName",
        "available": "server",
        "description": "Find entities by name. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "CBaseEntity",
          "nil"
        ],
        "args": [
          {
            "name": "previous",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByNameNearest",
        "available": "server",
        "description": "Find entities by name nearest to a point.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByNameWithin",
        "available": "server",
        "description": "Find entities by name within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindByTarget",
        "available": "server",
        "description": "Find entities by targetname. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "CBaseEntity",
          "nil"
        ],
        "args": [
          {
            "name": "previous",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "target",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindInSphere",
        "available": "server",
        "description": "Find entities within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          },
          {
            "name": "location",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "First",
        "available": "both",
        "description": "Begin an iteration over the list of entities.",
        "returns": [
          "CBaseEntity"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalPlayer",
        "available": "both",
        "description": "Get the local player controller (backcompat).",
        "returns": [
          "CDOTAPlayerController"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalPlayerController",
        "available": "both",
        "description": "Get the local player controller.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetLocalPlayerPawn",
        "available": "both",
        "description": "Get the local player pawn.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "Next",
        "available": "both",
        "description": "Continue an iteration over the list of entities, providing reference to a previously found entity.",
        "returns": [
          "CBaseEntity",
          "nil"
        ],
        "args": [
          {
            "name": "previous",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CEntityInstance",
    "clientName": "CEntityInstance",
    "members": [
      {
        "kind": "function",
        "name": "ConnectOutput",
        "available": "both",
        "description": "Adds an I/O connection that will call the named function on this entity when the specified output fires.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Destroy",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "DisconnectOutput",
        "available": "both",
        "description": "Removes a connected script function from an I/O event on this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DisconnectRedirectedOutput",
        "available": "both",
        "description": "Removes a connected script function from an I/O event on the passed entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "entindex",
        "available": "both",
        "returns": [
          "EntityIndex"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "FireOutput",
        "available": "both",
        "description": "Fire an entity output.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "handle"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "handle"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "table"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetClassname",
        "available": "both",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDebugName",
        "available": "both",
        "description": "Get the entity name w/help if not defined (i.e. classname/etc).",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEntityHandle",
        "available": "both",
        "description": "Get the entity as an EHANDLE.",
        "returns": [
          "ehandle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetEntityIndex",
        "available": "both",
        "returns": [
          "EntityIndex"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetIntAttr",
        "available": "both",
        "description": "Get Integer Attribute.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetName",
        "available": "both",
        "description": "Get the entity name.",
        "returns": [
          "string"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOrCreatePrivateScriptScope",
        "available": "both",
        "description": "Retrieve, creating if necessary, the private per-instance script-side data associated with an entity.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOrCreatePublicScriptScope",
        "available": "both",
        "description": "Retrieve, creating if necessary, the public script-side data associated with an entity.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPrivateScriptScope",
        "available": "both",
        "description": "Retrieve the private per-instance script-side data associated with an entity.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetPublicScriptScope",
        "available": "both",
        "description": "Retrieve the public script-side data associated with an entity.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsNull",
        "available": "both",
        "description": "Has underlying C++ entity object been deleted?",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RedirectOutput",
        "available": "both",
        "description": "Adds an I/O connection that will call the named function on the passed entity when the specified output fires.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RemoveSelf",
        "available": "both",
        "description": "Delete this entity.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetIntAttr",
        "available": "both",
        "description": "Set Integer Attribute.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CEntityScriptFramework",
    "clientName": "CEntityScriptFramework",
    "instance": "NativeFunctions",
    "members": []
  },
  {
    "kind": "class",
    "name": "CEnvEntityMaker",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "SpawnEntity",
        "available": "server",
        "description": "Create an entity at the location of the maker.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SpawnEntityAtEntityOrigin",
        "available": "server",
        "description": "Create an entity at the location of a specified entity instance.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "entity",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SpawnEntityAtLocation",
        "available": "server",
        "description": "Create an entity at a specified location and orientaton, orientation is Euler angle in degrees.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "vecAlternateOrigin",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "vecAlternateAngles",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SpawnEntityAtNamedEntityOrigin",
        "available": "server",
        "description": "Create an entity at the location of a named entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CFoWBlockerRegion",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "AddRectangularBlocker",
        "available": "server",
        "description": "Sets or clears a blocker rectangle.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mins",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "maxs",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "clearRegion",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddRectangularOutlineBlocker",
        "available": "server",
        "description": "Sets or clears a blocker rectangle outline.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "mins",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "maxs",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "clearRegion",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CInfoData",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "QueryColor",
        "available": "server",
        "description": "Query color data for this key.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "tok",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueryFloat",
        "available": "server",
        "description": "Query float data for this key.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "tok",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueryInt",
        "available": "server",
        "description": "Query int data for this key.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "tok",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueryNumber",
        "available": "server",
        "description": "Query number data for this key.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "tok",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueryString",
        "available": "server",
        "description": "Query string data for this key.",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "tok",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "QueryVector",
        "available": "server",
        "description": "Query vector data for this key.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "tok",
            "types": [
              "string"
            ]
          },
          {
            "name": "default",
            "types": [
              "Vector"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CInfoPlayerStartDota",
    "extend": "CPointEntity",
    "members": [
      {
        "kind": "function",
        "name": "IsEnabled",
        "available": "server",
        "description": "Returns whether the object is currently active.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetEnabled",
        "available": "server",
        "description": "Enable or disable the obstruction.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "enabled",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CInfoWorldLayer",
    "clientName": "CInfoWorldLayer",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "HideWorldLayer",
        "available": "both",
        "description": "Hides this layer.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ShowWorldLayer",
        "available": "both",
        "description": "Shows this layer.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CLogicRelay",
    "clientName": "CLogicRelay",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "Trigger",
        "available": "both",
        "description": "Triggers the logic_relay.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "activator",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "caller",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CLogicScript",
    "extend": "CBaseEntity",
    "members": []
  },
  {
    "kind": "class",
    "name": "CMarkupVolumeTagged",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "HasTag",
        "available": "server",
        "description": "Does this volume have the given tag.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "tagName",
            "types": [
              "unknown"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CNativeOutputs",
    "clientName": "CNativeOutputs",
    "members": [
      {
        "kind": "function",
        "name": "AddOutput",
        "available": "both",
        "description": "Add an output.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Init",
        "available": "both",
        "description": "Initialize with number of outputs.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "Convars",
    "clientName": "Convars",
    "instance": "Convars",
    "members": [
      {
        "kind": "function",
        "name": "GetBool",
        "available": "both",
        "description": "Returns the convar as a boolean flag.",
        "returns": [
          "bool",
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetCommandClient",
        "available": "both",
        "description": "Returns the player who issued this console command.",
        "returns": [
          "CDOTAPlayerController"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDOTACommandClient",
        "available": "both",
        "description": "Returns the DOTA player who issued this console command.",
        "returns": [
          "CDOTAPlayerController"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetFloat",
        "available": "both",
        "description": "Returns the convar as a float. May return null if no such convar.",
        "returns": [
          "float",
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetInt",
        "available": "both",
        "description": "Returns the convar as an int. May return null if no such convar.",
        "returns": [
          "int",
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetStr",
        "available": "both",
        "description": "Returns the convar as a string. May return null if no such convar.",
        "returns": [
          "string",
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RegisterCommand",
        "available": "both",
        "description": "Register a console command.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "callback",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "name",
                    "types": [
                      "string"
                    ]
                  },
                  {
                    "name": "...args",
                    "types": [
                      {
                        "kind": "array",
                        "types": [
                          "string"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "name": "helpString",
            "types": [
              "string"
            ]
          },
          {
            "name": "flags",
            "types": [
              "ConVarFlags"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RegisterConvar",
        "available": "both",
        "description": "Register a new console variable.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "defaultValue",
            "types": [
              "string"
            ]
          },
          {
            "name": "helpString",
            "types": [
              "string"
            ]
          },
          {
            "name": "flags",
            "types": [
              "ConVarFlags"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetBool",
        "available": "both",
        "description": "Sets the value of the convar to the bool.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetFloat",
        "available": "both",
        "description": "Sets the value of the convar to the float.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetInt",
        "available": "both",
        "description": "Sets the value of the convar to the int.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetStr",
        "available": "both",
        "description": "Sets the value of the convar to the string.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CParticleSystem",
    "extend": "CBaseModelEntity",
    "members": []
  },
  {
    "kind": "class",
    "name": "CPhysicsProp",
    "extend": "CBaseAnimatingActivity",
    "members": [
      {
        "kind": "function",
        "name": "DisableMotion",
        "available": "server",
        "description": "Disable motion for the prop.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "EnableMotion",
        "available": "server",
        "description": "Enable motion for the prop.",
        "returns": [
          "nil"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CPointClientUIWorldPanel",
    "extend": "CBaseModelEntity",
    "members": [
      {
        "kind": "function",
        "name": "AcceptUserInput",
        "available": "server",
        "description": "Tells the panel to accept user input.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "AddCSSClasses",
        "available": "server",
        "description": "Adds CSS class(es) to the panel.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "classes",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IgnoreUserInput",
        "available": "server",
        "description": "Tells the panel to ignore user input.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsGrabbable",
        "available": "server",
        "description": "Returns whether this entity is grabbable.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RemoveCSSClasses",
        "available": "server",
        "description": "Remove CSS class(es) from the panel.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "classes",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CPointEntity",
    "clientName": "C_PointEntity",
    "extend": "CBaseEntity",
    "members": []
  },
  {
    "kind": "class",
    "name": "CPointTemplate",
    "clientName": "CPointTemplate",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "DeleteCreatedSpawnGroups",
        "available": "both",
        "description": "Deletes any spawn groups that this point_template has spawned. Note: The point_template will not be deleted by this.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "ForceSpawn",
        "available": "both",
        "description": "Spawns all of the entities the point_template is pointing at.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetSpawnedEntities",
        "available": "both",
        "description": "Get the list of the most recent spawned entities.",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "SetSpawnCallback",
        "available": "both",
        "description": "Set a callback for when the template spawns entities. The spawned entities will be passed in as an array.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "callbackFunc",
            "types": [
              "handle"
            ]
          },
          {
            "name": "callbackScope",
            "types": [
              "handle"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CPointWorldText",
    "clientName": "C_PointWorldText",
    "extend": "CBaseModelEntity",
    "members": [
      {
        "kind": "function",
        "name": "SetMessage",
        "available": "both",
        "description": "Set the message on this entity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "message",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CSceneEntity",
    "extend": "CBaseEntity",
    "members": [
      {
        "kind": "function",
        "name": "AddBroadcastTeamTarget",
        "available": "server",
        "description": "Adds a team (by index) to the broadcast list.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Cancel",
        "available": "server",
        "description": "Cancel scene playback.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "EstimateLength",
        "available": "server",
        "description": "Returns length of this scene in seconds.",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "FindNamedEntity",
        "available": "server",
        "description": "Given an entity reference, such as !target, get actual entity from scene object.",
        "returns": [
          "handle"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsPaused",
        "available": "server",
        "description": "If this scene is currently paused.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "IsPlayingBack",
        "available": "server",
        "description": "If this scene is currently playing.",
        "returns": [
          "bool"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "RemoveBroadcastTeamTarget",
        "available": "server",
        "description": "Removes a team (by index) from the broadcast list.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "Start",
        "available": "server",
        "description": "Start scene playback, takes activatorEntity as param.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "handle"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CScriptHeroList",
    "instance": "HeroList",
    "members": [
      {
        "kind": "function",
        "name": "GetAllHeroes",
        "available": "server",
        "description": "Returns all the heroes in the world.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CDOTA_BaseNPC_Hero"
            ]
          }
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetHero",
        "available": "server",
        "description": "Get the Nth hero in the Hero List.",
        "returns": [
          "CDOTA_BaseNPC_Hero",
          "nil"
        ],
        "args": [
          {
            "name": "nth",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetHeroCount",
        "available": "server",
        "description": "Returns the number of heroes in the world.",
        "returns": [
          "int"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "CScriptHTTPRequest",
    "clientName": "CScriptHTTPRequest",
    "description": "Note: Actual `CScriptHTTPRequest` global exists only after CreateHTTPRequest is called.",
    "members": [
      {
        "kind": "function",
        "name": "Send",
        "available": "both",
        "description": "Send a HTTP request.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "callback",
            "types": [
              {
                "kind": "function",
                "returns": [
                  "nil"
                ],
                "args": [
                  {
                    "name": "response",
                    "types": [
                      "CScriptHTTPResponse"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHTTPRequestAbsoluteTimeoutMS",
        "available": "both",
        "description": "Set the total timeout on the request.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "milliseconds",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHTTPRequestGetOrPostParameter",
        "available": "both",
        "description": "Set a POST or GET parameter on the request.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHTTPRequestHeaderValue",
        "available": "both",
        "description": "Set a header value on the request.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          },
          {
            "name": "value",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHTTPRequestNetworkActivityTimeout",
        "available": "both",
        "description": "Set the network timeout on the request - this timer is reset when any data is received.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "seconds",
            "types": [
              "uint"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetHTTPRequestRawPostBody",
        "available": "both",
        "description": "Set the literal body of a post - invalid after setting a post parameter.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "contentType",
            "types": [
              "string"
            ]
          },
          {
            "name": "body",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CScriptKeyValues",
    "clientName": "CScriptKeyValues",
    "members": [
      {
        "kind": "function",
        "name": "GetValue",
        "available": "both",
        "description": "Reads a spawn key.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CScriptParticleManager",
    "clientName": "CScriptParticleManager",
    "instance": "ParticleManager",
    "members": [
      {
        "kind": "function",
        "name": "CreateParticle",
        "available": "both",
        "description": "Creates a new particle effect.",
        "returns": [
          "ParticleID"
        ],
        "args": [
          {
            "name": "particleName",
            "types": [
              "string"
            ]
          },
          {
            "name": "particleAttach",
            "types": [
              "ParticleAttachment_t"
            ]
          },
          {
            "name": "owner",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CreateParticleForPlayer",
        "available": "both",
        "description": "Creates a new particle effect that only plays for the specified player.",
        "returns": [
          "ParticleID"
        ],
        "args": [
          {
            "name": "particleName",
            "types": [
              "string"
            ]
          },
          {
            "name": "particleAttach",
            "types": [
              "ParticleAttachment_t"
            ]
          },
          {
            "name": "owner",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "player",
            "types": [
              "CDOTAPlayerController"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CreateParticleForTeam",
        "available": "both",
        "description": "Creates a new particle effect that only plays for the specified team.",
        "returns": [
          "ParticleID"
        ],
        "args": [
          {
            "name": "particleName",
            "types": [
              "string"
            ]
          },
          {
            "name": "particleAttach",
            "types": [
              "ParticleAttachment_t"
            ]
          },
          {
            "name": "owner",
            "types": [
              "CBaseEntity",
              "nil"
            ]
          },
          {
            "name": "team",
            "types": [
              "DOTATeam_t"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DestroyParticle",
        "available": "both",
        "description": "Destroy a particle, if bDestroyImmediately destroy it without playing end caps.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "immediate",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetParticleReplacement",
        "available": "both",
        "returns": [
          "string"
        ],
        "args": [
          {
            "name": "particleName",
            "types": [
              "string"
            ]
          },
          {
            "name": "hero",
            "types": [
              "CDOTA_BaseNPC_Hero",
              "nil"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ReleaseParticleIndex",
        "available": "both",
        "description": "Frees the specified particle index.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleAlwaysSimulate",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControl",
        "available": "both",
        "description": "Set the control point data for a control on a particle effect.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "value",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlEnt",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "unit",
            "types": [
              "CBaseEntity"
            ]
          },
          {
            "name": "particleAttach",
            "types": [
              "ParticleAttachment_t"
            ]
          },
          {
            "name": "attachment",
            "types": [
              "string"
            ]
          },
          {
            "name": "offset",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "lockOrientation",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlFallback",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "vecPosition",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlForward",
        "available": "both",
        "description": "[OBSOLETE - Use SetParticleControlTransformForward] (int nFXIndex, int nPoint, vForward).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlOrientation",
        "available": "both",
        "description": "[OBSOLETE - Use SetParticleControlTransform] (int nFXIndex, int nPoint, vForward, vRight, vUp) - Set the orientation for a control on a particle effect (NOTE: This is left handed -- bad!!).",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlOrientationFLU",
        "available": "both",
        "description": "[OBSOLETE - Use SetParticleControlTransform] (int nFXIndex, int nPoint, Vector vecForward, Vector vecLeft, Vector vecUp) - Set the orientation for a control on a particle effect.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg4",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg5",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlTransform",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "fxIndex",
            "types": [
              "int"
            ]
          },
          {
            "name": "point",
            "types": [
              "int"
            ]
          },
          {
            "name": "origin",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "qAngles",
            "types": [
              "QAngle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleControlTransformForward",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "fxIndex",
            "types": [
              "int"
            ]
          },
          {
            "name": "point",
            "types": [
              "int"
            ]
          },
          {
            "name": "origin",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "forward",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleFoWProperties",
        "available": "both",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "controlPoint",
            "types": [
              "int"
            ]
          },
          {
            "name": "controlPoint2",
            "types": [
              "int"
            ]
          },
          {
            "name": "radius",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetParticleShouldCheckFoW",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "particle",
            "types": [
              "ParticleID"
            ]
          },
          {
            "name": "checkFoW",
            "types": [
              "bool"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CScriptPrecacheContext",
    "clientName": "CScriptPrecacheContext",
    "members": [
      {
        "kind": "function",
        "name": "AddResource",
        "available": "both",
        "description": "Precaches a specific resource.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "resource",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetValue",
        "available": "both",
        "description": "Reads a spawn key.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "key",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CScriptUniformRandomStream",
    "clientName": "CScriptUniformRandomStream",
    "members": [
      {
        "kind": "function",
        "name": "RandomFloat",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "minVal",
            "types": [
              "float"
            ]
          },
          {
            "name": "maxVal",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RandomFloatExp",
        "available": "both",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "minVal",
            "types": [
              "float"
            ]
          },
          {
            "name": "maxVal",
            "types": [
              "float"
            ]
          },
          {
            "name": "exponent",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RandomInt",
        "available": "both",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "minVal",
            "types": [
              "int"
            ]
          },
          {
            "name": "maxVal",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RollPercentage",
        "available": "both",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "percentage",
            "types": [
              "int"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "CTakeDamageInfo",
    "members": [
      {
        "kind": "function",
        "name": "AddDamage",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "addAmount",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "AddDamageType",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damageType",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAmmoType",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetAttacker",
        "available": "server",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamage",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamageCustom",
        "available": "server",
        "returns": [
          "int"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamageForce",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamagePosition",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetDamageType",
        "available": "server",
        "returns": [
          "DAMAGE_TYPES"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetInflictor",
        "available": "server",
        "returns": [
          "handle"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetOriginalDamage",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetReportedPosition",
        "available": "server",
        "returns": [
          "Vector"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "GetTotalledDamage",
        "available": "server",
        "returns": [
          "float"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "HasDamageType",
        "available": "server",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "damageType",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ScaleDamage",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "scaleAmount",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAmmoType",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ammoType",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetAttacker",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "attacker",
            "types": [
              "handle"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamage",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damage",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamageCustom",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damageCustom",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamageForce",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damageForce",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamagePosition",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damagePosition",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetDamageType",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "damageType",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetOriginalDamage",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "originalDamage",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "SetReportedPosition",
        "available": "server",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "reportedPosition",
            "types": [
              "Vector"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "GlobalSys",
    "clientName": "GlobalSys",
    "instance": "GlobalSys",
    "members": [
      {
        "kind": "function",
        "name": "CommandLineCheck",
        "available": "both",
        "description": "Returns true if the command line param was used, otherwise false.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "name",
            "types": [
              "string"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CommandLineFloat",
        "available": "both",
        "description": "Returns the command line param as a float.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CommandLineInt",
        "available": "both",
        "description": "Returns the command line param as an int.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CommandLineStr",
        "available": "both",
        "description": "Returns the command line param as a string.",
        "returns": [
          "table"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "string"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "string"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "GridNav",
    "instance": "GridNav",
    "members": [
      {
        "kind": "function",
        "name": "CanFindPath",
        "available": "server",
        "description": "Determine if it is possible to reach the specified end point from the specified start point. bool.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "start",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "end",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DestroyTreesAroundPoint",
        "available": "server",
        "description": "Destroy all trees in the area(vPosition, flRadius, bFullCollision.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "arg2",
            "types": [
              "float"
            ]
          },
          {
            "name": "arg3",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "FindPathLength",
        "available": "server",
        "description": "Find a path between the two points an return the length of the path. If there is not a path between the points the returned value will be -1.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "start",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "end",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetAllTreesAroundPoint",
        "available": "server",
        "description": "Returns a table full of tree HSCRIPTS.",
        "returns": [
          {
            "kind": "array",
            "types": [
              "CDOTA_MapTree"
            ]
          }
        ],
        "args": [
          {
            "name": "position",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "radius",
            "types": [
              "float"
            ]
          },
          {
            "name": "fullCollision",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GridPosToWorldCenterX",
        "available": "server",
        "description": "Get the X position of the center of a given X index.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GridPosToWorldCenterY",
        "available": "server",
        "description": "Get the Y position of the center of a given Y index.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsBlocked",
        "available": "server",
        "description": "Checks whether the given position is blocked.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsNearbyTree",
        "available": "server",
        "description": "Checks whether there are any trees overlapping the given point.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "position",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "radius",
            "types": [
              "float"
            ]
          },
          {
            "name": "checkFullTreeRadius",
            "types": [
              "bool"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsTraversable",
        "available": "server",
        "description": "Checks whether the given position is traversable.",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "Vector"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "RegrowAllTrees",
        "available": "server",
        "description": "Causes all trees in the map to regrow.",
        "returns": [
          "nil"
        ],
        "args": []
      },
      {
        "kind": "function",
        "name": "WorldToGridPosX",
        "available": "server",
        "description": "Get the X index of a given world X position.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "WorldToGridPosY",
        "available": "server",
        "description": "Get the Y index of a given world Y position.",
        "returns": [
          "int"
        ],
        "args": [
          {
            "name": "arg1",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "ProjectileManager",
    "instance": "ProjectileManager",
    "members": [
      {
        "kind": "function",
        "name": "ChangeTrackingProjectileSpeed",
        "available": "server",
        "description": "Update speed.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "ability",
            "types": [
              "CDOTABaseAbility"
            ]
          },
          {
            "name": "speed",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CreateLinearProjectile",
        "available": "server",
        "description": "Creates a linear projectile and returns the projectile ID.",
        "returns": [
          "ProjectileID"
        ],
        "args": [
          {
            "name": "options",
            "types": [
              "CreateLinearProjectileOptions"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "CreateTrackingProjectile",
        "available": "server",
        "description": "Creates a tracking projectile.",
        "returns": [
          "ProjectileID"
        ],
        "args": [
          {
            "name": "options",
            "types": [
              "CreateTrackingProjectileOptions"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DestroyLinearProjectile",
        "available": "server",
        "description": "Destroys the linear projectile matching the argument ID.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "DestroyTrackingProjectile",
        "available": "server",
        "description": "Destroy a tracking projectile early.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLinearProjectileLocation",
        "available": "server",
        "description": "Returns current location of projectile.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLinearProjectileRadius",
        "available": "server",
        "description": "Returns current radius of projectile.",
        "returns": [
          "float"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetLinearProjectileVelocity",
        "available": "server",
        "description": "Returns a vector representing the current velocity of the projectile.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "GetTrackingProjectileLocation",
        "available": "server",
        "description": "Returns current location of projectile.",
        "returns": [
          "Vector"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "IsValidProjectile",
        "available": "server",
        "description": "Is this a valid projectile?",
        "returns": [
          "bool"
        ],
        "args": [
          {
            "name": "value",
            "types": [
              "int"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "ProjectileDodge",
        "available": "server",
        "description": "Makes the specified unit dodge projectiles.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "unit",
            "types": [
              "CDOTA_BaseNPC"
            ]
          }
        ]
      },
      {
        "kind": "function",
        "name": "UpdateLinearProjectileDirection",
        "available": "server",
        "description": "Update velocity.",
        "returns": [
          "nil"
        ],
        "args": [
          {
            "name": "projectile",
            "types": [
              "ProjectileID"
            ]
          },
          {
            "name": "direction",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "speed",
            "types": [
              "float"
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "class",
    "name": "QAngle",
    "clientName": "QAngle",
    "description": "QAngle class.",
    "call": {
      "kind": "function",
      "returns": [
        "QAngle"
      ],
      "args": [
        {
          "name": "x",
          "types": [
            "float",
            "nil"
          ],
          "description": "Pitch +down/-up."
        },
        {
          "name": "y",
          "types": [
            "float",
            "nil"
          ],
          "description": "Yaw +left/-right."
        },
        {
          "name": "z",
          "types": [
            "float",
            "nil"
          ],
          "description": "Roll +right/-left."
        }
      ]
    },
    "members": [
      {
        "kind": "field",
        "name": "x",
        "types": [
          "float"
        ],
        "description": "Pitch angle"
      },
      {
        "kind": "field",
        "name": "y",
        "types": [
          "float"
        ],
        "description": "Yaw angle"
      },
      {
        "kind": "field",
        "name": "z",
        "types": [
          "float"
        ],
        "description": "Roll angle"
      },
      {
        "kind": "function",
        "name": "__add",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "QAngle"
            ]
          }
        ],
        "returns": [
          "QAngle"
        ],
        "description": "Overloaded +. Adds angles together."
      },
      {
        "kind": "function",
        "name": "__eq",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "QAngle"
            ]
          }
        ],
        "returns": [
          "bool"
        ],
        "description": "Overloaded ==. Tests for Equality."
      },
      {
        "kind": "function",
        "name": "__tostring",
        "available": "both",
        "args": [],
        "returns": [
          "string"
        ],
        "description": "Overloaded .. Converts the QAngles to strings."
      },
      {
        "kind": "function",
        "name": "Forward",
        "available": "both",
        "args": [],
        "returns": [
          "Vector"
        ],
        "description": "Returns the forward vector."
      },
      {
        "kind": "function",
        "name": "Left",
        "available": "both",
        "args": [],
        "returns": [
          "Vector"
        ],
        "description": "Returns the left vector."
      },
      {
        "kind": "function",
        "name": "Up",
        "available": "both",
        "args": [],
        "returns": [
          "Vector"
        ],
        "description": "Returns the up vector."
      }
    ]
  },
  {
    "kind": "class",
    "name": "SteamInfo",
    "instance": "SteamInfo",
    "members": [
      {
        "kind": "function",
        "name": "IsPublicUniverse",
        "available": "server",
        "description": "Is the script connected to the public Steam universe.",
        "returns": [
          "bool"
        ],
        "args": []
      }
    ]
  },
  {
    "kind": "class",
    "name": "Uint64",
    "description": "Integer with binary operations.",
    "members": [
      {
        "kind": "function",
        "name": "__eq",
        "available": "server",
        "args": [
          {
            "name": "b",
            "types": [
              "Uint64"
            ]
          }
        ],
        "returns": [
          "bool"
        ]
      },
      {
        "kind": "function",
        "name": "__tostring",
        "available": "server",
        "args": [],
        "returns": [
          "string"
        ],
        "description": "Overloaded .. Converts Uint64s to strings."
      },
      {
        "kind": "function",
        "name": "BitwiseAnd",
        "available": "server",
        "args": [
          {
            "name": "operand",
            "types": [
              "Uint64"
            ]
          }
        ],
        "returns": [
          "Uint64"
        ],
        "description": "Performs bitwise AND between two integers."
      },
      {
        "kind": "function",
        "name": "BitwiseOr",
        "available": "server",
        "args": [
          {
            "name": "operand",
            "types": [
              "Uint64"
            ]
          }
        ],
        "returns": [
          "Uint64"
        ],
        "description": "Performs bitwise OR between two integers."
      },
      {
        "kind": "function",
        "name": "BitwiseXor",
        "available": "server",
        "args": [
          {
            "name": "operand",
            "types": [
              "Uint64"
            ]
          }
        ],
        "returns": [
          "Uint64"
        ],
        "description": "Performs bitwise XOR between two integers."
      },
      {
        "kind": "function",
        "name": "BitwiseNot",
        "available": "server",
        "args": [],
        "returns": [
          "Uint64"
        ],
        "description": "Performs bitwise NOT."
      },
      {
        "kind": "function",
        "name": "SetBit",
        "available": "server",
        "args": [
          {
            "name": "bitvalue",
            "types": [
              "int"
            ]
          }
        ],
        "returns": [
          "nil"
        ],
        "description": "Sets the specified bit."
      },
      {
        "kind": "function",
        "name": "ClearBit",
        "available": "server",
        "args": [
          {
            "name": "bitvalue",
            "types": [
              "int"
            ]
          }
        ],
        "returns": [
          "int"
        ],
        "description": "Clears the specified bit."
      },
      {
        "kind": "function",
        "name": "IsBitSet",
        "available": "server",
        "args": [
          {
            "name": "bitvalue",
            "types": [
              "int"
            ]
          }
        ],
        "returns": [
          "int",
          "nil"
        ],
        "description": "Checks if bit is set."
      },
      {
        "kind": "function",
        "name": "ToggleBit",
        "available": "server",
        "args": [
          {
            "name": "bitvalue",
            "types": [
              "int"
            ]
          }
        ],
        "returns": [
          "int"
        ],
        "description": "Toggles the specified bit."
      },
      {
        "kind": "function",
        "name": "ToHexString",
        "available": "server",
        "args": [],
        "returns": [
          "string"
        ],
        "description": "Returns a hexadecimal string representation of the integer."
      }
    ]
  },
  {
    "kind": "class",
    "name": "Vector",
    "clientName": "Vector",
    "description": "3D Vector class.",
    "call": {
      "kind": "function",
      "returns": [
        "Vector"
      ],
      "args": [
        {
          "name": "x",
          "types": [
            "float",
            "nil"
          ]
        },
        {
          "name": "y",
          "types": [
            "float",
            "nil"
          ]
        },
        {
          "name": "z",
          "types": [
            "float",
            "nil"
          ]
        }
      ]
    },
    "members": [
      {
        "kind": "field",
        "name": "x",
        "types": [
          "float"
        ],
        "description": "X-axis"
      },
      {
        "kind": "field",
        "name": "y",
        "types": [
          "float"
        ],
        "description": "Y-axis"
      },
      {
        "kind": "field",
        "name": "z",
        "types": [
          "float"
        ],
        "description": "Z-axis"
      },
      {
        "kind": "function",
        "name": "__add",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          }
        ],
        "returns": [
          "Vector"
        ],
        "description": "Overloaded +. Adds vectors together."
      },
      {
        "kind": "function",
        "name": "__div",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          }
        ],
        "returns": [
          "Vector"
        ],
        "description": "Overloaded /. Divides vectors."
      },
      {
        "kind": "function",
        "name": "__eq",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          }
        ],
        "returns": [
          "bool"
        ],
        "description": "Overloaded ==. Tests for Equality."
      },
      {
        "kind": "function",
        "name": "__len",
        "available": "both",
        "args": [],
        "returns": [
          "float"
        ],
        "description": "Overloaded # returns the length of the vector."
      },
      {
        "kind": "function",
        "name": "__mul",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector",
              "float"
            ]
          }
        ],
        "returns": [
          "Vector"
        ],
        "description": "Overloaded * returns the vectors multiplied together. Can also be used to multiply with scalars."
      },
      {
        "kind": "function",
        "name": "__sub",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          }
        ],
        "returns": [
          "Vector"
        ],
        "description": "Overloaded -. Subtracts vectors."
      },
      {
        "kind": "function",
        "name": "__tostring",
        "available": "both",
        "args": [],
        "returns": [
          "string"
        ],
        "description": "Overloaded .. Converts vectors to strings."
      },
      {
        "kind": "function",
        "name": "__unm",
        "available": "both",
        "args": [],
        "returns": [
          "Vector"
        ],
        "description": "Overloaded - operator. Reverses the vector."
      },
      {
        "kind": "function",
        "name": "Cross",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          }
        ],
        "returns": [
          "Vector"
        ],
        "description": "Cross product of two vectors."
      },
      {
        "kind": "function",
        "name": "Dot",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          }
        ],
        "returns": [
          "float"
        ],
        "description": "Dot product of two vectors."
      },
      {
        "kind": "function",
        "name": "Length",
        "available": "both",
        "args": [],
        "returns": [
          "float"
        ],
        "description": "Length of the Vector."
      },
      {
        "kind": "function",
        "name": "Length2D",
        "available": "both",
        "args": [],
        "returns": [
          "float"
        ],
        "description": "Length of the Vector in the XY plane."
      },
      {
        "kind": "function",
        "name": "Normalized",
        "available": "both",
        "args": [],
        "returns": [
          "Vector"
        ],
        "description": "Returns the vector normalized."
      },
      {
        "kind": "function",
        "name": "Lerp",
        "available": "both",
        "args": [
          {
            "name": "b",
            "types": [
              "Vector"
            ]
          },
          {
            "name": "t",
            "types": [
              "float"
            ],
            "description": "Interpolant"
          }
        ],
        "returns": [
          "Vector"
        ],
        "description": "Linearly interpolates between two vectors.\nThis is most commonly used to find a point some fraction of the way along a line between two endpoints.\nSame as `this + (b - this) * t`."
      }
    ]
  },
  {
    "kind": "function",
    "name": "AddFOWViewer",
    "available": "server",
    "description": "Add temporary vision for a given team.",
    "returns": [
      "ViewerID"
    ],
    "args": [
      {
        "name": "teamId",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "radius",
        "types": [
          "float"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      },
      {
        "name": "obstructedVision",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "AngleDiff",
    "available": "both",
    "description": "Returns the number of degrees difference between two yaw angles.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "AnglesToVector",
    "available": "both",
    "description": "Generate a vector given a QAngles.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "QAngle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "AppendToLogFile",
    "available": "both",
    "deprecated": "AppendToLogFile is deprecated. Print to the console for logging instead.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ApplyDamage",
    "available": "server",
    "description": "Damage an npc.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "options",
        "types": [
          "ApplyDamageOptions"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "AxisAngleToQuaternion",
    "available": "both",
    "description": "Constructs a quaternion representing a rotation by angle around the specified vector axis.",
    "returns": [
      "Quaternion"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CalcClosestPointOnEntityOBB",
    "available": "both",
    "description": "Compute the closest point on the OBB of an entity.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CalcDistanceBetweenEntityOBB",
    "available": "both",
    "description": "Compute the distance between two entity OBB. A negative return value indicates an input error. A return value of zero indicates that the OBBs are overlapping.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CalcDistanceToLineSegment2D",
    "available": "both",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CancelEntityIOEvents",
    "available": "both",
    "description": "Create all I/O events for a particular entity.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "ehandle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CenterCameraOnUnit",
    "available": "server",
    "description": "Centers each players' camera on a unit.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "playerId",
        "types": [
          "PlayerID"
        ]
      },
      {
        "name": "unit",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ClearTeamCustomHealthbarColor",
    "available": "server",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateDamageInfo",
    "available": "server",
    "description": "Allocate a damageinfo object, used as an argument to TakeDamage(). Call DestroyDamageInfo( hInfo ) to free the object.",
    "returns": [
      "CTakeDamageInfo"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateEffect",
    "available": "both",
    "description": "Pass table - Inputs: entity, effect.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateHeroForPlayer",
    "available": "server",
    "description": "Creates a DOTA hero by its dota_npc_units.txt name and sets it as the given player's controlled hero.",
    "returns": [
      "CDOTA_BaseNPC_Hero"
    ],
    "args": [
      {
        "name": "heroName",
        "types": [
          "string"
        ]
      },
      {
        "name": "player",
        "types": [
          "CDOTAPlayerController"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateHTTPRequest",
    "available": "both",
    "description": "Create an HTTP request.",
    "returns": [
      "CScriptHTTPRequest"
    ],
    "args": [
      {
        "name": "method",
        "types": [
          "string"
        ]
      },
      {
        "name": "url",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateHTTPRequestScriptVM",
    "available": "both",
    "description": "Create an HTTP request.",
    "returns": [
      "CScriptHTTPRequest"
    ],
    "args": [
      {
        "name": "method",
        "types": [
          "string"
        ]
      },
      {
        "name": "url",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateIllusions",
    "available": "server",
    "description": "Create illusions of the passed hero that belong to passed unit using passed modifier data.",
    "returns": [
      {
        "kind": "array",
        "types": [
          "CDOTA_BaseNPC_Hero"
        ]
      }
    ],
    "args": [
      {
        "name": "owner",
        "types": [
          "CBaseEntity"
        ]
      },
      {
        "name": "heroToCopy",
        "types": [
          "CDOTA_BaseNPC_Hero"
        ]
      },
      {
        "name": "modifierKeys",
        "types": [
          "CreateIllusionsModifierKeys"
        ]
      },
      {
        "name": "numIllusions",
        "types": [
          "int"
        ]
      },
      {
        "name": "padding",
        "types": [
          "int"
        ]
      },
      {
        "name": "scramblePosition",
        "types": [
          "bool"
        ]
      },
      {
        "name": "findClearSpace",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateItem",
    "available": "server",
    "description": "Create a DOTA item.",
    "returns": [
      "CDOTA_Item",
      "nil"
    ],
    "args": [
      {
        "name": "itemName",
        "types": [
          "string"
        ]
      },
      {
        "name": "owner",
        "types": [
          "CDOTAPlayerController",
          "nil"
        ]
      },
      {
        "name": "purchaser",
        "types": [
          "CDOTA_BaseNPC_Hero",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateItemOnPositionForLaunch",
    "available": "server",
    "description": "Create a physical item at a given location, can start in air (but doesn't clear a space).",
    "returns": [
      "CDOTA_Item_Physical"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "item",
        "types": [
          "CDOTA_Item",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateItemOnPositionSync",
    "available": "server",
    "description": "Create a physical item at a given location.",
    "returns": [
      "CDOTA_Item_Physical"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "item",
        "types": [
          "CDOTA_Item",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateModifierThinker",
    "available": "server",
    "description": "Create a modifier not associated with an NPC.",
    "returns": [
      "CDOTA_BaseNPC"
    ],
    "args": [
      {
        "name": "caster",
        "types": [
          "CDOTA_BaseNPC",
          "nil"
        ]
      },
      {
        "name": "ability",
        "types": [
          "CDOTABaseAbility",
          "nil"
        ]
      },
      {
        "name": "modifierName",
        "types": [
          "string"
        ]
      },
      {
        "name": "paramTable",
        "types": [
          "table",
          "nil"
        ]
      },
      {
        "name": "origin",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "teamNumber",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "phantomBlocker",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateRune",
    "available": "server",
    "description": "Create a rune of the specified type.",
    "returns": [
      "CBaseAnimatingActivity"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "runeType",
        "types": [
          "DOTA_RUNES"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateSceneEntity",
    "available": "server",
    "description": "Create a scene entity to play the specified scene.",
    "returns": [
      "CBaseAnimatingActivity"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateTempTree",
    "available": "server",
    "description": "Create a temporary tree, uses a default tree model.",
    "returns": [
      "CBaseAnimatingActivity"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateTempTreeWithModel",
    "available": "server",
    "description": "Create a temporary tree, specifying the tree model name.",
    "returns": [
      "CBaseAnimatingActivity"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      },
      {
        "name": "modelName",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateTrigger",
    "available": "server",
    "description": "Creates and returns an AABB trigger.",
    "returns": [
      "CBaseTrigger"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateTriggerRadiusApproximate",
    "available": "server",
    "description": "Creates and returns an AABB trigger thats bigger than the radius provided.",
    "returns": [
      "CBaseTrigger"
    ],
    "args": [
      {
        "name": "vecOrigin",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "radius",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateUniformRandomStream",
    "available": "both",
    "description": "Creates a separate random number stream.",
    "returns": [
      "CScriptUniformRandomStream"
    ],
    "args": [
      {
        "name": "seed",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateUnitByName",
    "available": "server",
    "description": "Creates a unit by its dota_npc_units.txt name.\nThe spawned unit will not be controllable by default. You can use unit.SetControllableByPlayer() to change this.\nWarning: mass synchronous unit spawning may be slow. Prefer CreateUnitByNameAsync unless synchronous access is required.",
    "returns": [
      "CDOTA_BaseNPC"
    ],
    "args": [
      {
        "name": "unitName",
        "types": [
          "string"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "findClearSpace",
        "types": [
          "bool"
        ]
      },
      {
        "name": "npcOwner",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "entityOwner",
        "description": "This entity will be returned by GetOwner() and GetOwnerEntity(). GetPlayerOwner() and GetPlayerOwnerID() will be automatically inferred from this entity. Can be changed after spawn using SetOwner(entity). When spawning heroes, passing CDOTAPlayerController makes hero use owned wearables.",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateUnitByNameAsync",
    "available": "server",
    "description": "Creates a unit by its dota_npc_units.txt name.\nThe spawned unit will not be controllable by default. You can use unit.SetControllableByPlayer() to change this.",
    "returns": [
      "SpawnGroupHandle"
    ],
    "args": [
      {
        "name": "unitName",
        "types": [
          "string"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "findClearSpace",
        "types": [
          "bool"
        ]
      },
      {
        "name": "npcOwner",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "entityOwner",
        "description": "This entity will be returned by GetOwner() and GetOwnerEntity(). GetPlayerOwner() and GetPlayerOwnerID() will be automatically inferred from this entity. Can be changed after spawn using SetOwner(entity). When spawning heroes, passing CDOTAPlayerController makes hero use owned wearables.",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "callback",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "unit",
                "types": [
                  "CDOTA_BaseNPC"
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CreateUnitFromTable",
    "available": "server",
    "description": "Creates a DOTA unit by its dota_npc_units.txt name from a table of entity key values and a position to spawn at.",
    "returns": [
      "CDOTA_BaseNPC"
    ],
    "args": [
      {
        "name": "options",
        "types": [
          "CreateUnitFromTableOptions"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "CrossVectors",
    "available": "both",
    "description": "Cross product between two vectors.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "cvar_getf",
    "available": "both",
    "description": "Gets the value of the given cvar, as a float.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "cvar_setf",
    "available": "both",
    "description": "Sets the value of the given cvar, as a float.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugBreak",
    "available": "both",
    "description": "Breaks in the debugger.",
    "returns": [
      "nil"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "DebugChangeTeam",
    "available": "server",
    "description": "Changes the team of the hero.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugCreateHeroWithVariant",
    "available": "server",
    "description": "Creates a unit with a specified hero variant, controllable by the specified player.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "bool"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugCreateUnit",
    "available": "server",
    "description": "Creates a test unit controllable by the specified player.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "playerOwner",
        "types": [
          "CDOTAPlayerController"
        ]
      },
      {
        "name": "unitName",
        "types": [
          "string"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "bool"
        ]
      },
      {
        "name": "callback",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "unit",
                "types": [
                  "CDOTA_BaseNPC"
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawBox",
    "available": "both",
    "description": "Draw a debug overlay box.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg7",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg8",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawBoxDirection",
    "available": "both",
    "description": "Draw a debug forward box.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "cent",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "min",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "max",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "forward",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "rgb",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "a",
        "types": [
          "float"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawCircle",
    "available": "both",
    "description": "Draw a debug circle.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "center",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "rgb",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "a",
        "types": [
          "float"
        ]
      },
      {
        "name": "rad",
        "types": [
          "float"
        ]
      },
      {
        "name": "ztest",
        "types": [
          "bool"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawClear",
    "available": "both",
    "description": "Try to clear all the debug overlay info.",
    "returns": [
      "nil"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "DebugDrawLine",
    "available": "both",
    "description": "Draw a debug overlay line.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "origin",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "target",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "r",
        "types": [
          "int"
        ]
      },
      {
        "name": "g",
        "types": [
          "int"
        ]
      },
      {
        "name": "b",
        "types": [
          "int"
        ]
      },
      {
        "name": "ztest",
        "types": [
          "bool"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawLine_vCol",
    "available": "both",
    "description": "Draw a debug line using color vec.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "bool"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawScreenTextLine",
    "available": "both",
    "description": "Draw text with a line offset.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "x",
        "types": [
          "float"
        ]
      },
      {
        "name": "y",
        "types": [
          "float"
        ]
      },
      {
        "name": "lineOffset",
        "types": [
          "int"
        ]
      },
      {
        "name": "text",
        "types": [
          "string"
        ]
      },
      {
        "name": "r",
        "types": [
          "int"
        ]
      },
      {
        "name": "g",
        "types": [
          "int"
        ]
      },
      {
        "name": "b",
        "types": [
          "int"
        ]
      },
      {
        "name": "a",
        "types": [
          "int"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawSphere",
    "available": "both",
    "description": "Draw a debug sphere.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "center",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "rgb",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "a",
        "types": [
          "float"
        ]
      },
      {
        "name": "rad",
        "types": [
          "float"
        ]
      },
      {
        "name": "ztest",
        "types": [
          "bool"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugDrawText",
    "available": "both",
    "description": "Draw text in 3d.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "origin",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "text",
        "types": [
          "string"
        ]
      },
      {
        "name": "viewCheck",
        "types": [
          "bool"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DebugScreenTextPretty",
    "available": "both",
    "description": "Draw pretty debug text.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "x",
        "types": [
          "float"
        ]
      },
      {
        "name": "y",
        "types": [
          "float"
        ]
      },
      {
        "name": "lineOffset",
        "types": [
          "int"
        ]
      },
      {
        "name": "text",
        "types": [
          "string"
        ]
      },
      {
        "name": "r",
        "types": [
          "int"
        ]
      },
      {
        "name": "g",
        "types": [
          "int"
        ]
      },
      {
        "name": "b",
        "types": [
          "int"
        ]
      },
      {
        "name": "a",
        "types": [
          "int"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      },
      {
        "name": "font",
        "types": [
          "string"
        ]
      },
      {
        "name": "size",
        "types": [
          "int"
        ]
      },
      {
        "name": "bold",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DeepPrintTable",
    "description": "Print out a table (and subtables) to the console.",
    "available": "both",
    "args": [
      {
        "name": "table",
        "types": [
          "table",
          "nil"
        ]
      }
    ],
    "returns": [
      "nil"
    ]
  },
  {
    "kind": "function",
    "name": "DestroyDamageInfo",
    "available": "server",
    "description": "Free a damageinfo object that was created with CreateDamageInfo().",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "damageInfo",
        "types": [
          "CTakeDamageInfo"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DisconnectClient",
    "available": "server",
    "description": "Kick a specific player from the game.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DoCleaveAttack",
    "available": "server",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "attacker",
        "types": [
          "CDOTA_BaseNPC"
        ]
      },
      {
        "name": "target",
        "types": [
          "CDOTA_BaseNPC"
        ]
      },
      {
        "name": "ability",
        "types": [
          "CDOTABaseAbility",
          "nil"
        ]
      },
      {
        "name": "damage",
        "types": [
          "float"
        ]
      },
      {
        "name": "startRadius",
        "types": [
          "float"
        ]
      },
      {
        "name": "endRadius",
        "types": [
          "float"
        ]
      },
      {
        "name": "distance",
        "types": [
          "float"
        ]
      },
      {
        "name": "effectName",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DoEntFire",
    "available": "server",
    "description": "Generate and entity i/o event.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DoEntFireByInstanceHandle",
    "available": "server",
    "description": "Generate and entity i/o event.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DoIncludeScript",
    "available": "both",
    "description": "Execute a script (internal).",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DoScriptAssert",
    "available": "both",
    "description": "Asserts the passed in value. Prints out a message and brings up the assert dialog.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "bool"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DOTA_SpawnMapAtPosition",
    "available": "server",
    "description": "Spawn a .vmap at the target location.",
    "returns": [
      "SpawnGroupHandle"
    ],
    "args": [
      {
        "name": "mapName",
        "description": "A map name without extension, relative to \"maps\" directory.",
        "types": [
          "string"
        ]
      },
      {
        "name": "location",
        "description": "The value of x and y must be multiple the grid size 64.\nTo avoid GridNav conflicts, tiles on these coordinates on the base map must be empty.",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "deferCompletion",
        "description": "If true, to finish map loading you need to call ManuallyTriggerSpawnGroupCompletion(spawnGroupHandle).",
        "types": [
          "bool"
        ]
      },
      {
        "name": "onReadyToSpawn",
        "description": "Called only when deferCompletion is true.",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "spawnGroupHandle",
                "types": [
                  "SpawnGroupHandle"
                ]
              }
            ]
          }
        ]
      },
      {
        "name": "onSpawnComplete",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "spawnGroupHandle",
                "types": [
                  "SpawnGroupHandle"
                ]
              }
            ]
          }
        ]
      },
      {
        "name": "context",
        "types": [
          "table",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DotProduct",
    "available": "server",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DoUniqueString",
    "available": "both",
    "description": "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.",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "seed",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DropNeutralItemAtPositionForHero",
    "available": "server",
    "description": "Drop a neutral item for the team of the hero at the given tier.",
    "returns": [
      "CDOTA_Item_Physical"
    ],
    "args": [
      {
        "name": "itemName",
        "description": "Can be any item name, it does not have to be neutral.",
        "types": [
          "string"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "unit",
        "types": [
          "CDOTA_BaseNPC"
        ]
      },
      {
        "name": "tier",
        "description": "Zero-based tier number.",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "DropNeutralItemAtPositionForHeroWithOffset",
    "available": "server",
    "description": "Drop a neutral item for the team of the hero at the given tier.",
    "returns": [
      "handle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "bool"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Dynamic_Wrap",
    "description": "A function to re-lookup a function by name every time.",
    "available": "both",
    "args": [
      {
        "name": "context",
        "types": [
          "table"
        ]
      },
      {
        "name": "name",
        "types": [
          "string"
        ]
      }
    ],
    "returns": [
      "unknown"
    ]
  },
  {
    "kind": "function",
    "name": "EmitAnnouncerSound",
    "available": "server",
    "description": "Emit an announcer sound for all players.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitAnnouncerSoundForPlayer",
    "available": "server",
    "description": "Emit an announcer sound for a player.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "playerId",
        "types": [
          "PlayerID"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitAnnouncerSoundForTeam",
    "available": "server",
    "description": "Emit an announcer sound for a team.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitAnnouncerSoundForTeamOnLocation",
    "available": "server",
    "description": "Emit an announcer sound for a team at a specific location.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitGlobalSound",
    "available": "server",
    "description": "Play named sound for all players.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitSoundOn",
    "available": "both",
    "description": "Play named sound on Entity.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "entity",
        "types": [
          "CBaseEntity"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitSoundOnClient",
    "available": "both",
    "description": "Play named sound only on the client for the passed in player.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitSoundOnEntityForPlayer",
    "available": "server",
    "description": "Emit a sound on an entity for only a specific player.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitSoundOnLocationForAllies",
    "available": "server",
    "description": "Emit a sound on a location from a unit, only for players allied with that unit.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "caster",
        "types": [
          "CBaseEntity"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitSoundOnLocationForPlayer",
    "available": "server",
    "description": "Emit a sound on a location for only a specific player.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EmitSoundOnLocationWithCaster",
    "available": "server",
    "description": "Emit a sound on a location from a unit.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "caster",
        "types": [
          "CDOTA_BaseNPC"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "EntIndexToHScript",
    "available": "both",
    "description": "Turn an entity index integer to an HScript representing that entity's script instance.",
    "returns": [
      "CBaseEntity",
      "nil"
    ],
    "args": [
      {
        "name": "entityIndex",
        "types": [
          "EntityIndex"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ExecuteOrderFromTable",
    "available": "server",
    "description": "Issue an order from a script table.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "order",
        "types": [
          "ExecuteOrderOptions"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ExponentialDecay",
    "available": "both",
    "description": "Smooth curve decreasing slower as it approaches zero.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FindClearRandomPositionAroundUnit",
    "available": "server",
    "description": "Finds a clear random position around a given target unit, using the target unit's padded collision radius.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FindClearSpaceForUnit",
    "available": "server",
    "description": "Place a unit somewhere not already occupied.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "unit",
        "types": [
          "CDOTA_BaseNPC"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FindSpawnEntityForTeam",
    "available": "server",
    "description": "Find a spawn point for the given team.",
    "returns": [
      "CBaseEntity",
      "nil"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FindUnitsInLine",
    "available": "server",
    "description": "Find units that intersect the given line with the given flags.",
    "returns": [
      {
        "kind": "array",
        "types": [
          "CDOTA_BaseNPC"
        ]
      }
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "startPos",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "endPos",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "cacheUnit",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "width",
        "types": [
          "float"
        ]
      },
      {
        "name": "teamFilter",
        "types": [
          "DOTA_UNIT_TARGET_TEAM"
        ]
      },
      {
        "name": "typeFilter",
        "types": [
          "DOTA_UNIT_TARGET_TYPE"
        ]
      },
      {
        "name": "flagFilter",
        "types": [
          "DOTA_UNIT_TARGET_FLAGS"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FindUnitsInRadius",
    "available": "server",
    "description": "Finds the units in a given radius with the given flags.",
    "returns": [
      {
        "kind": "array",
        "types": [
          "CDOTA_BaseNPC"
        ]
      }
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "cacheUnit",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "radius",
        "types": [
          "float"
        ]
      },
      {
        "name": "teamFilter",
        "types": [
          "DOTA_UNIT_TARGET_TEAM"
        ]
      },
      {
        "name": "typeFilter",
        "types": [
          "DOTA_UNIT_TARGET_TYPE"
        ]
      },
      {
        "name": "flagFilter",
        "types": [
          "DOTA_UNIT_TARGET_FLAGS"
        ]
      },
      {
        "name": "order",
        "types": [
          "FindOrder"
        ]
      },
      {
        "name": "canGrowCache",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FireEntityIOInputNameOnly",
    "available": "both",
    "description": "Fire Entity's Action Input w/no data.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "ehandle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FireEntityIOInputString",
    "available": "both",
    "description": "Fire Entity's Action Input with passed String - you own the memory.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "ehandle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FireEntityIOInputVec",
    "available": "both",
    "description": "Fire Entity's Action Input with passed Vector - you own the memory.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "ehandle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FireGameEvent",
    "available": "both",
    "description": "Fire a game event.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "eventName",
        "types": [
          "string"
        ]
      },
      {
        "name": "eventData",
        "types": [
          "table"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FireGameEventLocal",
    "available": "both",
    "description": "Fire a game event without broadcasting to the client.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "eventName",
        "types": [
          "string"
        ]
      },
      {
        "name": "eventData",
        "types": [
          "table"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "FrameTime",
    "available": "both",
    "description": "Get the time spent on the server in the last frame.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetAbilityKeyValuesByName",
    "available": "both",
    "description": "Get ability data by ability name.",
    "returns": [
      "table"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetAbilityTextureNameForAbility",
    "available": "both",
    "description": "Gets the ability texture name for an ability.",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "abilityName",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetActiveSpawnGroupHandle",
    "available": "both",
    "description": "Returns the currently active spawn group handle.",
    "returns": [
      "SpawnGroupHandle"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetClearSpaceForUnit",
    "available": "server",
    "description": "Returns a location for the unit that is not already occupied.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetDedicatedServerKey",
    "available": "server",
    "deprecated": "This function is unsafe. Prefer using `GetDedicatedServerKeyV2` instead.",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "version",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetDedicatedServerKeyV2",
    "available": "server",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "version",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetDedicatedServerKeyV3",
    "available": "server",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "version",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetEntityIndexForTreeId",
    "available": "server",
    "description": "Get the enity index for a tree id specified as the entindex_target of a DOTA_UNIT_ORDER_CAST_TARGET_TREE.",
    "returns": [
      "EntityIndex"
    ],
    "args": [
      {
        "name": "treeId",
        "types": [
          "uint"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetFrameCount",
    "available": "both",
    "description": "Returns the engines current frame count.",
    "returns": [
      "int"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetGroundHeight",
    "available": "server",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "unitHull",
        "types": [
          "CDOTA_BaseNPC",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetGroundPosition",
    "available": "server",
    "description": "Returns the supplied position moved to the ground. Second parameter is an NPC for measuring movement collision hull offset.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "unitHull",
        "types": [
          "CDOTA_BaseNPC",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetItemCost",
    "available": "server",
    "description": "Get the cost of an item by name.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetItemDefOwnedCount",
    "available": "server",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetItemDefQuantity",
    "available": "server",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetListenServerHost",
    "available": "both",
    "description": "Get the local player on a listen server.",
    "returns": [
      "CDOTAPlayerController"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetLobbyEventGameDetails",
    "available": "server",
    "returns": [
      "table"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetLocalPlayerID",
    "available": "client",
    "description": "Get the local player ID.",
    "returns": [
      "PlayerID"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetLocalPlayerTeam",
    "available": "client",
    "description": "Get the local player team.",
    "returns": [
      "DOTATeam_t"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetMapName",
    "available": "both",
    "description": "Get the name of the map.",
    "returns": [
      "string"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetMaxOutputDelay",
    "available": "both",
    "description": "Get the longest delay for all events attached to an output.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "ehandle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetPhysAngularVelocity",
    "available": "both",
    "description": "Get Angular Velocity for VPHYS or normal object. Returns a vector of the axis of rotation, multiplied by the degrees of rotation per second.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetPhysVelocity",
    "available": "both",
    "description": "Get Velocity for VPHYS or normal object.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetPotentialNeutralItemDrop",
    "available": "server",
    "description": "Given the item tier and the team, roll for the name of a valid neutral item drop, considering previous drops and consumables.",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "tier",
        "types": [
          "int"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetSystemDate",
    "available": "server",
    "description": "Get the current real world date.",
    "returns": [
      "string"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetSystemTime",
    "available": "server",
    "description": "Get the current real world time.",
    "returns": [
      "string"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetSystemTimeMS",
    "available": "server",
    "description": "Get system time in milliseconds.",
    "returns": [
      "double"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetTargetAOELocation",
    "available": "server",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg7",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetTargetLinearLocation",
    "available": "server",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg7",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetTeamHeroKills",
    "available": "server",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetTeamName",
    "available": "server",
    "returns": [
      "string"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetTreeIdForEntityIndex",
    "available": "server",
    "description": "Given and entity index of a tree, get the tree id for use for use with with unit orders.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "entityIndex",
        "types": [
          "EntityIndex"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetUnitKeyValuesByName",
    "available": "both",
    "description": "Get unit data by ability name.",
    "returns": [
      "table"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "GetWorldMaxX",
    "available": "server",
    "description": "Gets the world's maximum X position.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetWorldMaxY",
    "available": "server",
    "description": "Gets the world's maximum Y position.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetWorldMinX",
    "available": "server",
    "description": "Gets the world's minimum X position.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetWorldMinY",
    "available": "server",
    "description": "Gets the world's minimum Y position.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "GetXPNeededToReachNextLevel",
    "available": "server",
    "description": "Get amount of XP required to reach the next level.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "level",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "HeroMaxLevel",
    "available": "server",
    "description": "Max out a hero's level and give them all appropriate abilities and talents.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "InitLogFile",
    "available": "both",
    "deprecated": "InitLogFile is deprecated. Print to the console for logging instead.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "IsClient",
    "available": "both",
    "description": "Returns true if this is lua running from the client.dll.",
    "returns": [
      "bool"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "IsDedicatedServer",
    "available": "both",
    "description": "Returns true if this server is a dedicated server.",
    "returns": [
      "bool"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "IsDotaAltPressed",
    "available": "client",
    "description": "Returns true if whatever alt is remapped to is pressed.",
    "returns": [
      "bool"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "IsDotaCtrlPressed",
    "available": "client",
    "description": "Returns true if whatever ctrl is remapped to is pressed.",
    "returns": [
      "bool"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "IsInToolsMode",
    "available": "both",
    "description": "Returns true if this is lua running within tools mode.",
    "returns": [
      "bool"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "IsLocationVisible",
    "available": "server",
    "description": "Ask fog of war if a location is visible to a certain team.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "IsMangoTree",
    "available": "server",
    "description": "Is this entity a mango tree? (hEntity).",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "entity",
        "types": [
          "CBaseEntity"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "IsMarkedForDeletion",
    "available": "both",
    "description": "Returns true if the entity is valid and marked for deletion.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "entity",
        "types": [
          "CBaseEntity"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "IsServer",
    "available": "both",
    "description": "Returns true if this is lua running from the server.dll.",
    "returns": [
      "bool"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "IsUnitInValidPosition",
    "available": "server",
    "description": "Returns true if the unit is in a valid position in the gridnav.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "unit",
        "types": [
          "CBaseEntity"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "IsValidEntity",
    "available": "both",
    "description": "Checks to see if the given hScript is a valid entity.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "entity",
        "types": [
          "table",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "LerpVectors",
    "available": "both",
    "description": "Lerp between two vectors by a float factor returning new vector.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "LimitPathingSearchDepth",
    "available": "server",
    "description": "Set the limit on the pathfinding search space.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "LinkLuaModifier",
    "available": "both",
    "description": "Link a lua-defined modifier with the associated class.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "className",
        "types": [
          "string"
        ]
      },
      {
        "name": "filePath",
        "types": [
          "string"
        ]
      },
      {
        "name": "luaModifierType",
        "types": [
          "LuaModifierType"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ListenToGameEvent",
    "available": "both",
    "description": "Register as a listener for a game event from script.",
    "returns": [
      "EventListenerID"
    ],
    "args": [
      {
        "name": "eventName",
        "types": [
          "string"
        ]
      },
      {
        "name": "listener",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "event",
                "types": [
                  "table"
                ]
              }
            ]
          }
        ]
      },
      {
        "name": "context",
        "types": [
          "table",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "LoadKeyValues",
    "available": "both",
    "description": "Creates a table from the specified keyvalues text file.",
    "returns": [
      "table"
    ],
    "args": [
      {
        "name": "filePath",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "LoadKeyValuesFromString",
    "available": "both",
    "description": "Creates a table from the specified keyvalues string.",
    "returns": [
      "table"
    ],
    "args": [
      {
        "name": "kvString",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "LocalTime",
    "available": "both",
    "description": "Get the current local time.",
    "returns": [
      "LocalTime"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "MakeStringToken",
    "available": "both",
    "description": "Checks to see if the given hScript is a valid entity.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ManuallyTriggerSpawnGroupCompletion",
    "available": "both",
    "description": "Triggers the creation of entities in a manually-completed spawn group.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "handle",
        "types": [
          "SpawnGroupHandle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "MinimapEvent",
    "available": "server",
    "description": "Start a minimap event.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "entity",
        "types": [
          "CBaseEntity"
        ]
      },
      {
        "name": "xCoord",
        "types": [
          "int"
        ]
      },
      {
        "name": "yCoord",
        "types": [
          "int"
        ]
      },
      {
        "name": "eventType",
        "types": [
          "DOTAMinimapEvent_t"
        ]
      },
      {
        "name": "eventDuration",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Msg",
    "available": "both",
    "description": "Print a message.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "message",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PauseGame",
    "available": "server",
    "description": "Pause or unpause the game.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "paused",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Plat_FloatTime",
    "available": "both",
    "description": "Get the current float time from the engine.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "PlayerInstanceFromIndex",
    "available": "both",
    "description": "Get a script instance of a player by index.",
    "returns": [
      "CDOTAPlayerController",
      "nil"
    ],
    "args": [
      {
        "name": "entityIndex",
        "types": [
          "EntityIndex"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheEntityFromTable",
    "available": "both",
    "description": "Precache an entity from KeyValues in table.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheEntityListFromTable",
    "available": "both",
    "description": "Precache a list of entity KeyValues tables.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheItemByNameAsync",
    "available": "server",
    "description": "Asynchronously precaches a DOTA item by its dota_npc_items.txt name, provides a callback when it's finished.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "itemName",
        "types": [
          "string"
        ]
      },
      {
        "name": "callback",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "precacheId",
                "types": [
                  "int"
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheItemByNameSync",
    "available": "server",
    "description": "Precaches a DOTA item by its dota_npc_items.txt name.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "itemName",
        "types": [
          "string"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheModel",
    "available": "server",
    "description": "Manually precache a single model.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "modelName",
        "types": [
          "string"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheResource",
    "available": "server",
    "description": "Manually precache a single resource.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheUnitByNameAsync",
    "available": "server",
    "description": "Asynchronously precaches a DOTA unit by its dota_npc_units.txt name, provides a callback when it's finished.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "unitName",
        "types": [
          "string"
        ]
      },
      {
        "name": "callback",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "precacheId",
                "types": [
                  "int"
                ]
              }
            ]
          }
        ]
      },
      {
        "name": "playerId",
        "types": [
          "PlayerID",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheUnitByNameSync",
    "available": "server",
    "description": "Precaches a DOTA unit by its dota_npc_units.txt name.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "unitName",
        "types": [
          "string"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      },
      {
        "name": "playerId",
        "types": [
          "PlayerID",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheUnitFromTableAsync",
    "available": "server",
    "description": "Precaches a DOTA unit from a table of entity key values.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "callback",
        "types": [
          {
            "kind": "function",
            "returns": [
              "nil"
            ],
            "args": [
              {
                "name": "precacheId",
                "types": [
                  "int"
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrecacheUnitFromTableSync",
    "available": "server",
    "description": "Precaches a DOTA unit from a table of entity key values.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "context",
        "types": [
          "CScriptPrecacheContext"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "PrintLinkedConsoleMessage",
    "available": "both",
    "description": "Print a console message with a linked console command.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "message",
        "types": [
          "string"
        ]
      },
      {
        "name": "tooltip",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "QSlerp",
    "available": "both",
    "description": "Spherical lerp of angle from->to based on time.",
    "returns": [
      "QAngle"
    ],
    "args": [
      {
        "name": "from_angle",
        "types": [
          "QAngle"
        ]
      },
      {
        "name": "to_angle",
        "types": [
          "QAngle"
        ]
      },
      {
        "name": "time",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RandomFloat",
    "available": "server",
    "description": "Get a random float within a range.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "min",
        "types": [
          "float"
        ]
      },
      {
        "name": "max",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RandomFloatWrapper",
    "available": "both",
    "description": "Generate a random floating point number within a range, inclusive.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RandomInt",
    "available": "both",
    "description": "Get a random int within a range.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "min",
        "types": [
          "int"
        ]
      },
      {
        "name": "max",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RandomVector",
    "available": "server",
    "description": "Get a random 2D vector of the given length.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "length",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RecordNeutralItemEarned",
    "available": "server",
    "description": "Record in player resources that a new neutral item has been created, if it hasn't already been, and show a toast.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RegisterCustomAnimationScriptForModel",
    "available": "server",
    "description": "Register a custom animation script to run when a model loads.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RegisterSpawnGroupFilterProxy",
    "available": "both",
    "description": "Create a C proxy for a script-based spawn group filter.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ReloadMOTD",
    "available": "both",
    "description": "Reloads the MotD file.",
    "returns": [
      "nil"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "RemoveFOWViewer",
    "available": "server",
    "description": "Remove temporary vision for a given team.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "teamId",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "viewerId",
        "types": [
          "ViewerID"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RemoveSpawnGroupFilterProxy",
    "available": "both",
    "description": "Remove the C proxy for a script-based spawn group filter.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ResolveNPCPositions",
    "available": "server",
    "description": "Check and fix units that have been assigned a position inside collision radius of other NPCs.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "location",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "radius",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RollPercentage",
    "available": "server",
    "description": "Rolls a number from 1 to 100 and returns true if the roll is less than or equal to the number specified.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "successPercentage",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RollPseudoRandomPercentage",
    "available": "server",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "chance",
        "types": [
          "uint"
        ]
      },
      {
        "name": "pseudoRandomId",
        "description": "Any number can be specified. Using DOTA_PSEUDO_RANDOM_NONE makes it act as a pure RNG.",
        "types": [
          "PseudoRandom"
        ]
      },
      {
        "name": "unit",
        "types": [
          "CDOTA_BaseNPC"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RotateOrientation",
    "available": "both",
    "description": "Rotate a QAngle by another QAngle.",
    "returns": [
      "QAngle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "QAngle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "QAngle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RotatePosition",
    "available": "both",
    "description": "Rotate a Vector around a point.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "QAngle"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RotateQuaternionByAxisAngle",
    "available": "both",
    "description": "Rotates a quaternion by the specified angle around the specified vector axis.",
    "returns": [
      "Quaternion"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Quaternion"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RotationDelta",
    "available": "both",
    "description": "Find the delta between two QAngles.",
    "returns": [
      "QAngle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "QAngle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "QAngle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "RotationDeltaAsAngularVelocity",
    "available": "both",
    "description": "Converts delta QAngle to an angular velocity Vector.",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "QAngle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "QAngle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Say",
    "available": "server",
    "description": "Have Entity say string, and teamOnly or not.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "entity",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      },
      {
        "name": "message",
        "types": [
          "string"
        ]
      },
      {
        "name": "teamOnly",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ScreenShake",
    "available": "both",
    "description": "Start a screenshake.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "center",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "amplitude",
        "types": [
          "float"
        ]
      },
      {
        "name": "frequency",
        "types": [
          "float"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      },
      {
        "name": "radius",
        "types": [
          "float"
        ]
      },
      {
        "name": "command",
        "description": "SHAKE_START = 0, SHAKE_STOP = 1",
        "types": [
          {
            "kind": "literal",
            "value": 0
          },
          {
            "kind": "literal",
            "value": 1
          }
        ]
      },
      {
        "name": "airShake",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Script_RandomFloat",
    "available": "both",
    "description": "Get a random float within a range.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Script_RemapValClamped",
    "available": "server",
    "description": "RemapValClamped.",
    "returns": [
      "float"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SendOverheadEventMessage",
    "available": "server",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "sendToPlayer",
        "types": [
          "CDOTAPlayerController",
          "nil"
        ]
      },
      {
        "name": "messageType",
        "types": [
          "DOTA_OVERHEAD_ALERT"
        ]
      },
      {
        "name": "targetEntity",
        "types": [
          "CDOTA_BaseNPC"
        ]
      },
      {
        "name": "value",
        "types": [
          "int"
        ]
      },
      {
        "name": "sourcePlayer",
        "types": [
          "CDOTAPlayerController",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SendToConsole",
    "available": "both",
    "description": "Send a string to the console as a client command.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SendToServerConsole",
    "available": "server",
    "description": "Send a string to the console as a server command.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetOpvarFloatAll",
    "available": "both",
    "description": "Sets an opvar value for all players.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetOpvarFloatPlayer",
    "available": "both",
    "description": "Sets an opvar value for a single player.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetPhysAngularVelocity",
    "available": "both",
    "description": "Set Angular Velocity for VPHYS or normal object, from a vector of the axis of rotation, multiplied by the degrees of rotation per second.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetQuestName",
    "available": "both",
    "description": "Set the current quest name.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetQuestPhase",
    "available": "both",
    "description": "Set the current quest phase.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetRenderingEnabled",
    "available": "both",
    "deprecated": "Instantly crashes the game.",
    "description": "Set rendering on/off for an ehandle.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "ehandle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "bool"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SetTeamCustomHealthbarColor",
    "available": "server",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      },
      {
        "name": "r",
        "types": [
          "int"
        ]
      },
      {
        "name": "g",
        "types": [
          "int"
        ]
      },
      {
        "name": "b",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ShowCustomHeaderMessage",
    "available": "server",
    "description": "Supports localized strings - %s1 = PlayerName, %s2 = Value, %s3 = TeamName.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "message",
        "types": [
          "string"
        ]
      },
      {
        "name": "playerId",
        "types": [
          "PlayerID"
        ]
      },
      {
        "name": "value",
        "types": [
          "int"
        ]
      },
      {
        "name": "time",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ShowGenericPopup",
    "available": "server",
    "description": "Show a generic popup dialog for all players.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ShowGenericPopupToPlayer",
    "available": "server",
    "description": "Show a generic popup dialog to a specific player.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "ShowMessage",
    "available": "server",
    "description": "Print a hud message on all clients.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnDOTAShopTriggerRadiusApproximate",
    "available": "server",
    "returns": [
      "CDOTA_ShopTrigger"
    ],
    "args": [
      {
        "name": "origin",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "radius",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnEffigyOfUnitOrModel",
    "available": "server",
    "description": "Spawn an effigy of the target unit.",
    "returns": [
      "handle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "float"
        ]
      },
      {
        "name": "arg7",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnEntityFromTableAsynchronous",
    "available": "both",
    "description": "Asynchronously spawns a single entity from a table.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnEntityFromTableSynchronous",
    "available": "both",
    "description": "Synchronously spawns a single entity from a table.",
    "returns": [
      "CBaseEntity"
    ],
    "args": [
      {
        "name": "baseclass",
        "types": [
          "string"
        ]
      },
      {
        "name": "data",
        "types": [
          "table"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnEntityGroupFromTable",
    "available": "both",
    "description": "Hierarchically spawn an entity group from a set of spawn tables.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "bool"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnEntityListFromTableAsynchronous",
    "available": "both",
    "description": "Asynchronously spawn an entity group from a list of spawn tables. A callback will be triggered when the spawning is complete.",
    "returns": [
      "int"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnEntityListFromTableSynchronous",
    "available": "both",
    "description": "Synchronously spawn an entity group from a list of spawn tables.",
    "returns": [
      "handle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SpawnMangoTree",
    "available": "server",
    "description": "Spawn a mango tree.",
    "returns": [
      "handle"
    ],
    "args": [
      {
        "name": "pos",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "team",
        "types": [
          "int"
        ]
      },
      {
        "name": "duration",
        "types": [
          "float"
        ]
      },
      {
        "name": "mangoInterval",
        "types": [
          "float"
        ]
      },
      {
        "name": "initialMangoes",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SplineQuaternions",
    "available": "both",
    "description": "Very basic interpolation of v0 to v1 over t on [0,1].",
    "returns": [
      "Quaternion"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Quaternion"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Quaternion"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "SplineVectors",
    "available": "both",
    "description": "Very basic interpolation of v0 to v1 over t on [0,1].",
    "returns": [
      "Vector"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "Vector"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "float"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StartSoundEvent",
    "available": "both",
    "description": "Start a sound event.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StartSoundEventFromPosition",
    "available": "both",
    "description": "Start a sound event from position.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "position",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StartSoundEventFromPositionReliable",
    "available": "both",
    "description": "Start a sound event from position with reliable delivery.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "position",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StartSoundEventFromPositionUnreliable",
    "available": "both",
    "description": "Start a sound event from position with optional delivery.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "soundName",
        "types": [
          "string"
        ]
      },
      {
        "name": "position",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StartSoundEventReliable",
    "available": "both",
    "description": "Start a sound event with reliable delivery.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StartSoundEventUnreliable",
    "available": "both",
    "description": "Start a sound event with optional delivery.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StopEffect",
    "available": "both",
    "description": "Pass entity and effect name.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StopGlobalSound",
    "available": "server",
    "description": "Stop named sound for all players.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StopListeningToAllGameEvents",
    "available": "both",
    "description": "Stop listening to all game events within a specific context.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StopListeningToGameEvent",
    "available": "both",
    "description": "Stop listening to a particular game event.",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "listenerId",
        "types": [
          "EventListenerID"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StopSoundEvent",
    "available": "both",
    "description": "Stops a sound event with optional delivery.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "StopSoundOn",
    "available": "both",
    "description": "Stop named sound on Entity.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Time",
    "available": "both",
    "description": "Get the current server time.",
    "returns": [
      "float"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "TraceCollideable",
    "available": "both",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "query",
        "types": [
          "TraceCollideableInputs"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "TraceHull",
    "available": "both",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "query",
        "types": [
          "TraceHullInputs"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "TraceLine",
    "available": "both",
    "returns": [
      "bool"
    ],
    "args": [
      {
        "name": "query",
        "types": [
          "TraceLineInputs"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UnitFilter",
    "available": "both",
    "description": "Check if a unit passes a set of filters.",
    "returns": [
      "UnitFilterResult"
    ],
    "args": [
      {
        "name": "npc",
        "types": [
          "CDOTA_BaseNPC"
        ]
      },
      {
        "name": "teamFilter",
        "types": [
          "DOTA_UNIT_TARGET_TEAM"
        ]
      },
      {
        "name": "typeFilter",
        "types": [
          "DOTA_UNIT_TARGET_TYPE"
        ]
      },
      {
        "name": "flagFilter",
        "types": [
          "DOTA_UNIT_TARGET_FLAGS"
        ]
      },
      {
        "name": "team",
        "types": [
          "DOTATeam_t"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UnloadSpawnGroup",
    "available": "both",
    "description": "Unload a spawn group by name.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UnloadSpawnGroupByHandle",
    "available": "both",
    "description": "Unload a spawn group by handle.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "handle",
        "types": [
          "SpawnGroupHandle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UpdateEventPoints",
    "available": "server",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "eventPointData",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UserIDToControllerHScript",
    "available": "both",
    "description": "Turn a userid integer (typically, fields named 'userid' in game events) to an HScript representing the associated player controller's script instance.",
    "returns": [
      "handle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_MessageText",
    "available": "server",
    "description": "Sends colored text to one client.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_MessageText_WithContext",
    "available": "server",
    "description": "Sends colored text to one client. (Valid context keys: player_id, value, team_id).",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg7",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_MessageTextAll",
    "available": "server",
    "description": "Sends colored text to all clients.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_MessageTextAll_WithContext",
    "available": "server",
    "description": "Sends colored text to all clients. (Valid context keys: player_id, value, team_id).",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "string"
        ]
      },
      {
        "name": "arg2",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg3",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg4",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg5",
        "types": [
          "int"
        ]
      },
      {
        "name": "arg6",
        "types": [
          "handle"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_Remove",
    "available": "both",
    "description": "Removes the specified entity.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "entity",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_RemoveImmediate",
    "available": "both",
    "description": "Immediately removes the specified entity.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "entity",
        "types": [
          "CBaseEntity",
          "nil"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_ResetMessageText",
    "available": "server",
    "description": "Clear all message text on one client.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "int"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "UTIL_ResetMessageTextAll",
    "available": "server",
    "description": "Clear all message text from all clients.",
    "returns": [
      "nil"
    ],
    "args": []
  },
  {
    "kind": "function",
    "name": "VectorAngles",
    "available": "server",
    "returns": [
      "QAngle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "VectorToAngles",
    "available": "both",
    "description": "Get Qangles (with no roll) for a Vector.",
    "returns": [
      "QAngle"
    ],
    "args": [
      {
        "name": "arg1",
        "types": [
          "Vector"
        ]
      }
    ]
  },
  {
    "kind": "function",
    "name": "Warning",
    "available": "both",
    "description": "Print a warning.",
    "returns": [
      "nil"
    ],
    "args": [
      {
        "name": "message",
        "types": [
          "string"
        ]
      }
    ]
  }
]
