This game has a notes page
Bookworm Adventures is a word-based fairytale RPG of the classic Bookworm and also one of the most expensive casual games ever made, with a $700K budget. The developers on the public developer forum say the game was in development for two years! Wow!
- 1 Sub-Page
- 2 Unused Text
- 3 Unplayable Words
- 4 Debugging Material
- 5 Cheat Detection
- 6 Developer Notes
- 7 Marketing Modes
- 8 Copy Protection
- 9 Revision List
- 10 Developer Text
- 11 Definition File Support
- 12 Lua Compilation Support
- 13 Removed Strings
- 14 Internal Project Name
Does an "expansion pack" exist?
After installing an expansion pack, any in-progress Arena Mode game you had is invalidated. Please start a new Arena Mode game. We haven't implemented this feature yet. It will be in soon!
The following words are contained in the game's dictionary, but cannot be played in the actual game due to the fact that they contain a Q not immediately followed by a U:
BUQSHA(S) FAQIRS QANATS QINDAR(S)/QINDARKA QINTAR(S) QIVIUT(S) QWERTY(S) SHEQEL/SHEQALIM TRANQS UMIAQS
The word list also contains words with 5 or more instances of the same letter, which are also impossible to play since the game never lets more than 4 of the same letter tile onto the board.
Enable this if possible.
scripts/cheat.luc appear to have developer cheats, functions are modify HP, level up, modify XP, instant kill, complete chapter, complete book, modify tile architectures, set particles, nuke profile, status testing, load debug profile, add items, beatdown multiplier modifiers, die, save, get selected chapter, modify treasure count, bypass/repeating tutorials, give player+enemy buffs/debuffs, enabling minigames, enabling bestiary, delete words, forcing an attack, and hiding treasures.
The game also looks for this file on bootup.
Can't use TAB on the hydra/sphinx. Use DEL to weaken.
Sounds like a function to weaken enemies.
Forcing an enemy's attack?
CHEAT: FORCING THIS ATTACK
Player is nil, why are you trying to save right now?
Some files mention BETA_BUILD, likely referring to builds distributed from PopCap's game beta testing page and is also a flag for what current build type is used when released to the public.
LUA Error Handler
If a LUA has an error, the game will say this message:
Oops! A lua error occurred and the game needs to shut down. Please contact customer support and provide them with your lua.log file.
It will be created or replaced in the game's root install directory.
Bad String Handler
Where is this detected? The LUC/LUAs and/or plaintext data?
If the game detects a bad string, this text from scripts/common.luc will show in red: Someone passed in a string with invalid characters. Probably because they forgot to save the file as plain text and it contains some specially formatted Word characters. This is bad. We can't render those. I'll let the program continue, but it may result in messed up text. This would probably be a bug for Steve if you get this. I'll let the program keep running though, as this is just cosmetic.
What triggers this? Memory edits, developer cheats or both?
scripts/BattleEngine.luc mentions CHEAT and YOUCHEATED in flagging terms. The game would most likely detect the use of memory editing or some sort of cheat format and force your best and longest word to be CHEAT and YOUCHEATED (the latter of which is impossible in normal gameplay).
Some Luc and XML files contain developer notes.
A documentation on Settings nodes.
<!-- title: The credit heading, such as Programmer/Artist/etc bgpam: background PAM to use (minus extension), will crossfade from previous. frame: PAM animation frame to play if using the above bgimage: FILE name of image to use for background instead of pam y: Y coordinate to start drawing the background at. The BG will be clipped to a viewing region of x=0, y=195, width=800, height=215 so you can use this to offset the image. idlecount: how many frames to delay after the text fades in before the creature PAM attacks fadein: how fast the alpha fades in nextalpha: alpha value item must reach before the next item can fade in -->
A documentation on Entry nodes.
<!-- pam: file name (minus extension) for character anim to use x, y: coordinates to draw at attack: specifies which attack to use. If not specified, won't attack. targetx: After the name gets attacked by the creature, the name flies at the creature. This specifies the X coordinate at which the name must reach to kill off the creature. priority: a greater value indicates that the anim should be drawn on top of those with a lower priority -->
A note saying no codex entry is present and one will be used when possible, unfortunately, none was added at anytime...
<!-- currently missing codex entry: when we have one, use it -->
<!-- GENERAL IMAGES NEEDED AT ALL TIMES -->
<!-- LOAD RESOURCES FOR TITLE SCREEN/MAIN MENU -->
<!-- astropop easter egg -->
<!-- BOOK RELATED UI IMAGES -->
<!-- LEVEL-UP RELATED UI IMAGES -->
<!-- WORD SCROLL STUFF -->
<!-- SOUNDS -->
<!-- UI sounds -->
<!-- SFX for lex -->
<!-- basic game sounds common to all books -->
<!-- overkill sounds -->
<!-- GAME CONSTANTS -->
<!-- OLD LETTER VALUES <String id=LetterValues> 1, 4, 4, 3, 1, 5, 3, 5, 1, 8, 7, 2, 4, 2, 1, 4, 7, 2, 1, 2, 2, 5, 6, 8, 6, 10 </String> -->
<!-- TODO: MODEL THE CHAPTER CRAP AFTER BOOK1 SO IT ONLY LOADS THE CHAPTERS IT NEEDS -->
<!-- Resources required after the book has been selected and the chapter screen is displaying -->
<!-- Resources for book X's map screen -->
This also applies to book3.
<!-- load the hydra's special boss battle graphic -->
On builds of the game, partner.xml is present in properties, stating the marketing type, preferably for trials. These are multiple types of them, a .sig and .sig2 (for DRM) file also exist, to verify integrity of the file.
- None: Nothing, PopCap's 60 min trial, custom OEM DRM or no DRM may be used.
- 60Normal: 60 min trial (In-game DRM).
- 60Trailer: 60 min trial (In-game DRM), restricting up to Chapter 8.
- HydraTrailer: Infinite time (In-game DRM), restricting up to Chapter 8.
- Hydra: ???
Try other modes.
If you remove or rename properties/partner.xml or remove the MarketingMode tag in it from your installation of the game and use the extracted game executable from the wrapper to play (to bypass set trial timers/lockouts), the game boots up fine but after clicking Adventure, the keyboard and main in-game GUI other than the pause button will stop working after about 2 seconds of gameplay, on the first level and battle of the game, spelling PLAY is impossible and you are softlocked when trying. This affects the entirety of the in-game GUI, and even the keyboard too. The pause menu also doesn't have the black background fade.
When set to a 60 minute trial with the animated trailer, loading the game without the trial wrapper or killing it when run will immediately lock out the game after loading saying the trial has expired.
- 1.0 = Initial release!
- 126.96.36.199 = Bug fixes.
Two revisions were pushed. PopCap.com's CDN, CD-ROM, and Steam/GameHouse/Zylom all have the latest versions.
Game is in timed mode, but non-timed mode key requested: %s Game isn't in timed mode, but timed mode key requested: %s ERROR: StartLoadChapterResources called twice LoadChapterResources taking an unnaturally long time
////////////////////////////////////////////////////////////////// // This is a list of nudging offsets to be used in displaying creatures // in the bestiary. You may set the values here or in the creatures' // own lua file (by setting mNudgeX and mNudgeY). // ENTRIES IN THIS TABLE WILL OVERRIDE THOSE SET IN THE INDIVIDUAL LUA FILES. //////////////////////////////////////////////////////////////////
Present in scripts/StatsBook.luc.
Interrupt state already exists Arena class isn't loaded somehow nothing found for TM_POTION_BONUS_TABLE :gTimedMode == true but player and enemy aren't ready Alchemy value not found in gem or metal table for: Invalid value: , passed to AddTimedModebonus
Present in scripts/BattleEngine.luc.
Base class can't be nil
Trying to merge non-serializable status effects effectTable can not be nil in RespondToAttack Can't set state to INTERRUPTED: Use CreatureBaseClass:InterruptState instead FATAL ERROR: Couldn't find a suitable attack. Please rebalance and add another attack.
Incompatible interface passed to PurifyEffect:Copy
Present in scripts/effects/PurifyEffect.luc.
Gold? Any traces of it?
Health bar is nil DEPRECATED: gold no longer used
Present in scripts/Tutorial.luc.
Can't find the image specified in CreateArenaAnim common.Append: lTable == nil theTable can't be nil in AddTableEntry
Present in scripts/common.luc.
ERROR: Tried selecting a book that doesn't exist: book number
Present in scripts/BookManager.luc.
****** ERROR: received fscommand:playsound for sound: , but the sound ID doesn't exist.
Tile:RemoveAttribute - Attrib not found. Intended?
Present in scripts/tile/Tile.luc.
Expected expiration time in *Tile:Init
Present in scripts/tile/*Tile.luc, replace "*" with Destroyed, Locked, Fire or Poisoned.
mWordLen and/or mDamageMult is nil in WordLengthEffect:Init !!HEY: there's no icon for this WordLengthEffect, it has a damage mult of Incompatible interface passed to WordLengthEffect:Copy
Present in scripts/effects/WordLengthEffect.luc.
Incompatible interface passed to *Effect:Copy
Present in scripts/effects/*Effect.luc, replace "*" with WordLength, Heal, VowelToConsonant, HealingWord, Purify, DestroyedTile, LockTile, FireTile or PoisonTile.
A string for a missing boss?
ALIGN:HEAD received but no owning creature found
Present in scripts/PAMAnimator.luc.
DO NOT START A WORD BUBBLE WITH THE NEWLINE CHARACTER! TEXT:
Present in scripts/WordBubble.luc.
===========BEGIN DUMP OF LEX'S STATUS AILMENTS============ [mStatusText] = [mInvalidated] = TRUE [mInvalidated] = FALSE [mScriptName] = ===========BEGIN DUMP OF ENEMY'S STATUS AILMENTS============ ===========BEGIN DUMP OF LEX'S TREASURES============ Treasure *IS* enabled: Treasure is not enabled: , upgrades:
Present in scripts/main.luc.
Definition File Support
Decompress compressed.txt and set it to that?
The game's executable mentions the use of an uncompressed dictionary file or a definition file like the first game did. No such file exists in the game.
Lua Compilation Support
In the scripts directory after unpacking the game, the game can compile Lua files on its own if compiled Lua files are not present.
Across localizations, some strings were cut from the game nor were leftover from development builds of the game. Unlike most PopCap games, string IDs are in the forms of hexadecimal offsets as strings.
|String ID||English||French||Italian||Espansol||German||Possible explanation|
|0x00000069||B%d Chap %d Stage %d.bwa||Mention for loading save data?|
|0x00000069||ARENA Stage %d.bwa||Mention for loading Arena save data?|
|0x0000006b||DebugKeysOn||Possible call for enabling debug keys?|
|0x0000006c||Cheat key pressed: Forcing game to pretend that the 60 minute trial has expired||Triche activée : Faire semblant que la version d'essai de 60 minutes est expirée||Cheat attivato: hai forzato il gioco ad esaurire i 60 minuti di prova||Obvious text for overriding the free trial timer.|
Internal Project Name
The internal name of the software is WinBAD, where Win is likely Windows and BAD speaks for itself.
The Bookworm series
|Windows, Mac OS X||Bookworm • Bookworm Adventures • Bookworm Adventures Volume 2|
|Game Boy Advance||Bookworm|
|PopCap Loader||Bookworm Adventures|