Spelunky Community Update ProjectFor Players:Windows Stable Release 2:Mirror 1Mirror 2Mac:
Community made Spelunky Update.
Fixing as many bugs as we can hunt down, but only doing that, not adding anything or taking anything from the game.
Then modmakers will have an improved base to start working upon and won't have to fix bugs as they notice them, and anyone who wants to play the original Spelunky without the already discovered bugs will be able to do so, without having to play a mod that changes the game.
The Spelunky Community Update is also compiled with GameMaker 8.1, which has better performances and fixes several problems with hardware as compared to Spelunky 1.1's being compiled with GameMaker 8.Fixed Bugs:
- Yeti King does no damage in custom levels
- Ankh respawn causes HUD to disappear
- Death causes money to not finish updating
- Levitating Player when hit by an enemy while climbing a rope
- Damsel sound effect panning is backwards
- Cape continues to flutter after death
- Stunnable enemies never recover while in a web if they are not completely touching the ground
- Arrow flying out of Player's hands when Player is hit can cause damage to self
- Held arrows and rocks throw off Player collision checking
- Hawkman type mislabeled as Yeti
- Custom Levels could cause the mouse cursor to become visible
- 'M' key does not properly select the music in custom levels
- Four pixel wide gap between boulder trap's head and body
- When playing as the tunnel man, when player meets the NPC tunnel man in the transition room, player sprite reverts to main dude sprite after talking to the NPC tunnel man.
- When damsel is in idle state, she will not react to being hit with the machete, even when her HP is reduced to 0
- Dead damsel makes sounds when her corpse is thrown or attacked with machete or bullets
- Some objects trapped in lava will remain floating in air when the lava is destroyed
- Player stunned sprite collision mask is wider than the standing sprite collision mask
- When dead or stunned, held items do not fly out of player's hands due to duplicate code
- When playing as the damsel and climbing the rope to exit on the title screen, sprite reverts back to main dude
- Launching a rope up with the rope hotkey while holding a damsel and falling downwards, causes her to take damage
- Kapala continues to collect blood when player is dead
- Jars broken with the whip produce double the amount of contents
- Compass doesn't work in custom levels
- Stunned shopkeepers wake up when whipped
- Arrows on the ground always face right
- Zombies have no type
- Dead fish have no type
- Vampire deaths register incorrectly
- ManTraps don't eat Yetis, Hawkmen, and Vampires
- Ankh fails to teleport inside Moai if too far away
- Skulls and Jars are active while off-screen
- Shopkeepers guard exits in custom levels
- Throws from Shopkeeper/Yeti/Hawkman don't count as being killed by them
- Boulder deaths register as Crushed deaths
- Parachute deploys too early
- Short drops may cause fall damage due to a math bug
- Bats have no type
- Key sprite doesn't direction when facing right
- MegaMouth's type is incorrect
- Getting killed by Magma Men doesn't count as a Magma Man death
- Getting crushed by a Smash Trap doesn't count as a Smash Trap death
- Tomb Lord fails to spawn on level 13
- Crumbling blocks above arrow traps fixed
- Gold blocks now drop gold
- ManTraps couldn't be crushed
- Jars lack collision variables
For Developers and Translators:
I will keep a confirmed bug and confirmed fixed list in the start of this topic. Anyone submitting a bug fix should post exactly all of the code they changed, where it is (what line! not oh it's somewhere in this script), and so forth.Bugs that Need Tracking Down
-Vines and lamps sometimes do not disappear/drop after the block above them is removed
-Rapidly entering and exiting water can cause bats to fly while in their hanging sprite
-When pushing a block, if there is nothing underneath the player, and the block falls, the player will float in the air in the pushing position until the jump key is pressed. Can happen in custom levels made with the two more advanced custom level editors, since trap circumstances can make both be in a place where they need to fall at the same time, by removing a row of blocks. Might rarely be possible in the default game in Area 2 too?Possible Bugs:
Being thrown directly into a wall causes instant death due to being crushed. Does this count as a bug? Might be intentional gameplay.Possible Non-Bugfixes, i.e. Optimization, etc.
These will be kept minimum as this is supposed to become a standard base for everyone to play and make mods off of. This will stay vanilla Spelunky, so anything that changes the main game is out.
- OS dependent game code is redone to be compilable both on Windows and Mac with only a few changes.
-Better screen scaling option implemented, select "Fit Screen" in the config and the game scales up to the computer's resolution, while maintaining aspect ratio.
-Dice can now be "gently" set down, by holding down and releasing a die without throwing it, not drawing the shopkeeper's ire. Rerolling a die by throwing it causes normal behavior.Source Code and Build Instructions
The source code for the Translations fork is in Gamemaker 8.1 (.gm81) for better foreign characterset support.
The base source is in Gamemaker 8 (.gmk) format, as that's what Spelunky was originally made in and since GameMaker is backwards compatible but not forwards compatible.
On Windows, it should be compiled and ran with Gamemaker 8.1
To submit source code changes to the project, either only edit the source code file that you submit with Gamemaker 8 Pro (not 8.1!), or post line numbers and changes in this topic and someone will merge them into the source code for you.Source Code
Project now uses a Github repository! thanks to the wonderful Medo42. Instructions on how to use it athttps://github.com/tyrovc/SpelunkyCommunityUpdateProject
Base Source Code (Gamemaker 8 format):Old Source CodeSpelunky 1.2r2
Base Gamemaker 8 Source Code:http://www.spelunkylevels.tk/spelunky12/source_July_3_2012.zipLatest Translations Source Code (Gamemaker 8.1)http://www.spelunkylevels.tk/spelunky12/source_July_3_2012_translations.zip
WIP Translation Release 3
Note that this is in need of an overhaul to the format, and a lot of work. Actually making translations is too much of a pain at the moment, the format will be made better eventually. Code improvements are welcome though.http://www.spelunkylevels.tk/mods/Spelunky_v1_2_3.zipTranslation Format:
Each translation gets its own directory in /languages/
That directory name should be lowercase ANSI compatible characters (abcdefghijklmnopqrstuvwxyz)In that directory is:
32x24 image that represents the language in Config.exe's language selection menulanguage.txt:
Information about the language the translation is to.
name= Name of language shown in config.exe, should be localized to that language. Example: name= Deutsch / German
charset= What characterset is used for the language. Choose a characterset that contains all the characters the translation will use.
useimagefont=(true/false) Whether to use the included image fonts font.gmspr fontsmall.gmspr - Probably not feasible to use for languages like Japanese and Chinesetext.txt:
Equal sign separated values. Left side of the equal sign is the key in the code for the text, the right side is where the translated text goes.
Jetpack=MY HOVERCRAFT IS FULL OF EELS!
When a Jetpack is picked up, "MY HOVERCRAFT IS FULL OF EELS!" displays instead of "YOU GOT A JETPACK!"Optional font.gmspr fontsmall.gmspr:
Exported game maker sprite files, to be used as fonts./sprites/ directory
Sprites is the portable network graphics (.png) format. Any image in this directory will replace any GameMaker sprite with the same name.
sQuitSign.png would replace the sQuitSign sprite.
Full change loghttp://pastebin.com/NgCBMtd8Creditshttp://pastebin.com/kATkR4Qi