A major extension of the hero pawn system. These hero pawns are much more capable of bringing life to the core player mechanics, featuring new mechanics, hundreds of fixes, and much more! You must still add Shrek into your map for the inventory system to work, unless you go into Default.ini and change InventoryCarrierClass to equal MPak.MShrek. See MHeroPawn below to understand which variables are in all the classes below.
Notable differences:
All 6 main pawns have new unique traits (see far below)
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
Fixed a bug where doing a charge attack while in water would break your movement animations
Re-worked tired dialog system 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 (picking up an energy bar will carry across)
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
PIB now uses his original attack sounds, faint sounds, landing sounds, and sword unsheathing/sheathing sounds
Fixed a bug with ShrekHuman where drinking an invisibility potion then a strength potion would break the sword's skin
Fixed a bug with PIB where doing a charge attack off a ledge into a mount would cause the sword's location to break completely
Fixed a bug with PIB 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 multipler 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)
Hero pawns can now be seen at a higher quality from a farther distance
Character Differences:
Shrek [Tank]
6/10 Attack damage
4/10 Movement speed
Rush - Charging results in a very high speed
Buff - Increased throw strength + Absorbs slightly less damage
Heavy - Landing from a jump attack stuns yourself, but also hits very close surrounding enemies
Donkey [Leaper]
3/10 Attack damage
7/10 Movement speed
Cannot mount
Leaper - Can jump far + high air control
Air Jumper - Can air jump (double jump while falling)
PIB [Stealth]
7/10 Attack damage
3/10 Movement speed
Light - Low fall damage
Weak - Absorbs much more damage
Agile - Very high air control
Backstabbing - Attacking an enemy from behind deals massive damage
Steed [Noble]
5/10 Attack damage
10/10 Movement speed
Cannot mount
Warmup - Steed takes significantly longer to speed up
Air Jumper II - Can air jump twice (double jump while falling)
Uppercut - Skilled in the art of uppercuts, Steed deals the most amount of damage on his second attack
Shrek Human [Athletic]
10/10 Attack damage
6/10 Movement speed
Jumper - Can jump slightly farther and higher
Unarmored - Absorbs more damage
Mongo [Giant]
10/10 Attack damage
7/10 Movement speed
Cannot mount
Massive - Increased relative movement speed and throw strength
Tough - Absorbs less damage
Variables:
bCanMount - If true, the player can mount
bCanWaterJump - If true, the player can jump out of water
bCanAirJump - If true, the player can jump off of the air after reaching the apex of their jump (assuming they have 1 or more air jumps allocated). It's recommended to set iDoubleJumpCount=0 if you give the player the ability to air jump, unless you want the air jump(s) to be separate from double jumping
bCannotJump - If true, the player cannot jump
bCannotPunch - If true, the player cannot punch
bCanJumpAttackWhileFalling - If true, the player can start a jump attack after reaching the apex of their jump
bLandSlowdown - If false, the player will not lose all of their speed when landing
bUseNewFallDamageSystem - If true, the new fall damage system will be used, which replaces instant-kill fall distances with a distance scaling factor
bDisableLandBobbing - If true, the camera will not bob after landing
bDisableFallDamage - If true, the player will not take fall damage
bUseBoneForHit - If true, the player's attack will register hitting anything relative to the player's fist, instead of simply in front of them. Set this to false if a hero pawn attacks too high for your use-case
bAllowJumpAttackPrebuffering - If false, the player cannot press the attack button while doing a jump attack to initiate a grounded attack. This can be helpful if you think this will cause issuesÂ
bCanJumpDuringShrink - If true, the player can do a single jump (not a double jump) while being shrunk
bLandingCancelsAttack - If true, the player will stop doing any existing attacks once landing
bModifiedBumplines - Set this to true if you've modified AllDialog.uax and want lipsyncing
bCanSpeedCharge - If true, a charge attack will give the player more speed for a temporary amount of time
iDoubleJumpCount - The total amount of double jumps the player can do. Upon the player reaching the apex of any of their double jumps, they will be unable to use further double jumps
iAirJumpCount - The total amount of air jumps the player can do (only applies if bCanAirJump=true)
iFirstAttackDamage - The amount of damage the first attack deals
iSecondAttackDamage - The amount of damage the second attack deals
iThirdAttackDamage - The amount of damage the third attack deals
iThirdAttackSplashDamage - The amount of damage the third attack's splash damage deals
iRunAttackDamage - The amount of damage the run (charge) attack deals
iSpecialAttackDamage - The amount of damage the special attack deals
fFatalFallDamageMultiplier - If bUseNewFallDamageSystem=true, the multiplier of damage to deal to the player when landing
fLandingBobMultiplier - If bDisableLandBobbing=false, the multiplier to apply to the landing bob
fDamageMultiplier - The multiplier of damage the player will take from any damage source
fTiredHealth - The amount of health the player must be below before being considered tired
fTiredHealthPercent - The percentage of health the player must be below before being considered tired
fMinTiredDialogTime - The minimum amount of time that must be wait for before trying to say a tired dialog
fTiredDialogChance - The chance of a tired dialog being played (logic is run each tick after fMinTiredDialogTime seconds has passed)
fBlinkChance - The chance of the player blinking (logic is run each tick)
fDelayAfterDeathBeforeReload - The amount of time to wait in seconds once the player has died and their death animation has finished playing
fFightingIdleRangeMultiplier - The multiplier to apply to the range at which the player can decide to start using their fighting idle stance
fHitBumplineChance - The chance of the player commenting on being hit
fSpeedChargeMultiplier - If bCanSpeedCharge=true, the multiplier of speed to apply to the player during a speed charge
fWeaponDamageScale - If the player has a weapon, the multiplier to apply to any damage the player deals (e.g. PIB's sword or ShrekHuman's sword)
Variables
BracesSkins - If bShowBraces=true, the new set of skins to use when wearing braces (the braces normally just reskin Donkey)
bShowBottle - If true, shows the HEA potion bottle in Donkey's mouth
bShowBraces - If true, shows Donkey with braces
Variables
None
Variables
None
Variables
None
Variables
None
Variables
bShowShrek - If true, shows ShrekHuman on Mongo's shoulder
iKickAttackDamage - The amount of damage Mongo's kick deals
Variables
bShowNecklace - If true, shows a necklace on PIB's neck
Variables
None
Variables
bShowBottle - If true, shows the HEA potion bottle in Shrek's hand
Variables
None
Variables
None