User:Ballistic Planet/PVZ2 CTG Hacking Guide/Archive



Originally, most of this guide was from Chompy the Great, so I dedicate this to him (even tho he's blocked. rip). I've pretty much reworked the page all together, because I've added in quite a few of my own hacks.

If you want an easier to digest guide (that doesn't include as many hacks) then check out the guide from my good friend here.

Important notes
Before hacking, make a backup of your .obb and .section file in case you end up doing the hack wrong and subsequently crashing the game, or else, you'll have to re-download the game. You may need to keep five copies, just in case.

It is should be noted that you should always open HxD Hex Editor and open the .section file with it, so it isn't included in the instructions.

As of the 3.4.4 update, the OBB has been compressed, but an awesome user named 1Zulu has released a tool to that patches the OBB. To download it, go here. You can edit all post-3.4 OBBs!

Credit to, Chompy the Great for making all of this possible!

''NOTE: This blog was originally* copy-pasted from Brainulator9, who in turn copy-pasted it from ChompytheGreat. Credit to him for giving me the idea for this.''

*Not anymore

Terminology
There's some terminology that I will use here. Here's a list.


 * Nullify = To fill with 0's
 * Delete= Nullify

Shortcuts
Credit to for teaching me how to do this.

Make all plants cost 0 Sun, instant recharge, and instantly recharged at the start of a level.

For 0 Sun:

Search for "Cost!" and nullify it

For instant recharge:

Search for " PacketCooldown!" and Nullify it

For instantly recharged plants at the start of a level:

Search for "StartingCooldown!" and Nullify it

Sun costs
This is a little hard for me to explain, I do apologize. NOTE: This hack is explained through HxD Hex Editor.


 * 1) Search for {PlantName}Default. (IE: BonkChoyDefault)
 * 2) If you see POPANIM_PLANT_{PLANTNAME} shortly after it, you're in the wrong place. Press F3, (or search again if not using HxD) to search for the next time this phrase is used.
 * 3) Find the nearest $ sign after {PlantName}Default.
 * 4) Change the next two bytes to the hex values below.

For a list of plants internal names, see here.

For example, to make Banana Launcher cost 150 sun, change "24 F4 03 91"  to " 24 96 01 91" (in hex) after BananaDefault.

This method is for plants costing 150-600 sun.

The method is slightly different for plants that cost 125 sun and below. Due to how the game works, plants that normally cost 125 sun and below have their sun costs stored in a single byte, rather than two like plants that cost 150 or above.

For example, to make Peashooter cost 75 sun, change "24 64 91"  to " 24 4B 91" (in hex) after PeashooterDefault.

For plants that cost 125 and below, use this table:

Unfortunately, it isn't possible to get these plants to cost more than 125 sun.

Different recharge speeds
Search for {PlantName}Default and change the two selected bytes on this picture (it's not always " @", it can be " A", " B", "pA" or "pB") to the hex values above.

Change the plants HP
This is gonna be extremely hard for me to explain, so bare with me. First, here's the table of plants HP.

'''Note: this hack has been updated to the 4.0.1 version. Don't try this on 3.9.1, it won't work the way I have it written down.'''


 * Celery Stalker's HP value is split up. Part of it is before "HitPointRemainingForDamage1", and the other part is after "HitPointRemainingForDamage2". I wouldn't try to mod Celery Stalker's HP, it's difficult.


 * 1) Search for [PlantName]Default. [PlantName] = the plant you want to have its HP modded.
 * 2) The code for the plants HP is actually between the Sun Cost and recharge. If you need help finding them, use the table above and try to match the code of the plant with the code provided in the table. Here's an example of a plants HP value.
 * 3) Replace the plants HP code with one in the table.

Boosts cost no gems
Another difficult hack. Again, please bare with me.


 * 1) Search for [PlantName]Default. [PlantName]= the plant you to be boosted for free.
 * 2) Scroll down until you find where it says "PropertySheets..BoostFirstStrike"
 * 3) Go up a bit from there and you should find a value in hex the corresponds with how many gems it takes to boost the plant. For example, here's Infi-nuts.
 * 4) Change the value in the middle, (in this case "0C"), to "00".

Plant Specific Hacks
Plants here will be listed by internal order. The following plants have no hacks (besides, sun recharge, HP, and free boosts) associated:


 * 1) Power Lily
 * 2) Fire Peashooter
 * 3) Cabbage-pult
 * 4) A.K.E.E.
 * 5) Melon-pult
 * 6) Citron
 * 7) Gold Leaf
 * 8) Potato Mine
 * 9) Threepeater
 * 10) Torchwood
 * 11) Pea Pod

If you see a *, that means that the maximum value you can change that to is 7F.

How to get Gold Leaf, Thyme Warp, and all world specific plants in all worlds and endless zones.
For all worlds


 * 1) Search for "ValidStages"
 * 2) Nullify it.

For all endless zones


 * 1) Search for "WorldSpecificDangerRoomProperties"
 * 2) Nullify it.

Change how much Sun she gives you through her plant food

 * 1) Search for "SunflowerDefault"
 * 2) Scroll down until you see "PlantFoodSunCount$"
 * 3) Change they byte after the $ to anything you want*

Change how quickly she gives you sun

 * 1) Search for "SunflowerDefault"
 * 2) Scroll down until you see "CollectibleTypeName"
 * 3) Just after that there should be two sets of bytes you want to edit. They should read "00 42 91" and "10 42 91". Here's a picture for reference.
 * 4) Change those to what you want, based on the recharge table above.

Marigold
Firstly, you need to unlock Marigold. She's in the game, but she's hidden.


 * 1) Search for "IsZenGardenTrasurePlant" and nullify it.

Change how many times Marigold does her plant food animation (with just one plantfood)

 * 1) Search for "MarigoldDefault"
 * 2) Scroll down until you find this byte. It should be right before "Play_Plant_Marigold_Nitro"
 * 3) Change that byte to whatever you want*

Change how many coins she gives you with her plantfood

 * 1) Search for "MarigoldDefault"
 * 2) Scroll down until you find "PlantFoodCoinsToSpawn$"
 * 3) Change the byte after the $ to whatever you want*

Change how quickly Marigold gives you coins

 * 1) Search for "MarigoldDefault"
 * 2) Scroll down until you find the bytes selected here. The bytes you want to edit are "80 41" and "90 41"
 * 3) Change those bytes to anything you want based off of the recharge table above.

Change how much HP Wall-nut's shield gives him

 * 1) Search for "WallnutDefault"
 * 2) Scroll down until you find "PlantFoodShieldHitPoints". The bytes you want to edit are "FA 45"
 * 3) Change those bytes to ones from the HP table above.

Change how much HP Tall-nut's shield gives him

 * 1) Search for "TallnutDefault"
 * 2) Scroll down until you find these bytes. The ones you want to edit are "80 3B 46"
 * 3) Change those to ones from the HP table above.

Change how many zombies he pushes back per leaf

 * 1) Search for "ChardGuardDefault"
 * 2) Scroll down until you find "PushesPerLeaf$"
 * 3) Change the byte after the $ to anything you want*

''NOTE: If you change the byte to the maximum it can be (127), then it can push 381 zombies (Probably more since they're grouped together so tightly). This make the effect almost infinite!''

Chard bouncing
This hack changes how far zombies get knocked back by Chard Guard.


 * 1) Search for "ChardGuardDefault"
 * 2) Scroll down until you find "KnockbackOffset"..HC"
 * 3) Change the "C" into a capital "D"

For the plant food effect,


 * 1) Search for "ChardGuardDefault"
 * 2) Scroll down until you find "PFKnockbackOffset"..HC"
 * 3) Change the "C" into a capital "D"

Hard Landing
Change how much damage zombies take from his plant food effect.


 * 1) Search for "ChardGuardDefault"
 * 2) Scroll down until you find this byte.
 * 3) Change that byte to whatever you want*

Change how far out his plant food goes

 * 1) Search for "StunionDefault"
 * 2) Scroll down until you find "PlantfoodProjectileDistance$"
 * 3) Change the byte after the $ to whatever you want*

Change his Stun Duration
For normal attack:


 * 1) Search for "StunionDefault"
 * 2) Scroll down until you find these bytes here.
 * 3) Change those bytes to anything you want based on the recharge table above.

For plant food:


 * 1) Search for "StunionDefault"
 * 2) Scroll down until you find these bytes here.
 * 3) Change those bytes to whatever you want, based on the recharge table above.

Change how many projectiles he fires with his Plant Food

 * 1) Search for "PeashooterDefault"
 * 2) Scroll down until you find "PlantFoodProjectileCount$"
 * 3) Change the byte after the $ to whatever you want*

Change how much damage his spike damage does
This is the damage it does when it's hiding

For normal damage


 * 1) Search for "CactusDefault"
 * 2) Scroll down until you find "SpikeDamage$"
 * 3) Change the byte after $ to whatever you want*

For plant food damage


 * 1) Search for "CactusDefault"
 * 2) Scroll down until you find "PFSpikeDamage$"
 * 3) Change the byte after $ to whatever you want*

Change how many projectiles he fires with his plant food

 * 1) Search for "RepeaterDefault"
 * 2) Scroll down until you see this byte.
 * 3) Change that byte to whatever you want*

Change his punch damage

 * 1) Search for "BonkChoyDefault"
 * 2) Scroll down until you find this byte.
 * 3) Change it to whatever you want*

Increase his explosion radius
NOTE: Credit to for finding this.


 * 1) Search for "CherryBombDefault".
 * 2) Below, you'll find "explode" and then "radius".
 * 3) After that you should find an "@"
 * 4) Change it to an "A"
 * 5) Then, after a few random symbols, you should see "áC".
 * 6) Change it to a "D".

Change how many zombies it takes for his plant food to push slower

 * 1) Search for "CoconutCannonDefault"
 * 2) Scroll down until you find "NumPushedZombiesForMinSpeed$"
 * 3) Change the byte after the $ to anything you want*

Change his reload rate

 * 1) Search for "CoconutCannonDefault".
 * 2) Scroll down until you find"ProjectileTypes..CannonballDefault".
 * 3) After that you should see two sets of bytes. Both of them will say "70 41".
 * 4) Change those bytes to whatever you want, based on the plant recharge table shown above.

Change how long it takes for him to "bust" a grave

 * 1) Search for "GraveBusterDefault"
 * 2) Scroll down until you find "EatTime"
 * 3) After that, there should be a set of bytes that say "80 40". Change those to anything you want, based on the recharge table above.

Change how long it takes for her to melt Ice Blocks

 * 1) Search for "HotPotatoDefault"
 * 2) Scroll down until you find "BlockMeltingDuration"
 * 3) After that, there should be a set of bytes that say "A0 40". Change those to anything you want, based on the recharge table above.

Change how long he freezes zombies for
Normal:


 * 1) Search for "IceburgDefault"
 * 2) Scroll down until you see this byte.
 * 3) Change that to whatever you want, based on the recharge table above.

Plant food:


 * 1) Search for "IceburgDefault"
 * 2) Scroll down until you see this byte.
 * 3) Change that to whatever you want, based on the recharge table above.

Change his explosions damage

 * 1) Search for "LavaGuavaDefault"
 * 2) Scroll down until you find "ExplosionDamage"..HC"
 * 3) Change the C into a capital D

Change his explosions radius
Thanks to for finding this too.


 * 1) Search for "ExplosionRadius".
 * 2) You will see an "@" after that.
 * 3) Change it to an "A".

Change his damage

 * 1) Search for "LaserBeanDefault"
 * 2) Scroll down until you find this byte.
 * 3) Change that byte to whatever you want*

Tile Turnips are always free

 * 1) Search for "PowerPlantDefault"
 * 2) Scroll down until you find "SecondTileCost$"
 * 3) Change the two bytes after the $ to "80 00"

Change his damage

 * 1) Search for "SnapdragonDefault"
 * 2) Scroll down until you find this byte.
 * 3) Change that byte to whatever you want*

Change his damage

 * 1) Search for "SpikeweedDefault"
 * 2) Scroll down until you find this byte.
 * 3) Change that byte to whatever you want*

Change how quickly the plant food effect drags zombies

 * 1) Search for "SpikeweedDefault"
 * 2) Scroll down until you find "PFConveyorSpeed"..€@"
 * 3) Change the @ to a capital A.

Change his plant food DPS (damage per second)

 * 1) Search for "SpikeweedDefault"
 * 2) Scroll down until you find "PlantFoodDPS$"
 * 3) Change the byte after the $ to whatever you want*

Spikerock
Most of this is just the same as Spikeweed.

Change his damage

 * 1) Search for "SpikerockDefault"
 * 2) Scroll down until you find this byte.
 * 3) Change that byte to whatever you want.

Change how quickly the plant food effect drags zombies

 * 1) Search for "SpikeweedDefault"
 * 2) Scroll down until you find "PFConveyorSpeed"..€@"
 * 3) Change the @ to a capital A.

Change his plant food DPS (damage per second)

 * 1) Search for "SpikeweedDefault"
 * 2) Scroll down until you find "PlantFoodDPS$"
 * 3) Change the byte after the $ to whatever you want*

Change his impact radius

 * 1) Search for "SquashDefault"
 * 2) Scroll down until you find "SquashRadius$"
 * 3) Change the byte after the $ to whatever you want.

Change how many zombies his plant food targets

 * 1) Search for "SquashDefault"
 * 2) Scroll down until you find "Number$"
 * 3) Change the byte after the $ to whatever you want.

100% butter chance

 * 1) Search for "KernelpultDefault"
 * 2) Scroll down until you see "ButterChance"..€>"
 * 3) Change the ">" into a "?"

Sleepproof Spring Bean

 * 1) Search for "SpringBeanDefault"
 * 2) Below you should see "AttackRecoveryTime"
 * 3) In "AttackRecoveryTime".. A..", nullify "A" and the space before "A"

Spring Bouncing
This changes how far zombies are knocked back.


 * 1) Search for "SpringBeanDefault"
 * 2) Scroll down until you find these bytes.
 * 3) Change the B into a capital C

Change how long she slows zombies for

 * 1) Search for "SnowPeaDefault"
 * 2) Scroll down until you find these bytes.
 * 3) Change those bytes to anything you want, based on the recharge table above.

More Bounces

 * 1) Search "LightningReedDefault".
 * 2) Below you should find "NumShotBounces$".
 * 3) Change the byte next to the $ to whatever you want*

Plant food cloud has to go fast

 * 1) Search "LightningReedDefault".
 * 2) Scroll down until you find "PlantFoodCloudSpeed"..úC.."
 * 3) Change "C" to "D".

Plant food does BIG DAWMAGE

 * 1) Search for "LightningReedDefault".
 * 2) Scroll down until you find "PlantFoodLightningBoltDamage".. A.."
 * 3) Change "A" to "B".

Change his damage

 * 1) Search for "LightningReedDefault"
 * 2) Scroll down until you see this
 * 3) Change that byte to whatever you want*

Change his stun duration

 * 1) Search for "ChiliBeanDefault"
 * 2) Scroll down until you see these bytes.
 * 3) Change them to whatever you want, based on the recharge table above.

Change how much he spawns with his plant food

 * 1) Search for "ChiliBeanDefault"
 * 2) Scroll down until you see "PlantFoodSpawnCount$"
 * 3) Change the number after the $ to whatever you want*

Change how many peas he fires from plant food
Front Head:


 * 1) Search for "SplitPeaDefault"
 * 2) Scroll down until you see "PlantFoodForwardProjectileCount$"
 * 3) Change the byte after the $ to whatever you want.

Back Head:


 * 1) Search for "SplitPeaDefault"
 * 2) Scroll down until you see "PlantFoodBackwardProjectileCount$"
 * 3) Change the byte after the $ to whatever you want.

Change his plant food DPS

 * 1) Search for "RedStingerDefault"
 * 2) Scroll down until you see this byte.
 * 3) Change that byte to whatever you want.

Change which columns you can place Red Stinger's offensive form

 * 1) Search for "RedStingerDefault"
 * 2) Scroll down until you find RightmostColumn$
 * 3) Change the byte after the $ to any value from "00"-"08".

Change how much sun it takes for Magnifying Grass to do it's attack

 * 1) Search for "MagnifyingGrassDefault"
 * 2) Scroll down until you see "SunMoneyPerShot$"
 * 3) Change the byte after the $ to anything you want, based off of the 1 Byte sun cost table above.

Plant food does more damage

 * 1) Search for "MagnifyingGrassDefault"
 * 2) Scroll down until you see "PlantFoodBeamDPS"..HC"
 * 3) Change the C into a capital D.

Zombot spawning
Edit what the Zombots summon. Note: There is currently no way to edit what the Dark Ages - Neon Mixtape Tour zombots spawn, this only works for the four-legged cyclop zombots.
 * 1) Search for "ZombossSpawnJump" until you find something about future zombies. (for example: future, future_armor1) Just press  F3  to continously search for it.
 * 2) Once you find it, go here. That is where the code names of all zombies are.
 * 3) Now replace. Remember to  nullify  extra space if you want to replace something that has less number of letters than the original one.

Zombot battles with new plants
Edit plants in conveyor belts.
 * 1) Search for "zombossmech_{choose either "egypt", "pirate", "cowboy", "future", "dark", "beach", "iceage", "lostcity", or "eighties"}
 * 2) When you find it, scroll up and down until you see some list of plants.
 * 3) Edit them. Remember to nullify if the new plant has less letters than the original.

Note: This is for Zomboss Battles only, editing plants on other conveyor-belt levels is still possible, but i still don't know what to search to find your desired conveyor-belt level, aside from boss battles.

Seed-Choosing Zombots
Make zomboss battles seed selection levels. Originally copied from this thread. Credit to for making the original thread. I've changed the wording around, but it's still generally the same his thread.


 * 1) Search for the code name of any boss
 * Now, you should edit 3 things
 * 1) First, you need to find "CurrentLevel..ConveyorBelt". You need to change it to SeedBank. (If you edit ConveyorBelt into SeedBank, the result would be SeedBankBelt, so you need to nullify the Belt, if you do so, the result should be SeedBank....)
 * Now, you need to search for ConveyerBelt ALONE, no words next to it to it. Change the ConveyorBelt into SeedBank (Once again, the result will be SeedBankBelt, nullify the Belt.)
 * Now, here comes the most annoying part. You need to search ConveyorSeedBankProperties, you need to change it into SeedBankProperties (NOTE, you have to edit from start, as in ConveyorSeedBankProperties, then SeedeyorSeedBankProperties, then SeedBankSeedBankProperties, then SeedBankPropertiesoperties, nullify the operties at the very end.)

Boss code names:

Sphinx-inator: zombossmech_egypt

Plank Walker: zombossmech_pirate

War Wagon: zombossmech_cowboy

Tommorrow Tron: zombossmech_future

Dark Dragon: zombossmech_dark

Sharktonic Sub: zombossmech_beach

Tuskmaster 10,000 BC: zombossmech_iceage

Aerostatic Gondola: zombossmech_lostcity

Multi-stage Masher: zombossmech_eighties

This also works with levels which are normally conveyerbelt levels, though sun will not fall from the sky.

Jester hacks
Edit what Jester Zombie deflects.
 * 1) Search for "JuggleableProjectiles"
 * 2) Below there you should see projectile names.
 * 3) Now replace one of the projectiles with the one you want.

Note: You can only replace and remove, not add, so you have to make him vulnerable to a projectile he originally can deflect and make him immune to projectiles he can't deflect.

Random Sun Falling
This hack is hard to explain, but it makes sun fall from the sky more frequently. It's quite erratic; you can have 3 suns fall at the same time! This makes some levels not even need sun producing plants. This hack was found by


 * 1) Search for "SunCountdownMax". You will see a $, followed by a dot.
 * 2) Nullify the dot.

Switcheroo
NOTE: This is more game specific to me than plant specific.

Switch the places of plants or zombies in the almanac and the seed selection screen. Not really a beneficial hack, but you can do it anyway.
 * 1) Search for "TypeOrder."
 * 2) You should see a list of plants first. (zombies are in the bottom)
 * 3) Edit the names. You can only edit plants or zombies with the same number of letters. So for example, switch Torchwood with Chili Bean.

Note:  Never in under any circumstances  edit a plant to be a plant that is already there. For example, there's already a Chili Bean, and you replace Torchwood with Chili Bean, there cannot be 2 same plants, or else it crashes.

Extra Endless Zone Card costs nothing

 * 1) Search for "ExtraCardCost$"
 * 2) Delete the "$"

Breaking the Sun cap

 * 1) Search for "MaxSunCurrency$"
 * 2) Change the two bytes next to the "$" to FF 7F.

Make Silver Coins worth more

 * 1) Search for "CoinValue$".
 * 2) Change the hex next after the "$" from 0A to 7F.

Make Gems Worth more

 * 1) Search for "GemValue$".
 * 2) Change the hex next after the "$" from 01 to 7F.

Make Money Bags give more Silver Coins

 * 1) Search for "ContentsCount$".
 * 2) Change the hex next after the "$" from 05 to 7F.

Editing the Game's text
''Note: this is a LawnStrings.txt hack. You won't find this in the .section file.''

Edit the game text, that includes, almanac entries, plant names, zombie names, trophy names, but  not  achievement names.
 * 1) Search for the  exact  name of the game text. That means, "Ctrl + F", and remember to  check the Unicode box in the search box before searching. Editing game text is different than editing others, this time, you don't search code names. Example: Don't search "holonut", search "Infi-nut" instead.
 * 2) Now edit it, but  keep the dots. One small mistake and all game text goes ""
 * 3) Now this is the hard-to-explain part: If your edited text is shorter than the original,  nullify  the remaining, but in nullifying, the other hex codes are  not  00, but is  0A . Try to find the pattern starting from the end of the originally nullified code. For example, the original nullifying pattern is (starting backwards) is 00 0A 00 0A, just keep that pattern going until you get to the edited text. For almanac entries, for the ending letter, the code next to the nullified "00", next to the letter,  must be 2E .

Useless hacks
There's no point to these, but they're possible!

Costume Removal

 * To remove all costumes, search "CostumeList" and nullify it. This method removes all costumes, there's no way to choose which costumes to keep or to remove. Also, since the 2.9 update, you may not want to do this.

Thyme Warp strobe

 * 1) Search for ThymeWarpDefault
 * 2) Scroll down until you find "ConditionsRemovedByWarping"
 * 3) Nullify that

This happens