Been playing around with console commands (mostly testing out mods etc.) which made me notice that cliff racers don't react to:
1. Players flying around with ToggleCollision off 2. Players flying around with scripted flying, i.e. player->setflying 1
While I don't think you can do anything about #1 unless you make the script actually calculate how high the player is compared to a cliff racer (is that possible or desirable with mwscript?) you can make cliff racers check if player->getflying 1 { beat_player_up }(You know, with actual code)
This would also make this mod work properly with any other hypothetical mods that use player->setflying 1 (I can imagine scripted inventory items that allow for flying/levitation without using Levitation enchantments/spell effects).
EDIT 2025-03-23 UTC-6 12:20PM: Well, less than ten minutes in the editor and I figured out how to calculate the player's height relative to a cliff racer's. Gave it a quick test run and it works perfectly. I can pass you my .omwaddon file or just the modified script, if you wish.
You're welcome! Let me know if you run into any weird behavior. Racers seem to get physically stuck a bit more often because of their longer paths to the player maybe
Does the script only run when the individual cliff racer is loaded in, or will it keep ticking in the background (multiplied by however many cliffracers you've walked past)?
Local scripts only run when the cell is loaded, which for exteriors means the cell you're in and the ones directly next to it. The script shouldn't be resource intensive, in line with vanilla scripts unless I made a mistake.
Note that local variables are saved so those walked-by 'racers will remember if they saw you fly or not :)
6 comments
1. Players flying around with ToggleCollision off
2. Players flying around with scripted flying, i.e. player->setflying 1
While I don't think you can do anything about #1 unless you make the script actually calculate how high the player is compared to a cliff racer (is that possible or desirable with mwscript?) you can make cliff racers check
if player->getflying 1 { beat_player_up }
(You know, with actual code)This would also make this mod work properly with any other hypothetical mods that use player->setflying 1 (I can imagine scripted inventory items that allow for flying/levitation without using Levitation enchantments/spell effects).
EDIT 2025-03-23 UTC-6 12:20PM:
Well, less than ten minutes in the editor and I figured out how to calculate the player's height relative to a cliff racer's. Gave it a quick test run and it works perfectly. I can pass you my .omwaddon file or just the modified script, if you wish.
Does the script only run when the individual cliff racer is loaded in, or will it keep ticking in the background (multiplied by however many cliffracers you've walked past)?
Note that local variables are saved so those walked-by 'racers will remember if they saw you fly or not :)
Definitely giving this one a go. Improved Cliff Racer AI hasn't worked super well for me either and totally passive cliff racers just ain't Morrowind.