Main Branch
Changelog
Hacks
Direct3D 9
- Made old primitive groups with "simple" shaders not use hardware skinning if they have lighting disabled.
- Fixed an issue where normals were not normalised which caused the Skin previews to be brighter than normal.
Modern Computer Support
- Now fixes an issue where the game incorrectly centred the cursor to the window instead of its client area and an issue where the game assumed the non-client area was 30 pixels at the top and 10 pixels at the other edges when clipping the cursor.
- Also added the
-noproperclientareacursorcentringandclippingcommand line argument to opt out of this fix.
- Also added the
Changelog
Launcher
General
- Fixed an issue where the Mod Launcher still created a Direct3D 8 object, usually used for checking which MSAA levels are available, even when using the
-forcemsaacommand line argument. - Fixed an issue where the Anti-aliasing hack would fail to load and show a message if Direct3D 8 was unavailable when it should do so silently.
- Fixed possible memory corruption relating to PROPVARIANT when fixing pinned shortcuts and updating the Jump List.
- Updated the Mod Launcher's copyright year to 2021.
- Fixed possible memory corruption when getting the OS version for the user agent when not using the
-useragentcommand line argument. - Made the error message shown when failing to connect to Donut Team show the exception or HTTP status code.
- Made the Mod Launcher show a warning when attempting to compile a mod without an internal name.
Also added the
-nocompileinternalnamecheckcommand line argument to opt out of this. - Added the
-nomodenablewarningscommand line argument. This disables warnings shown when mods that specify one are ticked in the mods list. - Updated cacert.pem.
Main Window
- Fixed an issue where ampersands (&) in main mod titles were not escaped when showing the title of the main mod on the "Saved Games" and "Screenshots" items in the "Open..." menu.
- This resulted in the ampersand not appearing and sometimes the next character being underlined.
- This also meant the underlined character would act as a hotkey.
Mods List
Added a "Show Saved Games" option when right clicking a selected mod in the Mods List with one or more main mods selected.
Mod Settings
Made it so mod settings windows omit the label of settings that have a blank string as their Title.
Launcher Settings
Made it so being requirable by hacks is no longer a reason for hacks to be listed on the Non-mod Hacks page.
Localisation
- This version adds new language strings.
- A new template language (Template_1.26.xml) was published on this page including these new strings at the end of the file.
- Made it so you can seamlessly change the program's language without a restart.
- Made it so the current language file will get reloaded when the main window is focused if it changed.
- Made the error message shown when failing to load a language file have a Retry button.
- Fixed an issue where the error message shown when failing to load a language file on the Select Language window was not modal to the Select Language window.
- This resulted in the Select Language window being focusable and interactive and possibly in an unstable state.
- Fixed an issue where failing to load a language file on the Select Language window didn't change the Language combo box back to the default English.
Mod Features
- Made it so you can repeat the
Descriptionproperty in the[Miscellaneous]section and the Text property in[Description]sections of Meta.ini.- This is a cleaner method of having multi-line descriptions.
- You must use
RequiredLauncherwith Version 1.26 or newer in your[Miscellaneous]section to use this functionality.
Hacks
Hack Support
Fixed an issue where the ExitProcess hook wasn't included in the count of hacks installed by Hack Support on this hack's Debug Text page.
Additional Script Functionality
CON Commands
Added the SetWheelieOffsetX command. This is equivalent to Radical's SetWheelieOffsetY and SetWheelieOffsetZ commands but for the X axis.
Analogue Mouse Input
Added this new advanced hack.
Bug Fixes
- Added the "Crashes > High Coin Count" bug fix. This fixes an issue where the game would crash if you collected more than 9,999,999 coins.
- Mods can also opt into this fix with the new
FixHighCoinCountCrashproperty in the[Crashes]section.
- Mods can also opt into this fix with the new
Custom Car Support
- Added support for setting a visual steering multiplier for car wheels.
- You can set one for the front wheels via the
FrontSteeringVisualMultiplierproperty and one for the back wheels via theRearSteeringVisualMultiplier. - You can also set one for an individual wheel via the
Wheel?SteeringVisualMultiplier, substituting the ? for the wheel index:- 0 for the back right wheel.
- 1 for the back left wheel.
- 2 for the front left wheel.
- 3 for the front right wheel.
- Unless, of course, you're Radical and you're making the Family Sedan (
famil_v) wherein 2 and 3 are inexplicably swapped around.
- You can set one for the front wheels via the
- Added support for additional Fake Wheels on cars via the new
[FakeWheel]section.- Fake Wheels have various configuration options and work by copying and/or multiplying values of any of the car's four real wheels.
- Added support for new
[Car]sections as an alternative to using the car's name as the name of the section.- These sections use the new
Nameproperty instead to identify the car.
- These sections use the new
- Added support for setting skid mark width multipliers for each of the car's real wheels.
- You can set one for the front wheels via the
FrontSkidMarkWidthMultiplierproperty and one for the back wheels via theRearSkidMarkWidthMultiplier. - You can also set one for an individual wheel via the
Wheel?SkidMarkWidthMultiplier, substituting the ? for the wheel index.
- You can set one for the front wheels via the
You can find out more about how to use the various new features of this hack on its documentation page.
Custom Files
Fixed a buffer overflow when reading the header of some Bink files when playing them that could cause memory corruption and lead to a crash.
Custom Limits
- Added a new
SkidMarkLimitproperty to the[Cars]section to customise the maximum number of skid marks that can exist at once. - Added a new
[Triggers]section with a VolumeLimit property to customise the maximum number of trigger volumes that can be loaded at once.
Custom Text
Made it so text strings returned by this hack always reserve at least 256 characters safe for Radical to mess with since they do that in some cases.
Debug Checks
Fixed an issue where Composite Drawable Missing Detection incorrectly claimed to be "Experimental" even though it has not been considered experimental since before Version 1.23.9.
Debug Text
- Fixed an issue where the "×" symbol in the title of the "Graphics > Allow Textures Larger Than 2048 × 2048" setting was the wrong character in some non-unicode system locales. For example, it appeared as "Ч" in Russian.
- Added a new "walker cam" page.
Direct3D 9
- Added support for hardware skinning.
- This can still be opted out of with the
-nohardwareskinningcommand line argument. - The hack falls back to not using hardware skinning for Primitive Groups with shaders with a PDDI Shader other than "simple" or "error" for compatibility with mods that for some reason relied on Direct3D 9 to allow environment maps to work on Skins.
- Mods with Skins that have Primitive Groups that are missing skinning information would crash without hardware skinning.
- This can still be opted out of with the
Discord Rich Presence
- Made it so this hack uses Discord RPC as a DLL instead of using the version embedded into Hacks.dll if such a DLL file (discord-rpc.dll) inexplicably exists in the DLLs folder.
- The
-discordrpccommand line argument opts out of this inexplicable behaviour.
- The
Hover Car Refraction
Fixed a crash on launch when this hack was required by a mod and not ticked by the user.
Modern Computer Support
- Fixed an issue where you could not bind mouse buttons when using a non-English Windows language.
- Also added the
-nononenglishwindowsmousebuttonfixcommand line argument to opt out of this change.
- Also added the
On Foot Orbit Camera
Added this hack.
This hack replaces the game's regular on foot camera with a more advanced, mouse-controllable, orbit camera.
You can find out more about this hack's various settings on its documentation page.
Refraction Shader Support
Skippable FMVs
Added this new hack.
This hack allows you to skip the game's opening FMV as well as FMVs in missions that you haven't seen before.
Sphere Maps
Renamed this hack to "Sphere Map Reflections" to make it more clear what it actually is.
Starting Coins
- Fixed an issue where the "Starting Coins" setting could not be set negative.
- Fixed an issue where the "Starting Coins" setting could be set higher than the maximum value of a signed 32-bit integer (2147483647).
- Only the low 32-bits were used.
Text Binary Search
Added this new hack.
This hack makes the game's text lookups use a more efficient binary search instead of looking through the entries in order until they find the one they're looking for.
This hack also sorts the text bible loaded out of srr2.p3d if it is not already sorted, like how Radical's is by default.
Changelog
Launcher
General
- Improved performance when working out what mod icon should be shown for configurations that don't have a main mod enabled on the main window, in the right click menu of the mods list, on the Manage Configurations window and when updating the Jump List.
- Made it so the configurations list in the right click menu of the mods list is only updated when opening the menu after one of the following circumstances has occurred since it was last opened:
- Changing what main mods or edition mods are enabled for the current configuration.
- Reloading mods.
- Pressing "OK" on the "Manage Configurations" window.
Mod Settings
Fixed an issue introduced in Version 1.24 where having a single mod setting with a wide label in a group or page by itself caused it to be smaller than it's supposed to be.
Configurations
Fixed an issue where the Main mod or Edition mod's icon would not appear on the "Manage Configurations" window when importing a configuration that had a Main mod or an Edition mod enabled until the window was closed and re-opened.
Mod Features
Fixed an issue introduced in Version 1.25 where compiling an encrypted mod resulted in a corrupt LMLM file.
See the Encryption property on this page for details on when Mod Encryption is enabled.
Hacks
Hack Support
Fixed a crash and/or asserts (when using the -testing command line argument) in the game that occured when it reset its device while minimised in windowed mode.
This could happen in various cases such as when pressing Ctrl+Alt+Delete (on Windows XP if the Welcome Screen is disabled or on Windows Vista or newer), getting a User Account Control prompt that dims the screen, updating your graphics driver or hibernating the computer.
Additional Script Functionality
Overhauled the handling of stage vehicles in regards to checkpoints.
This fixes various issues when resuming from a checkpoint when the mission added stage vehicles before it such as:
- Stage vehicles spawning near the origin of the world when activated in the stage with the checkpoint or any subsequent stages without a locator being given to
ActivateVehicle. - Stage vehicles that were added but not activated before the checkpoint would not exist if the checkpoint stage did not activate them even though they should.
- Several script functions added by this hack would fail and show an assert when used before the checkpoint:
AddStageVehicleCharacterResetStageVehicleAbductableSetStageVehicleAbductableSetStageVehicleAllowSeatSlide
- Stage vehicles added and activated in the first stage would cause an assert when using the
-testingcommand line argument.- Only if the checkpoint was not on the first stage (why would you even have one there?)
Debug Text
General
Added a list of cars that will be removed the next time they're off screen to both the "cars" and "mission" pages.
"mission" Page
- Made it so this page now shows which stages have checkpoints and which stage is currently the active checkpoint.
- Changed "active" to "current" when indicating what stage you're currently on.
- Made it so this page now shows the current state of a stage.
- A stage's state can be "active", "completed" or "failed".
- A stage's state can also be nothing.
- Made it so this page now shows what stage vehicles are being manipulated in each stage.
- This shows what locator and AI the vehicle is being added and/or activated with.
- Made it so this page now shows a list of every stage vehicle used in the mission.
- This list shows whether or not the vehicle is currently in the world.
- This list also shows the driver of the vehicle and also whether or not the driver is in the world.
- Cars are removed from this list when the mission is done using them.
Changelog
Launcher
General
- Made the Mod Launcher support .NET 4.0 and use it if it's available.
- .NET 4.0 is installed by default on Windows 8 and newer.
- .NET 3.5 is installed by default on Windows 7.
- This means the Mod Launcher should no longer require a version of .NET that isn't installed by default on Windows 7 or newer.
- Windows XP and Windows Vista users can install .NET 3.5 or .NET 4.0 to run the Mod Launcher.
- Windows 7 users can optionally install .NET 4.0.
- You can delete "Lucas Simpsons Hit & Run Mod Launcher.exe.config" out of the folder to opt out of this change.
- Made the Mod Launcher support running in Mono within Wine on Linux.
- You can start it in Mono on Windows as well but this doesn't work very well.
- Made the Mod Launcher show a message and refuse to start if it's not running in a Windows environment (such as Mono on Linux but not within Wine).
- Also added the
-nowindowscheckcommand line argument to bypass this.- Bypassing this won't work particularly well.
- Also added the
-spoofwindowscheckcommand line argument to force the non-Windows environment behaviour.- This is useful to test the message when localising the program.
- Also added the
- Made it so the Mod Launcher no longer creates
%localappdata%\Lucas Stuff\Lucas' Simpsons Hit & Run Mod Launcheron startup.- Now it will only get created when it's actually needed (when generating mod icons for the Jump List or the game window (when a Main mod or Edition mod with an icon is enabled and when not using
-nogamemodicon)).
- Now it will only get created when it's actually needed (when generating mod icons for the Jump List or the game window (when a Main mod or Edition mod with an icon is enabled and when not using
- Fixed an issue where the Mod Launcher could not load its hacks when running from a path containing characters not supported by the user's non-Unicode system locale.
- For example: A path containing Chinese or Russian characters when using an English locale.
- Made the
-languagecommand line argument support "E", "F", "G" and "S" in addition to "0", "1", "2" and "4" respectively.
Mods List
- Made it so the mods list no longer gets repopulated in various cases.
- When disabling mods when on the Enabled category.
- When removing mods from your Favourites when on the Favourites category.
- When hiding mods when on categories other than Enabled.
- When unhiding mods when on the Hidden category.
- Instead, it just removes the mods that should no longer be listed.
- This makes these actions faster and also makes it so they don't scroll the mods list to the top anymore.
- Made it so reloading individual mods no longer redundantly updates the mods list a second time.
- This causes it to be slightly faster.
Localisation
This version adds new language strings.
A new template language (Template_1.25.xml) was published on this page including these new strings at the end of the file.
Hacks
Additional Script Functionality
- Added checkpoints. There are several commands related to this functionality:
CHECKPOINT_HEREIfCurrentCheckpointSetCheckpointDynaLoadDataSetCheckpointPedGroupSetCheckpointResetPlayerInCarSetCheckpointResetPlayerOutCarSetCheckpointTrafficGroup
- Made it so adding vehicle characters and manipulating them in stages prior to a stage that calls
RESET_TO_HEREis now handled when selecting or restarting the mission. - Added
SetStageVehicleAbductableandResetStageVehicleAbductable.
Custom Character Support
Fixed an issue where this hack being enabled caused the picking of a player idle animation to always use different random number generation even when no IdleAnimationWeight properties were specified for the character.
Custom Files
General
- Fixed an assert when attempting to enable Data Execution Prevention in a couple cases:
- When the SetProcessDEPPolicy API is not implemented (such as when running in Wine).
- When the system DEP policy is set to "AlwaysOff" or "AlwaysOn".
Lua Scripting
Added the GetGameLanguage function. This allows you to check what language version of the game the user is playing.
Custom Limits
- Added a
[Missions]section with a newStageLimit. - Added a
[Pedestrians]section with a newGroupLimit.- Also moved the
[Miscellaneous]section'sPathLimithere.- It is still supported in the
[Miscellaneous]section for backwards compatibility.
- It is still supported in the
- Also moved the
- Fixed an issue where the
[Regions]section'sLimithas been broken since its introduction in Version 1.15 on September 20th, 2016. The actual mistake was due to the hack mistakenly changing the memory allocator used for regions. This happened because these happen to use heap 7 (GMA_LEVEL_ZONE) and since the default region limit is 7, this number was also mistakenly being changed by this hack in every previous version where this feature exists. This update also removes a hard limit of 127 from this limit, however it was impossible to actually set it anywhere near that number due to this mistake.
Custom Shop Support
Changed the Whitelist and Blacklist elements used inside <PhoneBooth> and <SkinShop> elements to IncludedItems and ExcludedItems.
The old names are still supported for backwards compatibility.
Debug Checks
- Added new messages for crashes within MFK and CON scripts.
- Added a new message for missing tokens in MFK and CON scripts.
Debug Text
Renamed the -debugtextmode command line argument to -debugtextpage to be more consistent with the hack's settings.
The old argument is still supported for backwards compatibility.
File System RCFs
Made it so asserts shown when an RCF file doesn't include a matching data entry for a name entry only appear when using -testing.
Modern Computer Support
- Made it so this hack always does its fixes for slow file loads when running in Wine regardless of the reported Windows version.
- This fixes an issue where file loads were slow when Wine was reporting as Windows XP.
- The Winetricks
dotnet35sp1verb sets it to do this.
- The Winetricks
- This fixes an issue where file loads were slow when Wine was reporting as Windows XP.
- Added the
-noslowfileloadfixescommand line argument. - Added the
-forceslowfileloadfixescommand line argument.
No Bonus Game
Added this hack. This can be required by a mod to disable the bonus game.
No Introduction Movies
Made this hack requirable by mods.
Mods that occlude movie files or do other similar workarounds to suppress the exact same movies as this hack does should either require this hack or add it as an optional hack to improve the handling of this when it's available.
Skip Main Menu
Fixed an issue where this hack caused any unlocked reward cars or skins to be locked when you first load into the game.
Going back to the main menu and then back ingame would fix this.
Changelog
Launcher
General
- Added the
-randomcasetext,-invertcasetext,-alternatingcasetextand-reversetextcommand line arguments. - Made "Show License" on the right click menu of hacks (in the mods list and on the Non-mod Hacks page of the Launcher Settings window) not include the license(s) of Hack Support.
- Only when its a required advanced hack. This does not affect Hack Support itself.
- This prevents hacks that don't use TinyXML from including TinyXML in this menu.
- This was an issue introduced in 1.22.4.
- Fixed another crash on startup when failing to read/write a pinned shortcut.
- The
-nofixpinnedshortcutscommand line argument could be used to workaround this.
- The
Mods List
- Made it so the sub category combo box gets cleared if the selected category has no sub categories.
- Made it reloading individual mods keeps them selected.
Mod Settings
- Fixed an issue where settings with wide labels could cause all but the last setting in their group to overflow the group.
Launcher Settings
- Made "Show License" on the right click menu of hacks on the Non-mod Hacks page only include the licenses of advanced hacks they require when "Show Advanced Hacks" is unticked.
- Fixed an issue where settings that were not set to their default value would not be bold when opening the window if this meant they were unticked.
Localisation
This version adds new language strings.
A new template language (Template_1.24.xml) was published on this page including these new strings at the end of the file.
Hacks
Hack Support
- Improved handling of saved games with purchased cars and/or skins at indices that are not bound in the current rewards file with a very informative message.
- Made the "hack events" Debug Text page (available when using the -testing command line argument) show the top 18 internal hack events in addition to the information it already showed.
- Changed part of the error message shown when no audio device is connected from "Please connect an audio output device or install a virtual audio device (such as VB-Audio Virtual Cable) and launch the game again." to "You can enable the No Audio mod hack to allow the game to run without an audio output device or connect one and launch the game again.".
- Made it so Buffer overruns (and possibly other error messages from the game's instance of the Microsoft Visual C++ Runtime) save crash dumps.
- These types of crash also now have more modern looking dialogs.
- Due to the nature of buffer overrun detection (including the fact that it is detection for corruption that has already occured but shouldn't have had a chance to do anything dangerous (in terms of security, not stability)), it may not always be feasible to get much information from these crash dumps.
- Also added the
-nohandlecrtmessageboxcommand line argument to opt out of this.
- Made creating an additional swap chain (when the Resizable Window mod hack is enabled and not using the
-noadditionalswapchaincommand line argument or when using the-additionalswapchaincommand line argument) terminate the game if the device window handle (hDeviceWindow) is invalid according to IsWindow.- This is done after an assert when using the
-testingcommand line argument. - This is to prevent asserts when closing the game window before the game loads simpsons.ini.
- This is done after an assert when using the
- Made CreateAdditionalSwapChain failing when creating an additional swap chain only assert when using the
-testingcommand line argument. - Made failing to create an additional swap chain fall back to not using an additional swap chain.
- This also disables further attempts to use an additional swap chain.
- This is the same behaviour as using the
-noadditionalswapchainargument.
Bug Fixes
- Added the new
RoadArrowPathItemLimitIncludeIntersectionCountbug fix to the[Crashes]section.- This fixes an issue where intersections are not accounted for when creating an array used by the game to place road arrows when navigating.
- This issue has been particularly apparent in custom maps where certain road network configurations may cause this issue to arise.
- Added the new "Visual > Stuck Brake and Reverse Lights" bug fix to the hack's settings.
- This fixes some issues where the brake and reverse lights could get stuck on cars.
Custom Car Support
- Added the
NoBumperCamproperty.- This just disables the bumper cam for a given car, like how the RC Car does by default.
- Made it so this hack only patches the game code for the specific functionality being used by the currently loaded mods.
- Added the
Huskproperty.- This specifies what car should be used as this vehicle's husk when it explodes.
- The vehicle used for this property should be marked as a husk using the
IsHuskproperty below.
- Added the
IsHuskproperty.- This marks a car as being a husk, giving it certain special properties that the charred husk has by default.
- Added the
BackWheelSparksproperty.- This makes a vehicle's back wheels emit sparks like how the charred husk does by default.
- Added the
Invincibleproperty.- This makes it impossible to destroy the vehicle.
Custom Character Support
Added the IdleAnimationWeight property to character sections.
This can be specified once for each idle animation for the skin in the character's CHO file to control how common each idle animation is.
Custom Files
General
- Added an
[AdditionalFiles]section to the hack's configuration file.- This allows you to define any number of additional files to be loaded when a particular file is requested.
- This is useful for the new husk features of Custom Car Support, allowing you to keep a car specific husk model separate and have it get loaded alongside the regular car model.
Lua Scripting
- Fixed a memory leak when Lua failed to allocate memory to return the result of a call to the
ReadFilefunction. - Fixed a major issue where Lua functions that are only supposed to work when handling a path (
Output,Redirect,GetPath,IsWritingandUseCallbacks) could be called in aUseCallbackscallback but would not work properly. Now they cannot be called in this case. - Added the
ReadFileOffsetfunction. This allows you to read part of a file.
Custom Limits
- Added the
[Heaps]section.- This section allows mods to control the size of specific heaps in the game.
- Added the
[Cars]section.- Also moved the
[Miscellaneous]section's CarLimit to this new section.- It is still supported in
[Miscellaneous]for backwards compatibility.
- It is still supported in
- Also added the new HuskLimit to this section.
- Also moved the
Custom Stats Totals
Added support for wasp, gag, car and skin totals being 0. These totals are now excluded from the overall percentage when they're 0 rather than causing the game to divide by 0.
Custom Vertex Shader Support
- Fixed a crash introduced in 1.23.10 when preventing a redundant device reset (which can be opted out of with the
-noblockredundantdeviceresetcommand line argument).- A mesh with a sphere map shader (when using the Sphere Maps mod hack) or a refraction shader (when using the Hover Car Refraction mod hack) must have been on-screen when not using the Direct3D 9 mod hack.
- One example of when this crash would occur after such conditions were met was when changing the resolution using the in-game menus.
Debug Text
"cars" Page
Added information about husks.
File System RCFs
Added this new hack.
FLAC Support
Potentially fixed a potential crash on computers that don't support enhanced instructions.
Interior Sprinting
Completely rewrote this hack to fix an issue where if you started a mission with an animated camera at the start, cancelled it and then used mission select to go to a mission that starts in an interior, it would play the previous mission's start camera.
No Audio
Added this new hack.
The "No Audio" mod is still included but it is overridden by this hack unless you explicitly disable the hack with the -disablehack NoAudio command line argument.
Changelog
Hacks
Custom Files
General
- Fixed a bug where Data Execution Prevention was enabled on executables that don't support it.
Lua Scripting
- Removed the "interval too large" check from the math.random function.
- Previously, the range could not be more than 9,223,372,036,854,775,807 (the value of math.maxinteger).
- This limitation no longer applies to this implementation of math.random so this check has been removed.
- Made math.randomseed not get the argument as a double precision floating point and cast it to a 64-bit integer.
Changelog
Hacks
Debug Checks
Fixed a false positive in the new vehicle sound checks added in the previous version.
This happened when a mission (such as a street race) forced you into your own car (not a forced car), you cancelled the mission and then got out of your car.
Changelog
Highlights
This update includes multiple security improvements that affect the Custom Files hack, we recommend you avoid using mods from untrusted sources in older versions.
Launcher
General
- Added the -currentdirectory command line argument. This allows you to specify a working directory for the Mod Launcher.
- This was required for changes to the Discord Rich Presence hack listed below.
- Fixed an issue where screen readers (such as Windows Narrator) would refer to the Resolution combo box as the text of the update hyperlink instead of "Resolution".
- The text of the update hyperlink would be "Placeholder" if it hadn't been shown yet.
- Updated the Mod Launcher's copyright year to 2020.
- Fixed a bug introduced in 1.23.2 where using 150% text size in Windows caused button and label text to be too big.
Main Window
- Fixed an issue where the resolution list was being updated when enabling/disabling mods and after changing mod settings.
- Added a "Custom..." option to the resolution dropdown.
Mod Settings
- Made it so these windows do not show a Reset button if none of the settings can be reset.
- Such as when they all have NoReset=1 or they're all Label type settings.
- Added various command line arguments that affect the appearance of these windows.
-vistastylemodsettings: This makes the area above the buttons have a different coloured background with a separator edge in between the two sections.- Also added
-vistastyleedgeto customise the size of the separator edge when this is enabled.
- Also added
-modsettingsicon: Shows the mod's icon to the left of the settings.- Also added
-modsettingsiconsizeto customise the size of the icon when this is enabled.
- Also added
-nomodsettingsresetbutton: Removes the reset button.- These can all be used together along with the existing
-noboldsettingscommand line argument to make these windows look how they did in Versions 1.5 through 1.9.
- Made it so these windows are centred to the main window of the Mod Launcher instead of the screen.
- Made it so Label "settings" with a URL now show their URL in the tooltip.
- If a Tooltip is also specified, it will be shown after this.
Localisation
This version adds a couple new language strings related to new mod features.
A new template language (Template_1.23.10.xml) was published on this page including these new strings at the end of the file.
Configurations
- Fixed an issue where a configuration (and by extension the Mod Launcher window) could have the icon of the wrong edition mod when multiple edition mods are enabled and no main mods are enabled.
- Fixed an issue where mod icons were 16x16 on the Manage Configurations window regardless of your DPI.
Mod Features
- Made it so multiple main mods can be enabled at the same time when they explicitly support each other.
- Increased the limit of Text setting values from 127 to 32767.
- Added a
NoUpDownpropertyIntegerNumbertype settings.
Hacks
General
- Blocked access to Settings.ini within the Virtual File System.
- Made Discord Rich Presence and NVIDIA Highlights support non-ASCII characters in the window title.
- The game window itself still does not support non-Windows-1252 characters and will show them as question marks.
- Added a "Disable Anti-aliasing While Resizing" setting to the Resizable Window hack that disables the Anti-aliasing hack while resizing.
- This does not apply to anti-aliasing enabled by the graphics driver or other third party programs.
- This defaults to being enabled.
Hack Support
- Made the game use an additional swap chain when using the Resizable Window hack in windowed mode to make resizing smoother.
- Also added the
-noadditionalswapchaincommand line argument to opt out of this. - Also added the
-additionalswapchaincommand line argument to force this when the Resizable Window hack is not enabled.- This should technically make changing the resolution with the in-game menus slightly faster.
- Also added the
- Made the hack prevent the game from redundantly presenting (presenting after a previous present or a device reset/swap chain recreation and before beginning a scene) to reduce/prevent flickering when resizing.
- Also added the
-noblockredundantpresentcommand line argument to opt out of this.
- Also added the
- Fixed an issue where the game window would be redrawn when resizing when the Resizable Window hack was enabled and its Present While Resizing setting was ticked if the game window's icon was being changed to that of a main/edition mod.
- Fixed an issue where all created vertex shaders would be leaked when blocking a redundant Direct3D device reset.
- Fixed an issue where .. wasn't handled in file paths since Version 1.10 when using the Legacy Virtual File System (via
-legacyfilesystemas of Version 1.22).- This fixes an issue where mods may have been able to access files outside of directories mounted within the Virtual File System.
Custom Files
General
- Made this hack enable Data Execution Prevention if any mods provide custom files, path redirections, path handlers or an AdditionalFiles folder.
- Also added the
-noenabledepcommand line argument to opt out of this.
- Also added the
Lua Scripting
- Made the
math.randomfunction use a 64-bit Mersenne Twister 19937 random number generator initially seeded (at load time) with a cryptographically secure random number instead of just using a cryptographically secure random number. - Added the
math.randomseedfunction. This allows you to set the seed on a sandboxed, per-mod, basis.- See this page for more details on this function.
- Fixed an issue where the
GetSettingandGetSettingsfunctions read the low 32-bits of the 64-bit signed integer setting values as unsigned and casted that to a 64-bit signed integer to give it to Lua. This caused negative integer setting values to wrap as if they were 32-bit unsigned values.- If you'd like, you can use something like
if SettingValue > 2147483647 then SettingValue = SettingValue - 4294967296 endend to support old versions of the Mod Launcher.
- If you'd like, you can use something like
- Fixed a bug where
coroutine.isyieldablewasn't allowed. - Removed functions from the global table that don't get copied into mod environments as is.
- Fixed a bug where calling
DirectoryGetEntrieson / yielded no results (when not using the-legacyfilesystemcommand line argument). - Added the
GetSharedfunction. This returns a table that is shared by all mods. - Added the
Pausefunction. This will pause the console and prompt the user to "Press any key to continue...". If the Console feature of the Console and Logging hack is not enabled, a console window will still be shown temporarily to prompt the user. - Added the
IsDemofunction. This returns true when the user is playing the Demo version of the game.
Custom Limits
Added an [AnimEntities] section that lets you increase the limit on various types of animated entities.
Debug Checks
- Added new checks for when certain types of vehicle sounds (engine sounds and overlays) fail to play.
- For example, clips will fail to play when the
daSoundResourceDataname they use does not exist.
- For example, clips will fail to play when the
Debug Test
Graphics Page
- Renamed "Allow Textures Larger Than 2048 x 2048" to "Allow Textures Larger Than 2048 × 2048".
- The only change is replacing the letter "x" with a multiplication symbol (×).
- Added the "No Mirror Depth Clear" setting.
Vehicles Page
Added the "In Air Comedy Cam" setting.
Debug Text
"anim entities" Page
Added this new page. This shows "D arrow anims", "W arrow anims", "Anims", "Anim colls", "Multi controllers" and "State props".
Discord Rich Presence
- Made it use the new Discord GameSDK instead of the obsolete Discord RPC if the DLL file for it (discord_game_sdk.dll) happens to inexplicably be in the Mod Launcher's DLLs folder.
- Also added the
-discordrpcto opt out of this. - To be clear, this DLL is not included with the Mod Launcher. If you want to use it for some reason, you can get it here.
- Also added the
- Fixed an issue when logging state updates after 3:14:07 AM on January 19th, 2038 UTC.
- Made this hack tell Discord the command to start the Mod Launcher so Discord doesn't try launching Simpsons.exe with an incorrect working directory when clicking Play/Play Game.
- Also added the
-nodiscordregistercommandcommand line argument to opt out of this.- When using Discord RPC, this causes the old behaviour of Discord updating the command to be wrong.
- When using Discord GameSDK, this causes Discord to just not update the command.
- Also added the
- Added the
-discordloadinitialisecommand line argument. This makes the hack initialise Discord RPC / GameSDK as soon as the hack loads.- This used to be the default behaviour prior to Version 1.22 but it often causes rich presence to not work because Discord handles this poorly.
NVIDIA Highlights
Made this hack not get loaded by the Mod Launcher if GfeSFK.dll inexplicably doesn't exist in the Mod Launcher's DLLs folder.