Jump to content

Is there a way to mod the combat speed?


Recommended Posts

PoE 2 has this combat slider that enables more combat speed settings. I used the slider just once - to set it to the slowest possible speed. I'm loving this slow combat. I have time to read the log and understand what is happening without as much pausing.

 

Is there some modifier somewhere in PoE 1 files that I can edit to make the combat speed permanently slow? Or some other method? Anything?

Link to comment
Share on other sites

You have to download dnSpy (google it) and edit the assambly-csharp.dll in "main_game_folder\PillarsOfEternity_data\Managed" with it.

 

- In dnSpy search for "NormalTime". It is under Timecontroll.

- It should be "public float NormalTime = 1f;"

- Right-click on it and chose "Edit Class (C#)". A Window should pop up.

- Now change "1f" to, for example, 0.5f for half speed.

- Click on compile and then save the changes.

  • Like 1
Link to comment
Share on other sites

Awesome! Thank you very much.

 

It turns out that these specific constants don't work. They are probably leftovers from previous versions of  the game. I edited SlowTime, NormalTime and FastTime constants but nothing changed in game.

 

I think that is because of this new feature that changes to slow combat speed depending on the number of enemies.

 

However, there is a method UpdateTimeScale that gets called a lot.

 

I modified it directly, changing the line

Time.timeScale = this.TimeScale; 

to

Time.timeScale = 0.1f;

 

Now everyting in the game moves veeeery slow :) - in and out of combat. So it can be done in principle.

 

I am still investigating, because I want to achieve very slow speed only when in combat.

 

Thanks again!

Edited by wih
Link to comment
Share on other sites

This does the trick.
Instead of just:
Time.timeScale = this.TimeScale;

I now have:

if (GameState.InCombat)
{
  Time.timeScale = 0.1f;
  return;
}
Time.timeScale = this.TimeScale;

Works beautifully. As soon as the battle starts, everything becomes much slower than the usual slow speed. The difference between 0.2f (the standard slow speed) and 0.1f is very large.

I have time to observe all of the action and I now realize that I have never seen most of the battle animations.

 
 

 

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...

 

This does the trick.
Instead of just:
Time.timeScale = this.TimeScale;

I now have:

if (GameState.InCombat)
{
  Time.timeScale = 0.1f;
  return;
}
Time.timeScale = this.TimeScale;

Works beautifully. As soon as the battle starts, everything becomes much slower than the usual slow speed. The difference between 0.2f (the standard slow speed) and 0.1f is very large.

I have time to observe all of the action and I now realize that I have never seen most of the battle animations.

 
 

 

 

I tried to run dnSpy but without luck. Cause of the .net framework.

And after half day spent on futile attempts to update it to 4.7 on Win.

I tried in linux, but in linux utility i cant find proper string. It doesn't have same strings you talk about.

Only similar but i cant edit them ...i guess my utility doesnt have that editing capability

And since i am not a programer i am absolutely lost. :-(

 

Would you be please willing to upload your modified file with this low speed of "slow mo" ?

Pretty please

Link to comment
Share on other sites

Sure.

 

This is a link to the modified file. It is from PoE version 3.07 - make sure you are running this version.

 

https://dl.dropboxusercontent.com/s/aro617dlsdseyu8/Assembly-CSharp_3.07.rar?dl=0

 

Once in combat the slow mo kicks in immediately. You cannot change the speed while in combat. Additionally I modified the file such that the game returns to normal speed after the enemies are dead even though it is still in combat mode.

  • Like 1
Link to comment
Share on other sites

Oh my this is so great.

Thank you so very much.

Its way more fun to play like this. Even my laptop stopped overheating.

Normally combat looks chaotic. But now i can watch every spell leave casters hands, ever swing of a weapon connect.

Awesome.

Shame this wasn't in stock game. It changes so much in how you play.

Thank you once more.

  • Like 1
Link to comment
Share on other sites

  • 2 years later...

When I use your 

On 6/17/2018 at 3:16 PM, wih said:

Sure.

This is a link to the modified file. It is from PoE version 3.07 - make sure you are running this version.

https://dl.dropboxusercontent.com/s/aro617dlsdseyu8/Assembly-CSharp_3.07.rar?dl=0

Once in combat the slow mo kicks in immediately. You cannot change the speed while in combat. Additionally I modified the file such that the game returns to normal speed after the enemies are dead even though it is still in combat mode.

Why would you disable the possibility of changing the speed during combat? It's not always a good idea to have a very slow combat (with that edits the combat is even slower, so when there 1-2 enemies left it's just a waste of time)

Link to comment
Share on other sites

15 hours ago, Sergiy said:

When I use your 

Why would you disable the possibility of changing the speed during combat? It's not always a good idea to have a very slow combat (with that edits the combat is even slower, so when there 1-2 enemies left it's just a waste of time)

It wasn't my goal to disable it. This is just how I managed to achieve the slow-mo. It is just a dirty hack, nothing more.

Edited by wih
Link to comment
Share on other sites

  • 2 years later...
On 5/21/2018 at 12:58 PM, wih said:
This does the trick.
Instead of just:
Time.timeScale = this.TimeScale;

I now have:

if (GameState.InCombat)
{
  Time.timeScale = 0.1f;
  return;
}
Time.timeScale = this.TimeScale;

Works beautifully. As soon as the battle starts, everything becomes much slower than the usual slow speed. The difference between 0.2f (the standard slow speed) and 0.1f is very large.

I have time to observe all of the action and I now realize that I have never seen most of the battle animations.

 
 

 

I wanted to change the fast mode speed and this pointed me in the right direction, in the TimeControllet class I changed every instance of this.FastTime to 5f (for 5x the speed), working good so far, and it only changes the behavior while in fast mode

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...