MOBA lanes

Runs a lane match with minion waves, towers, inhibitors, a nexus, jungle camps, bots, gold, farming, levels, respawns and a fountain, on a full five-versus-five map or shorter arenas.

Source: module-kits:kits/moba_lanes/usage/en.mdView Markdown source

Also read offline — CLI: grip-forge docs moba-lanesMCP tool: gripforge_docs { "topic": "moba-lanes" }

MOBA lanes (moba.lanes) #

What it is for #

Runs a lane match with minion waves, towers, inhibitors, a nexus, jungle camps, bots, gold, farming, levels, respawns and a fountain, on a full five-versus-five map or shorter arenas.

It needs combat.attacks, combat.health, combat.damage, minion.waves, game.engine; installing it brings them in.

Turn it on #

Install the kit in a project, then change a setting (the values shown are its defaults):

gripforge_gamekit_install   { project_id: "gkp_…", id: "moba.lanes" }
gripforge_gamekit_configure { project_id: "gkp_…", id: "moba.lanes",
                              config: { "map": "lane_arena", "teamSize": 3 } }

First example #

The kit has no dedicated test yet; this installs it and sets two of its settings to their defaults.

gripforge_gamekit_install   { project_id: "gkp_…", id: "moba.lanes" }
gripforge_gamekit_configure { project_id: "gkp_…", id: "moba.lanes",
                              config: { "map": "lane_arena", "teamSize": 3 } }

Settings and defaults #

Descriptions come from the kit manifest and stay in English.

SettingTypeDefaultRange or valuesMeaning
mapstring"lane_arena"moba_maps id: rift_valley (full 5v5), lane_arena (1 lane, 3v3), three_lanes (5v5) or a project map.
teamSizeinteger31–5Heroes per team (the player takes one).
botRetreatHealthnumber0.30.05–0.8
botReturnHealthnumber0.90.3–1
monsterLeashnumber103–40
unitSeparationnumber1.350–4Local separation in metres; respects navigation walls.
botsbooleantrueFill both teams with bot heroes.
playerTeamstring"blue"blue, red
heroHealthnumber62050–10000
heroDamagenumber321–1000
heroRangenumber2.21–12Basic attack reach of bot heroes (m).
heroSpeednumber51–12
respawnBasenumber60–60Respawn seconds at level 1 (+2 per level).
heroScalenumber1.70.3–5Hero size, a factor over the 1.8 m standard character (top-down MOBAs read best around 1.5-2).
monsterScalenumber1.50.3–6Jungle monster size (epic x1.6).
firstWavenumber—0–600Deprecated: set firstWave on minion.waves.
waveIntervalnumber—1–600Deprecated: set interval on minion.waves.
siegeEverynumber—0–50Deprecated: set composition on minion.waves.
waveGrowthnumber—0–2Deprecated: set scaling on minion.waves.
minionScalenumber—0.2–6Deprecated: set scale on minion.waves.
minionSpacingnumber—0.5–6Deprecated: set spacing on minion.waves.
teamRingsbooleanfalseA team-coloured ring on the ground under every unit (off: health bar colours tell the teams apart).
goldPerSecondnumber20–100Passive gold of every hero per second, from the first wave.
startingGoldinteger5000–10000Gold available for a starter item at the fountain.
pathfindingstring"grid"grid, navigationworld.navigation path and next: grid, the walk grid A* (as 1.8.0); navigation asks the ai.navigation service (when mounted) for a…

Services, events, variables #

  • Service lanes.routes: The lanes as routes and the two teams, for the minion kit.
  • Service world.navigation: walkable, project and clear on the map's walk grid; path and next (the next corner to head for) by the walk grid A*, or routed by ai.navigation when it is mounted and config pathfinding is navigation.
  • Service world.waterways: The divider as a water body (a river, or lava) for the Water kit.
  • Service world.thickets: The stealth bushes as thickets, for the Grass kit (tall grass grows there).
  • Service world.occluders: The jungle walls as sight blockers, for the Vision kit.
  • Service world.clearings: Bases, buildings and camps a scenery kit keeps clear.
  • Service combat.targeting: canTarget (protected structures, neutral camps), radius, category.
  • Service moba.match: map, teams, heroes (level, gold, dead), structures (alive, vulnerable), wave, winner, spendGold, marks() → { rings, bars } (the health bar over every living unit the player sees, a team ring under it with teamRings: what every renderer marks).
  • Service world.ground: The shared arena height, its bounds and the player spawn at their fountain.
  • Events emitted:
    • moba.wave (wave, lanes) — A minion wave left (minion.wave repeated with the number of lanes of the map).
    • moba.attack (source, target, ranged, synchronized, kind) — Every basic attack of a minion, tower, monster or bot (animation, projectile, sound).
    • moba.structure.destroyed (structure, kind, team, lane)
    • moba.hero.killed (hero, by, team)
    • moba.levelup (hero, level)
    • moba.item.bought (hero, item, cost)
    • moba.last_hit (hero, gold, player) — The player took the last hit on a minion that paid gold.
    • moba.victory (team, player)
  • Events listened to: combat.killed, combat.damaged, minion.wave, minion.killed
  • Variables:
    • moba.gold (number) — Gold
    • moba.cs (number) — Minion last hits
    • moba.items (string) — Items (ids, comma separated)
    • moba.level (number) — Level
    • moba.xp (number) — Experience
    • moba.xp.next (number) — Experience to next level
    • moba.respawn (number) — Respawn in
    • moba.time (number) — Match time
    • moba.wave (number) — Wave
    • moba.score.blue (number) — Blue kills
    • moba.score.red (number) — Red kills
    • moba.towers.blue (number) — Blue towers
    • moba.towers.red (number) — Red towers
    • moba.winner (string) — Winner

Hooks and modding #

  • Hooks (a game or a mod can intercept them):
    • moba.match.end (fields a tap may change: team; cancellable) — A nexus fell (structure is its map id, by the killer entity or an empty string) and the match is about to end with team as the winner.
    • moba.reinforce (fields a tap may change: count; cancellable) — An inhibitor fell (structure) and the attackers (team) are about to get count super minions at the head of every wave of that lane (minion.waves.setReinforcements).
    • moba.reward (fields a tap may change: gold, xp; cancellable) — A hero killed a unit of the match (kind: tower, inhibitor, nexus, small, epic or hero; minions are paid by minion.waves) and is about to receive gold, and xp shared with the allied heroes nearby.
    • moba.hero.respawn (fields a tap may change: delay) — A hero died (by is the killer entity or an empty string) and is about to wait delay seconds before coming back at the fountain (respawnBase + 2 per level).
    • moba.item.buy (fields a tap may change: cost; cancellable) — A hero (bot or player) is about to buy item for cost, with gold in hand: asked once the hero, the item, the fountain and the free slot are checked, before the gold check (a lowered cost may become…
  • Moddable settings: map, teamSize, bots, playerTeam, botRetreatHealth, botReturnHealth, monsterLeash, unitSeparation, heroHealth, heroDamage, heroRange, heroSpeed, respawnBase, heroScale, monsterScale, teamRings, goldPerSecond, startingGold, pathfinding
  • Moddable collections: moba_maps, moba_items

Engines #

Declared targets: web, rust. gripforge kit api moba.lanes lists the exact settings and services of your version.

Versions #

Kit version 1.10.0.