[WIPZ/RELZ] Dynamic Place Centric Scaling

Post » Wed Sep 01, 2010 4:28 pm

Dynamic Place Centric Scaling Beta 6
-------------------------------------

Download Tesnexus - http://www.tesnexus.com/downloads/file.php?id=23993

So the scaling system in oblivion has never been a strong point. Never ending scaling makes you loose a sense of acheivement at later levels. There are many mods and overhauls that attempt to address this issue making the scaling system better but the underlying flaw in the system still lingers.

This mod try's to apply Fallout 3 improved style of scaling to oblivion in that when you visit a location for the first time from then on all spawns in that cell (items, actors) will be at that level. The aim is provide the illusion of a place centric game.

The mod also comes with a variety of configuration options that can make it even more place centric or do the reverse and make it have more scaling. As well as some settings will just increase or decrease general game difficulty.

Install and Requirements
------------------------------------
Requires OBSE 17 - http://obse.silverlock.org/

Only manual install or wrye bash install methods are currently supported at present

If you wish to try some of the alternate configuration options ensure the ini file is in the "Data/Oblivion" folder

NOTE: This mod will have the greatest effect on a new game or low level characters because cells get set to lower levels.


Compatability
------------------------------------
- SPAM is fully compatable
- Pure Immersion is expected to be compatable.
- Compatability plugin available for Realistic leveling (v1.12)
Load the plugin after both realistic leveling and DPCS plugins.
- Compatability plugin available for Wrye Leveling (v07)
Load the plugin after both wrye leveling and DPCS plugins.
- Compatability plugin available for Oblivion XP (v4.15)
Load the plugin after both Oblivion XP and DPCS plugins.

- This mod is at present incompatabile with other leveling mods such as ngcd, Kobus, Af leveling etc.
- Any other mods that may rely on the function Player.GetLevel may possibly get confused by this mod.
- Levelling rate mods should be compatabile e.g. Progress
- Will work nicely with player centric overhaul mods such as frans, warcry or even vanilla oblivion. Should also work fine with FCOM and OOO place centric mods. Can also be used with TIE but how much effect it will have is unknown due to its totally random nature.

- Quest award leveller will also not be compatible with this mod because your reported level may not be your actual level so the quest awards will keep changing in strength.

Uninstall
------------------------------------
To uninstall the mod to revert your level to the actual original level and clear out stored arrays in the save game type the following into the oblivion console

set aaSMLevelQuest.bUninstall to 1

Reset
------------------------------------
The reset option will allow you to re-configure the mod as if you had just installed the mod. Doing so will make the mod forget all information about the cells you visited and the levels they were set to.

To reset the mod at any time (even if you called the uninstall code) type the following into the oblivion console

set aaSMLevelQuest.bReset to 1

Modders - How to get your mod to read/modify the players correct level?
----------------------------------------------------------------------------
Because Player.GetLevel only returns the players level in the current cell we can't really use it if we really need the players orginal level for something. Luckily there is a simple solution for those mods using OBSE.

To Return the players Level - Also if the variable ends up being 0 you know this mod isn't installed so can just run the usual code to get the players level.

RunScriptLine "set to aaSMLevelQuest.splayerlevel"


To Modify the players level

RunScriptLine "set aaSMLevelQuest.splayerlevel to "

If you mod dosn't use OBSE, you can either create your own solution or use COBL. If my mod detects COBL it will set the following variables.

'cobPcX.iTrueLevel' contains the true level of the player.
'cobPCx.iNomLevel' contains the level the player is supposed to be in this current cell.
'cobPcX.rTrueLevel' will contain a reference to my script 'aaSMLevelScript' if DPCS is in control of the COBL system.

You can modify the iTrueLevel setting to get the change to apply to DPCS. (NOTE if another OBSE mod or console modifies the level using the previous method at the same time as COBL variable is changed, the OBSE mod will get priority over COBL)

Ideas
------------------------------------
- Fix bugs as they appear
- Customization?
- Quest cell scaling (Specific cells are of particular levels based on the quests)
- Specific offsets to support particular levelling mods

Known Issues
------------------------------------
- Moving between cells (more likely when fast travelling) where one is recorded as low level to a new cell thats high level (or vice versa) the levelled lists may still correspond to the old level in the last cell. In theory this bug should exist but in practise actor levels seemed to be correct (But equipment they wear may not be)
- As this is beta console debug messages are still present in the game to ensure things are working correctly.
- If the first menu that appears on pressing the 'tab' key to bring up the character menu's is the screen with your level, it will show your fake level until you change to another character menu screen and back again.
- When you do a level up the level up screen will display your level as 1 more than your fake level. Your actual level will still raise correctly and is displayed to you above the level up message.
- When using the console command player.setlevel the difference between the value you choose and your level in the current cell is applied to your actual level.
- Cannot pre-load completly new cells, but may have ability to do this once we move to OBSE 18

Version History
------------------------------------
-0.6 (Beta 6)
- Fixed a major CTD because DPCS was trying to preload unloaded cells (often moving from interior to exterior cells). Now will only preload cells that are already loaded.
- Preloading of cells now does not store the level of new cells it predicts to prevent storing of the wrong level.
- All oblivion realms including interior cells levels will not be stored to prevent oblivion gates being fixed to weak levels.

0.5 (Beta 5)
- Added interior scaling support that will level based to your level at the last exterior location. Only works if you turn on exterior offset/fixed levelling options.
- Tamriel city distance calculations are now more accurate. Also added options to include the start sewer entrance and kvatch as safe locations or not.
- Random oblivion realm exterior cell levels are not stored (otherwise it dosn't take long for the gates to all become fixed to specific low levels)
- Updated oblivion XP support to 4.15

0.4 (Beta 4)
- Requires OBSE 17
- Added Max/Min offset ini settings
- Added ini setting that if enabled makes Max/Min offsets apply every time you visit a cell instead of the first time you visit (i.e increased scaling)
- Added Fixed Exterior Scaling options so each exterior cell has a specific preferred level and will use Max/Min offsets in determing your level. (i.e more place centric)
- Added ini settings that if enabled visiting a particular cell type (interior, exterior) always re-calculates best level for that cell (i.e increased scaling if not using fixed exterior scaling)
- Updated Oblivion XP optional plugin to 4.02.

0.31
- Just updated code for OBSE 17 beta2 support

0.3 (Beta 3)
- Completly disabled my fix for the fast travel exploit, as not were only offsets getting confused and stored wrongly in the savegame but its not actually needed. The actor scaling seem to calculated after the players level is set in all my test cases which was surprising but handy.
- When about to enter a door that loads a new area your level will be temporarily set to the level of the cell behind the door so that levelled lists are more likely to be set to correct level they supposed to be for that cell.
- Added an ini file with a variety of new options that can be enabled.
: Can enable a system where you will face stronger enemies the further you are from the nearest city. The idea is the more remote you are the stronger enemies you will face. This is done by adding an offset to your fake level in that region.
: Can enable an option such that if you are a number of levels above the cells preset level it will be recalculated to your current level.
: Enable or Disable Debug Messages
- Added COBL support for levelling mods that cannot use OBSE

0.2 (Beta 2)
- Some more debug messages added and safeguards.
- Daedric statue quests can now be started if visited the cell at an earlier level than required to start them (UOP fixes that overlap have also been included).
- Added Checks for OBSE 17.
- Uninstall/Reset support.
- Character menu screen will now display your original level and not the level in the current cell (see known issues).
- Added message when level up screen appears so that your actual level you are levelling up to is mentioned to you.
- On Levelup in a cell your level will stay to the level its supposed to be for that cell.
- Created Rudimentory compatability plugins for wrye leveling, realistic leveling and Oblivion XP.

0.1 (Beta 1)
- Initial Beta Release

Credits
------------------------------------
Bethesda - Fallout 3
User avatar
Emily Jones
 
Posts: 3425
Joined: Mon Jul 17, 2006 3:33 pm

Post » Wed Sep 01, 2010 7:08 pm

Just some description errata wrye levelling is compatable as long as you avoid using its retroactive health which will probrably get confused.
User avatar
Hairul Hafis
 
Posts: 3516
Joined: Mon Oct 29, 2007 12:22 am

Post » Wed Sep 01, 2010 4:56 pm

Sounds really awesome! :tops:

I actually think this should work just fine with OOO/FCOM since they still scale a large portion of the content in any given area. The unscaled/static enemies are most often the boss types.
User avatar
Céline Rémy
 
Posts: 3443
Joined: Sat Apr 07, 2007 12:45 am

Post » Wed Sep 01, 2010 11:58 pm

@dev_akm: Thanks dev. Very useful bit of knowledge to know (will modify forum post information with that update of knowledge :D)
User avatar
Alex Vincent
 
Posts: 3514
Joined: Thu Jun 28, 2007 9:31 pm

Post » Wed Sep 01, 2010 12:35 pm

Interesting idea, although I have to admit I didn't play Fallout 3 long enough to know how it's scaling system worked. :P

P.S. From reading the OP about not being compatible with (most) leveling mods, I take it you dynamically set the player's level or something similar?
User avatar
jeremey wisor
 
Posts: 3458
Joined: Mon Oct 22, 2007 5:30 pm

Post » Wed Sep 01, 2010 1:33 pm

@kyoma: Yup to fool oblivion to work like that the level of the player is set to what it should be in that cell. The true actual level player has to be saved in a variable. The only time the players level is your original value is when you go into a new cell. But this throws off anything that really relies on the player.getlevel, and any mods that also modify the players level will counteract the working of this mod.

I've been working on the best way to do this for a while. But changing the level is the only real feasible way to get actors and the loot levelled lists to pretend to be another level temporarily. I did think about using OBSE to modify all the levelled lists manually but there is alot of lists, alot of mods that add lists and then you would have to backup the lists to revert to the higher levels from lower levels and that would be very unfeasible.
User avatar
Sophie Morrell
 
Posts: 3364
Joined: Sat Aug 12, 2006 11:13 am

Post » Wed Sep 01, 2010 3:55 pm

@kyoma: Yup to fool oblivion to work like that the level of the player is set to what it should be in that cell. The true actual level player has to be saved in a variable. The only time the players level is your original value is when you go into a new cell. But this throws off anything that really relies on the player.getlevel, and any mods that also modify the players level will counteract the working of this mod.

I've been working on the best way to do this for a while. But changing the level is the only real feasible way to get actors and the loot levelled lists to pretend to be another level temporarily. I did think about using OBSE to modify all the levelled lists manually but there is alot of lists, alot of mods that add lists and then you would have to backup the lists to revert to the higher levels from lower levels and that would be very unfeasible.


Also your current method should work fine for actors that are set for PC Offset scaling. A lot of enemies are like this (guards, bandits, vampires, bosses, etc.) If you just changed the lists it wouldn't take this very important factor into account.
User avatar
Carys
 
Posts: 3369
Joined: Wed Aug 23, 2006 11:15 pm

Post » Wed Sep 01, 2010 5:05 pm

Just wondering if you know about http://www.tesnexus.com/downloads/file.php?id=21807 by Anthrop? He also made Oblivion believe that the player has a different level than he actually has, but from what I remember he doesn't actually change the player's level... might be a good idea to check it out.
User avatar
Rachel Cafferty
 
Posts: 3442
Joined: Thu Jun 22, 2006 1:48 am

Post » Wed Sep 01, 2010 10:46 pm

@dev_akm: Indeed but i think i could easily of mixed and matched what i've done in this mod's code to solve that issue. But yeah I wont be doing that method :).

@Fearabbit: Ah so they use a COBL variable (which actually isn't listed in the COBL documentation but anyway :P) . The players level is actually still changed according to what AnthropG says there but I wonder what actual levelling mods actually make use of that variable though? If any levelling mods do use it I can easily call an OBSE command to make that variable be correct for those that happen to have COBL installed.
User avatar
djimi
 
Posts: 3519
Joined: Mon Oct 23, 2006 6:44 am

Post » Wed Sep 01, 2010 1:43 pm

Released an update to Beta 2

- Some more debug messages added and safeguards.
- Daedric statue quests can now be started if visited the cell at an earlier level than required to start them (UOP fixes that overlap have also been included).
- Added Checks for OBSE 17.
- Uninstall/Reset support.
- Character menu screen will now display your original level and not the level in the current cell (see known issues).
- Added message when level up screen appears so that your actual level you are levelling up to is mentioned to you.
- On Levelup in a cell your level will stay to the level its supposed to be for that cell.
- Created Rudimentory compatability plugins for wrye leveling, realistic leveling and Oblivion XP.

User avatar
Chavala
 
Posts: 3355
Joined: Sun Jun 25, 2006 5:28 am

Post » Wed Sep 01, 2010 12:18 pm

What an interesting idea, will have to try it out :D
User avatar
El Goose
 
Posts: 3368
Joined: Sun Dec 02, 2007 12:02 am

Post » Wed Sep 01, 2010 3:56 pm

I have had another idea thats come that could easily be extended from the code base i have so far. At the moment cells will never be higher level than you no matter what. But there is nothing preventing me from making an optional system that if enabled cells are all predefined to particular levels (A true place centric solution)

So for example in exterior cells the level of cells would be pre-set higher for places in particular regions or cells furthest away from cities
In interiors we can approach it where as main quest or guild quest arcs progress the level of the interiors involved is preset to higher levels. Other interiors we would either have to work out its difficulty based on where the entrance is on the exterior world space and how deep the player has gone into the interior location.

For something like OOO the system could be modified to scale with the difficulties OOO sets to places (I.e specifically setting more cells to particular levels to compliment its place centric rules).


Another option is to have offset values based on positioning of cells such that visiting some cells they will be set to some levels higher than what u are when u first visit etc. This would provide a method thats a mixture between the above solution and the current system.
User avatar
Trista Jim
 
Posts: 3308
Joined: Sat Aug 25, 2007 10:39 pm

Post » Wed Sep 01, 2010 1:41 pm

@Fearabbit: Ah so they use a COBL variable (which actually isn't listed in the COBL documentation but anyway :P) . The players level is actually still changed according to what AnthropG says there but I wonder what actual levelling mods actually make use of that variable though? If any levelling mods do use it I can easily call an OBSE command to make that variable be correct for those that happen to have COBL installed.


I think this is a great idea. I would guess not many of them support it yet, but maybe if you add support for it then there will be even more reason for leveling mods to do the same.

I have had another idea thats come that could easily be extended from the code base i have so far. At the moment cells will never be higher level than you no matter what. But there is nothing preventing me from making an optional system that if enabled cells are all predefined to particular levels (A true place centric solution)

So for example in exterior cells the level of cells would be pre-set higher for places in particular regions or cells furthest away from cities
In interiors we can approach it where as main quest or guild quest arcs progress the level of the interiors involved is preset to higher levels. Other interiors we would either have to work out its difficulty based on where the entrance is on the exterior world space and how deep the player has gone into the interior location.

For something like OOO the system could be modified to scale with the difficulties OOO sets to places (I.e specifically setting more cells to particular levels to compliment its place centric rules).

Another option is to have offset values based on positioning of cells such that visiting some cells they will be set to some levels higher than what u are when u first visit etc. This would provide a method thats a mixture between the above solution and the current system.


Wow, that would be especially sweet! I like the idea of a mixed setup a lot, especially if it included support for min/max caps!

I could easily imagine an OOO/FCOM-oriented setup where in general the cells near major cities start only slightly above your level (maybe +1 offset), but more remote locations could have a greater offset (maybe up to +5) and some specific locations could have semi-static level ranges (i.e., using an offset within a min/max range).

Really, this idea brings opens up a whole new range of exciting possibilities for the game. :tops:
User avatar
Ryan Lutz
 
Posts: 3465
Joined: Sun Sep 09, 2007 12:39 pm

Post » Wed Sep 01, 2010 7:36 pm

I think this is a great idea. I would guess not many of them support it yet, but maybe if you add support for it then there will be even more reason for leveling mods to do the same.


hmmmm thats true. Ok i'll look into the COBL functionality (I suppose its especially helpful for mods that dont use OBSE)

Wow, that would be especially sweet! I like the idea of a mixed setup a lot, especially if it included support for min/max caps!

I could easily imagine an OOO/FCOM-oriented setup where in general the cells near major cities start only slightly above your level (maybe +1 offset), but more remote locations could have a greater offset (maybe up to +5) and some specific locations could have semi-static level ranges (i.e., using an offset within a min/max range).

Really, this idea brings opens up a whole new range of exciting possibilities for the game. :tops:


Yeah min/max offsets should be doable as well. If the FCOM master likes this then I will definately look into it :D I'm equally excited by the opportunities that could develop here. The awesome thing is that even if we do have particular arrangements of offsets made primarily for particular mods nothing stops someone using it with say vanilla scaling system. Makes it all rather universal to a persons tastes.
User avatar
Siidney
 
Posts: 3378
Joined: Fri Mar 23, 2007 11:54 pm

Post » Wed Sep 01, 2010 10:44 pm

hmmmm thats true. Ok i'll look into the COBL functionality (I suppose its especially helpful for mods that dont use OBSE)
...
Yeah min/max offsets should be doable as well. If the FCOM master likes this then I will definately look into it :D I'm equally excited by the opportunities that could develop here. The awesome thing is that even if we do have particular arrangements of offsets made primarily for particular mods nothing stops someone using it with say vanilla scaling system. Makes it all rather universal to a persons tastes.


Awesome! You rock!

Very much looking forward to this! :foodndrink:
User avatar
Ross Thomas
 
Posts: 3371
Joined: Sat Jul 21, 2007 12:06 am

Post » Wed Sep 01, 2010 8:31 pm

Very interesting...particularly if OOO/FCOM would be enhanced further by it. :D
User avatar
Jordyn Youngman
 
Posts: 3396
Joined: Thu Mar 01, 2007 7:54 am

Post » Wed Sep 01, 2010 6:39 pm

Released Update to Beta 3
Fixed a major bug with actors and there offsets and getting the ini with some alternate options out are the main focus of this update.

(and readme description is still a work in progress :P)

- Completly disabled my fix for the fast travel exploit, as not were only offsets getting confused and stored wrongly in the savegame but its not actually needed. The actor scaling seem to calculated after the players level is set in all my test cases which was surprising but handy.
- When about to enter a door that loads a new area your level will be temporarily set to the level of the cell behind the door so that levelled lists are more likely to be set to correct level they supposed to be for that cell.
- Added an ini file with a variety of new options that can be enabled.
: Can enable a system where you will face stronger enemies the further you are from the nearest city. The idea is the more remote you are the stronger enemies you will face. This is done by adding an offset to your fake level in that region.
: Can enable an option such that if you are a number of levels above the cells preset level it will be recalculated to your current level.
: Enable or Disable Debug Messages
- Added COBL support for levelling mods that cannot use OBSE

User avatar
Krystal Wilson
 
Posts: 3450
Joined: Wed Jan 17, 2007 9:40 am

Post » Wed Sep 01, 2010 2:32 pm

I was thinking about something with regards to this mod, when you re-enter a cell and all the containers are respawned, won't the levelled lists in them use whatever level the player is at that time? As opposed to only check it when the player opens the container? Or atleast, that's what I always thought. That levelled items are calculated the moment their container is loaded. :unsure:
User avatar
Euan
 
Posts: 3376
Joined: Mon May 14, 2007 3:34 pm

Post » Wed Sep 01, 2010 1:55 pm

@kyoma: Yup thats how i beleive it to work, and is desired in what i want this mod to acheive. If you bust into a cell with level 50 people you want level 50 loot. Bust into a level 3 cell i only want level 3 loot. With this mod active when loot respawns it should be the level as when you first entered the cell (if you ever did) otherwise it just defaults to your original level.
User avatar
Danny Warner
 
Posts: 3400
Joined: Fri Jun 01, 2007 3:26 am

Post » Wed Sep 01, 2010 2:10 pm

@kyoma: Yup thats how i beleive it to work, and is desired in what i want this mod to acheive. If you bust into a cell with level 50 people you want level 50 loot. Bust into a level 3 cell i only want level 3 loot. With this mod active when loot respawns it should be the level as when you first entered the cell (if you ever did) otherwise it just defaults to your original level.

But isn't the player's level adjusted/changed according to the cell after it is loaded? So when you visit, for example, cell A for the first time at level 3 and it is stored. Then you do lots of other things and only visit cell A again until you are level 20 or something. As you enter cell A all the content is loaded and levelled items are calculated and THEN the player's level is changed to what it should be according to DPCS. Like the levelled items use the level of the player just after he entered the cell and just before DPCS changes it. :unsure:

Maybe I'm just thinking to hard. :P

[edit]
Oh wait, nevermind. Just read the changelog for beta 3. So what you're saying is that when the player's level changes, Oblivion already re-calculates the levelled lists. Or am I wrong again? :P
[/edit]

-kyoma
User avatar
GRAEME
 
Posts: 3363
Joined: Sat May 19, 2007 2:48 am

Post » Wed Sep 01, 2010 9:01 pm

But isn't the player's level adjusted/changed according to the cell after it is loaded? So when you visit, for example, cell A for the first time at level 3 and it is stored. Then you do lots of other things and only visit cell A again until you are level 20 or something. As you enter cell A all the content is loaded and levelled items are calculated and THEN the player's level is changed to what it should be according to DPCS. Like the levelled items use the level of the player just after he entered the cell and just before DPCS changes it.

Maybe I'm just thinking to hard.

[edit]
Oh wait, nevermind. Just read the changelog for beta 3. So what you're saying is that when the player's level changes, Oblivion already re-calculates the levelled lists. Or am I wrong again?
[/edit]


@kyoma: Yeah so what i found for some strange reason was the levelled list and actor scaling was being done after DPCS had set the level. I dont know how or why but it is which made me literally go "wha" that shouldn't happen but it is and these are new cells never entered before?. In theory yes it should be possible for this to occur and i'm not going to rule it out as it may just be based on the timing on when DPCS runs its scripts and it just happened to run before levelled lists and actors offsets are scaled to the player

What must be realised though is with beta 3 i can now preload interior cells by detecting the cell the load door will send you too so interior cells wont have this problem. Its just fast travelling and exterior cell changes that it should in theory be possible to bug and cause this issue but i just can't make it do that. But i suppose thats good it isn't doing that :P

edit: i fear i'm just going round in circles but hopefully you can understand what I mean :P
User avatar
Ann Church
 
Posts: 3450
Joined: Sat Jul 29, 2006 7:41 pm

Post » Wed Sep 01, 2010 3:13 pm

The more I begin to understand the concept (not easy for this non mod maker), the more potential for truly far reaching benefits it seems to have.

Keep on keeping on, Strategy Master.
User avatar
Causon-Chambers
 
Posts: 3503
Joined: Sun Oct 15, 2006 11:47 pm

Post » Wed Sep 01, 2010 7:09 pm

I'm *very* impressed by the progress you're making here SM. Looks like you've come up with an elegantly scripted way to handle one of the game's biggest failings.

Looking forward to trying it out when I'm able to play again, though that'll be a couple of months away. I shall keep an eye on your dev thread though...
User avatar
Campbell
 
Posts: 3262
Joined: Tue Jun 05, 2007 8:54 am

Post » Wed Sep 01, 2010 1:32 pm

This sounds great but maybe you could add a random element too that maybe loot could be variable in a 5 level range, for example if you are level 5 and open a level 5 chest maybe you could find items as low as level 1 items and a small percentage of finding a level 10 item perhaps?
User avatar
-__^
 
Posts: 3420
Joined: Mon Nov 20, 2006 4:48 pm

Post » Wed Sep 01, 2010 8:47 pm

@Cabron: Having offsets on cells is an optional mode thats a work in progress (remember this mod controls the pretend level of the player not the particular contents of chests thats where the overhauls come into play). At the moment its only possible to enable a system where your distance from cities outside makes new cells you visit stronger than you. Same functionality included if you have the shivering isles. Thats just an early version of the feature and i hope to be able to expand them in time.
User avatar
Madison Poo
 
Posts: 3414
Joined: Wed Oct 24, 2007 9:09 pm

Next

Return to IV - Oblivion