MPak v11.0 Release


A massive update that overhauls the entire backend, plus adds in an extension of the hero pawns (the main playable characters)! As per usual, the MPak wiki has been updated for v11.0, which explains every aspect of every change in detail in the appropriate locations. Cheers!



Changelogs

Additions:

  • Added MHeroPawn which allows for modification of the main playable characters. The following changes have been made:
  • - All 6 main pawns have new unique traits
  • - Added a speed charging mechanic enabled by default, which grants the player a minor temporary speed boost while charging (with reduced acceleration rate while charging)
  • - Added variables for toggling various aspects of the player mechanics
  • - Removed pointless logging
  • - Simplified code when applicable
  • - Improved logic for determining whether the pawn is the current player or not (using GetHP() instead of bMainPlayer)
  • - Uncapped shamrock count that would be locked when loading a save
  • - Removed health being recovered back to its maximum amount upon a load
  • - Health now persists across levels
  • - Fixed a bug where Shrek's health would be set to the amount the player has the previous level on someone who was not Shrek
  • - The player can now take damage while in the air from any damage source
  • - Fixed a bug where Shrek would take the amount of damage the player would take, if the current player was not Shrek
  • - Fixed a bug where only one Donkey could cheer for Shrek during the PIB boss fight
  • - Fixed a bug where the player could die by falling up too far
  • - Fixed a bug where the player could get commonly stuck after pulling a lever
  • - Dying to a swinging ball that instantly kills the player now uses less hacky code, and also makes the save auto-load slower
  • - Re-worked logic for automatically restarting a level
  • - Added the ability for music to transfer across loading screens with MHeroPawn's
  • - Fixed a bug where doing a charge attack while in water would break your movement animations
  • - Re-worked tired dialog system in MHeroPawn so that it does not occur too often
  • - Fixed a bug where mounts would not be treated the same as a land, when not doing so causes a lot of issues
  • - Fixed a bug where the player could take fall damage when falling onto a slide
  • - Added functionality for health to be transferred across bonus worlds
  • - Added a new fall damage system (with toggle) for when the player falls a fatal fall distance so that instead of it instantly killing the player consistently, it now deals a very high amount of damage, which scales depending on the distance fallen
  • - Old fatal fall damage system now deals the amount of damage the player has in total, meaning it will always kill the player, even past 10k health
  • - All functions now can be overwrote or superseded (except HeroInQuicksand() due to limitations, but this function is nearly useless)
  • - Knockback toggle is now controlled by scripts strictly
  • - The player is now considered tired when the player is either below 50 health or is below 33% health
  • - The player now always comments when picking up an energy bar
  • - The third attack's splash damage no longer deals 1k damage, instead dealing 3 damage
  • - Fixed a bug where the player could charge attack into a slide to deadstop intentionally late
  • - MPIB now uses his original attack sounds, faint sounds, landing sounds, and sword unsheathing/sheathing sounds
  • - Fixed a bug with MShrekHuman where drinking an invisibility potion then a strength potion would break the sword's skin
  • - Fixed a bug with MPIB where doing a charge attack off a ledge into a mount would cause the sword's location to break completely
  • - Fixed a bug with MPIB where drinking a shrink potion would revert any AmbientGlow changes
  • - Added Destroyed() support so that no actors are leftover once destroyed
  • - Added a particle for jumping off the air
  • - Pawns with a weapon in their hand now deal more damage (and the damage multiplier can be changed)
  • - Pawns now render with more detail from farther away
  • - Maximum enemy targeting cap is now 256 (from 2)
  • - Fixed bug with PIB not putting away his sword while charging off an edge
  • - Shrek's bellyflop sound is now determined by whether he hits the top of a pawn or not
  • - Shrek's third attack now shakes the screen
  • - Steed's default tag is now actually Steed instead of Donkey (make sure to specify the new pawn tag in CutScript)
  • - ShrekHuman's default tag is now actually ShrekHuman instead of Shrek (make sure to specify the new pawn tag in CutScript)
  • - BaseMovementRate is now pre-calculated in accordance with the pawn's GroundRunSpeed, meaning the animation speed will remain the same no matter the initial (future speed changes need to manually account for this)
  • Added an option for a slot machine to be disabled upon getting a certain reward
  • Added 1 new miscellaneous actor ("MJumpMagnet")
  • Added 1 new info ("MMovieManager")
  • Added 12 new functions ("HackMovementAnims()", "DoesFileExist()", "GetHUDScale()", "GetGUIScale()", "CalculateHorizontalFOV(), CalculateVerticalFOV()", "RemoveText()", "LipSyncDialog()", "IsShrek22()", "IsActorBehindActor()", "Fact()", "RandColor()")
  • Added support for MEnergyBar's and MEnergyKeg's (in theory) to properly add the player's health across bonus levels. Only relevant to programmers. Support is used in MHeroPawn's
  • Added ability for MHUDItem's to not re-initialize. Only relevant to programmers
  • Added SoundSlot support to PlayASound() and PlayASound3D()
  • Added 1 new CutScript action ("MSay")
  • Added support for CC and MSay into MCutsceneCreator
  • Added support to DeliverLocalizedDialog for modified bumplines
  • Added internal support for lipsyncing that's done without native functionality (less accurate lipsyncing but you can modify AllDialog.uax) -- Can be used from within MHeroPawn's and with the custom MSay CutScript action if enabled


Changes:

  • Removed auto-deletion of shamrocks and posters if the player had too many of them, as this is handled better in the background anyway
  • MSlotMachine now pre-calculates its spins so that you can't load a save constantly to spin again for free if you get an undesirable reward
  • Fixed MGame Login() causing crashes if modified
  • Re-worked MGame Login() logic so that the controller it gives the player when they load is based on what the game itself declares, not what the actor declares
  • Re-wrote entire system for patched console commands into their own cheat manager, all of which now require typing the letter "M" before it if the console command already existed
  • Fixed a bug where MController would prevent Donkey from being able to chew grass
  • Cleaned up pointless logging in MPawn
  • Re-worked entire system for air jumps, water jumps and more for MHeroPawn's with MController's
  • Fixed a bug where any type of MPawns would fail to properly automatically assign controllers
  • Fixed logic for MEnergyBar's where the player wouldn't comment on the pickup unless he remained at red health after picking it up (thanks KnowWonder)
  • Fixed a bug where MEnergyKeg's would not always play a heal bumpline when picked up
  • Fixed a potential bug with MCutsceneCreator where a CutScript wouldn't be created when it should
  • Fixed a bug where MPlayerStart's post starting event wasn't always treated as a post starting event
  • PlayMovie() is now a literal movie playing function
  • Renamed PlayMovie() to FancyPlayMovie() with the original functionality
  • Fixed a bug where MEnergyBar's and MEnergyKeg's would not always play a heal bumpline when picked up
  • Fixed a bug where restarting the sound would stop existing music completely
  • Extended Round() function to support stepping
  • GivePawnController() now fixes the animation twitching bug
  • Fixed a bug with MWalk where if the player had jumped then ghosted and flew into a floor, they would be unable to jump without falling and landing first


Incompatibility Notes:

  • Previous custom console commands now require typing the letter "M" before them for their custom behavior (if the command already existed). Only relevant if you have been using MController
  • The PlayMovie() was adjusted to be more dynamic, you'll need to change your function call to FancyPlayMovie() in your code. If you're not a programmer, this is irrelevant

Files

Master Pack [v11.0] 2.3 MB
Apr 12, 2024
[ARCHIVE] Master Pack [v1.1.1-v10.1] 5.5 MB
Apr 12, 2024

Get Master Pack (MPak) [v11.0] -- Shrek 2 (PC) Mod/Library

Leave a comment

Log in with itch.io to leave a comment.