Thanks. I had tried unpacking the engine and was simply using the wrong directory name.
In case anyone else is interested, here are step-by-step instructions:
- Unpack game/engines/te4-1.0.4.teae to the directory game/engines/te4-1.0.4. (For example, if using 7-zip, you can just right-click on te4-1.0.4.teae in Windows Explorer and choose 7-zip -> Extract to "te4-1.0.4\")
- Unpack game/modules/tome-1.0.4.team to the directory game/modules/tome-1.0.4. (Again, if using 7-zip, you can right-click on tome-1.0.4.team in Windows Explorer and choose 7-zip -> Extract to "tome-1.0.4\").
- The directory layout of tome-1.0.4 won't match what ToME is expecting. Go under tome-1.0.4\mod and move all files and directories from there to tome-1.0.4.
After I did this, I was able to confirm that changing engine.Projectile:makeProject and engine.Projectile:makeHoming to call self.new instead of _M.new fixes this problem.
I also discovered that ToME itself is affected by this bug. ToME's Projectile.lua includes code to animate projectiles and to show internal information in the tooltip if a projectile is hovered over and cheating is enabled, and that code doesn't work. To demonstrate, create a new archmage, go to the Abashed Expanse (which will have lots of projectiles flying around), turn on cheating, and set "smooth creatures movement" all the way up to 60. Projectile movement will animate much, much faster than character movement (because it's ignoring ToME's customization of animation speed), and the projectile tooltip contains no additional information. (ToME's Projectile:tooltip contains a different, unrelated bug: tstring() should be tstring{}.)