Objects
base.obj
Properties:
booleanbase.validnumberbase.typenumberbase.index
The index of object
numberbase.index32
The object_id of object
numberbase.teamstringbase.namenumberbase.networkIDnumberbase.networkID32
The network_id of object
numberbase.xnumberbase.ynumberbase.zvec3base.posvec2base.pos2Dbooleanbase.isOnScreennumberbase.selectionHeightnumberbase.selectionRadiusvec3base.minBoundingBoxvec3base.maxBoundingBox
hero.obj
Properties:
stringhero.namestringhero.charNamestringhero.recallNametexture.objhero.iconCircletexture.objhero.iconSquarestringhero.recallNamebooleanhero.isOnScreenbooleanhero.inShopRangebooleanhero.isDeadbooleanhero.isAlivebooleanhero.isVisiblebooleanhero.isRecallingbooleanhero.isTargetablebooleanhero.parEnabledbooleanhero.sarEnabledvec3hero.posvec3hero.directionvec2hero.pos2Dvec2hero.direction2Dvec2hero.barPosnumberhero.barWidthnumberhero.barHeightnumberhero.barScale
The health bar scale factor, used to scale UI elements relative to the health bar
-- Draw spell cooldown tracker aligned with the health bar
local g_screen_scale = graphics.height > 1080 and (graphics.height / 1080.0 * 0.9) or 1.0
local g_bar_offset = vec2(-52.0, 16.0)
local g_spell_size = vec2(25.3, 5.0)
local g_spell_gap = 2.0
cb.add(cb.draw, function()
for i, hero in ipairs(game.heroes) do
if hero.isVisible and hero.isAlive and hero.isOnScreen then
local hp_scale = hero.barScale and hero.barScale or 1
local main_pos = hero.barPos + g_bar_offset * hp_scale -- pos need calc new `hero.barScale`
local size = g_spell_size * hp_scale * g_screen_scale -- size need calc screen scale also
for slot = 0, 3 do
local pos = main_pos + vec2((size.x + g_spell_gap) * slot, 0)
graphics.draw_rect_filled(pos, vec2(pos.x + size.x, pos.y + size.y), 0x80000000)
end
end
end
end)path.objhero.pathspell.objhero.activeSpelltablehero.buff
-- use BUFF_XXX for buff type
if hero.buff[BUFF_BLIND] then
print('player blind')
end
-- Use the name(in lowercase) to get the the specified name
if hero.buff['kaisaeevolved'] then
print('has buff KaisaEEvolved')
endrunemanager.objhero.runenumberhero.typenumberhero.indexnumberhero.networkIDnumberhero.networkID32numberhero.teamnumberhero.xnumberhero.ynumberhero.znumberhero.selectionHeightnumberhero.selectionRadiusnumberhero.boundingRadiusnumberhero.overrideCollisionRadiusnumberhero.pathfindingCollisionRadiusvec3hero.minBoundingBoxvec3hero.maxBoundingBoxnumberhero.deathTimenumberhero.healthnumberhero.maxHealthnumberhero.maxHealthPenaltynumberhero.allShieldnumberhero.physicalShieldnumberhero.magicalShieldnumberhero.champSpecificHealthnumberhero.stopShieldFadenumberhero.isTargetableToTeamFlagsnumberhero.mananumberhero.maxMananumberhero.baseAttackDamagenumberhero.baseAd
alias of
baseAttackDamage
numberhero.bonusAdnumberhero.totalAd
The TotalAttackDamage
numberhero.totalAp
The TotalAbilityPower
numberhero.armornumberhero.spellBlocknumberhero.attackSpeedModnumberhero.flatPhysicalDamageModnumberhero.percentPhysicalDamageModnumberhero.flatMagicDamageModnumberhero.percentMagicDamageModnumberhero.healthRegenRatenumberhero.bonusArmornumberhero.bonusSpellBlocknumberhero.flatBubbleRadiusModnumberhero.percentBubbleRadiusModnumberhero.moveSpeednumberhero.moveSpeedBaseIncreasenumberhero.scaleSkinCoefnumberhero.goldnumberhero.goldTotalnumberhero.minimumGoldnumberhero.evolvePointsnumberhero.evolveFlagnumberhero.inputLocksnumberhero.skillUpLevelDeltaReplicatenumberhero.manaCost0numberhero.manaCost1numberhero.manaCost2numberhero.manaCost3numberhero.baseAbilityDamagenumberhero.dodgenumberhero.critnumberhero.parRegenRatenumberhero.attackRangenumberhero.flatMagicReductionnumberhero.percentMagicReductionnumberhero.flatCastRangeModnumberhero.percentCooldownModnumberhero.passiveCooldownEndTimenumberhero.passiveCooldownTotalTimenumberhero.flatArmorPenetrationnumberhero.percentArmorPenetrationnumberhero.flatMagicPenetrationnumberhero.percentMagicPenetrationnumberhero.percentLifeStealModnumberhero.percentSpellVampModnumberhero.percentOmnivampnumberhero.percentPhysicalVampnumberhero.percentBonusArmorPenetrationnumberhero.percentCritBonusArmorPenetrationnumberhero.percentCritTotalArmorPenetrationnumberhero.percentBonusMagicPenetrationnumberhero.physicalLethalitynumberhero.magicLethalitynumberhero.baseHealthRegenRatenumberhero.primaryARBaseRegenRateRepnumberhero.secondaryARRegenRateRepnumberhero.secondaryARBaseRegenRateRepnumberhero.percentCooldownCapModnumberhero.percentEXPBonusnumberhero.flatBaseAttackDamageModnumberhero.percentBaseAttackDamageModnumberhero.baseAttackDamageSansPercentScalenumberhero.expnumberhero.levelRefnumberhero.spellPointsnumberhero.parnumberhero.maxParnumberhero.sarnumberhero.maxSarnumberhero.pathfindingRadiusModnumberhero.numNeutralMinionsKillednumberhero.primaryArRegenRateRepnumberhero.physicalDamagePercentageModifiernumberhero.magicalDamagePercentageModifiernumberhero.baseHealthnumberhero.baseMananumberhero.baseManaPerLevelnumberhero.combatTypenumberhero.critDamageMultipliernumberhero.abilityHasteModnumberhero.baseMoveSpeednumberhero.baseAttackRangeboolhero.isZombieboolhero.isMeleeboolhero.isRangedboolhero.isBotboolhero.isMe
The following functions are limited to player only:
player:move(v1)
Parameters
hero.obj player
vec3 v1
Return Value
void
player:attackmove(v1)
Parameters
hero.obj player
vec3 v1
Return Value
void
player:altmove(v1)
Parameters
hero.obj player
vec3 v1
Return Value
void
player:attack(obj)
Parameters
hero.obj player
obj obj
Return Value
void
player:altattack(obj)
Parameters
hero.obj player
obj obj
Return Value
void
player:stop()
Parameters
hero.obj player
Return Value
void
player:select(n)
Parameters
hero.obj player
number index
Return Value
void
player:castSpell(type, slot, arg1, arg2, no_limit)
Parameters
hero.obj player
string type
number slot
mixed arg1
mixed arg2
boolean no_limit: ignore the limitation check, maybe kickout/banned, use careful
Return Value
void
--type 'pos', orianna q
player:castSpell('pos', 0, mousePos)
--type 'obj', teemo q
player:castSpell('obj', 0, game.selectedTarget)
--type 'self', teemo w
player:castSpell('self', 1)
--type 'line', rumble r
player:castSpell('line', 3, player.pos, mousePos)
--type 'release', varus q
player:castSpell('release', 0, player.pos, mousePos)
--type 'move', aurelion sol q
player:castSpell('move', 0, mousePos, nil, true)
--type 'switch', Hwei Q
player:castSpell('switch', 0)player:levelSpell(slot)
Parameters
hero.obj player
number slot
Return Value
void
player:interact(obj)
Parameters
hero.obj player
obj obj
Return Value
void
player:buyItem(itemID)
Parameters
hero.obj player
number itemID
Return Value
void
The following functions are available for all hero.obj
hero:spellSlot(slot)
Parameters
hero.obj hero
number slot
Return Value
spell_slot.obj
hero:findSpellSlot(spellName)
Parameters
hero.obj hero
string spell name
Return Value
spell_slot.obj
hero:inventorySlot(slot)
Parameters
hero.obj hero
number slot
Return Value
inventory_slot.obj
hero:basicAttack(index)
Parameters
hero.obj hero
number index, -1 to get the default AA spell
Return Value
spell.obj
hero:itemID(slot)
Parameters
hero.obj hero
number slot
Return Value
number returns item ID for item slot i
hero:isPlayingAnimation(animationNameHash)
Parameters
hero.obj hero
number animationNameHash
Return Value
boolean
hero:attackDelay()
Parameters
hero.obj hero
Return Value
number
hero:attackCastDelay(slot)
Parameters
hero.obj hero
number spellSlot
Return Value
number
hero:getPassablePos(to)
Parameters
hero.obj hero
vec3 to pos
Return Value
vec3 The NearstPassable position (the cell center, and include hero collsion state)
hero:baseHealthForLevel(level)
Parameters
number level
Return Value
number returns base health for level i
hero:abilityResourceBase(slot)
Parameters
number slot, usually the slot is 0 for mana
Return Value
number returns ability resource value (with level factor calculated)
hero:abilityResourceForLevel(slot, level)
Parameters
number slot, usually the slot is 0 for mana
number level
Return Value
number returns ability resource value for level
hero:statForLevel(type, level)
Parameters
number type
number level
Return Value
number returns stat of type for level i
hero:getStat(name)
Parameters
string name
Return Value
number returns stat value
The available stats (Some of them are deprecated by riot and always zero):
- EXP
- GOLD_SPENT
- GOLD_EARNED
- MINIONS_KILLED
- NEUTRAL_MINIONS_KILLED
- NEUTRAL_MINIONS_KILLED_YOUR_JUNGLE
- NEUTRAL_MINIONS_KILLED_ENEMY_JUNGLE
- PLAYER_SCORE_0
- PLAYER_SCORE_1
- PLAYER_SCORE_2
- PLAYER_SCORE_3
- PLAYER_SCORE_4
- PLAYER_SCORE_5
- PLAYER_SCORE_6
- PLAYER_SCORE_7
- PLAYER_SCORE_8
- PLAYER_SCORE_9
- PLAYER_SCORE_10
- PLAYER_SCORE_11
- VICTORY_POINT_TOTAL
- TOTAL_DAMAGE_DEALT
- PHYSICAL_DAMAGE_DEALT_PLAYER
- MAGIC_DAMAGE_DEALT_PLAYER
- TRUE_DAMAGE_DEALT_PLAYER
- TOTAL_DAMAGE_DEALT_TO_CHAMPIONS
- PHYSICAL_DAMAGE_DEALT_TO_CHAMPIONS
- MAGIC_DAMAGE_DEALT_TO_CHAMPIONS
- TRUE_DAMAGE_DEALT_TO_CHAMPIONS
- TOTAL_DAMAGE_TAKEN
- PHYSICAL_DAMAGE_TAKEN
- MAGIC_DAMAGE_TAKEN
- TRUE_DAMAGE_TAKEN
- TOTAL_DAMAGE_SELF_MITIGATED
- TOTAL_DAMAGE_SHIELDED_ON_TEAMMATES
- TOTAL_DAMAGE_DEALT_TO_BUILDINGS
- TOTAL_DAMAGE_DEALT_TO_TURRETS
- TOTAL_DAMAGE_DEALT_TO_OBJECTIVES
- LARGEST_ATTACK_DAMAGE
- LARGEST_ABILITY_DAMAGE
- LARGEST_CRITICAL_STRIKE
- TOTAL_TIME_CROWD_CONTROL_DEALT
- TOTAL_TIME_CROWD_CONTROL_DEALT_TO_CHAMPIONS
- TOTAL_HEAL_ON_TEAMMATES
- TIME_PLAYED
- LONGEST_TIME_SPENT_LIVING
- TOTAL_TIME_SPENT_DEAD
- TIME_OF_FROM_LAST_DISCONNECT
- TIME_SPENT_DISCONNECTED
- TIME_CCING_OTHERS
- TEAM
- LEVEL
- CHAMPIONS_KILLED
- NUM_DEATHS
- ASSISTS
- LARGEST_KILLING_SPREE
- KILLING_SPREES
- LARGEST_MULTI_KILL
- BOUNTY_LEVEL
- DOUBLE_KILLS
- TRIPLE_KILLS
- QUADRA_KILLS
- PENTA_KILLS
- UNREAL_KILLS
- BARRACKS_KILLED
- BARRACKS_TAKEDOWNS
- TURRETS_KILLED
- TURRET_TAKEDOWNS
- HQ_KILLED
- HQ_TAKEDOWNS
- OBJECTIVES_STOLEN
- OBJECTIVES_STOLEN_ASSISTS
- FRIENDLY_DAMPEN_LOST
- FRIENDLY_TURRET_LOST
- FRIENDLY_HQ_LOST
- BARON_KILLS
- DRAGON_KILLS
- RIFT_HERALD_KILLS
- HORDE_KILLS
- ATAKHAN_KILLS
- NODE_CAPTURE
- NODE_CAPTURE_ASSIST
- NODE_NEUTRALIZE
- NODE_NEUTRALIZE_ASSIST
- TEAM_OBJECTIVE
- ITEMS_PURCHASED
- CONSUMABLES_PURCHASED
- ITEM0
- ITEM1
- ITEM2
- ITEM3
- ITEM4
- ITEM5
- ITEM6
- PERK_PRIMARY_STYLE
- PERK_SUB_STYLE
- STAT_PERK_0
- STAT_PERK_1
- STAT_PERK_2
- SIGHT_WARDS_BOUGHT_IN_GAME
- VISION_WARDS_BOUGHT_IN_GAME
- WARD_PLACED
- WARD_KILLED
- WARD_PLACED_DETECTOR
- VISION_SCORE
- SPELL1_CAST
- SPELL2_CAST
- SPELL3_CAST
- SPELL4_CAST
- SUMMON_SPELL1_CAST
- SUMMON_SPELL2_CAST
- KEYSTONE_ID
- TOTAL_HEAL
- TOTAL_UNITS_HEALED
- WAS_AFK
- WAS_AFK_AFTER_FAILED_SURRENDER
- WAS_EARLY_SURRENDER_ACCOMPLICE
- TEAM_EARLY_SURRENDERED
- GAME_ENDED_IN_EARLY_SURRENDER
- GAME_ENDED_IN_SURRENDER
- WAS_SURRENDER_DUE_TO_AFK
- WAS_LEAVER
- PLAYERS_I_MUTED
hero:isValidTarget(range)
Parameters
hero.obj hero
number range, optional
Return Value
bool Returns whether this is valid target to self or not
hero:findBuff(hash)
Equal to player.buff["some_name"] and player.buff["some_name"] or nil
Parameters
hero.obj hero
int fnv hash of buff name
Return Value
buff.obj
hero:getBuffStacks(hash)
Equal to player.buff["some_name"] and player.buff["some_name"].stacks or 0
Parameters
hero.obj hero
int fnv hash of buff name
Return Value
int
hero:getBuffCount(hash)
Equal to player.buff["some_name"] and player.buff["some_name"].stacks2 or 0
Parameters
hero.obj hero
int fnv hash of buff name
Return Value
int
local ezrealpassivestacks = game.fnvhash("ezrealpassivestacks")
cb.add(cb.tick, function()
local stacks = player:getBuffStacks(ezrealpassivestacks)
if stacks > 0 then
-- do somethings
end
end)hero:getTeamBuffCount(team, buffType)
Parameters
hero.obj hero
int team
int buffType
Return Value
int
The available buffType:
- DragonFireStacks = 0x1,
- DragonAirStacks = 0x2,
- DragonWaterStacks = 0x3,
- DragonEarthStacks = 0x4,
- DragonElderStacks = 0x5,
print(player:getTeamBuffCount(TEAM_ALLY, 0))
print(player:getTeamBuffCount(TEAM_ENEMY, 0))minion.obj
Properties:
stringminion.namestringminion.charNamebooleanminion.isOnScreenbooleanminion.isDeadbooleanminion.isAlivebooleanminion.isVisiblebooleanminion.isTargetablevec3minion.posvec3minion.directionvec2minion.pos2Dvec2minion.direction2Dvec2minion.barPosnumberminion.barWidthnumberminion.barHeightvec2minion.barOffsetnumberminion.barScalepath.objminion.pathhero.objminion.ownerspell.objminion.activeSpelltableminion.buffnumberminion.networkIDnumberminion.networkID32numberminion.teamnumberminion.xnumberminion.ynumberminion.znumberminion.selectionHeightnumberminion.selectionRadiusnumberminion.boundingRadiusnumberminion.overrideCollisionRadiusnumberminion.pathfindingCollisionRadiusvec3minion.minBoundingBoxvec3minion.maxBoundingBoxnumberminion.deathTimenumberminion.healthnumberminion.maxHealthnumberminion.mananumberminion.maxMananumberminion.maxHealthPenaltynumberminion.physicalShieldnumberminion.magicalShieldnumberminion.allShieldnumberminion.stopShieldFadenumberminion.isTargetableToTeamFlagsnumberminion.actionStatenumberminion.baseAttackDamagenumberminion.baseAd
alias of
baseAttackDamage
numberminion.bonusAdnumberminion.totalAd
The TotalAttackDamage
numberminion.totalAp
The TotalAbilityPower
numberminion.armornumberminion.spellBlocknumberminion.attackSpeedModnumberminion.flatPhysicalDamageModnumberminion.percentPhysicalDamageModnumberminion.flatMagicDamageModnumberminion.percentMagicDamageModnumberminion.healthRegenRatenumberminion.bonusArmornumberminion.bonusSpellBlocknumberminion.moveSpeednumberminion.moveSpeedBaseIncreasenumberminion.baseAbilityDamagenumberminion.attackRangenumberminion.flatMagicReductionnumberminion.percentMagicReductionnumberminion.flatArmorPenetrationnumberminion.percentArmorPenetrationnumberminion.flatMagicPenetrationnumberminion.percentMagicPenetrationnumberminion.physicalLethalitynumberminion.magicLethalitynumberminion.flatBaseAttackDamageModnumberminion.percentBaseAttackDamageModnumberminion.baseAttackDamageSansPercentScalenumberminion.expnumberminion.parnumberminion.maxParnumberminion.parEnablednumberminion.percentDamageToBarracksMinionModnumberminion.flatDamageReductionFromBarracksMinionModboolminion.isMeleeboolminion.isRangedboolminion.isCloneboolminion.isLaneMinionboolminion.isEliteMinionboolminion.isEpicMinionboolminion.isJungleMonsterboolminion.isLaneMinionboolminion.isSiegeMinionboolminion.isSuperMinionboolminion.isCasterdMinionboolminion.isMeleeMinionboolminion.isBarrelboolminion.isPetboolminion.isCollidablePetboolminion.isTrapboolminion.isWardboolminion.isWardNoBlueboolminion.isPlantboolminion.isMonsterboolminion.isLargeMonsterboolminion.isBaronboolminion.isDragonboolminion.isEpicMonsterboolminion.isSmiteMonster
m:basicAttack(index)
Parameters
minion.obj m
number index, -1 to get the default AA spell
Return Value
spell.obj returns the minions basic attack
m:isPlayingAnimation(animationNameHash)
Parameters
minion.obj m
number animationNameHash
Return Value
boolean
m:attackDelay()
Parameters
minion.obj m
Return Value
number
m:attackCastDelay(slot)
Parameters
minion.obj m
number spellSlot
Return Value
number
m:isValidTarget(range)
Parameters
m.obj m
number range, optional
Return Value
bool Returns whether this is valid target to self or not
turret.obj
Properties:
stringturret.namestringturret.charNamebooleanturret.isOnScreenbooleanturret.isDeadbooleanturret.isAlivebooleanturret.isVisiblebooleanturret.isTargetablevec3turret.posvec3turret.directionvec2turret.pos2Dvec2turret.barPosnumberturret.barScalevec2turret.direction2Dpath.objturret.pathspell.objturret.activeSpelltableturret.buffnumberturret.networkIDnumberturret.networkID32numberturret.teamnumberturret.xnumberturret.ynumberturret.znumberturret.selectionHeightnumberturret.selectionRadiusnumberturret.boundingRadiusnumberturret.overrideCollisionRadiusnumberturret.pathfindingCollisionRadiusvec3turret.minBoundingBoxvec3turret.maxBoundingBoxnumberturret.deathTimenumberturret.healthnumberturret.maxHealthnumberturret.mananumberturret.maxMananumberturret.allShieldnumberturret.isTargetableToTeamFlagsnumberturret.baseAttackDamagenumberturret.baseAd
alias of
baseAttackDamage
numberturret.bonusAdnumberturret.totalAd
The TotalAttackDamage
numberturret.totalAp
The TotalAbilityPower
numberturret.armornumberturret.spellBlocknumberturret.attackSpeedModnumberturret.flatPhysicalDamageModnumberturret.percentPhysicalDamageModnumberturret.flatMagicDamageModnumberturret.percentMagicDamageModnumberturret.healthRegenRatenumberturret.bonusArmornumberturret.bonusSpellBlocknumberturret.baseAbilityDamagenumberturret.parRegenRatenumberturret.attackRangenumberturret.flatMagicReductionnumberturret.percentMagicReductionnumberturret.flatArmorPenetrationnumberturret.percentArmorPenetrationnumberturret.flatMagicPenetrationnumberturret.percentMagicPenetrationnumberturret.percentBonusArmorPenetrationnumberturret.percentBonusMagicPenetrationnumberturret.physicalLethalitynumberturret.magicLethalitynumberturret.baseHealthRegenRatenumberturret.secondaryARBaseRegenRateRepnumberturret.flatBaseAttackDamageModnumberturret.percentBaseAttackDamageModnumberturret.baseAttackDamageSansPercentScalenumberturret.expnumberturret.parnumberturret.maxParnumberturret.parEnablednumberturret.physicalDamagePercentageModifiernumberturret.magicalDamagePercentageModifierboolturret.isMeleeboolturret.isRangednumberturret.tier
Base=1, Inner=2, Outer=3, NexusRight=4, NexusLeft=5
numberturret.lane
Bottom=0, Mid=1, Top=2
t:basicAttack(i)
Parameters
turret.obj t
number i
Return Value
spell.obj returns the turrets basic attack
t:isPlayingAnimation(animationNameHash)
Parameters
turret.obj t
number animationNameHash
Return Value
boolean
t:attackDelay()
Parameters
turret.obj t
Return Value
number
t:attackCastDelay(slot)
Parameters
turret.obj t
number spellSlot
Return Value
number
t:isValidTarget(range)
Parameters
turret.obj t
number range, optional
Return Value
bool Returns whether this is valid target to self or not
inhib.obj
Properties:
numberinhib.typenumberinhib.indexnumberinhib.teamnumberinhib.networkIDnumberinhib.networkID32stringinhib.namenumberinhib.xnumberinhib.ynumberinhib.zvec3inhib.posvec2inhib.pos2Dbooleaninhib.isOnScreennumberinhib.selectionHeightnumberinhib.selectionRadiusnumberinhib.boundingRadiusnumberinhib.overrideCollisionRadiusnumberinhib.pathfindingCollisionRadiusvec3inhib.minBoundingBoxvec3inhib.maxBoundingBoxbooleaninhib.isDeadbooleaninhib.isAlivebooleaninhib.isVisiblenumberinhib.deathTimenumberinhib.healthnumberinhib.maxHealthnumberinhib.allShieldbooleaninhib.isTargetablenumberinhib.isTargetableToTeamFlags
inhib:isValidTarget(range)
Parameters
inhib.obj inhib
number range, optional
Return Value
bool Returns whether this is valid target to self or not
nexus.obj
Properties:
stringnexus.namebooleannexus.isOnScreenbooleannexus.isDeadbooleannexus.isAlivebooleannexus.isVisiblebooleannexus.isTargetablevec3nexus.posvec2nexus.pos2Dnumbernexus.teamnumbernexus.typenumbernexus.xnumbernexus.ynumbernexus.znumbernexus.healthnumbernexus.maxHealthnumbernexus.allShieldnumbernexus.isTargetableToTeamFlags
nexus:isValidTarget(range)
Parameters
nexus.obj nexus
number range, optional
Return Value
bool Returns whether this is valid target to self or not
missile.obj
Properties:
numbermissile.typenumbermissile.indexnumbermissile.index32numbermissile.teamstringmissile.namenumbermissile.networkIDnumbermissile.networkID32booleanmissile.isOnScreennumbermissile.selectionHeightnumbermissile.selectionRadiusvec3missile.minBoundingBoxvec3missile.maxBoundingBoxnumbermissile.xnumbermissile.ynumbermissile.zvec3missile.posvec2missile.pos2D
The
x/y/z/pos/pos2Dnow meansminBoundingBoxofGameObject
spell.objmissile.spellbase.objmissile.casterbase.objmissile.targetnumbermissile.widthnumbermissile.velocitymissile_info.objmissile.missile_info
The
MissileMovementofMissile, And follow properties is getting from this as a alias:
vec3missile.startPosvec2missile.startPos2Dvec3missile.endPosvec2missile.endPos2Dnumbermissile.speed
particle.obj
Properties:
numberparticle.typenumberparticle.indexnumberparticle.index32numberparticle.teamstringparticle.namenumberparticle.networkIDnumberparticle.networkID32numberparticle.xnumberparticle.ynumberparticle.znumberparticle.effectKey
The hash of effect resource name, only valid for effects from spell (invalid for missile/sound/etc)
vec3particle.posvec2particle.pos2Dvec3particle.initPos
The initial position when effect created, only valid for effects from spell
vec3particle.initTargetPos
The initial target position when effect created, only valid for effects from spell
vec3particle.initOrientation
The initial orientation when effect created, only valid for effects from spell
vec3particle.direction
The effect drection when rendering.
booleanparticle.isOnScreennumberparticle.selectionHeightnumberparticle.selectionRadiusvec3particle.minBoundingBoxvec3particle.maxBoundingBoxobjparticle.caster
The initial caster/emitter when effect created, only valid for effects from spell, could be nil
objparticle.target
The initial target when effect created, only valid for effects from spell, could be nil
objparticle.attachmentObjectobjparticle.targetAttachmentObject
spell.obj
known as
SpellCastInfo
WARNING
spell.obj are temporary objects, their memory may change or become invalid at any time, please do not save spell.obj anywhere
Properties:
numberspell.identifier
The
missileNetworkIDofSpellCastInfo
numberspell.slotbooleanspell.isBasicAttackobjspell.ownerbooleanspell.hasTargetobjspell.targetvec3spell.startPosvec2spell.startPos2D
LaunchPosition
vec3spell.endPosvec2spell.endPos2D
TargetPosition
vec3spell.endPosLinevec2spell.endPosLine2D
TargetEndPosition
booleanspell.useChargeChannelingbooleanspell.channelingFinishedbooleanspell.spellCastednumberspell.windUpTime
DesignerCastTime+ExtraTimeForCast
numberspell.animationTime
DesignerTotalTime
numberspell.clientWindUpTime
CharacterAttackCastDelay
numberspell.startTime
TimeTillPlayAnimation
From game version 16.06,SpellCastInfo.(SpellInstance)->mTimeTillPlayAnimationwas deprecated by game. Now thespell.startTimeisSpellCastInfo.timeSpellStarted
numberspell.castEndTime
TimeCast
numberspell.endTime
TimeSpellEnd
spell_info.objspell.spell_info
The
SpellDataof currentSpellCastInfo
stringspell.name
equal to
spell.spell_info.name
stringspell.hash
equal to
spell.spell_info.hash
spell_static.objspell.static
equal to
spell.spell_info.static
spell_slot.obj
known as
SpellDataInst
Properties:
numberspell_slot.slotbooleanspell_slot.isBasicSpellSlotbooleanspell_slot.isSummonerSpellSlotstringspell_slot.namenumberspell_slot.hashtexture.objspell_slot.iconnumberspell_slot.targetingTypenumberspell_slot.levelnumberspell_slot.cooldownnumberspell_slot.totalCooldownnumberspell_slot.iconUsed
For champion like Bel'Veth, the index of spell icon (Q Spell)
numberspell_slot.startTimeForCurrentCastnumberspell_slot.displayRangenumberspell_slot.currentNumericalDisplaynumberspell_slot.stacks
CurrentAmmo
numberspell_slot.stacksCooldown
TimeForNextAmmoRecharge
numberspell_slot.statenumberspell_slot.toggleStatebooleanspell_slot.isChargingbooleanspell_slot.isNotEmpty
Whether current
spell_slothas a activespell_info
spell_info.objspell_slot.spell_infospell_static.objspell_slot.static
spell_slot:getTooltip(type)
Parameters
spell_slot.obj
int tooltip type: 0
Return Value
string
spell_slot:getTooltipVar(index)
Return the numerical variable when mouseover the skill icons
Parameters
spell_slot.obj
int tooltip var index: [0,15]
Return Value
number
spell_slot:getEffectAmount(index, level)
Return the fixed class value of the target skill
Parameters
spell_slot.obj
int index: [1,11]
int level: [0,6]
Return Value
number
spell_slot:calculate(spellNameHash, calculationHash)
Parameters
spell_slot.obj current spell
unsigned int spell name hash, could be 0 if using default spell name
unsigned int calculation type hash
Return Value
void
-- Jhin Example:
-- https://raw.communitydragon.org/13.15/game/data/characters/jhin/jhin.bin.json
-- JhinW: ["Characters/Jhin/Spells/JhinRAbility/JhinW"].mSpell.mSpellCalculations
-- JhinR: ["Characters/Jhin/Spells/JhinRAbility/JhinR"].mSpell.mSpellCalculations
local calcHashW = game.fnvhash('TotalDamage')
local rawDamageW = player:spellSlot(0):calculate(0, calcHashW)
local calcHashR = game.fnvhash('DamageCalc')
local rawDamageR = player:spellSlot(3):calculate(0, calcHashR)
-- AatroxQ Example:
-- The `spellSlot(0).name` could be "AatroxQ"/"AatroxQ2"/"AatroxQ3"
-- We need use "AatroxQ" to calculate the damage.
local QDamage = game.fnvhash('QDamage')
local AatroxQ = game.spellhash('AatroxQ')
local rawDamageQ1 = player:spellSlot(0):calculate(AatroxQ, QDamage)
local rawDamageQ2 = player:spellSlot(0):calculate(AatroxQ, QDamage) * 1.25
local rawDamageQ3 = player:spellSlot(0):calculate(AatroxQ, QDamage) * 1.25 * 1.25spell_slot:getDamage(target, spellHash, stage)
Parameters
spell_slot.obj current spell
int spell name hash, could be 0 if using default spell name
int stage, 0 for default, 1/2/3 for custom usage
Return Value
void
-- AatroxQ
local spellHash_AatroxQ = game.spellhash('AatroxQ')
local spellHash_AatroxQ2 = game.spellhash('AatroxQ2')
local spell = player:spellSlot(_Q)
print(spell:getDamage(target, spellHash_AatroxQ, 0)) -- Q damage
print(spell:getDamage(target, spellHash_AatroxQ, 1)) -- Q edge damage
print(spell:getDamage(target, spellHash_AatroxQ2, 0)) -- Q2 damage (need pass AatroxQ2 as arg1)
-- AkaliP
local spellHash_AkaliP = game.spellhash('AkaliP')
local spell = player:spellSlot(63) -- 63 = Passive
print(spell:getDamage(target, spellHash_AkaliP, 3)) -- Akali passive damage for stage 3
-- AurelionSolR
local spellHash_AurelionSolR = game.spellhash('AurelionSolR')
local spell = player:spellSlot(_R)
print(spell:getDamage(target, spellHash_AurelionSolR, 0)) -- AurelionSol R damage
print(spell:getDamage(target, spellHash_AurelionSolR, 1)) -- AurelionSol R2 damagespell_info.obj
known as
SpellData
Properties:
stringspell_info.namenumberspell_info.hash
the fnvhash of name
spell_static.objspell_info.static
spell_static.obj
known as
SpellDataResource
Properties:
stringspell_static.alternateNamestringspell_static.imgIconNamenumberspell_static.castType
Flags
booleanspell_static.useMinimapTargetingnumberspell_static.missileSpeednumberspell_static.lineWidthnumberspell_static.castFrame
inventory_slot.obj
Properties:
numberinventory_slot.stacksnumberinventory_slot.purchaseTimebooleaninventory_slot.hasItemitem_data.objinventory_slot.itemtexture.objinventory_slot.iconnumberinventory_slot.spellStacksnumberinventory_slot.idnumberinventory_slot.maxStacksnumberinventory_slot.coststringinventory_slot.namestringinventory_slot.iconNametexture.objinventory_slot.icon
inventory_slot:getTooltip(type)
Parameters
inventory_slot.obj current inventory
int tooltip type: 0
Return Value
string
inventory_slot:calculate(calculationHash)
Parameters
inventory_slot.obj current inventory
unsigned int calculation type hash
Return Value
void
item_data.obj
Properties:
numberitem_data.idnumberitem_data.maxStacksnumberitem_data.coststringitem_data.namestringitem_data.iconNametexture.objitem_data.icon
path.obj
Properties:
objpath.ownerbooleanpath.isActivebooleanpath.isMoving
Sometimes player is moving but
path.isActivewill befalse(eg: no path for short move).
booleanpath.isDashingnumberpath.dashSpeedbooleanpath.unstoppablevec3path.endPosvec2path.endPos2Dvec3path.serverPosvec2path.serverPos2Dvec3path.serverVelocityvec2path.serverVelocity2Dvec3path.startPointvec3path.endPointvec3[]path.point
WaypointListarray
vec2[]path.point2D
WaypointListarray
numberpath.index
The index of next point
numberpath.count
The count of
point/point2D
numberpath.update
UpdateNumber
cb.add(cb.path, function (obj)
if obj.ptr == player.ptr then
print("--------newpath")
print("isActive: " .. tostring(obj.path.isActive))
print("index: " .. obj.path.index)
print("count: " .. obj.path.count)
local pos = obj.path.serverPos
print("serverPos: " .. pos.x .. "," .. pos.y .. "," .. pos.z)
print("isDashing: " .. tostring(obj.path.isDashing))
if obj.path.isDashing then
print("dashSpeed: " .. obj.path.dashSpeed)
end
end
end)
cb.add(cb.draw, function()
if player.path.active then
graphics.draw_line_strip(player.path.point, 2, 0xFFFFFFFF, player.path.count+1)
end
end)p:calcPos(v1)
Parameters
path.obj p
vec3 v1
Return Value
vec3[] returns vec3 array containing path points
number returns array length
cb.add(cb.draw, function()
local p, n = player.path:calcPos(mousePos)
for i = 0, n - 1 do
graphics.draw_circle(p[i], 15, 2, 0xffffffff, 3)
end
end)p:isDirectPath(v1, v2)
Parameters
path.obj p
vec3 v1
vec3 v2
Return Value
boolean returns result
number[] return lastReachedPos
local isDirect,lastReachedPos = player.path:isDirectPath(player.pos, mousePos)
if isDirect then
print('lastReachedPos.x', lastReachedPos[0])
print('lastReachedPos.y', lastReachedPos[1])
endbuff.obj
WARNING
buff.obj are temporary objects, their memory may change or become invalid at any time, please do not save buff.obj anywhere
Properties:
numberbuff.typestringbuff.namenumberbuff.hash
The fnvhash of buff.name
booleanbuff.validobjbuff.ownerobjbuff.sourcenumberbuff.startTimenumberbuff.endTimenumberbuff.stacks
Number of buff layers
numberbuff.stacks2
The buff
Counter
numberbuff.count
same to stacks2
buff:hasSource(src)
Parameters
buff.obj
base.obj game object: hero.obj/minion.obj/turret.obj
Return Value
bool
buff:getTooltipVar(index)
Return the numerical variable when mouseover the skill icons
Parameters
buff.obj
int tooltip var index: [0,15]
Return Value
number
runemanager.obj
Properties:
numberrunemanager.size
runemanager:get(index)
Parameters
runemanager.obj camp
number index: the index to get
Return Value
rune.obj returns the rune of current index
rune.obj
Properties:
numberrune.idstringrune.nametexture.objrune.icon
rune:getTooltipVar(index)
Return the numerical variable when mouseover the icons
Parameters
rune.obj
int tooltip var index: [0,15]
Return Value
number
camp.obj
Properties:
numbercamp.typenumbercamp.indexnumbercamp.index32numbercamp.teamstringcamp.namenumbercamp.networkIDnumbercamp.networkID32numbercamp.xnumbercamp.ynumbercamp.zvec3camp.posvec2camp.pos2Dbooleancamp.isOnScreennumbercamp.selectionHeightnumbercamp.selectionRadiusvec3camp.minBoundingBoxvec3camp.maxBoundingBoxbooleancamp.activenumbercamp.spawnTimenumbercamp.count
camp:getMinion(index)
Parameters
camp.obj camp
number index: the index to get
Return Value
minion.obj returns the minion of current index
for i=0,camp.count-1 do
local minion = camp:getMinion(i)
if minion then
print(minion.name, minion.pos.x, minion.pos.z)
end
endtexture.obj
Properties:
numbertexture.widthnumbertexture.heightstringtexture.name
shadereffect.obj
effect:show()
Parameters
shadereffect.obj effect
Return Value
void
effect:hide()
Parameters
shadereffect.obj effect
Return Value
void
effect:attach(obj)
Parameters
shadereffect.obj effect
base.obj game object: hero.obj/minion.obj/turret.obj
Return Value
void
effect:update_circle(pos, radius, width, color)
Update the circle info of current shadereffect.
Parameters
shadereffect.obj effect
vec3 effect center pos
number radius
number width
number color, argb (rgb is ignored when effect type is CIRCLE_RAINBOW)
Return Value
void
skillshot.obj (Evade3)
WARNING
All Evade3 range calculations are based on the local player's bounding radius (player.boundingRadius). Passing teammate objects to related methods may produce inaccurate results. However, this typically works in most situations since champion boundingRadius are usually the same value.
Properties:
objskillshot.Casterstringskillshot.SpellNamespelldata.objskillshot.SpellDatanumberskillshot.DetectionTypecast_info_saved.objskillshot.SpellCastInfoDatanumberskillshot.InitTicknumberskillshot.StartTicknumberskillshot.EndTick
Ticks are based on game.time
numberskillshot.TargetHandle
The ObjID
booleanskillshot.IsGlobalbooleanskillshot.IsFoWbooleanskillshot.IsRenderEnabledbooleanskillshot.IsVisiblevec2skillshot.StartPosition
Position where skillshot starts. Can be dynamically modified.
vec2skillshot.OriginalStartPositionvec2skillshot.DirectionVectorvec2skillshot.NormalVectorvec2skillshot.EndPosition
Position where skillshot ends. Can be dynamically modified.
vec2skillshot.OriginalEndPositionvec2skillshot.CastPosition
Original constant position where spell was detected to be casted at
numberskillshot.StartObjectHandlenumberskillshot.EndObjectHandle
The ObjID
booleanskillshot.IsIgnoredFromInside
Represents if spell shall be ignored from inside.
Member Functions:
skillshot:IsValid()
Returns if spell is valid and can be activated
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:Invalidate()
Invalidates the spell, remove it immediately
Parameters
skillshot.obj skillshot
Return Value
void
skillshot:IsActive()
Returns if spell is active
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:Activate()
Activates the spell. Active spells can be rendered and evaded
Parameters
skillshot.obj skillshot
Return Value
void
skillshot:Deactivate(isForced, isFamilyCall)
Finalizes and disables the spell
Parameters
skillshot.obj skillshot
boolean isForced: Forced deactivation due to unnatural reasons (e.g., premature explosion)
boolean isFamilyCall: Whether this call is made by child or parent spell (internal use, default = false)
Return Value
void
skillshot:IsEnabledInMenu()
Returns if spell is enabled in menu settings
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:IsFoWEnabledInMenu()
Returns if spell detection in fog of war is enabled in menu
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:GetDangerLevelFromMenu()
Returns danger level from menu settings
Parameters
skillshot.obj skillshot
Return Value
number
skillshot:GetDangerLevel()
Estimates danger level based on spell properties (damage, lethality, etc.)
May differ from SpellData.DangerLevel based on current game situation
Parameters
skillshot.obj skillshot
Return Value
number
skillshot:CalculateTicks()
Recalculates and updates InitTick, StartTick, and EndTick based on new spell data (for internal usage)
Parameters
skillshot.obj skillshot
Return Value
void
skillshot:IsIgnored()
Returns if spell is currently ignored
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:IsIgnoredTemporarily()
Returns if spell is temporarily ignored (Manually double click to ignore or set by other plugins)
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:IgnoreTemporarily(ignore)
Sets spell to be temporarily ignored or not
Parameters
skillshot.obj skillshot
boolean ignore: true to ignore, false to stop ignoring (default = true)
Return Value
void
skillshot:Contains(pos/obj)
Checks if position or object is within spell area
Parameters
skillshot.obj skillshot
vec2 pos or base.obj obj
Return Value
boolean
skillshot:ContainsPlayer()
Checks if self player is within spell area
Parameters
skillshot.obj skillshot
Return Value
boolean
skillshot:GetHitTime(pos/obj)
Calculates when position/object will be hit by spell
Parameters
skillshot.obj skillshot
vec2 pos or base.obj obj
Return Value
number hit time (float)
skillshot:GetHitRemainingTime(pos/obj)
Calculates remaining time until position/object is hit
Parameters
skillshot.obj skillshot
vec2 pos or base.obj obj
Return Value
number remaining time in seconds (float)
spelldata.obj (Evade3)
Properties:
stringspelldata.Namenumberspelldata.NameHashtablespelldata.SpellNamestablespelldata.MissileNamesnumberspelldata.Slotnumberspelldata.CastDurationnumberspelldata.StayDurationnumberspelldata.Speednumberspelldata.Rangenumberspelldata.HitAreanumberspelldata.ExtraHitAreabooleanspelldata.IsDynamicHitAreabooleanspelldata.IsGlobalbooleanspelldata.IsFixedRangebooleanspelldata.IsAreaIgnoringHitBoxbooleanspelldata.IsRangeIgnoringHitBoxbooleanspelldata.IsCrowdControltablespelldata.CrowdControl
Array of
CrowdControlTypevalues applied by this spell. Empty when the spell applies no crowd control.
local CrowdControlType = evade.data.CrowdControlType
if spelldata.IsCrowdControl then
for _, cc in ipairs(spelldata.CrowdControl) do
if cc == CrowdControlType.Stun or cc == CrowdControlType.Airborne then
-- hard CC, e.g. raise the danger level or force dodge
end
end
endCrowdControlType (Evade3)
Crowd control type enum used by Evade3 spell data (spelldata.CrowdControl).
local CrowdControlType = evade.data.CrowdControlType
print(CrowdControlType.Stun)| Name | Value | Description |
|---|---|---|
Airborne | 1 | Can't move, cast or attack. The stun part can be removed by cleansing effects (except Cleanse), but the airborne movement part cannot; once the stun is cleansed and you can cast again, any mobility spell overrides the airborne movement. |
Blind | 2 | Makes you miss all your basic attacks. |
Entangle | 3 | Root + disarm: can't move, can't use mobility spells, can't attack. |
Taunt | 4 | Can't move, can't cast, can't control basic attacks. |
Charm | 5 | Can't move, can't cast, can't attack. |
Fear | 6 | Can't move, can't cast, can't attack. |
Flee | 7 | Can't move, can't cast, can't attack. |
Ground | 8 | Can move but can't use mobility spells. |
Nearsight | 9 | Limits your vision. |
Root | 10 | Can't move, can't use mobility spells such as dash / flash / teleport / Shen R etc. |
Silence | 11 | Can't cast. |
Slow | 12 | Slows your movement. |
Stasis | 13 | Can't move, cast or attack; makes you untargetable. Basically immunity (Zhonya etc.). |
Stun | 14 | Can't move, can't cast, can't attack. |
Suppression | 15 | Can't move, can't cast, can't attack. |
Disarm | 16 | Can't basic attack. |
Cripple | 17 | Slows attack speed. |
Disrupt | 18 | Interrupts channeled and charged spells. |
Knockdown | 19 | Not really a CC: puts you back on the ground from airborne or dash. Does not trigger Yasuo R. |
Suspension | 20 | Same as Airborne but can be fully removed by cleansing effects. |
Sleep | 21 | Can't move, cast or attack. Interrupted if the target takes damage. |
Pacify | 22 | Disarm + silence: can't attack, can't cast. |
Polymorph | 23 | Disarm + silence + slow: can't attack, can't cast. |
Berserk | 24 | Can't move, cast or attack (like stun or charm). The unit will attempt to basic attack any nearby unit (ally, enemy or neutral) for the duration. |
Opener | 30 | Custom type: opener spells like Lee Sin Q. |
Knockback | 31 | Custom type: knockback spells like Lee Sin R / Alistar W. |
cast_info_saved.obj (Evade3)
Properties:
stringcast_info_saved.Namenumbercast_info_saved.Levelbooleancast_info_saved.HasTargetnumbercast_info_saved.SenderHandlenumbercast_info_saved.TargetHandlenumbercast_info_saved.CastSpeednumbercast_info_saved.Slotnumbercast_info_saved.MissileHashnumbercast_info_saved.MissileNetworkIdvec2cast_info_saved.StartPosvec2cast_info_saved.EndPosvec2cast_info_saved.EndPos2numbercast_info_saved.WindUpTimenumbercast_info_saved.AnimationTimenumbercast_info_saved.StartTimenumbercast_info_saved.CastEndTimenumbercast_info_saved.EndTimenumbercast_info_saved.Cooldownbooleancast_info_saved.IsBasicAttackbooleancast_info_saved.IsSpecialAttackbooleancast_info_saved.IsInstantCastbooleancast_info_saved.IsAutoAttackbooleancast_info_saved.IsChannelingbooleancast_info_saved.IsBasicAttackSlotbooleancast_info_saved.IsChargingbooleancast_info_saved.SpellWasCastbooleancast_info_saved.IsStoppedbooleancast_info_saved.ChargeEndScheduled