Patches
What is particular to each patch this book covers: the builds it shipped, the live checks that ran on them, every message it carries, what the specification leaves unrecorded there, and how it differs from the patch before it. Where builds of two patches are held to the same facts, they share a section.
No build of this book has these, though the chapters name them, so what the chapters say of them says nothing of this book: AnimationAdvanced, AnimationOverrides, AppearanceCleared, AscendedUnit, AttackIndicators, AttackSpeedBounds, BalanceResult, BalanceVote, BalanceVoteAnswer, BalanceVoteRefused, BotKick, BounceMissile, CampCleared, CampMarker, CampOpened, CampTimer, CancelTargeting, CapturePointChanged, CapturePointValue, ChampionDied, ChampionRemoved, ChampionStats, CharacterPreload, ChatAllowance, ContextEmote, CreateFollower, CursorRings, DeathTimer, EffectAddedGroup, EffectCounter, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EmitterPause, EnterTeamSight, FadeSounds, FloatingTextOnMap, FogSet, FollowerMaster, ForceDeath, GameOptions, GroundAttackMode, HealthBar, HoverIndicator, HoverTarget, InhibitorDied, InventorySlot, InventorySnapshot, InventorySnapshotOnMap, ItemCharges, ItemSubstitution, ItemUsed, LeaveTeamSight, LevelCap, MapProp, MapPropChanged, MarkerMoved, MatchStarted, MinimapIcon, MinionKillCount, MissileCourse, MissileLaunched, MissileRetarget, MissileSpeed, MusicCue, NavigationFlags, ParticleEnterTeamSight, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RegionMoved, ResourceDisplay, ResourceKindChanged, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, ShopEnabled, ShopUndo, ShopUndoCount, Shutdown, Situation, SoftReconnect, SoundPlayed, SpawnBot, SpawnMarker, SpawnTurret, SpellCharge, SpellCharges, SpellCostChanged, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, SpellRangeChanged, SpellRankLimits, SpellSlotChanged, SpellSlotChangedForOwner, SpellTargeterHidden, SpellTargeterShown, SpellToggled, StatisticIncremented, StreamChunk, StreamChunkRange, StreamMetadata, StreamRequest, SubstitutionCleared, SurrenderAllowed, SwapItems, SystemMessage, TeamChanged, TeamScore, ThemeMusic, TipEvent, TipShown, UiHighlight, UnitDiedOnMap, UnitText, UseObject, VictoryDance, VoiceCommand, VoiceOverride, ZoomReport.
0.8.13.26–0.9.22.13
Client builds from 0.8.13.26 up to, not including, 0.9.22.14. Patch notes: V0.8.13.26.
| Build checked | Passed | Failed | Skipped | Commit | Date |
|---|---|---|---|---|---|
| 0.8.13.26 | 8 | 0 | 6 | 2e341b1 | 2026-11-04 |
Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AfkWarning, BotDebug, CameraLockSet, CloseShop, DeathHistory, Exit, FadeMinions, FadeRemoved, FadeTo, FogToggled, GameSpeed, GreyscaleWhenDead, HudDisabled, HudHighlightToggled, HudHighlighted, InputLock, InputLockToggled, JoinSide, LoadingProgress, MinimapHighlighted, MissileHits, MissileReport, MoveCamera, NexusIdle, NexusSkin, ObjectiveHidden, ObjectiveReplaced, ObjectiveShown, Paused, PlayerDisconnected, Replication, Resumed, Roster, SeatChampion, SeatLoadProgress, SeatName, ShopHighlighted, SideTextHidden, SideTextRefreshed, SideTextShown, SpellNameChanged, SpellNumbers, SpellTargetingChanged, SurrenderStatus, SurrenderVote, SurrenderVoteCalled, TransientAck, TutorialChatLine, TutorialPopup, TutorialPopupClosed, UnitHighlightRemoved, UnitHighlighted, VoiceEvent, VoiceEventDone, VolumeMuted, WaypointAck, WaypointGroup, WaypointGroupAtSpeed, WorldEvent.
Every message of this range (98)
0.9.22.14–0.9.22.15
Client builds from 0.9.22.14 up to, not including, 0.9.22.16. Patch notes: V0.9.22.14.
| Build checked | Passed | Failed | Skipped | Commit | Date |
|---|---|---|---|---|---|
| 0.9.22.14 | 9 | 0 | 5 | a00b64a | 2026-11-04 |
Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: FadeMinions, GreyscaleWhenDead, HudDisabled, HudHighlightToggled, HudHighlighted, InputLock, MinimapHighlighted, MissileHits, NexusIdle, NexusSkin, ObjectiveHidden, ObjectiveReplaced, ObjectiveShown, ShopHighlighted, SideTextHidden, SideTextRefreshed, SideTextShown, SpellNameChanged, SpellNumbers, SurrenderStatus, SurrenderVote, SurrenderVoteCalled, TutorialChatLine, VoiceEventDone, VolumeMuted, WorldEvent.
Every message of this range (132)
Against 0.8.13.26–0.9.22.13
Where a build from 0.9.22.14 up to, not including, 0.9.22.16 differs from one from 0.8.13.26 up to, not including, 0.9.22.14. Anything not named here is the same in both.
Transport
- The families differ: see families.json.
In 0.9.22.14–0.9.22.15, not in 0.8.13.26–0.9.22.13
| Message | Sent by | Command | What it does |
|---|---|---|---|
AfkWarning | server | 146 on events | Warn the player that they seem to be away, in a popup with one button that only closes it |
BotDebug | server | 105 on events | What a server sends describing what a bot is thinking |
CameraLockSet | server | 128 on events | Lock the camera to the champion or free it |
CloseShop | server | 147 on events | Close a client’s shop |
DeathHistory | server | 112 on events | Say what led to a death, so the client can lay it out |
Exit | client | 115 on requests | What a client sends as it leaves |
FadeRemoved | server | 138 on events | Undo a fade on a unit |
FadeTo | server | 137 on events | Fade a unit towards an opacity over time |
FogToggled | server | 126 on events | Turn the drawing of the fog of war off where it is on, or on where it is off |
GameSpeed | server | 136 on events | Set how fast the game’s clock runs |
InputLockToggled | server | 125 on events | Turn kinds of input off where they are on, or on where they are off |
InputLocksFlipped | client | 124 on requests | What a client sends after flipping kinds of its own input, off where they were on and on where they were off: as a camera move a script drives starts and ends, and at other moments of its own |
JoinSide | client | 100 on roster | Ask for a seat on one of the two sides while the match is being put together |
LoadingProgress | client | 113 on requests | What a client sends while a match loads, saying how far it has got |
MissileReport | client | 63 on requests | Report where a missile that flies straight is and where it is going |
MoveCamera | server | 131 on events | Carry a client’s view from one place to another |
MovementBounds | server | 127 on events | Set a circle that a client keeps its view or its champion’s orders within |
Paused | server | 134 on events | Put the match on hold |
PlayerDisconnected | server | 116 on events | What a server sends as a player’s client drops out |
Reconnected | server | 118 on events | Say a client has reconnected |
ReconnectedInMatch | client | 117 on requests | What a client sends right after the server answers its registration |
Replication | server | 129 on transient | Say what has changed about units a client can see |
Resumed | server | 135 on events | Take the match off hold |
ResyncEnded | server | 119 on events | End the resynchronising a client began on its own Reconnected, after which it takes spawns again as they come |
Roster | server | 103 on roster | Lay out both sides and who is on them, while the match is being put together |
SeatChampion | server | 101 on roster | Say which champion a seat is playing, while the match is being put together |
SeatLoadProgress | server | 114 on transient | Tell everyone how far one seat has got through loading, and how it is holding up |
SeatName | server | 102 on roster | Say what a seat is called, while the match is being put together |
SpellTargetingChanged | server | 133 on events | Change how a spell already in a unit’s slot is aimed |
TargetHeldChampion | server | 70 on events | Mark that a unit is attacking a champion, or to take the mark away |
TransientAck | client | 130 on requests | Say a batch of changes arrived, naming which batch |
TutorialPopup | server | 144 on events | Open the tutorial’s popup: a caption, this text and a single button, which a client answers with TutorialPopupClosed |
TutorialPopupClosed | client | 145 on requests | What a client sends as its player presses the button of the tutorial’s popup (TutorialPopup) |
UnitHighlightRemoved | server | 143 on events | Take away the light UnitHighlighted put on a unit |
UnitHighlighted | server | 142 on events | Outline a unit with a pulsing light, as a tutorial does, until UnitHighlightRemoved |
VoiceEvent | server | 132 on events | Play a voice event |
WaypointAck | client | 120 on requests | What a client sends once it has taken in a group of movements, naming which group |
WaypointGroup | server | 121 on transient | Move units |
WaypointGroupAtSpeed | server | 122 on events | Move units along paths of its own choosing, stating how each one travels rather than leaving it to the receiving end |
In 0.8.13.26–0.9.22.13, not in 0.9.22.14–0.9.22.15
| Message | Sent by | Command it had |
|---|---|---|
PlaceTurret | server | 55 on events |
ValueGroup0 | server | 49 on events |
ValueGroup1 | server | 50 on events |
ValueGroup2 | server | 51 on events |
ValueGroup3 | server | 52 on events |
Commands
These differ only in their command. Each row is a run of commands moved by the same amount:
| Channel | 0.8.13.26–0.9.22.13 | 0.9.22.14–0.9.22.15 | Messages |
|---|---|---|---|
| clock | 78–79 | 75–76 | ClockReply, ClockConvergence |
| events | 59–73 | 55–69 | EnterSight, LeaveSight, EnterLocalSight, LeaveLocalSight, StatTick, Announcement, TargetUnit |
| events | 74–106 | 71–103 | Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount, RegionRemoved, StopAnimation, GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets |
| events | 108–113 | 106–111 | BotTargets, BotState, CameraAck, MatchIdentity |
| requests | 63–71 | 59–67 | Camera, CameraLock, SelectObject, ClientVersion |
| requests | 96 | 93 | FacePosition |
Laid out differently
Attack- Its command is 57 in 0.8.13.26–0.9.22.13 and 53 in 0.9.22.14–0.9.22.15.
slotis in 0.9.22.14–0.9.22.15 (u8), aftermissile, and not in 0.8.13.26–0.9.22.13.
AttackFrom(vectors: one-on-0-9-22-14)- Its command is 58 in 0.8.13.26–0.9.22.13 and 54 in 0.9.22.14–0.9.22.15.
slotis in 0.9.22.14–0.9.22.15 (u8), aftermissile, and not in 0.8.13.26–0.9.22.13.
Chatspeakeris in 0.9.22.14–0.9.22.15 (u32) at the start, and not in 0.8.13.26–0.9.22.13.audienceis in 0.9.22.14–0.9.22.15 (u32), afterspeaker, and not in 0.8.13.26–0.9.22.13.textLengthis in 0.9.22.14–0.9.22.15 (u32), afteraudience, and not in 0.8.13.26–0.9.22.13.textis text, ended by a zero byte in 0.8.13.26–0.9.22.13 and text, sized by textLength in 0.9.22.14–0.9.22.15.terminatoris in 0.9.22.14–0.9.22.15 (bytes, 1), aftertext, and not in 0.8.13.26–0.9.22.13.
ClientEvent(vectors: buff-on-0-9-22-14, consumable-bought-on-0-9-22-14, critical-strike-on-0-9-22-14, damage-dealt-on-0-9-22-14, damage-taken-on-0-9-22-14, death-assist-on-0-9-22-14, died-on-0-9-22-14, gold-earned-on-0-9-22-14, gold-spent-on-0-9-22-14, heal-cast-on-0-9-22-14, heal-on-0-9-22-14, killing-spree-on-0-9-22-14, one-on-0-9-22-14)- Its command is 110 in 0.8.13.26–0.9.22.13 and 108 in 0.9.22.14–0.9.22.15.
eventtakes 55 playerLeft, 56 playerReconnected, 62 itemBought in 0.9.22.14–0.9.22.15 and not in 0.8.13.26–0.9.22.13.valueis in 0.9.22.14–0.9.22.15 (u32), afterspent, and not in 0.8.13.26–0.9.22.13.heal.unusedis in 0.9.22.14–0.9.22.15 (u32), afterheal.parentScript, and not in 0.8.13.26–0.9.22.13.heal.unusedToois in 0.9.22.14–0.9.22.15 (u32), afterheal.unused, and not in 0.8.13.26–0.9.22.13.effect.unusedis in 0.9.22.14–0.9.22.15 (u32), aftereffect.parentScript, and not in 0.8.13.26–0.9.22.13.effect.unusedToois in 0.9.22.14–0.9.22.15 (u32), aftereffect.unused, and not in 0.8.13.26–0.9.22.13.assist.shareis in 0.9.22.14–0.9.22.15 (f32), afterassist.magical, and not in 0.8.13.26–0.9.22.13.assist.goldis in 0.9.22.14–0.9.22.15 (f32), afterassist.share, and not in 0.8.13.26–0.9.22.13.killis in 0.9.22.14–0.9.22.15 (record), afterassist.gold, and not in 0.8.13.26–0.9.22.13.
CooldownSettokenis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.clientByteis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
CreateChampionskillLevelis in 0.9.22.14–0.9.22.15 (u8), afternode, and not in 0.8.13.26–0.9.22.13.botis in 0.9.22.14–0.9.22.15 (u8), afterside, and not in 0.8.13.26–0.9.22.13.skinis in 0.9.22.14–0.9.22.15 (i32), afterbot, and not in 0.8.13.26–0.9.22.13.assetis text, ended by a zero byte in 0.8.13.26–0.9.22.13 and text, 128 bytes in 0.9.22.14–0.9.22.15.flagis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
CreateNeutralcampAtXis in 0.9.22.14–0.9.22.15 (f32), afteratZ, and not in 0.8.13.26–0.9.22.13.campAtYis in 0.9.22.14–0.9.22.15 (f32), aftercampAtX, and not in 0.8.13.26–0.9.22.13.campAtZis in 0.9.22.14–0.9.22.15 (f32), aftercampAtY, and not in 0.8.13.26–0.9.22.13.
CreateTurret(vectors: one-on-0-9-22-14)atXis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.atYis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.atZis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.assetis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
Damagehowis in 0.9.22.14–0.9.22.15 (1-byte bits) at the start, and not in 0.8.13.26–0.9.22.13.resultis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
EffectAddedrunningForis in 0.9.22.14–0.9.22.15 (f32), aftereffect, and not in 0.8.13.26–0.9.22.13.
InhibitorState(vectors: down-on-0-9-22-14)- Its command is 69 in 0.8.13.26–0.9.22.13 and 65 in 0.9.22.14–0.9.22.15.
durationis u32 in 0.8.13.26–0.9.22.13 and i32 in 0.9.22.14–0.9.22.15.
Loadout(vectors: one-on-0-9-22-14)- Its command is 86 in 0.8.13.26–0.9.22.13 and 83 in 0.9.22.14–0.9.22.15.
runesis 8 × u32 in 0.8.13.26–0.9.22.13 and 30 × u32 in 0.9.22.14–0.9.22.15.
MapPingtargetis in 0.9.22.14–0.9.22.15 (u32), afterz, and not in 0.8.13.26–0.9.22.13.clientIdis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
MissileState(vectors: one-on-0-9-22-14)- Its command is 67 in 0.8.13.26–0.9.22.13 and 63 in 0.9.22.14–0.9.22.15.
keptXis in 0.9.22.14–0.9.22.15 (f32), afteratZ, and not in 0.8.13.26–0.9.22.13.keptYis in 0.9.22.14–0.9.22.15 (f32), afterkeptX, and not in 0.8.13.26–0.9.22.13.keptZis in 0.9.22.14–0.9.22.15 (f32), afterkeptY, and not in 0.8.13.26–0.9.22.13.directionXis in 0.9.22.14–0.9.22.15 (f32), afterkeptZ, and not in 0.8.13.26–0.9.22.13.directionYis in 0.9.22.14–0.9.22.15 (f32), afterdirectionX, and not in 0.8.13.26–0.9.22.13.directionZis in 0.9.22.14–0.9.22.15 (f32), afterdirectionY, and not in 0.8.13.26–0.9.22.13.howis in 0.9.22.14–0.9.22.15 (1-byte bits), afterdirectionZ, and not in 0.8.13.26–0.9.22.13.
ParticlesCreated(vectors: one-on-0-9-22-14)groupCountis in 0.9.22.14–0.9.22.15 (u8) at the start, and not in 0.8.13.26–0.9.22.13.groupsis in 0.9.22.14–0.9.22.15 (count in groupCount × ParticleGroup), aftergroupCount, and not in 0.8.13.26–0.9.22.13.particleis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.flagsis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.unknownis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.boundTois in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.effectis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.unknownBis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.atXis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.atYis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.atZis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.targetis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.unknownCis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
PlayAnimation(vectors: one-on-0-9-22-14)flagshaslockedat bit 6 in 0.9.22.14–0.9.22.15, and not in 0.8.13.26–0.9.22.13.flagshasfadeAtEndat bit 7 in 0.9.22.14–0.9.22.15, and not in 0.8.13.26–0.9.22.13.flags.unusedis at bit 6, 26 bits wide, in 0.8.13.26–0.9.22.13 and at bit 8, 24 bits wide, in 0.9.22.14–0.9.22.15.
RegionAdded- Its command is 89 in 0.8.13.26–0.9.22.13 and 86 in 0.9.22.14–0.9.22.15.
otherExtrais in 0.9.22.14–0.9.22.15 (u32), afterextra, and not in 0.8.13.26–0.9.22.13.
RegionAttached- Its command is 88 in 0.8.13.26–0.9.22.13 and 85 in 0.9.22.14–0.9.22.15.
otherExtrais in 0.9.22.14–0.9.22.15 (u32), afterextra, and not in 0.8.13.26–0.9.22.13.
SpawnFromBarracks(vectors: one-on-0-9-22-14)- Its command is 53 in 0.8.13.26–0.9.22.13 and 49 in 0.9.22.14–0.9.22.15.
unreadis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
SpawnUnit(vectors: one-on-0-9-22-14)- Its command is 90 in 0.8.13.26–0.9.22.13 and 87 in 0.9.22.14–0.9.22.15.
teamis u32 in 0.8.13.26–0.9.22.13 and 4-byte bits in 0.9.22.14–0.9.22.15.teamhasteamat bit 0 in 0.9.22.14–0.9.22.15, and not in 0.8.13.26–0.9.22.13.teamhasunusedat bit 9 in 0.9.22.14–0.9.22.15, and not in 0.8.13.26–0.9.22.13.flagsis in 0.9.22.14–0.9.22.15 (1-byte bits), afterteam, and not in 0.8.13.26–0.9.22.13.
SpellCooldownunreadis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
StopAttackhowis in 0.9.22.14–0.9.22.15 (1-byte bits) at the start, and not in 0.8.13.26–0.9.22.13.keepAnimatingis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.forceCastis in 0.8.13.26–0.9.22.13 and not in 0.9.22.14–0.9.22.15.
UnitStopped(vectors: one-on-0-9-22-14)syncIdis in 0.9.22.14–0.9.22.15 (i32), afterfacingZ, and not in 0.8.13.26–0.9.22.13.
VersionSync- Its command is 72 in 0.8.13.26–0.9.22.13 and 68 in 0.9.22.14–0.9.22.15.
mapis in 0.9.22.14–0.9.22.15 (i32), afteragreement, and not in 0.8.13.26–0.9.22.13.seatsis in 0.9.22.14–0.9.22.15 (12 × Seat), aftermap, and not in 0.8.13.26–0.9.22.13.buildis text, ended by a zero byte in 0.8.13.26–0.9.22.13 and text, 256 bytes in 0.9.22.14–0.9.22.15.
Chapters
- In the objects chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: No region id stands for no region.
- In the objects chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client acts on that
Registeredalone and ignores every other, so it pairs no other player’s player id with a client id. - In the objects chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client given a create message for a net id it already holds stops.
- In the objects chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: Map 1 holds the six
Barracksnames,HQ_T1,HQ_T2, the six spawn points named__P_Order_Spawn_Barracks__and__P_Chaos_Spawn_Barracks__withC01,L01orR01, and the shopsOrderShop01andChaosShop, whose identifier is 4279618595. - In the objects chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
CreateTurretcreates a turret of its own at the place its body gives, rather than naming one the map holds. - In the ordering chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client compares no numbers on movements: it takes every path as it arrives, whatever
syncIdit carries. - In the ordering chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client sends a view report again until a server answers with its number.
- In the space chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A champion is created facing +z, whatever its map’s table of spawn positions says, and so is a monster.
- In the space chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client loads the map its own settings name, map 1 where they name none, and has data for map 1 alone, Summoner’s Rift.
- In the time chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client’s match clock starts at 0 as the client finishes loading, and runs on the client’s own timer from then; a
ClockSyncsets it wherever it stands. - In the values chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A cast’s slot also takes 64, for a basic attack.
- In the values chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A champion’s own book ends at slot 22.
- In the values chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A champion’s inventory ends at slot 14, and holds neither a trinket nor an item for recalling.
- In the data chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: The client has map 1 alone.
- In the data chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A name’s opening says what the object is:
Turreta turret,Barracksan inhibitor,HQ_a nexus. - In the data chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A champion begins on its side’s spawn point itself, or at (6000, 0, 6000) on a map with none.
- In the data chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: No map adds items of its own, and there are no figures for a whole mode.
- In the joining chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client whose command line holds no double quote ends.
- In the joining chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client waits for the answer naming its own player id as long as it takes, and offers its player no choice.
- In the joining chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
VersionSyncnames neither the map nor anyone at the match: a client loads the map its own configuration names (see The client’s data). - In the vision chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
EnterSightstates nothing but the unit it names, and only marks that unit as in view. - In the vision chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
LeaveLocalSighttakes a unit out of what one client alone can see, and leaves it held. - In the vision chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
GoldGainedshows floating gold only for the client’s own champion. - In the movement chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client reads nothing of
EnterSight. - In the movement chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A movement with no points empties the unit’s path.
- In the movement chapter, a passage holds for 0.9.22.14–0.9.22.15 and not 0.8.13.26–0.9.22.13: A server moves the champion by answering the
MoveOrderwith aWaypointGroup, and the client returns that group’ssyncIdin aWaypointAck(see Ordering). - In the replication chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A server grants gold with
GoldGained. - In the match chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
StatTickasks every unit’s stats to advance by that span. - In the match chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: A client whose connection drops, while loading or in play, shows its player that it was disconnected, and neither connects again nor leaves.
- In the combat chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: Result 0 of
Damageis a notice a client shows for only one in every thirty it receives, and result 5 a miss, shown for its player’s own unit. - In the effects chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15:
ParticlesCreatedstarts one particle, named by the message’s own id. - In the shop chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: An item’s own data says whether it can be bought.
- In the shop chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: Opening the shop sends nothing either.
- In the shop chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: For an item built from others, a client asks only where a slot is free or holds one of its parts, and where the champion’s gold covers what remains after the parts it holds.
- In the communication chapter, a passage holds for 0.9.22.14–0.9.22.15 and not 0.8.13.26–0.9.22.13:
VoiceEventcarries only the event’s name and asks for no answer. - In the interface chapter, a passage holds for 0.8.13.26–0.9.22.13 and not 0.9.22.14–0.9.22.15: No message locks a client’s input, in either direction.
- In the interface chapter, a passage holds for 0.9.22.14–0.9.22.15 and not 0.8.13.26–0.9.22.13: A server locks and unlocks input with
InputLockToggledalone.
Only notes
These read the same on the wire, and only their notes change. What each says in 0.9.22.14–0.9.22.15:
Autocast,slot: “The slot cast by itself, from -1 to 44. A client takes a value outside that range as it stands. What -1 does is not recorded.”, where 0.8.13.26–0.9.22.13 has “The slot cast by itself, from -1 to 22. A client takes a value outside that range as it stands. What -1 does is not recorded.”CastSpell,how.slot: “Which slot is being cast from, from 0 to 44. A client still sends a larger slot, its low seven bits only.”, where 0.8.13.26–0.9.22.13 has “Which slot is being cast from, from 0 to 22. A client still sends a larger slot, its low seven bits only.”ExperienceGained,unit: “The unit granted it, a champion. A client fails for any other unit it holds, and does nothing for a unit it does not know.”, where 0.8.13.26–0.9.22.13 has “The unit granted it, one with a mind, such as a champion or a minion. A client does nothing for a unit it does not know.”ItemAdded, its layout: “There is no charges field: a client takes an item’s charges from the item’s own data. A client applies it only to a champion’s item slots.”, where 0.8.13.26–0.9.22.13 has “There is no charges field: a client takes an item’s charges from the item’s own data. A server sends it to units nobody is buying for.”ItemAdded,slot: “The slot it went to, 0 to 36. A larger value than 36 has no defined effect.”, where 0.8.13.26–0.9.22.13 has “The slot it went to, 0 to 14. A larger value than 14 has no defined effect.”PingPlaced, its layout: “Where target is a unit it holds, of a kind that takes notices, a client shows a notice for it, but not again for the next ping on the same target; it keeps the last target of each side apart. The header names the champion that placed the ping, as source does.”, where 0.8.13.26–0.9.22.13 has “A client marks atX and atZ on each of its two map views, and only while it shows a map. The header can carry zero.”PingPlaced,atY: “Its height, in world units. A client does not use it to place the ping.”, where 0.8.13.26–0.9.22.13 has “A client reads nothing here.”PingPlaced,target: “The unit pinged, or zero where a place was pinged instead.”, where 0.8.13.26–0.9.22.13 has “A client reads nothing here.”PingPlaced,source: “The unit that placed it.”, where 0.8.13.26–0.9.22.13 has “A client reads nothing here.”RemoveItemAnswer,slot: “Which slot, 0 to 36. A larger value than 36 has no defined effect.”, where 0.8.13.26–0.9.22.13 has “Which slot, 0 to 14. A larger value than 14 has no defined effect.”SwapItemsAnswer,from: “The slot the item left, 0 to 36. A client swaps the two slots named whatever their values, so a server keeps both within range.”, where 0.8.13.26–0.9.22.13 has “The slot the item left, 0 to 14. A client swaps the two slots named whatever their values, so a server keeps both within range.”SwapItemsAnswer,to: “The slot it went to, 0 to 36. A client swaps the two slots named whatever their values, so a server keeps both within range.”, where 0.8.13.26–0.9.22.13 has “The slot it went to, 0 to 14. A client swaps the two slots named whatever their values, so a server keeps both within range.”UnitDied, its layout: “A client does nothing for a unit already dead. Otherwise it stops the unit’s cast and attack and, where killer is nonzero, puts the unit down for stayDown, whether or not it knows killer, and shows what that kind of unit shows for a kill, for a minion only where killer is on another side.”, where 0.8.13.26–0.9.22.13 has “A client does nothing more for a unit already dead, or where killer is zero. Otherwise, whether or not it knows killer, it puts the unit down for stayDown: dead, with no health, its movement, cast and attack stopped. For a minion whose killer, or the killer’s owner, is the player’s own champion, it then shows a kill notice.”
0.9.22.16–0.9.25.20
Client builds from 0.9.22.16 up to, not including, 0.9.25.21. Patch notes: V0.9.22.16, V0.9.22.18.
| Build checked | Passed | Failed | Skipped | Commit | Date |
|---|---|---|---|---|---|
| 0.9.22.16 | 9 | 0 | 5 | e96264e | 2026-11-04 |
| 0.9.22.18 | 9 | 0 | 5 | e82b321 | 2026-11-04 |
Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: FadeMinions, GreyscaleWhenDead, HudDisabled, HudHighlightToggled, MinimapHighlighted, NexusIdle, NexusSkin, SpellNameChanged, SpellNumbers, TutorialChatLine, VoiceEventDone, VolumeMuted, WorldEvent.
Every message of this range (148)
Against 0.9.22.14–0.9.22.15
Where a build from 0.9.22.16 up to, not including, 0.9.25.21 differs from one from 0.9.22.14 up to, not including, 0.9.22.16. Anything not named here is the same in both.
In 0.9.22.16–0.9.25.20, not in 0.9.22.14–0.9.22.15
| Message | Sent by | Command | What it does |
|---|---|---|---|
HudHighlighted | server | 157 on events | Light up part of the screen, as a tutorial does |
InputLock | server | 149 on events | Lock or unlock a kind of input on a client |
InputLockChanged | client | 148 on requests | What a client sends after locking or unlocking kinds of its own input |
MissileHits | server | 163 on events | Say which units a missile struck |
ObjectiveHidden | server | 152 on events | Hide the objective panel |
ObjectiveReplaced | server | 153 on events | Replace the text of the objective panel, showing the panel if it is hidden |
ObjectiveShown | server | 151 on events | Show the objective panel with a text |
ShopHighlighted | server | 158 on events | Make a shop element blink once, as a tutorial does |
SideTextHidden | server | 155 on events | Close the box of text SideTextShown opened |
SideTextRefreshed | server | 156 on events | Change the text in the box SideTextShown opened, in place |
SideTextShown | server | 154 on events | Show a box of text at the right edge of the screen |
SurrenderFailed | server | 161 on events | What a server sends when a surrender vote fails, to say how long until another can be called |
SurrenderStatus | server | 162 on events | Tell a side where its surrender vote stands |
SurrenderVote | client | 159 on requests | Vote on surrendering |
SurrenderVoteCalled | server | 160 on events | Open a surrender vote, or to report one already open |
TutorialShopOpened | client | 150 on requests | What a client sends as its player opens the shop |
Laid out differently
ClientEvent(vectors: buff-on-0-9-22-16, consumable-bought-on-0-9-22-16, critical-strike-on-0-9-22-16, damage-dealt-on-0-9-22-16, damage-taken-on-0-9-22-16, death-assist-on-0-9-22-16, died-on-0-9-22-16, gold-earned-on-0-9-22-16, gold-spent-on-0-9-22-16, heal-cast-on-0-9-22-16, heal-on-0-9-22-16, item-bought-on-0-9-22-16, killing-spree-on-0-9-22-16, one-on-0-9-22-16)eventtakes 63 surrenderVoteStarted, 64 surrenderVoteCast, 65 surrenderAlreadyVoted, 66 surrenderCountdown, 67 surrenderFailed, 68 surrenderTooEarly, 69 surrenderAgreed, 70 surrenderVoteSpam, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo in 0.9.22.16–0.9.25.20 and not in 0.9.22.14–0.9.22.15.valueis present when event = 20 in 0.9.22.14–0.9.22.15, and present when event = 20 or 62 in 0.9.22.16–0.9.25.20.
DeathHistory(vectors: one-on-0-9-22-16)entries[].eventtakes 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo in 0.9.22.16–0.9.25.20 and not in 0.9.22.14–0.9.22.15.entries[].valueis present when event = 20 in 0.9.22.14–0.9.22.15, and present when event = 20 or 62 in 0.9.22.16–0.9.25.20.
MissileReportunknownAXis in 0.9.22.16–0.9.25.20 (f32), afteratZ, and not in 0.9.22.14–0.9.22.15.unknownAYis in 0.9.22.16–0.9.25.20 (f32), afterunknownAX, and not in 0.9.22.14–0.9.22.15.unknownAZis in 0.9.22.16–0.9.25.20 (f32), afterunknownAY, and not in 0.9.22.14–0.9.22.15.travelXis in 0.9.22.16–0.9.25.20 (f32), afterunknownAZ, and not in 0.9.22.14–0.9.22.15.travelYis in 0.9.22.16–0.9.25.20 (f32), aftertravelX, and not in 0.9.22.14–0.9.22.15.travelZis in 0.9.22.16–0.9.25.20 (f32), aftertravelY, and not in 0.9.22.14–0.9.22.15.velocityXis in 0.9.22.16–0.9.25.20 (f32), aftertravelZ, and not in 0.9.22.14–0.9.22.15.velocityYis in 0.9.22.16–0.9.25.20 (f32), aftervelocityX, and not in 0.9.22.14–0.9.22.15.velocityZis in 0.9.22.16–0.9.25.20 (f32), aftervelocityY, and not in 0.9.22.14–0.9.22.15.endXis in 0.9.22.16–0.9.25.20 (f32), aftervelocityZ, and not in 0.9.22.14–0.9.22.15.endYis in 0.9.22.16–0.9.25.20 (f32), afterendX, and not in 0.9.22.14–0.9.22.15.endZis in 0.9.22.16–0.9.25.20 (f32), afterendY, and not in 0.9.22.14–0.9.22.15.targetXis in 0.9.22.16–0.9.25.20 (f32), afterendZ, and not in 0.9.22.14–0.9.22.15.targetYis in 0.9.22.16–0.9.25.20 (f32), aftertargetX, and not in 0.9.22.14–0.9.22.15.targetZis in 0.9.22.16–0.9.25.20 (f32), aftertargetY, and not in 0.9.22.14–0.9.22.15.castis bytes, 128 in 0.9.22.14–0.9.22.15 and bytes, sized by remaining in 0.9.22.16–0.9.25.20.keptXis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.keptYis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.keptZis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.directionXis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.directionYis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.directionZis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.
MissileStatecasterAtXis in 0.9.22.16–0.9.25.20 (f32), afteratZ, and not in 0.9.22.14–0.9.22.15.casterAtYis in 0.9.22.16–0.9.25.20 (f32), aftercasterAtX, and not in 0.9.22.14–0.9.22.15.casterAtZis in 0.9.22.16–0.9.25.20 (f32), aftercasterAtY, and not in 0.9.22.14–0.9.22.15.facingXis in 0.9.22.16–0.9.25.20 (f32), aftercasterAtZ, and not in 0.9.22.14–0.9.22.15.facingYis in 0.9.22.16–0.9.25.20 (f32), afterfacingX, and not in 0.9.22.14–0.9.22.15.facingZis in 0.9.22.16–0.9.25.20 (f32), afterfacingY, and not in 0.9.22.14–0.9.22.15.velocityXis in 0.9.22.16–0.9.25.20 (f32), afterfacingZ, and not in 0.9.22.14–0.9.22.15.velocityYis in 0.9.22.16–0.9.25.20 (f32), aftervelocityX, and not in 0.9.22.14–0.9.22.15.velocityZis in 0.9.22.16–0.9.25.20 (f32), aftervelocityY, and not in 0.9.22.14–0.9.22.15.endXis in 0.9.22.16–0.9.25.20 (f32), aftervelocityZ, and not in 0.9.22.14–0.9.22.15.endYis in 0.9.22.16–0.9.25.20 (f32), afterendX, and not in 0.9.22.14–0.9.22.15.endZis in 0.9.22.16–0.9.25.20 (f32), afterendY, and not in 0.9.22.14–0.9.22.15.unitAtXis in 0.9.22.16–0.9.25.20 (f32), afterendZ, and not in 0.9.22.14–0.9.22.15.unitAtYis in 0.9.22.16–0.9.25.20 (f32), afterunitAtX, and not in 0.9.22.14–0.9.22.15.unitAtZis in 0.9.22.16–0.9.25.20 (f32), afterunitAtY, and not in 0.9.22.14–0.9.22.15.hownames bit 0flagin 0.9.22.14–0.9.22.15 andbouncedin 0.9.22.16–0.9.25.20.keptXis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.keptYis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.keptZis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.directionXis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.directionYis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.directionZis in 0.9.22.14–0.9.22.15 and not in 0.9.22.16–0.9.25.20.
Chapters
- In the votes chapter, a passage holds for 0.9.22.14–0.9.22.15 and not 0.9.22.16–0.9.25.20: There is no surrender vote: a client sends and takes no message about one.
- In the votes chapter, a passage holds for 0.9.22.16–0.9.25.20 and not 0.9.22.14–0.9.22.15: A client has no panel for the vote.
- In the interface chapter, a passage holds for 0.9.22.14–0.9.22.15 and not 0.9.22.16–0.9.25.20: A server locks and unlocks input with
InputLockToggledalone. - In the interface chapter, a passage holds for 0.9.22.16–0.9.25.20 and not 0.9.22.14–0.9.22.15: A client locks and unlocks its own input too, and tells the server each time:
InputLocksFlippedfor the locks it flipped, as when a camera move a script drives starts and ends, andInputLockChangedfor the locks it set or cleared.
Only notes
These read the same on the wire, and only their notes change. What each says in 0.9.22.16–0.9.25.20:
TutorialPopup,text: “A key into the client’s own text for the popup’s body. The text ends at its first zero byte, which falls within the field.”, where 0.9.22.14–0.9.22.15 has “A key into the client’s own text for the popup’s body. A client copies the whole field first, so the text ends at a zero byte within it.”
0.9.25.21–0.9.25.23
Client builds from 0.9.25.21 up to, not including, 0.9.25.24. Patch notes: V0.9.25.21.
| Build checked | Passed | Failed | Skipped | Commit | Date |
|---|---|---|---|---|---|
| 0.9.25.21 | 10 | 0 | 4 | d82cfce | 2026-11-04 |
Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: FadeMinions, GreyscaleWhenDead, HudDisabled, NexusIdle, NexusSkin, SpellNameChanged, WorldEvent.
Every message of this range (153)
Against 0.9.22.16–0.9.25.20
Where a build from 0.9.25.21 up to, not including, 0.9.25.24 differs from one from 0.9.22.16 up to, not including, 0.9.25.21. Anything not named here is the same in both.
In 0.9.25.21–0.9.25.23, not in 0.9.22.16–0.9.25.20
| Message | Sent by | Command | What it does |
|---|---|---|---|
HudHighlightToggled | server | 166 on events | Light up part of the screen, or to put it out |
MinimapHighlighted | server | 165 on events | Make part of the minimap blink, as a tutorial does |
SpellNumbers | server | 168 on events | Fill in the numbers a client shows beside a unit’s spells |
TutorialChatLine | server | 167 on events | Put a line of the client’s own text in its chat, as a line from the game |
VoiceEventDone | client | 164 on requests | What a client sends once a voice event (VoiceEvent) that asked for it has played |
VolumeMuted | server | 169 on events | Mute or unmute one kind of sound |
In 0.9.22.16–0.9.25.20, not in 0.9.25.21–0.9.25.23
| Message | Sent by | Command it had |
|---|---|---|
SurrenderFailed | server | 161 on events |
Laid out differently
ClientEvent(vectors: buff-on-0-9-25-21, consumable-bought-on-0-9-25-21, critical-strike-on-0-9-25-21, damage-dealt-on-0-9-25-21, damage-taken-on-0-9-25-21, death-assist-on-0-9-25-21, died-on-0-9-25-21, gold-earned-on-0-9-25-21, gold-spent-on-0-9-25-21, heal-cast-on-0-9-25-21, heal-on-0-9-25-21, item-bought-on-0-9-25-21, killing-spree-on-0-9-25-21, one-on-0-9-25-21)assist.creditedis in 0.9.25.21–0.9.25.23 (u32), afterassist.gold, and not in 0.9.22.16–0.9.25.20.
CreateChampion(vectors: one-on-0-9-25-21)spawnIndexis in 0.9.25.21–0.9.25.23 (u8), afterbot, and not in 0.9.22.16–0.9.25.20.
DeathHistory(vectors: one-on-0-9-25-21)entries[].assist.creditedis in 0.9.25.21–0.9.25.23 (u32), afterentries[].assist.gold, and not in 0.9.22.16–0.9.25.20.
EffectReplacedrunningForis in 0.9.25.21–0.9.25.23 (f32), afterslot, and not in 0.9.22.16–0.9.25.20.
MoveCamerahowis in 0.9.25.21–0.9.25.23 (1-byte bits) at the start, and not in 0.9.22.16–0.9.25.20.
SurrenderVoteCalledhownames bit 1castin 0.9.22.16–0.9.25.20 andopenTheMenuin 0.9.25.21–0.9.25.23.howhascountAsYesat bit 0 in 0.9.25.21–0.9.25.23, and not in 0.9.22.16–0.9.25.20.how.unusedis at bit 0, 1 bits wide, in 0.9.22.16–0.9.25.20 and at bit 2, 6 bits wide, in 0.9.25.21–0.9.25.23.howhasunusedHighat bit 2 in 0.9.22.16–0.9.25.20, and not in 0.9.25.21–0.9.25.23.seatsis in 0.9.25.21–0.9.25.23 (u8), afteragainst, and not in 0.9.22.16–0.9.25.20.closesInis in 0.9.25.21–0.9.25.23 (f32), afterside, and not in 0.9.22.16–0.9.25.20.
VoiceEventcallbackis in 0.9.25.21–0.9.25.23 (u8), afterevent, and not in 0.9.22.16–0.9.25.20.
Chapters
- In the communication chapter, a passage holds for 0.9.22.16–0.9.25.20 and not 0.9.25.21–0.9.25.23:
VoiceEventcarries only the event’s name and asks for no answer. - In the votes chapter, a passage holds for 0.9.22.16–0.9.25.20 and not 0.9.25.21–0.9.25.23: A client has no panel for the vote.
- In the votes chapter, a passage holds for 0.9.25.21–0.9.25.23 and not 0.9.22.16–0.9.25.20:
SurrenderVoteCalledshows the caller’s vote to that side and, where it says the vote opens, opens the vote’s panel for that side.
Only notes
These read the same on the wire, and only their notes change. What each says in 0.9.25.21–0.9.25.23:
ShopHighlighted,element: “A shop element blinks once, where the shop window is open. Element 0 is the buy button, 1 the sell button, 2 the shop item number names, 3 the item second names within the category number names, and 4 the recommended item number names. A larger value than 4 has no defined effect.”, where 0.9.22.16–0.9.25.20 has “A shop element blinks once, where the shop window is open. Element 0 is the buy button, 1 the sell button, 2 the shop item number names, and 3 the item second names within the category number names. A client fails for any larger value.”
0.9.25.24–0.9.25.35
Client builds from 0.9.25.24 up to, not including, 0.9.25.36. Patch notes: V0.9.25.24.
| Build checked | Passed | Failed | Skipped | Commit | Date |
|---|---|---|---|---|---|
| 0.9.25.24 | 10 | 0 | 4 | 186b1bf | 2026-11-04 |
Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: FadeMinions, GreyscaleWhenDead, HudDisabled, NexusIdle, NexusSkin, SpellNameChanged.
Every message of this range (154)
Against 0.9.25.21–0.9.25.23
Where a build from 0.9.25.24 up to, not including, 0.9.25.36 differs from one from 0.9.25.21 up to, not including, 0.9.25.24. Anything not named here is the same in both.
In 0.9.25.24–0.9.25.35, not in 0.9.25.21–0.9.25.23
| Message | Sent by | Command | What it does |
|---|---|---|---|
WorldEvent | server | 170 on events | Say something happened that the whole match is told about |
Laid out differently
CameralookAtXis in 0.9.25.24–0.9.25.35 (f32) at the start, and not in 0.9.25.21–0.9.25.23.lookAtYis in 0.9.25.24–0.9.25.35 (f32), afterlookAtX, and not in 0.9.25.21–0.9.25.23.lookAtZis in 0.9.25.24–0.9.25.35 (f32), afterlookAtY, and not in 0.9.25.21–0.9.25.23.atXis in 0.9.25.21–0.9.25.23 and not in 0.9.25.24–0.9.25.35.atYis in 0.9.25.21–0.9.25.23 and not in 0.9.25.24–0.9.25.35.atZis in 0.9.25.21–0.9.25.23 and not in 0.9.25.24–0.9.25.35.facingXis in 0.9.25.21–0.9.25.23 and not in 0.9.25.24–0.9.25.35.facingYis in 0.9.25.21–0.9.25.23 and not in 0.9.25.24–0.9.25.35.facingZis in 0.9.25.21–0.9.25.23 and not in 0.9.25.24–0.9.25.35.
Damagehownames bit 7soundin 0.9.25.21–0.9.25.23 andunusedin 0.9.25.24–0.9.25.35.
Chapters
- In the transport chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client asks for 7 channels.
- In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A region id of 0 names no region: given a
RegionAddedcarrying 0, a client gives the region an id of its own, its own node in the top byte and a count below it, which no message from a server can name. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Registration pairs each player id with a client id: a server answers a client’s
Registerwith oneRegisteredfor every seat. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A bot’s champion carries 4294967295.
- In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client that still holds the earlier object gives the net id to the new one, so messages naming it reach the new object, and removing either leaves the id naming neither.
- In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Every object a map places carries the identifier its name gives, turrets, navigation points and props among them.
- In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: | Map | Holds | | –– | ———————————————————————————————————————————————————————————————————————————–– | | 1, 2 | the six
Barracksnames,HQ_T1,HQ_T2,orderShop01,chaosShop01, the six spawn points named__P_…, and turrets namedTurret_T1_…andTurret_T2_…,Turret_OrderTurretShrineandTurret_ChaosTurretShrineamong them | | 3 |Barracks_T1_C1,Barracks_T2_C1,HQ_T1,HQ_T2,OrderShop01,ChaosShop01,____P_Chaos_Spawn_Barracks__C01, and turrets,Turret_T1_C_08among them | - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
CreateTurretgives a net id to a turret the map already holds, matched by name. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
CreateTurretmatches a turret’s name without regard to case, and does nothing where the map holds no turret of that name. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client removes a nexus about 4 seconds after
BuildingDiednames it, and can fail as it does. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client sends a
WaypointGroup’sWaypointAckbefore it reads any path, whatever units the paths name. - In the ordering chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A server can instead send
Replicationreliably on the events channel. - In the ordering chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
WaypointGroup,WaypointGroupAtSpeed,Path,PathWithSpeed,EnterSight, andUnitStoppedandSpellCastAnswerwhere they carry one, share one count per unit, from -1. - In the ordering chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Nothing answers a view report: a client sends its latest report again, twice the round trip time plus 1/30 of a second apart, for as long as the match runs.
- In the ordering chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client also answers each
PathandPathWithSpeed, taken or not, with aWaypointAckcarrying itssyncId. - In the space chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A champion faces as its map’s table of spawn positions says (see
CreateChampion). - In the space chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client has data for maps 1, 2 and 3.
- In the time chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client’s match clock does not run until the first
ClockSyncarrives, which sets it. - In the time chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
GameSpeedsets the pace of the match clock, and a hold sets the pace to 0 until play resumes. - In the time chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client runs no clock but the match clock, and takes whatever speed
GameSpeedgives. - In the time chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A
GameSpeedthat arrives during a hold sets the match clock running again at once. - In the values chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A cast’s slot also takes 64 to 70, for a basic attack.
- In the values chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A champion’s own book ends at slot 44.
- In the values chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A champion’s inventory ends at slot 36, and a player sees and uses only slots 0 to 5.
- In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: The client has maps 1, 2 and 3.
- In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
CreateTurretnames a building by its name alone, compared without regard to case, and one naming no building does nothing. - In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A name’s opening says what the object is, the first match winning and a minion spawner’s tested before
Barracks:Turreta turret,Barracksan inhibitor,HQ_a nexus. - In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A champion begins at its side’s spawn point moved by an offset from
DATA/Characters/HeroSpawnOffsets.inibin, read from the sectionOrder<n>orChaos<n>under the keysPos<i>andFacing<i>, where i is one more thanCreateChampion’s spawn index. - In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Map 3 alone adds an
Items.inibin. - In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Any whitespace separates the words of the fourth argument.
- In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client waits 30 seconds for the answer naming its own player id.
- In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
VersionSyncnames the map to load and everyone at the match. - In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client writes zero where its player id goes in
LoadingProgress. - In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A server MUST put the seat’s player id in
SeatLoadProgress: the loading screen shows a seat’s card from theVersionSyncseat with that id. - In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client answers a batch as soon as it arrives, within the run or not, and never answers one naming a unit it does not hold.
- In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client whose connection drops before play begins ends rather than connecting again.
- In the vision chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
EnterSightstates where the unit stands or which path it walks, and nothing of its looks, shields, health or resource. - In the vision chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
GoldGainednaming the client’s own champion, with an amount above 0 and a source the client holds, shows the gold over the source. - In the vision chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Any other
GoldGainedshows the gold gained or lost over the unit it names, whichever unit that is. - In the vision chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
LevelUpshows its effect over any unit the client can see. - In the movement chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A unit coming into sight while standing carries its place and facing in
EnterSightinstead. - In the movement chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A sending end MUST NOT send a movement with no points; a receiving end refuses it.
- In the movement chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client reads nothing after a refused movement in its group, and still answers the group.
- In the movement chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client takes a
WaypointGroupor aWaypointGroupAtSpeedon channels 2, 3 and 4 alike. - In the movement chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client sends the
WaypointAckbefore reading any movement in the group, and lists no units in it. - In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: The groups follow in the order 0 to 4, and nothing gives a group’s length: each value is four bytes, so a group takes four bytes for its set of values and four for each bit that set has set.
- In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A value that says yes or no is an integer, 1 for yes and 0 for no.
- In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A prop answers to no table, and a client takes nothing a batch carries for one.
- In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: The building table is the same on every map.
- In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Each row also gives the type a value is written in.
- In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: ## A champion | Group | Bits | Value | Type | | —– | –––– | ———————————————————————————————–– | —– | | 0 | 0 | Experience | float | | 0 | 1 | Gold in hand | float | | 0 | 2 to 3 | Which slots can be cast from: the champion’s own, then the second set | u32 | | 0 | 4 to 7 | What the spell in slots 0 to 3 costs | float | | 0 | 8 to 11 | What the spell in slots 41 to 44 costs | float | | 0 | 12 to 13 | What the spell in slots 0 and 1 of the second set costs | float | | 1 | 0 to 1 | Health and resource as they stand | float | | 1 | 2 to 3 | Health and resource at their greatest | float | | 1 | 4 | What the champion is doing, as a set of bits | u32 | | 1 | 5 to 8 | Whether it is proof against spells, proof against all harm, targetable, and proof against strikes | u32 | | 2 | 0 to 1 | Whether it is proof against strikes, then against spells, as group 1 bits 8 and 5 | u32 | | 2 | 2 | Damage it deals by striking | float | | 2 | 3 | Damage its spells deal before modifiers | float | | 2 | 4 | How often it turns a blow aside | float | | 2 | 5 | Its size | float | | 2 | 6 | How often it strikes critically | float | | 2 | 7 to 8 | Armour and spell resistance | float | | 2 | 9 to 10 | How fast health and resource return | float | | 2 | 11 | How fast it moves | float | | 2 | 12 | How far it strikes from | float | | 2 | 13 to 14 | Flat and percent modifiers on the damage it strikes with | float | | 2 | 15 to 16 | Flat and percent modifiers on its spells’ damage | float | | 2 | 17 to 18 | Flat and percent reduction of the spell damage it takes | float | | 2 | 19 | A multiplier on how fast it strikes | float | | 2 | 20 | A flat addition to how far it casts | float | | 2 | 21 | A modifier on its cooldowns | float | | 3 | 0 to 1 | A percent and a flat addition to how far it sees | float | | 3 | 2 | Level | u32 | ## A turret | Group | Bits | Value | Type | | —– | –––– | –––––––––––––––––––––––––––– | —– | | 1 | 0 | Damage it deals by striking | float | | 1 | 1 to 2 | Armour and spell resistance | float | | 1 | 3 | How fast it moves | float | | 1 | 4 | A multiplier on how fast it strikes | float | | 1 | 5 | Its size | float | | 1 | 6 to 7 | Flat and percent modifiers on the damage it strikes with | float | | 1 | 8 to 9 | Flat and percent modifiers on its spells’ damage | float | | 1 | 10 to 11 | How fast health and resource return | float | | 1 | 12 to 13 | Health as it stands, then at its greatest | float | | 3 | 0 to 1 | A percent and a flat addition to how far it sees | float | ## A minion, and a unit belonging to no side | Group | Bits | Value | Type | | —– | –––– | ———————————————————————————————–– | —– | | 1 | 0 to 1 | Health as it stands, then at its greatest | float | | 1 | 2 to 3 | Whether it is proof against strikes, then against spells | u32 | | 1 | 4 | What the unit is doing, as a set of bits | u32 | | 1 | 5 to 8 | Whether it is proof against spells, proof against all harm, targetable, and proof against strikes | u32 | | 1 | 9 | Damage it deals by striking | float | | 1 | 10 to 11 | Armour and spell resistance | float | | 1 | 12 | How fast it moves | float | | 1 | 13 | A multiplier on how fast it strikes | float | | 1 | 14 | Its size | float | | 1 | 15 to 16 | Flat and percent modifiers on the damage it strikes with | float | | 1 | 17 to 18 | Flat and percent modifiers on its spells’ damage | float | | 1 | 19 to 20 | How fast health and resource return | float | | 3 | 0 to 1 | A percent and a flat addition to how far it sees | float | ## A building Inhibitors, nexuses and the buildings minions come from share one table.
- In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A server grants experience with
ExperienceGainedand gold withGoldGained. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client shows the speed
GameSpeedsets over its champion. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: The speed
GameSpeedsets takes effect at once: sent during a hold, it ends the hold, and aResumedafter it changes nothing. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: No unit advances for
StatTick. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client reads nothing from
Paused. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client reads nothing from
Resumed. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client also leaves as one abandoning as its player declines to reconnect or cancels a reconnection under way, and as its player dismisses the notice that it was dropped for being away.
- In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client shows a notice in chat for
PlayerDisconnected. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client started again for a match in progress knows nothing of it, and joins as at the start: a server takes it through Joining a match from registering to
StartGame, with a spawn run that states the field as it stands, and aClockSync. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client sends
ReconnectedInMatchon every connection it makes, the first included, with a byte that is 0 where the match is in play and 1 otherwise. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client dropped during play connects again only where its player agrees: for the reason 0 it asks, and on a yes connects again, showing that it is reconnecting until it is back or its player cancels.
- In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client gives up on a connection where a reliable message it sent goes unacknowledged for 30 seconds, while loading and in play alike.
- In the combat chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client moves the attacker to the place
AttackFromgives only where it stands more than 400 units from it. - In the combat chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
Damageshows a figure for the results that carry one, normal and critical; zero is the result that shows the unit as invulnerable, not a plain hit. - In the combat chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Of the other results of
Damage, 1 shows nothing, 2 a dodge and 5 a miss; 3 is critical, and 4 and any above 5 are normal. - In the combat chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
TargetHeldChampionmarks a unit as attacking the client’s own champion: a client sets the mark only where the message names that champion, and clears it for any other. - In the combat chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A server MUST NOT send
BuildingDiedfor the nexus: a client removes the nexus some 4 seconds later while still using it, and fails. - In the spells chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A command its player types sends
UpgradeSpellwithout checking anything. - In the spells chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Only a missile that flies straight acts on
MissileHits. - In the effects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
ParticlesCreatedstarts sets of particles, each named by its own id. - In the shop chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Opening the shop sends
TutorialShopOpened, in any match, except while the shop is locked. - In the shop chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client asks only while the shop is not locked, with the champion dead or near a shop of its side.
- In the shop chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A message that locks other input along with the shop stops the shop opening, but leaves an open shop open and its key on.
- In the communication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: Where a
VoiceEventasks for an answer, a client sendsVoiceEventDoneonce it has played the event. - In the communication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client never answers a
VoiceEventit cannot play. - In the votes chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client takes
SurrenderVoteCalledwhenever it arrives, its own champion on the field or not. - In the interface chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client sends no
Camerawhile its camera is locked: a server that needs a client’s view reports frees its camera withCameraLockSet. - In the interface chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23:
Cameranames one point, the one the view looks at, in place of where the view sits and which way it faces. - In the interface chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client ignores
CameraLockSetthat arrives while it holds its camera itself, and answers nothing. - In the interface chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.21–0.9.25.23: A client keeps every lock a message sets or clears, and later input obeys them, but it acts on a lock at once only where the message’s mask is exactly one of 1, 4, 8, 16, 32 or 128.
Only notes
These read the same on the wire, and only their notes change. What each says in 0.9.25.24–0.9.25.35:
ClientEvent,event: “Which event, from 0 to 73, and so which fields follow. A value above 73 has no defined effect.”, where 0.9.25.21–0.9.25.23 has “Which event, from 0 to 70, and so which fields follow.”DeathHistory,entries[].event: “Which event, from 0 to 73, and so which fields follow.”, where 0.9.25.21–0.9.25.23 has “Which event, from 0 to 70, and so which fields follow.”
0.9.25.36–1.0.0.24
Client builds from 0.9.25.36 up to, not including, 1.0.0.25. Patch notes: V0.9.25.34.
| Build checked | Passed | Failed | Skipped | Commit | Date |
|---|---|---|---|---|---|
| 0.9.25.36 | 10 | 0 | 4 | 2d10e67 | 2026-11-04 |
Every message of this range (158)
Against 0.9.25.24–0.9.25.35
Where a build from 0.9.25.36 up to, not including, 1.0.0.25 differs from one from 0.9.25.24 up to, not including, 0.9.25.36. Anything not named here is the same in both.
In 0.9.25.36–1.0.0.24, not in 0.9.25.24–0.9.25.35
| Message | Sent by | Command | What it does |
|---|---|---|---|
FadeMinions | server | 174 on events | Fade one side’s minions |
GreyscaleWhenDead | server | 170 on events | Say whether a client draws the world without colour while its champion is down |
HudDisabled | server | 171 on events | Take down a client’s interface as the match ends |
NexusIdle | server | 173 on events | Put each nexus into its idle particles |
NexusSkin | server | 169 on events | Change how one side’s nexus looks |
SpellNameChanged | server | 172 on events | Put another spell into a slot of a unit’s that already holds one |
In 0.9.25.24–0.9.25.35, not in 0.9.25.36–1.0.0.24
| Message | Sent by | Command it had |
|---|---|---|
InputLockChanged | client | 148 on requests |
InputLocksFlipped | client | 124 on requests |
Commands
These differ only in their command. Each row is a run of commands moved by the same amount:
| Channel | 0.9.25.24–0.9.25.35 | 0.9.25.36–1.0.0.24 | Messages |
|---|---|---|---|
| events | 125–147 | 124–146 | InputLockToggled, FogToggled, MovementBounds, CameraLockSet, MoveCamera, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeTo, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop |
| events | 149–170 | 147–168 | InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent |
| requests | 130–145 | 129–144 | TransientAck, TutorialPopupClosed |
| requests | 150–164 | 148–162 | TutorialShopOpened, SurrenderVote, VoiceEventDone |
| transient | 129 | 128 | Replication |
Laid out differently
AppearancePushedoverrideSpellsis in 0.9.25.36–1.0.0.24 (u8), afterentry, and not in 0.9.25.24–0.9.25.35.
Chapters
- In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A region id of 0 names no region: given a
RegionAddedcarrying 0, a client gives the region an id of its own, its own node in the top byte and a count below it, which no message from a server can name. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: Registration pairs each player id with a client id: a server answers a client’s
Registerwith oneRegisteredfor every seat. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A bot’s champion carries 4294967295.
- In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: | Map | Holds | | –– | ———————————————————————————————————————————————————————————————————————————–– | | 1, 2 | the six
Barracksnames,HQ_T1,HQ_T2,orderShop01,chaosShop01, the six spawn points named__P_…, and turrets namedTurret_T1_…andTurret_T2_…,Turret_OrderTurretShrineandTurret_ChaosTurretShrineamong them | | 3 |Barracks_T1_C1,Barracks_T2_C1,HQ_T1,HQ_T2,OrderShop01,ChaosShop01,____P_Chaos_Spawn_Barracks__C01, and turrets,Turret_T1_C_08among them | - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A new
SpawnPetfor an owner removes that owner’s pet before it. - In the objects chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client removes a nexus about 4 seconds after
BuildingDiednames it, and can fail as it does. - In the ordering chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: Nothing answers a view report: a client sends its latest report again, twice the round trip time plus 1/30 of a second apart, for as long as the match runs.
- In the space chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client has data for maps 1, 2 and 3.
- In the time chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A
GameSpeedthat arrives during a hold sets the match clock running again at once. - In the time chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client takes that moment from its own match clock, once, as its game loop runs.
- In the values chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A champion’s own book ends at slot 44.
- In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A path carries its points as they lie in the world, and takes no origin from the ground.
- In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: The client has maps 1, 2 and 3.
- In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: Each object’s file is
.scoas text or.SCBas binary, and gives its name on itsName=line. - In the data chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A name’s opening says what the object is, the first match winning and a minion spawner’s tested before
Barracks:Turreta turret,Barracksan inhibitor,HQ_a nexus. - In the joining chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A server MUST put the seat’s player id in
SeatLoadProgress: the loading screen shows a seat’s card from theVersionSyncseat with that id. - In the vision chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24:
LevelUpshows its effect over any unit the client can see. - In the replication chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: ## A champion | Group | Bits | Value | Type | | —– | –––– | ———————————————————————————————–– | —– | | 0 | 0 | Experience | float | | 0 | 1 | Gold in hand | float | | 0 | 2 to 3 | Which slots can be cast from: the champion’s own, then the second set | u32 | | 0 | 4 to 7 | What the spell in slots 0 to 3 costs | float | | 0 | 8 to 11 | What the spell in slots 41 to 44 costs | float | | 0 | 12 to 13 | What the spell in slots 0 and 1 of the second set costs | float | | 1 | 0 to 1 | Health and resource as they stand | float | | 1 | 2 to 3 | Health and resource at their greatest | float | | 1 | 4 | What the champion is doing, as a set of bits | u32 | | 1 | 5 to 8 | Whether it is proof against spells, proof against all harm, targetable, and proof against strikes | u32 | | 2 | 0 to 1 | Whether it is proof against strikes, then against spells, as group 1 bits 8 and 5 | u32 | | 2 | 2 | Damage it deals by striking | float | | 2 | 3 | Damage its spells deal before modifiers | float | | 2 | 4 | How often it turns a blow aside | float | | 2 | 5 | Its size | float | | 2 | 6 | How often it strikes critically | float | | 2 | 7 to 8 | Armour and spell resistance | float | | 2 | 9 to 10 | How fast health and resource return | float | | 2 | 11 | How fast it moves | float | | 2 | 12 | How far it strikes from | float | | 2 | 13 to 14 | Flat and percent modifiers on the damage it strikes with | float | | 2 | 15 to 16 | Flat and percent modifiers on its spells’ damage | float | | 2 | 17 to 18 | Flat and percent reduction of the spell damage it takes | float | | 2 | 19 | A multiplier on how fast it strikes | float | | 2 | 20 | A flat addition to how far it casts | float | | 2 | 21 | A modifier on its cooldowns | float | | 3 | 0 to 1 | A percent and a flat addition to how far it sees | float | | 3 | 2 | Level | u32 | ## A turret | Group | Bits | Value | Type | | —– | –––– | –––––––––––––––––––––––––––– | —– | | 1 | 0 | Damage it deals by striking | float | | 1 | 1 to 2 | Armour and spell resistance | float | | 1 | 3 | How fast it moves | float | | 1 | 4 | A multiplier on how fast it strikes | float | | 1 | 5 | Its size | float | | 1 | 6 to 7 | Flat and percent modifiers on the damage it strikes with | float | | 1 | 8 to 9 | Flat and percent modifiers on its spells’ damage | float | | 1 | 10 to 11 | How fast health and resource return | float | | 1 | 12 to 13 | Health as it stands, then at its greatest | float | | 3 | 0 to 1 | A percent and a flat addition to how far it sees | float | ## A minion, and a unit belonging to no side | Group | Bits | Value | Type | | —– | –––– | ———————————————————————————————–– | —– | | 1 | 0 to 1 | Health as it stands, then at its greatest | float | | 1 | 2 to 3 | Whether it is proof against strikes, then against spells | u32 | | 1 | 4 | What the unit is doing, as a set of bits | u32 | | 1 | 5 to 8 | Whether it is proof against spells, proof against all harm, targetable, and proof against strikes | u32 | | 1 | 9 | Damage it deals by striking | float | | 1 | 10 to 11 | Armour and spell resistance | float | | 1 | 12 | How fast it moves | float | | 1 | 13 | A multiplier on how fast it strikes | float | | 1 | 14 | Its size | float | | 1 | 15 to 16 | Flat and percent modifiers on the damage it strikes with | float | | 1 | 17 to 18 | Flat and percent modifiers on its spells’ damage | float | | 1 | 19 to 20 | How fast health and resource return | float | | 3 | 0 to 1 | A percent and a flat addition to how far it sees | float | ## A building Inhibitors, nexuses and the buildings minions come from share one table.
- In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: No unit advances for
StatTick. - In the match chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client that receives
GameEndedwhile still loading takes it as in play: it records the result and sendsClientFinished. - In the combat chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A server MUST NOT send
BuildingDiedfor the nexus: a client removes the nexus some 4 seconds later while still using it, and fails. - In the spells chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client still casts from a casting record whose length disagrees with its count of targets.
- In the votes chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client takes
SurrenderVoteCalledwhenever it arrives, its own champion on the field or not. - In the interface chapter, a passage holds for 0.9.25.24–0.9.25.35 and not 0.9.25.36–1.0.0.24: A client locks and unlocks its own input too, and tells the server each time:
InputLocksFlippedfor the locks it flipped, as when a camera move a script drives starts and ends, andInputLockChangedfor the locks it set or cleared.
Only notes
These read the same on the wire, and only their notes change. What each says in 0.9.25.36–1.0.0.24:
BuildingDied, its layout: no note, where 0.9.25.24–0.9.25.35 has “A server sends it for no nexus. A client takes a building it names away four seconds later, and a nexus it takes away leaves the client failing at its next game event. An inhibitor stays: a client plays its destruction and raises a game event carrying attacker. A nexus falls with GameEnded.”BuildingDied,attacker: “The unit that destroyed it. A client reads nothing here.”, where 0.9.25.24–0.9.25.35 has “The unit that destroyed it. Only an inhibitor reads it; a client reads nothing here for any other building.”ChainTargets, its layout: “Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.”, where 0.9.25.24–0.9.25.35 has “Where the client already holds the missile, the missile takes the list, and so does the caster’s current cast; otherwise the list waits for the caster’s next chain missile.”ChainTargets,count: “How many of the slots are used, 0 to 32; 0 clears every target the client holds, and a count below zero names no targets and clears nothing. A count above 32 has no defined effect.”, where 0.9.25.24–0.9.25.35 has “How many of the slots are used, 0 to 32; 0 or less leaves the targets the client holds as they are. A client sets no bound, and more than 32 has no defined effect.”ChainTargets,targets: “Always 32 slots; those past count have no effect. A slot naming a unit the client does not know is left empty.”, where 0.9.25.24–0.9.25.35 has “Always 32 slots; those past count have no effect.”