Introduction
A note before we begin.
2 min read
In this chapter
This is an independent guide to the mechanisms of Plants vs. Zombies 2. Ordinary Endless is its first series; artifacts, accessories, and shared systems extend the exploration. It is not affiliated with or endorsed by EA, PopCap, or the game's operators.
I stopped playing the game years ago.
How this series was made
Drafting was assisted by OpenAI's GPT-6 Astra and Anthropic's Claude Fable 5.1. The explanations draw on resource declarations, ARM64 instruction analysis, isolated checks, and recorded gameplay checks. These are different kinds of evidence; not every described path has been verified in a complete game session.
Errors and omissions are possible. Corrections supported by evidence are welcome, and I am sorry for any confusion caused by mistakes.
What the examples mean
The wave plans use the gameplay settings supplied for this guide: MinWave and Wave. The constructor defaults inspected in the 4.2.2.394 executable were 6 and 5 respectively. Health examples use the adopted ten-level Endless gameplay reference; Chapter 04 compares it with the bundled tables and keeps reported attack separate from the native bite calculation. Other numerical inputs use the bundled resources of build 4.2.4.399 and the native constructor defaults of build 4.2.2.394 unless stated otherwise. The game's effective settings can be supplied by the server. These examples explain the inspected calculation; they are not measurements of the current online game.
The plant, zombie, artifact and accessory references come from the resources of the iOS build 4.2.4.399. The native addresses in the evidence notes were traced in the 4.2.2.394 executable, except the two in note 25 of the Evolution article, which are in the 4.2.4.399 executable, and those in the article on build 4.2.6.401, which are in the 4.2.6.401 executable. The hashes below identify the three executables. The addresses are unslid virtual addresses within them.
Interactive examples use reconstructed random generators and explicit inputs. The integer generator is checked against retained native outputs. The Evolution calculator follows the reference implementation linked on its page and is checked against recorded ordered candidate lists, selections, and shuffle consumption. Its predictions require the displayed starting conditions. Other examples isolate the rules and inputs they explain.
Evidence notes explain the relevant code paths and preserve their native addresses. Code registrations and decompiler output are evidence used in reconstruction, not the game's original source code.
English is the editorial source. The Simplified Chinese version translates the same content, examples, and evidence. Both versions use the same numerical model.
The traced executables
The SHA-256 of each executable whose native addresses the notes cite.
| Build | SHA-256 |
|---|---|
| 4.2.2.394 | 9abd8714973e082e2a618ff0b10e5132038cc4d07f92aa9445254f45c60f27bf |
| 4.2.4.399 | 563e87be8eae4422bf9623ef3554f352e2fea5cd8b6fae3f088c26d87915adc8 |
| 4.2.6.401 | 1080d6f743eba5ea2d0e2470c7cf7da2cda8f9402fae5918505f7a794379d022 |