A debugging environment builder for the Cry of Fear mod.
MadSimonX is a from-scratch rewrite of the original MadSimon project, with a complete rework of all its functionality and underlying techniques.
It replicates most of the original features, but now the source code is open.
The project is also adapted for the current Steam version of the game.
Note
MadSimon is my custom debugging tool for the game Cry of Fear, which I originally wrote many years ago just for fun - and which unexpectedly became relatively popular among speedrunners.
I developed it for personal use and later shared it with one person, and at some point, it gained popularity.
It is most likely outdated by now, but that doesn't really matter.
During an online game, I accidentally met a few players with whom I briefly discussed the MadSimon project - something I had mostly forgotten about. Although they mentioned that several alternatives have existed for quite some time, our conversation inspired me to release the original MadSimon source code for educational purposes.
However, since the original project was written purely for personal use, I didn't pay much attention to code quality back then. So, I decided to quickly rewrite it from scratch - and that's how MadSimonX was born.
After all, it's a nice addition to the portfolio, isn't it?
Warning
Please take this into account. Some code may still be questionable.
If something looks odd, it's most likely old code - back then I wasn't very mindful of quality, and right now I don't have time to fix absolutely everything.
The original MadSimon included various experimental functions I created to test the engine, as well as features such as:
- Console commands for manipulating entities and the player character
- Unlocking noclip, god, and notarget modes
- Real-time debugging information about entities
- Various small additions made just for fun
The rewritten version of MadSimon also introduces additional features, such as:
- Bunnyhopping while holding the jump key without losing speed
- Classic GoldSource-style raw mouse input
| Command / CVar | Description |
|---|---|
find |
Search for console commands and variables by substring. |
ent_create |
Spawns an entity at the position the player is currently looking at. |
ent_remove |
Removes the entity the player is currently looking at. |
ent_killed |
Kills the entity the player is currently looking at. |
ent_setname |
Changes the entity's name. Honestly, I don't remember why this was needed. |
ent_getname |
Retrieves the entity's name. |
ent_dump |
Collects a list of all spawnable entities and prints it to the console. |
ent_find |
Collects a list of all entities with filtering. |
ent_info |
If set to 1, displays information about all entities on screen. |
ent_info_type |
Displays only entities of the specified type. |
ent_info_filter |
Displays only entities with the specified name. |
give |
Gives the player an item. Example: weapon_rifle. |
hurtme |
Deals damage to the player. |
smn_about |
Displays product information. |
smn_kohtep |
Personal debugging function for granting a favorite weapon. |
smn_kohtep2 |
Personal debugging function for dropping weapons, items, and ammunition in front of the player. |
smn_nofear |
If I'm not mistaken, this command disables Simon's breathing during the forest scene. |
smn_showinfo |
Displays various debugging information about the game world. |
smn_infinite_stamina |
Infinite stamina. |
smn_infinite_health |
Infinite health. |
smn_infinite_ammo |
Infinite ammo. |
smn_noviewpunch |
Disables view shaking, including camera shake from jumping or side dashing. |
smn_bhop |
When set to 1, enables bunny hopping. |
smn_always_first_deploy |
Always plays the first-time weapon draw animation. I liked how it looked and enjoyed watching it. |
hud_nprintf_time |
Sets the duration (in seconds) for how long nprintf info is displayed on screen. |
m_rawinput |
MadSimon implements the m_rawinput variable for Cry of Fear. The behavior is the same as in other GoldSource games. |
Place the MadSimon library, after renaming it to CrashRpt.dll, into the cryoffear\cl_dlls folder. In this case, MadSimon will be loaded automatically each time the game starts.
Alternatively, use any injection method convenient for you, for example via Process Hacker.
This project is distributed under the 2-Clause BSD License.
Basically, you can use, modify, and share it freely, as well as use it as a learning resource - just make sure to give proper credit when using or sharing it.
This project includes the Hacker Disassembler Engine (HDE) by Vyacheslav Patkov, licensed under the BSD 2-Clause License.
See vendor/hde/LICENSE for details.