Is there any way to speed up/warp time in NWN2? There are some h&s modules where battles takes a lot of time and there are also modules where stores doesn’t open until morning and warping time would make life less annoying. I’ve researched NWN2 client extension but couldn’t find option to set round time to less value than 6 seconds.
Thanks.
i don’t think there’s a way to speed up time, but warping is possible
// 'examonadvance'
/*
Advances time by hours.
iHours - hours to advance
put this script in /override
save as "examonadvance.nss"
Open it in the toolset and compile it.
Then ingame, at the console, enter:
`
debugmode 1
rs examonadvance(5)
debugmode 0
`
The command above advances gametime by 5 hours.
*/
void main(int iHours)
{
SetTime(GetTimeHour() + iHours,
GetTimeMinute(),
GetTimeSecond(),
GetTimeMillisecond());
}
Give Haste and Uber movement bonus to everyone, ok, not entirely the same I know…
Is it possible to run the game at higher fps than intended? I remember Icewind Dale 2 could be run at 60 fps, and it would actually 2x speed the whole game, with rounds being only 3 seconds ecc…
SetCustomHeartbeat to make check on hb faster than every 6 second.
If you want “shorter hours” in game meaning an hours in game is less than it is now when compared to a real hour, it’s a setting in the module property panel.
This is exactly I’m trying to accomplish. However only solution I’ve found is using VirtualBOX warpdrive feature which acomplish what I want but it’s VGA drivers are bad and FPS is not good as on host machine. I guess I will have to modify nwn2main.exe because those 6 seconds are probably hardcoded.
Honestly, I think it would be easier/better to just find a way to run the game at 60 or 120 fps.
Finding the hardcoded value of the seconds per round is probably a daunting task and the fact is, even if you do find, there’s no guarantee it will accomplish what you’re looking for: it might just limit the duration of the round to 3 (example) seconds after which the action is reset, and you might not notice any speed increase of the game at all.
It might also break other functions of the game that expect the round to last for 6 seconds.
Running the game at double fps will instead effectively speed up the time 2x, while keeping the balance of the game intact. I think it would also be easier to accomplish (unless you’re some wizard with programs like Cheat Engine ecc…)
I really doubt the heartbat are tied to the number of FPS. This may be true for very crappy games or very very old games, but for game correctly made those 2 things are totally independant.
Examon is not asking to change the heartbeat time, he wants to speed up the whole game
Heartbeat is simply a time interval at which a certain script is run, but it does not control the duration of the round, nor the speed of the game itself.
It can also be quite complicated and inefficient to change ALL the heartbeat scripts out there, because yeah, there’s more than one. One for module, one for characters, one for every creature out there, one for area of effects… The game has hundreds if not thousands of heartbeat scripts running, good luck changing them all.
And I never said that the heartbeat is tied to the number of FPS (well, indirectly it may, but that’s not the point). I’m saying that if you run the game at higher FPS than intended, it may run at higher speed. Just like IWD2 runs at twice the speed if you play it at 60 fps.
this is the sort of bytecode you’d be looking to disassemble in the hardcode :\
the OpenXcom engine →
https://github.com/OpenXcom/OpenXcom/blob/6ef797008e50dc548bb5b0b33d0b858a12792bb5/src/Engine/Game.cpp#L292
Examon… To change the time console this…
rs ga_time_set( 6,0,0,0,)
or
rs ga_time_advance(6,0,0,0,)
That’ll give you 6am so change the 6 to whatever you want.
I like speeded up fights too ( but also couldn’t live without the space bar pause ) and tend to give people in my mods hasted things at some point. But what I’ve done before is gone into a module at the start and made a hasted hat then stuck it on the floor at the start point for my character to collect. But I didn’t tell you that because it’s cheating.
Thank you all for your answers. RIght now only solution is to install NWN2 in VirtualBOX virtual machine with Windows 7 32-bit with only one CPU core enabled. After that. enable warp drive with those commands written in article.
https://esmithy.net/2016/03/05/time-warp-in-virtualbox/
Next thing thing would be optimising/recompiling nwn2main.exe to be more efficient but I guess we will have to wait for NWN2 EE/remaster/whatever.