Launcher
General
- Now prevents pinning the game executable to the taskbar.
- Also added
-nopreventgamepinningcommand line argument to disable this.
- Also added
- Now sets the icon of console windows to the current main mod's icon, if there is one and it has an icon.
- Also added
-noconsolemodiconcommand line argument to disable this.
- Also added
- Now sets a default app ID on the game, constructed as follows:
LucasSimpsonsHitAndRunModLauncher- If it is a public testing build,
PublicTestingis appended. - If a main mod is enabled,
.<MainModInternalName>is appended. - Also added the
-nogameappidcommand line argument to disable this.
- Made the Mod Launcher itself respect the
-nocarindexmappingcommand line argument during conflict checking. - Fixed an issue that prevented encrypted mods from loading.
- Updated the Mod Launcher's copyright information.
- Potentially fixed various crashes related to jump lists.
- Improved the dialogue shown when compiling mods to list more details about what was compiled.
- Added a warning on startup if the Mod Launcher detects the game is installed within a cloud directory.
- This currently attempts to detect Dropbox, Google Drive, OneDrive and iCloud.
- This can be disabled with the new Warn on Cloud Directories setting in Launcher settings.
- Removed
lucasstuff.comfrom the list of valid Donut Team URLs.- This affects the obscure
-apiurland obscure-updatecheckurlCommand Line Arguments that pretty much only exist for internal testing.
- This affects the obscure
- Changed the encoding used when reading text files from ANSI to UTF8.
- Made it so, when loading mods,
[PathHandlers]inCustomFiles.iniare validated to ensure that the handler script exists. - Now checks the digital signature of the Hack Support hack (and therefore, the rest of Hacks.dll) before attempting to launch the game with it.
- This check helps to ensure it has not been tampered with.
- If the signature cannot be verified or, if for some inexplicable reason, it is not signed by Donut Team LLC, warning message(s) will be shown.
- On Windows XP, verifying our signature is not possible and a different message will be shown indicating this.
- In either case, you can choose to skip the message(s) and run the potentially unsafe code anyways.
Main Window
- Made it so the Launch button is now disabled when the game is attempting to launch and re-enabled when this either succeeds or fails.
- Made it so when Multiplayer is enabled the Launch will instead read Play Multiplayer.
- Redesigned the main window with a tool strip at the top, containing File, View and Help menus.
- This tool strip replaces the Open... and Account... buttons, previously found on the main window, to follow a more universally understood design for programs.
- Fixed a bug where right clicking a mod setting hack that's also requirable by mods and choosing Copy Require Line would copy
RequiredMod=HackNameinstead ofRequiredHack=HackName.
About Window
Added this new window that can be accessed from Help > About... on the main window's new tool strip.
The Licenses tab, previously located on the Launcher Settings window, has also now been moved to this new window.
Mods List
- Added the
-nodeltaupdatemodslistcommand line argument to force the Mod Launcher to fully reload the mods list when clicking a reload button. - Added a new Multiplayer tab.
- This tab is intended to house the Multiplayer hack itself, as well as multiplayer focused mods.
- Added a Rebindable keys are available in "Mod Settings..." message to the About tab that is shown when customisable keybinds are available for the currently selected mod.
- Fixed a bug where reloading a mod would change the scroll position of the Mods List.
Mod Features
- Added a new
MaxLengthproperty toTexttype[Setting]sections inMeta.ini. - Added a new
Multiplayerproperty to the[Miscellaneous]section inMeta.ini- This will move move a mod to the new "Multiplayer" tab of the mods list.
- Added the new
KeyCodetype for[Setting]sections.- While mods can technically declare
KeyCodesettings, there is currently no mechanism for listening for key presses in mods so this is really only usable by mod hacks at this time. - Also added a Clear Keybind option to the right click menu for this type of setting to remove the current binding entirely.
- While mods can technically declare
- Added support for using
RequiredModwith anInternalNamedeclared in a[LegacyResource]section.
New Mods
Analogue Speedometer Resources
Added this new framework that provides resources for the new Analogue Speedometer hack.
This was previously part of the Multiplayer Resources framework.
Multiplayer Resources
Added this new framework that provides resources for the new Multiplayer hack.
A different version of this was previously distributed as part of separate "SHAR MP" builds of the Mod Launcher.
This new version reworks many changes to be done dynamically with LuaP3DLib to make the file size smaller and also to avoid shipping base game assets with the Mod Launcher.
Per Character Coin Count
Added this new mod that uses the new Per Level Coin Count hack to give all characters in the base game their own wallets.
This means Homer has his own wallet shared across Levels 1 and 7, Bart has his own wallet shared across Levels 2 and 6, and all other characters have their own wallets for their respective levels.
Removed Mods
No Audio
Removed this mod. Use the existing No Audio mod hack instead.
No HUD
Removed this mod. Use the new Developer Keys hack to toggle the HUD instead.
No Traffic
Removed this mod. Use the new No Traffic mod hack instead.
Text Names
Removed this mod. Use the new Developer Keys hack to toggle showing text names or enable the Text Names mod hack instead.
Unlock All Rewards
Removed this mod. The existing Unlock All Outfits, Unlock All Vehicles and Unlock Bonus Game hacks are now mod hacks instead.
New Hacks
Ambient Car Support
Added this new advanced hack that provides other hacks the ability to spawn arbitrary cars.
This was previously distributed as part of separate "SHAR MP" builds of the Mod Launcher.
Analogue Speedometer
Added this new setting hack that adds a fancy analogue speedometer you can toggle with a key.
This is a standalone version of the Analogue Speedometer setting that was previously part of the Multiplayer hack.
Custom Collector Card Support
Added this new hack that lets you customise character quote icons, the number of character quotes per card (up to 3), card drawables per card, and card collect drawables per card.
Custom Dutch Angle NPC Camera Tilt
Added this new hack that allows mods to enable the camera tilting near NPCs, like it normally does in vanilla Level 7, in whatever levels they like with a configuration file to customise the angle.
Custom Mod Save Data
Added this new hack that allows mods to save and load custom values to the player's save data via various other hacks, such as Custom Files.
Custom Reward Quest Support
Added this new hack that expands base game reward quest types, adds several new ones and more.
DearImgui Support
Added this new advanced hack that provides other hacks the ability to render stuff on top of the game using DearImgui.
Debug Custom Files Output
Added this new hack for debugging Custom Files output by writing files output by uncompiled mods to disk
Developer Keys
Added this new hack that adds key binds that are useful for mod developers.
This hack was originally called "Map Test Keys" but was renamed to "Developer Keys" per Lord Loren's demand.
Drunk Camera
Added this new hack that makes the camera wobble side to side, as though you are drunk. Probably fun for challenge runs or if you enjoy motion sickness!
How intense the effect is can be customized with settings.
This hack is the result of a dumb joke made while we were working on Custom Dutch Angle NPC Camera Tilt.
Frame Rate Counter
Added this new hack that renders a frame rate counter on top of the game, with various options to configure it.
This was previously distributed as a standalone test hack for previous versions of the Mod Launcher.
Free Camera and No Clip
Added this new hack that allows you to toggle a free camera or no clip mode to move around.
Free Camera hides your character/car and gives you free control of the camera. Upon exiting this mode, you will be returned to where you were restoring what regions were loaded as well as the ped group and traffic group.
No Clip moves your character/car around freely. Upon exiting this mode, they will be dropped wherever you had them.
Ignore Unsupported DirectInput Devices
A new hack that is always enabled and prevents the game from trying to acquire unsupported DirectInput devices, fixing a black screen on startup caused by certain hardware configurations.
This was previously distributed as the standalone Direct Input Acquire Test hack for previous versions of the Mod Launcher.
Multiplayer (Beta)
Added this new hack that is a reworked version of the Multiplayer hack that was previously distributed as part of separate "SHAR MP" builds of the Mod Launcher.
Notably, this new version no longer uses Donut Team accounts in any way and servers can be self hosted by anyone using the new Simpsons Hit & Run Multiplayer Server.
In addition to this, the following changes were made:
- Changed FreeRoam from being a
RequiredModto aRequiredHack, making it automatically enabled when Multiplayer is instead of having to enable it separately to launch. - Removed the
Unreleasedflag, as this hack is now a part of the main Mod Launcher. - Moved the Server tab to the start of the hack's settings.
- Added new Name and Name Colour settings to control how you appear in game.
- Changed various asserts, indicating stuff has gone at least a little bit wrong, into logs instead.
- Removed the Analogue Speedometer setting, as this is now a standalone hack.
- Added the ability to chat with other players directly in the game.
- Removed the Spectate vehicle while surfing setting.
- The camera would not keep up with cars while car surfing without this setting on, so we have elected to make this always enabled.
- Added an in-game safety warning.
- This is shown briefly on startup to remind players to not share personal information or account credentials with other players.
- Updated this hack to have customizable keybinds.
- Removed the Play Offline setting, host a local server instead.
- Removed a hardcoded check to show "Play Level X" instead of "PLAY LEVEL X" main menu items when the Late Night at the Kwik-E-Mart mod is enabled.
- Sorry, Kenny.
- Removed the
HideFromOnlineattribute from the<Multiplayer>element ofMultiplayer.xml, host a local server instead. - Made it so players now animate for everyone when getting into a vehicle.
- Added the ability to destroy each other's cars.
- Husks are not currently supported and are fully disabled.
- No longer requires the No Wrenches hack.
- Now requires the new No Explosion Exit Delay hack.
- Added a new Player Listing that displays the names of all players in the same level as you, as well as their ping.
- Added " (Beta)" to the end of the hack's title to indicate this is still very much a work-in-progress.
- Now requires the Unlock All Outfits hack.
- Now requires the Unlock All Vehicles hack.
- Added the ability for the server to teleport players.
- Reset the Host setting and made it now default to
127.0.0.1instead ofmultiplayer.donutteam.com. - Removed the
-multiplayerparkedcarscommand line argument that enabled parked cars in Multiplayer. - Now requires the Unlock All Missions hack.
No Coins
Added this new hack that disables all coins.
This was previously part of the Multiplayer (Beta) hack, but is now a standalone hack it requires.
No Explosion Exit Delay
Added this new hack that removes the 3 second delay before your characters jumps out of a destroyed car.
No Gags
Added this new hack that disables all gags.
This was previously part of the Multiplayer (Beta) hack, but is now a standalone hack it requires.
No Hit & Runs
Added this new hack that disables Hit & Runs.
This was previously part of the Multiplayer (Beta) hack, but is now a standalone hack it requires.
No Pedestrians
Added this new hack that disables all pedestrians.
This was previously part of the Multiplayer (Beta) hack, but is now a standalone hack it requires.
No Traffic
Added this new hack that disables all traffic.
This was previously part of the Multiplayer (Beta) hack, but is now a standalone hack it requires.
Per Level Coin Count
Added this new hack that makes each level have a separate coin count.
Mods can also require and configure this hack to make only specific levels share coin counts, such as Level 1 and Level 7 in the base game to give Homer his own coins.
Restore Wasp Destroy Dialog
Added this new hack makes the game play dialog when destroying wasp cameras, as was seemingly originally intended.
Text Names
Added this new hack that makes the game show the internal names of frontend text strings.
It can be enabled the mods list, as well as being toggleable via the new Developer Keys and Trainer hacks.
Trainer
Added this new hack that adds an ingame window for tweaking game parameters on the fly, teleporting around, and more!
Walker Camera Data Support
Added this new hack that restores support for the Walker Camera Data chunk in P3D files.
Updated Hacks
Hack Support
- Improved handling of hacks attempting to delay load already loaded hacks.
- Fixed a potential crash related to uninitializing global ped stuff in Multiplayer.
- Added support for non-exclusive keybinds.
Additional Script Functionality
- Added the IfCurrentCar conditional.
- Added the IfStartedInCar conditional.
- Added the IfCurrentLevel conditional.
- Added the IfAllMissionsCompleted conditional.
- Added the IfAnyMissionCompleted conditional.
- Added the IfCurrentSkin conditional.
- Added the IfRewardUnlocked conditional.
- Added the SetStageKickForce command.
- Added the SetStageSlamForce command.
- Added the SetStageAirGravity command.
- Added the SetStageEnabledCheats command.
- Added the IfAllCheatsEnabled conditional.
- Added the IfAnyCheatEnabled conditional.
- Added the AddStageDynaLoadData command.
- Added the SetStageDynaLoadData command.
- Added the SetStagePedGroup command.
- Added the SetStageTrafficGroup command.
- Added the SetStageMusicEvent command.
- This is similar to Radical's StageStartMusicEvent command, except it can trigger all music events instead of a limited subset.
- Added the SetObjFailDistance command.
Note: Due to the nature of how console scripts work in the game, all conditional commands are evaluated at the time the script is executed. This unfortunately limits the utility of many of these, currently, but we believe they still have some use cases even within these limitations.
Analogue Mouse Input
Fixed an assert triggering every frame when DirectInput reported no mouse wheels while using the -testing command line argument.
Aspect Ratio Support
Fixed a potential crash when checking if the HUD was active.
Bug Fixes
- Renamed the Baby Van Tilt setting to Baby Van Tilt/Wonky Driving as it has been discovered these issues are caused by the same bug.
- Added a new Time Skip bug fix.
- Also added a
FixTimeSkipproperty to the[Physics]section ofBugFixes.inito force enable this bug fix in a mod.
- Also added a
Cheat Keys
- Fixed a crash when activating the Cheat Keys phonebooth when one or more loaded mods had a
CustomShopSupport.xmlcontaining one or more<PhoneBooth>elements containing one or more<Selector>elements with aLocatorattribute. - Added a new Open Skin Shop key.
- Added a new "Jump Height" setting.
- This controls how high your car goes upon pressing the "Vehicle Jump" key.
- Updated the description of this hack.
- Added a new Toggle Kick Force Tweak key.
- This toggles a modifier for how much force is applied when kicking.
- The force when toggled on can be customized with the new "Kick Force" setting.
- Added a new Toggle Slam Force Tweak key.
- This toggles a modifier for how much force is applied when slamming.
- The force when toggled on can be customized with the new "Slam Force" setting.
- Added a new Toggle Character Max Speed Tweak key.
- This toggles a modifier for how fast your character moves.
- The speed when toggled on can be customized with the new "Max Speed" setting.
- Added a new Toggle Jump Zone key.
- This toggles the jump zone speed boost effect when driving.
- Added a new Toggle Vehicle Visibility key.
- Fixed a bug where Continuous/Allow Key Repeats worked on the Open Phone Booth key.
- Renamed the Continuous setting to Allow Key Repeats.
- Added a new Speed Multiplier setting.
- This controls the multiplier applied when pressing the "Multiply Vehicle Speed" key.
- Updated this hack to have customizable keybinds.
- Replaced the
-forceallowcheatkeyscommand line argument with a new Force Allow Cheat Keys setting. - Now disables the Reset Hit & Run Meter key when Multiplayer is enabled.
- The new Toggle Vehicle Visibility, Toggle Kick Force Tweak and Toggle Slam Force Tweak keys are also disabled when Multiplayer is enabled.
Custom Audio Support
- Added a new
BirdSoundattribute for<Level>elements that lets you set whatdaSoundResourceDataplays when entering an Event Locator using event 47 for a level. - Added a new
BirdSoundattribute for<Mission>elements that lets you set whatdaSoundResourceDataplays when entering an Event Locator using event 47 for a mission.
Custom Bonus Mission Support
- Added new
[StartBitmaps],[StartBitmapsLX]sections to configure what mission presentation bitmaps are shown at the start of bonus missions or street races. - Added new
[EndBitmaps]and[EndBitmapsLX]to configure what mission presentation bitmaps are shown at the end of bonus missions or street races that use the "Patty & Selma" screen.
Custom Files
General
- Removed an assert message in this hack that was previously shown if it failed to enable Data Execution Prevention.
- Added support for repeating the
[Miscellaneous],[AdditionalFiles],[PathHandlers]and[PathRedirections]sections inCustomFiles.ini.- If, for some inexplicable reason, already released mods had duplicates of these section headers, they will now be parsed and used instead of being ignored.
Lua Scripting
- Added the GetCurrentLevel function.
- Added the GetCurrentMission function.
- Added the Dialog function.
- Also added the DialogButtons, DialogIcon, and DialogResult tables.
- Added the GetCurrentSkin function.
- Added the IsRewardUnlocked function.
- Also added the RewardType table.
- Added the LookupString Lua function.
- Added the GetActiveLevelMission function.
- Added the GetHighestLevelMission function.
- Added the GetCoins function.
- Added the IsLevelFMVUnlocked function.
- Added the GetLevelNumCarsPurchased function.
- Added the GetLevelNumSkinsPurchased function.
- Added the GetLevelNumWaspsDestroyed function.
- Added the GetLevelNumGagsCompleted function.
- Added the IsLevelMissionCompleted function.
- Added the IsLevelStreetRaceCompleted function.
- Added the IsLevelBonusMissionCompleted function.
- Added the IsLevelWagerRaceCompleted function.
- Added the IsLevelGagCompleted function.
- Added the IsPersistentObjectDestroyed function.
- Also added the PersistentObjectSector table.
- Added the IsLevelCardCollected function.
- Added the IsCheatEnabled function.
- Also added the Cheat table.
- Added the GetCurrentCar function.
- Added the GetLevelCount function.
- Added the GetCustomSaveDataValue function.
- Added the SetCustomSaveDataValue function.
- Added the GetCustomSaveDataValues function.
- Added the GetModsWithCustomSaveData function.
Custom Interior Support
Added AllowJumping, AllowKicking and AllowSprinting to the [Interior] section to allow enabling these features individually on a per interior basis.
Custom Save Data
Now makes the game mark wager races as completed in the save file, regardless of what kind of mission they are.
Ordinarily, the base game only stores a best time upon completing a standard wager race.
This change has no impact on vanilla gameplay but enables mods to check if these missions have been completed even if they are not actually a wager race, such as Donut Mod's Taxi Missions.
Custom Shop Support
Added a new HideLocked property for <PhoneBooth> elements that hides cars that have not been unlocked yet.
If no vehicles are unlocked, all vehicles will be shown to prevent the game from crashing.
Custom Stats Totals
Now calculates the total amount of story missions, bonus missions, street races, collector cards and movies based on:
- The amount of
Levelsset in the existing[Miscellaneous]section. - The amount of
StoryMissions,BonusMissions,StreetRaces,CollectorCardsandMoviesset in the new per level[LevelX]sections. - Also added the
IncludeMovieInTotalproperty to the new[LevelX]section to set whether the level's movie is included in the game total. - Also added the
RemoveUnusedMissionFromMissionSelectproperty to theMiscellaneoussection to set whether unused missions are included in the mission select menu.
Custom Trigger Actions
- Added an assert when there is a
ConditionorConditionstype[Condition]section that does not specify any other[Condition]s to check. - Added a new
Settingtype for[Condition]sections that allows checking settings of the current mod or other mods. - Added a new
TiltCameraActionfor[Action]sections that tilts the camera.- The tilt angle can be set with the
Valueproperty. - Also added an optional
Durationproperty to set how long it takes the camera to return to normal. - Also added an optional
Resetproperty to set if the tilt resets when changing mission.
- The tilt angle can be set with the
Debug Checks
- Added a new check that makes this hack detect and show an error when the game has no handler for a particular file type.
- This is always enabled because the game will crash after this happens.
- Added a new Missing Detection > Frame Controller Animation/Hierarchy setting. This detects when a frame controller's animation or hierarchy could not be found.
- This defaults to Disabled because each of Radical's level has about two dozen borked frame controllers and it can be annoying.
Debug Test
- Removed the K Key that reloaded the currently loaded music RMS file.
- Removed the O key that toggled the HUD.
- Updated the description of this hack to be more clear about what it is.
- Updated this hack to have customizable keybinds.
- By default, all of this hack's keybinds are unbound.
- Removed the Miscellaneous > Show Windows Cursor setting.
- This caused issues with the new DearImgui Support hack.
- Now conflicts with the Multiplayer hack and will also unload itself if it is somehow enabled.
- Removed the F8 key that toggled the HUD.
- This is now apart of the Developer Keys hack.
- Removed the F10 key that completed the current mission stage.
- This is now apart of the Developer Keys hack.
- Removed the Shift+F10 key that failed the current mission stage.
- This is now apart of the Developer Keys hack.
- Removed the Miscellaneous > Halloween NPC Camera Tilt on All Levels setting.
Debug Text
General
Updated this hack to have customizable keybinds.
"state and actions" Page
Updated debug info to show individual booleans for various fields on a JumpAction instead of a single integer. These booleans are as follows:
- Boost
- Falling
- JumpAgain
- TurboJump
- InJumpKick
- DoJumpKick
- Slam
- PreSlam
"traffic" Page
Made it so, when standing on top of a traffic car, the car's current road segment is rendered in a different color.
"intersect" Page
Now shows terrain type names and interior flags, instead of showing just a number that was also incorrect if the interior flag is set.
"static entity billboard quads" Page
Added this new page that renders names and groups for billboard quads within the world.
Direct3D 9
Fixed an issue related to changes to how hardware skinning works made in Version 1.26 and 1.26.1.
Discord Rich Presence
- Added a new
ApplicationIDproperty to the[Miscellaneous]section ofDiscordRichPresence.inito set a custom application ID.- This allows mods to, for example, say "Playing Donut Mod" on Discord instead of "Playing Lucas' Mod Launcher".
- Added the ability to modify what text is shown on a user's Discord profile while playing various types of missions using a new
[States]section inDiscordRichPresence.ini. - Added the ability to override the entire state text, as well as large image and large image text, on a per mission basis using new mission sections in
DiscordRichPresence.ini. - Removed the
-nodiscordrichpresencecommand line argument. - Removed the
[Globals]section ofDiscordRichPresence.ini.- It was quite limited and the new features added in this version provide all of its functionality and much more.
- Removed the Show Main Mod and Show Mission Elapsed Time settings.
- Updated the description of this hack.
File System RCFs
Now requires the Custom Files hack.
Frame Limiter
- Added a new High Resolution Timer setting.
- This is enabled by default.
- When enabled, the hack will use a more precise waitable timer. This change particularly matters on newer versions of Windows where the standard timer behavior has changed.
- Moved the Load Files While Waiting setting into the Advanced group.
- Added various console logs on startup pertaining to settings in this hack.
Free Roam
Made this hack requirable by mods and hacks.
Increased Reward Limits
Increased the limit on Maximum Car Health Values in Save Data from 60 to 2,147,483,647.
No Time Limits
Added a warning when enabling the Timer Objectives setting as it makes several missions in the base game, as well as many throughout various mods, impossible to complete and is probably not what you want.
One Tap Player Car Death
Now conflicts with the Multiplayer (Beta) hack because good lord, it should have already!
Rebindable Menu Gamepad Inputs
Added the ability to bind the F1 and F2 keys to gamepad inputs.
Resizable Window
- Fixed a crash that would occur if the game window lost focus while you were resizing it.
- Fixed a potential crash by making this hack update the resolution slightly sooner.
Screenshots
- Updated this hack to have customizable keybinds.
- Moved the "Flash Screen" and "Play Sound" settings into an "Effects" group.
Unlock All Outfits
Made this hack into a mod hack that can be ticked on the Settings page.
Unlock All Vehicles
Made this hack into a mod hack that can be ticked on the Settings page.
Unlock Bonus Game
Made this hack into a mod hack that can be ticked on the Settings page.
Removed Hacks
NVIDIA Highlights
Removed this hack because it doesn't work anymore and probably hasn't for years. 🥳
Also removed the GfeSDK.dll from the DLLs folder because this was the only thing that used it.