Filesystem
Extracting PvZ Maps with AI
I’ve had the maps from Plants vs Zombies Garden Warfare on my mind for a while, the game is really great and I believe the maps are excellent. These maps often focus around quiet suburbia and they parody suburban living in fun ways.
TL;DR
- Used Frosty tools + GPT-5.4 Codex to decode Frostbite game files
- Built a Python + .NET bridge to reuse Frosty parsing logic
- Exported props quickly, buildings required Havok physics decoding
- Prototype map reconstruction working in Blender within a few hours
Warning, if you are expecting a technical deep dive, this is not it. I used this project to explore AI’s capabilities, in particular GPT 5.4 in the Codex app.
Frosty
A strong starting point for getting at the 3D assets is “Frosty”, an editor and modding tool for games that use EA's "Frostbite" game engine, such as PvZ GW. Both Frosty and PvZ GW run on windows. I used UTM to run a Windows VM and installed both PvZ GW and Frosty. If you tick the right boxes and install the “spice” tools UTM gives you a network drive which is a shared directory on your Mac, making it easy to move files.
After copying the game files and pointing Frosty at them, I was able to inspect the assets. Then I used Frosty’s features to export a few assets as FBX files and successfully opened them in Blender, here’s Crazy Dave riding a Chomper.
In Plants vs Zombies, Crazy Dave is the man whose garden we are defending from the zombies, he wears a saucepan on his head. The Chomper is one of the plant variants that serves Dave in defence of his garden. It’s a sort of Venus fly trap with teeth like a shark.

Scaling the Reconstruction
The problems were piling up, the VM is slow, keyboard is remapped, I’m not at home in windows. Furthermore Frosty keeps crashing and is UI only, so I’m not going to be able to scale an export workflow with Frosty to reconstruct an entire map. I copied the game files out of the VM onto my Mac.
What I want is to decode the game files natively on my Mac. In theory, with Frosty code to be reused and ported, this could be scalable. I chose to start using GPT 5.4 in the Codex app at this point, here’s why:
- Frosty is written in dotnet, a language I don’t know
- it is a large codebase I don’t want to spend days understanding
- eager to see a prototype before committing substantial time to this
- parts of game data decode may need rapid experimentation to resolve
First Prompt
My preferred strategy was to reuse Frosty code for things like parsing the main file formats in the game-data, .sb, .toc and .cas files. Then ideally drive this from a Python top level, a language I am familiar with. I was conscious that at some point we might end up porting some code, because I did not want to figure out how to build all of Frosty on Mac, even with the AI I would have truly no idea what is going on. I’m aiming for minimal codebase that I can learn from and takeover, my experience of AI has been that you shouldn’t let is spawn an unmaintainable sea of code that is beyond your understanding.
This was my initial prompt:
./game-data contains the game files for plants vs zombies garden warfare run, it is a frostbite game. ./FrostyToolsuite contains a open source third party tool for operating on frostbite games. We want to do map archival of pvz gw. Can you design a plan for how to programatically extract and reconstruct maps from the game files.
To get this working lets focus on the bundle: win32/_pvz/levels/coastal/rush_coastal_001/2_marina. This is full path doesn't exist because rust_coastal_001 is made of .sb and .toc files which are frostbite formats.
Can you make a plan for asset reconstruction. There are two routes as I see it but feel free to suggest others:
a) leverage .NET code in FrostToolsuite to do chunks of the work
b) port the logic from the .NET code into pure python.
I don't understand .NET, so I would prefer the final top level was in python, but I don't want to spawn masses of new code, so in this respect I prefer leveraging the existing .NET.
Learn about the file structure and tell me what you learn in the process of planning. Write scripts for explortatory parsing and look online.
Codex quickly spat out a sensible amount of code that leveraged Frosty source directly and started decoding files. After approving certain commands, the agent was running independently, it built a dotnet bridge to the Frosty code, started writing python and began validating the decodes of game data it was getting.
Initial Scene
Within a few rounds of prompting, the agent had found the “props” and written a 3D exporter as .gltf files. The props were a quick win, they had their world position data directly attached to them, so off the bat they were distributed in the scene correctly.

I was shocked, as I have been a few times now, by just how quickly it can get things right. We are on the order of 10s of minutes since I started working with the agent. When it has its own sandbox and can run commands, it debugs itself in seconds and converges on its objectives absurdly quickly. Code becomes no obstacle, it has a complete understanding of how the software it is writing can be manipulated to behave as it intends, at least this is true in a green fields project like this.
Solving Building Placement
Buildings provided tough challenge. Finding their meshes was not hard, but placing them in the scene did not appear to be information Frosty had machinery to decode. It turned out that the information lived inside files related to “Havok”, the physics engine for Frostbite. It took 40(!) rounds of experimentation, several hours in total, to have a decoder for these files, which placed the buildings correctly.
This consisted of me guiding forward the agent’s experiments, sanity checking it, discussing options, etc. I felt like a manager, mostly. Having a high level understanding of where we are at, but no involvement in the nitty gritty. I am confident that this still would have taken me days if not weeks without the agent, there is no information on decoding these files online and, until it worked, I didn’t even know if we were looking in the right place.
Reconstructed Map
This was the view of the Marina that culminated from this work, it is textureless, missing terrain, ray-traced with the “cycles" engine in blender.

There is clearly more to do and this is where I will dig in to the tool and understand it further so that I can guide this forward.
For reference, here is a view from the game. It is viewed from the nearest ship in the harbour.

Final Thoughts on AI
I have concerns, at times it felt like pulling on a slot machine, there is a little hit of dopamine when it discovers something important and takes a step forward. Furthermore, it’s more rewarding to understand the details and design towards the solution, you feel proud and it is fun. But maybe this is what it is like to be manager.
That said, I think as a tool it is amazing and obviously a positive if used correctly. I would never have had the time to get anywhere with this without the agent, and now I can pick up the project at a point where I have some traction.