Proper button delay for jump key: Jump on button release instead of button press. Tap to jump, hold to parkour without having to jump first. Of course customizable from the MCM.
Indicators are toggleable now.
Plugin is ESPFE. Your MCM settings may reset. Should be safe to update otherwise.
Renamed the ESP to SkyParkourV2. Don't rename it.
Mod requirement warnings on startup to ensure requirements are installed properly.
Fixed compatibility with mods that disable saving by using SetInChargen command.
Next update should be another framework overhaul for new features. Might take longer but looks promising.
Discoveries & Progress: Even better framework than v2 to support first person and consistent weapon state, not the next update though. However, next update will feature smooth pre-parkour height adjustment, toggleable indicators, proper delayed jump (jump on button release instead of press, to skip jumping first and go into parkour mode directly). Edit: 2.0.5 is out.
So just a minor PSA for anyone having the same issue as me:
I was having a problem where my character would just climb in place and never climb up anything. I reinstalled XP32 and picked the 'basic' (no MCM/styles but with animation support) option, and it all magically started working perfectly.
(I was having a bunch of other issues too, I suspect a conflict somewhere, but also I only switched to the full XP32 profile fairly recently so maybe it just doesn't work well)
This might just be an upgrade issue since I was not coming from a clean save, but after upgrading to 2.0.5hotfix, I noticed a lot more microstuttering in my game, and gradual performance degredation over time (I lost about 2 fps in about 15 minutes of play).
Going back to 2.0.3, and I ran into none of those issues.
I've just downloaded your new update for the Respawn mod as I was enthusiastic that I would be able to use my saving mod with SkyParkour2 as it seems that we are not able to use the Parkour system if the ChargenIn was modified.
However it seems that the code that was released was just modifying the Respawn mod. I would like to take the aspects you've modified so I can apply that part of the script with my mod.
Spoiler:
Show
bool f5Pressed Faction property playerFaction auto
RegisterForSleep() AddInventoryEventFilter(gold) EndEvent ; OnPlayerLoadGame events can only be received by player/player aliases Event OnPlayerLoadGame() player = Game.GetPlayer()
Scriptname _JLSaveKey extends Quest MagicEffect Property JLSaveME Auto SPELL Property JLSaveSpell Auto Event OnInit() RegisterForControl("Quicksave") EndEvent Event OnControlDown(string control) If control == "Quicksave" Debug.Trace("The player is pressing the Quicksave control.") JLSaveSpell.cast(Game.GetPlayer()) EndIf EndEvent
This is to hook the Quicksave button to the Savespell script.
So the game.SetInChargen(true, false, false) makes it so I'm not able to use SkyParkour. If I used the same method as yours, how would I be able to apply to mine?
Would it also be probably possible to modify the skse code so we can exclude the SetInChargen restriction?
First off, please kindly put the code under a spoiler tag as it clutters the posts section.
Your code is correct, I will be uploading an update soon. I'm working on it.
SetInChargen takes 3 parametes: Saving, waiting and hands bound. As long as you shut it down correctly ( false false false) SkyParkour will work properly. Respawn incorrectly flags the player as hands bound after exiting the respawn state, so I had to modify the script itself.
2.0.3 currently disables parkour for any chargen flag, including the save flag. Next version will check the "Beast Form" state in a better way and enable parkour with saving disabled.
Been using mod since it came out. Great job! Updating from 2.0.3 to latest (via MO2 latest) I saw that the main .esp name has changed. This means practically that in order to update safely, old version needs to be removed and new version has to be installed on a clean save. Is this correct?
I usually test for the worst case scenario. Installing on an ongoing save without clearing anything seems to work properly. Though since the form ID for the quest that holds the MCM script has changed, your settings may get reset. Of course the better way is: Disable Mod -> Save -> Uninstall -> Save -> Update
Adding to this, I didn't anticipate the .esp name change in the latest update, so I overwrote the old version 2.0.3 with 2.0.5hotfix, instant crash when loading old save, I'm downloading 2.0.3 again to do the disable and uninstall first
703 comments
2.0.5 New Features:
V2 Release Trailer:
Known Issue & Fix:
Possible Slight Incompatibilities: Mods that add jump attacking. The animations might look weird. Requires patching.
Even better framework than v2 to support first person and consistent weapon state, not the next update though.
However, next update will feature smooth pre-parkour height adjustment, toggleable indicators, proper delayed jump (jump on button release instead of press, to skip jumping first and go into parkour mode directly).
Edit: 2.0.5 is out.
I was having a problem where my character would just climb in place and never climb up anything. I reinstalled XP32 and picked the 'basic' (no MCM/styles but with animation support) option, and it all magically started working perfectly.
(I was having a bunch of other issues too, I suspect a conflict somewhere, but also I only switched to the full XP32 profile fairly recently so maybe it just doesn't work well)
Going back to 2.0.3, and I ran into none of those issues.
I not only experienced the frame falling, but also the ctd
Also if possible, confirm if the fps drop happens the more parkour you do or happens without even engaging with the mechanic at all.
Thank you!
I've just downloaded your new update for the Respawn mod as I was enthusiastic that I would be able to use my saving mod with SkyParkour2 as it seems that we are not able to use the Parkour system if the ChargenIn was modified.
However it seems that the code that was released was just modifying the Respawn mod. I would like to take the aspects you've modified so I can apply that part of the script with my mod.
bool f5Pressed
Faction property playerFaction auto
Event OnInit()
player = Game.GetPlayer()
player.GetActorBase().SetEssential()
player.SetNoBleedoutRecovery(false)
PopulateNamedBossList()
PopulateNoResetNPCList()
PopulateNoResetLocationList()
PopulateNoRespawnLocationList()
RegisterForSleep()
AddInventoryEventFilter(gold)
EndEvent
; OnPlayerLoadGame events can only be received by player/player aliases
Event OnPlayerLoadGame()
player = Game.GetPlayer()
player.GetActorBase().SetEssential()
player.SetNoBleedoutRecovery(false)
PopulateNamedBossList()
PopulateNoResetNPCList()
PopulateNoResetLocationList()
PopulateNoRespawnLocationList()
if (PlayerRespawnMarker.GetParentCell() == PlayerRespawnMarkerCell)
;debug.notification("PlayerRespawnMarker not initialized, moving to player...")
PlayerRespawnMarker.moveto(player)
playerRespawnMarkerInitialized = true
endif
RegisterForKey(63)
RegisterForSleep()
AddInventoryEventFilter(gold)
EndEvent
Event OnKeyDown(Int KeyCode)
if (KeyCode == 63 && mcmOptions._disableSaves)
Game.SetInChargen(true, false, true)
f5Pressed = true
RegisterForSingleUpdate(0.5)
EndIf
EndEvent
Event OnUpdate()
; bool keyPressed
; If (keyPressed != Input.IsKeyPressed(mcmOptions._pushKey))
; keyPressed = !keyPressed
; if (keyPressed)
; savedObject.PushActorAway(player, 3.0)
; EndIf
; EndIf
if (!f5Pressed)
if (player.IsBleedingOut())
Game.ForceThirdperson()
player.SetNoBleedoutRecovery(false)
player.GetActorBase().SetInvulnerable(false)
AddInventoryEventFilter(gold)
player.RestoreActorValue("health", 1000000)
player.RestoreActorValue("stamina", 1000000)
player.RestoreActorValue("magicka", 1000000)
Game.EnablePlayerControls()
EndIf
Else
RegisterForSingleUpdate(0.5)
f5Pressed = false
EndIf
Game.SetInChargen(false, false, false)
EndEvent
Let's say that I just want this:
My scripts looks like this
Scriptname _JLSaveKey extends Quest
MagicEffect Property JLSaveME Auto
SPELL Property JLSaveSpell Auto
Event OnInit()
RegisterForControl("Quicksave")
EndEvent
Event OnControlDown(string control)
If control == "Quicksave"
Debug.Trace("The player is pressing the Quicksave control.")
JLSaveSpell.cast(Game.GetPlayer())
EndIf
EndEvent
This is to hook the Quicksave button to the Savespell script.
And here is the savespell script.
Event OnEffectStart(Actor akTarget, Actor akCaster)
game.ForceThirdPerson()
game.DisablePlayerControls()
if playerRef.IsWeaponDrawn()
debug.sendAnimationEvent(playerRef, "Unequip")
utility.wait(2)
endIf
game.GetPlayer().PlayIdle(IdleWriteLedgerEnter)
utility.wait(0.85)
game.GetPlayer().PlayIdle(IdleWriteLedgerWrite)
utility.wait(1)
utility.wait(0.1)
debug.SendAnimationEvent(PlayerRef, "IdleForceDefaultState")
game.SetInChargen(true, false, false)
utility.wait(0.5)
So the game.SetInChargen(true, false, false) makes it so I'm not able to use SkyParkour. If I used the same method as yours, how would I be able to apply to mine?
Would it also be probably possible to modify the skse code so we can exclude the SetInChargen restriction?
Thanks a lot!
Your code is correct, I will be uploading an update soon. I'm working on it.
SetInChargen takes 3 parametes: Saving, waiting and hands bound. As long as you shut it down correctly ( false false false) SkyParkour will work properly. Respawn incorrectly flags the player as hands bound after exiting the respawn state, so I had to modify the script itself.
2.0.3 currently disables parkour for any chargen flag, including the save flag. Next version will check the "Beast Form" state in a better way and enable parkour with saving disabled.
Edit: Updated.
thanks a lot for the update! I really appreciate it!
Been using mod since it came out. Great job!
Updating from 2.0.3 to latest (via MO2 latest) I saw that the main .esp name has changed.
This means practically that in order to update safely, old version needs to be removed and new version has to be installed on a clean save.
Is this correct?
Thx & kudos for your work!
Disable Mod -> Save -> Uninstall -> Save -> Update