Pillars of Eternity
0 of 0

File information

Last updated

Original upload

Created by

SafakDilbaz

Uploaded by

safakdilbaz

Virus scan

Safe to use

Tags for this mod

About this mod

Increase level limit to 40
camping supplies on all levels are capped at 8 (except easiest where cap is left at 99)
Optional: No xp limit to combat
changes shall be compatible to iemod

Class Ability Progression tables are extended till lvl 24 with a little cheese

Requirements
Permissions and credits
Assembly-CSharp.dll changes
Increase level limit to 40
camping supplies on all levels are capped at 8 (except easiest where cap is left at 99). I really hated the limit of 2 at POTD.
Optional: No xp limit to combat
Note: Changes shall be compatible to iemod

Class Ability Progression tables are extended till lvl 24 with a little cheese (you can see the progression table in the pictures)
Apart from extending the progression table for all classes to lvl 24, i've added extra slots so you might be considering this as cheat... Below, you can see the article used for the creation of this. If you don't like it, you can adjust it as you want...

Compatible version: 3.7.0.1318 PX1 PX2 PX4 (steam)
WARNING: OPTIONAL FILE is reported as not working. according to code it should have. Do not use "no xp limit" optional file. i will delete it from files part.
Installation:

For level limit increase & camping supply limit increase
Copy Assembly-CSharp.dll to  ../Pillars of Eternity\PillarsOfEternity_Data\Managed

if you want to earn talents/abilities/spells after lvl 16,
Copy .unity3d files to ../Pillars of Eternity\PillarsOfEternity_Data\assetbundles\prefabs\objectbundle

if you also want full xp for all your combats, download the optional file and use that one to:
Copy Assembly-CSharp.dll to  ../Pillars of Eternity\PillarsOfEternity_Data\Managed (overwrite the .dll from the main mod )

Note: It shall be compatible to use with IEMod if IEMOD becomes compatible (i'm using it at 3.7.0.1318 release without any side affect but can't advice to everyone)

if anybody is interested to replicate the changes:

for Assembly-CSharp.dll changes: 

You will need Visual Studio (Download from Microsoft for free)

run ildasm decomplie .dll file into .il and .res open in notepad
1) Camping supplies fixed to 8
Find code
          int32  get_StackMaximum() cil managed
  // SIG: 00 00 08
  {
    // Method begins at RVA 0x1459e0
    // Code size       119 (0x77)
    .maxstack  10
    .locals /*110009B1*/ init (int32 V_0,
             valuetype GameDifficulty/*0200034B*/ V_1,
             valuetype GameDifficulty/*0200034B*/ V_2)
    IL_0000:  /* 17   |                  */ ldc.i4.1
    IL_0001:  /* 0A   |                  */ stloc.0
    IL_0002:  /* 28   | (06)001F2C       */ call       class GameState/*02000351*/ GameState/*02000351*/::get_Instance() /* 06001F2C */
    IL_0007:  /* 6F   | (06)001EE0       */ callvirt   instance valuetype GameDifficulty/*0200034B*/ GameState/*02000351*/::get_Difficulty() /* 06001EE0 */
    IL_000c:  /* 0B   |                  */ stloc.1
    IL_000d:  /* 07   |                  */ ldloc.1
    IL_000e:  /* 0C   |                  */ stloc.2
    IL_000f:  /* 08   |                  */ ldloc.2
    IL_0010:  /* 45   | 05000000         */ switch     ( 
              /*      | 05000000         */             IL_002e,
              /*      | 0C000000         */             IL_0035,
              /*      | 13000000         */             IL_003c,
              /*      | 13000000         */             IL_003c,
              /*      | 1A000000         */             IL_0043)
    IL_0029:  /* 38   | 1D000000         */ br         IL_004b
    IL_002e:  /* 1C   |                  */ ldc.i4.8//safak change from ldc.i4.6
    IL_002f:  /* 0A   |                  */ stloc.0
    IL_0030:  /* 38   | 40000000         */ br         IL_0075
    IL_0035:  /* 1A   |                  */ ldc.i4.8//safak change from ldc.i4.4
    IL_0036:  /* 0A   |                  */ stloc.0
    IL_0037:  /* 38   | 39000000         */ br         IL_0075
    IL_003c:  /* 18   |                  */ ldc.i4.8//safak change from ldc.i4.2
    IL_003d:  /* 0A   |                  */ stloc.0
    IL_003e:  /* 38   | 32000000         */ br         IL_0075
    IL_0043:  /* 1F   | 63               */ ldc.i4.s   99
    IL_0045:  /* 0A   |                  */ stloc.0
    IL_0046:  /* 38   | 2A000000         */ br         IL_0075
2) Playerlevelcap
find code
          int32  get_PlayerLevelCap() cil managed
  // SIG: 00 00 08
  {
    // Method begins at RVA 0x2a758
    // Code size       39 (0x27)
    .maxstack  7
    IL_0000:  /* 1F   | 0C               */ ldc.i4.s   12//safak change to 36
    IL_0002:  /* 28   | (06)001F8A       */ call       bool GameUtilities/*02000353*/::HasPX1() /* 06001F8A */
    IL_0007:  /* 39   | 06000000         */ brfalse    IL_0012
    IL_000c:  /* 18   |                  */ ldc.i4.2
    IL_000d:  /* 38   | 01000000         */ br         IL_0013

3) max_Level_eternity
Find code
  .field /*0400041C*/ public static literal int32 MAX_LEVEL_ETERNITY = int32(0x00000010)//safak change 010 to 028 boolean 40
  .field /*0400041D*/ public static literal int32 MAX_NPC_LEVEL_ETERNITY = int32(0x00000015)//safak change 015 to 02dboolean 45
 
4) no limit to combat xp:
Reference: https://github.com/IEMod/IEMod.pw/issues/95
    IL_0052:  /* 02   |                  */ ldarg.0
    IL_0053:  /* 7B   | (04)002CAC       */ ldfld      int32[] BestiaryManager/*02000545*/::m_KillCounts /* 04002CAC */
    IL_0058:  /* 07   |                  */ ldloc.1
    IL_0059:  /* 8F   | (01)000021       */ ldelema    [mscorlib/*23000002*/]System.Int32/*01000021*/
    IL_005e:  /* 25   |                  */ dup
    IL_005f:  /* 4A   |                  */ ldind.i4
    IL_0060:  /* 17   |                  */ ldc.i4.0//safak changed .1 to .0
    IL_0061:  /* 58   |                  */ add
Change "IL_0060: ldc.i4.1" to "IL_0060: ldc.i4.0" and save 1.il  
  
  5) compile .il and .res file back to dll
  ilasm /DLL /32BITPREFERRED /RESOURCE=full-orig-dll-edited.res full-orig-dll-edited.il /OUTPUT=1.dll

6) rename 1.dll to Assembly-CSharp.dll


For level up table changes: 
Follow the good guideline :
https://forums.obsidian.net/topic/85466-how-to-extend-class-progression-tables/