[RELz] DLL - Dynamic Leveled Lists

Post » Wed Mar 30, 2011 7:43 am

http://tesnexus.com/downloads/file.php?id=37904
The cure all elixir for predictable dungeons



What does DLL do?
Dynamic Leveled Lists is a set of algorithms that rework the Leveled Lists in your mods to let you customize your spawning experience to the teeth. DLL aims to redefine how we customize leveled lists.

In vanilla Oblivion, the dungeons can be a bit drab. Modders have learned to combat this by handtweaking leveled lists to spawn bigger creatures sooner and make creatures spawn in groups, just to shake things up a bit. Unfortunately, this is VERY tedious work and is hardwired for specific setups, meaning any change or addition requires more labor. DLL's algorithms eliminate any need for hand tweaking by modders, and offers players the ability to choose for themselves -exactly- how they want things to spawn for them in game.


What Does this Mean for You?
Adventurers
- Want harder creatures to spawn earlier? Want easier spawns? Want more creatures to spawn at once?
Whatever you choose, DLL will make sure it happens no matter what mods you have.
- The EPIC button: Gives each encounter a small percentage chance to spawn creatures way above your level.
- Never another "Slightly More Spawns" or "Slightly Even Less Spawns" patch. Just tweak your DLL settings to give you exactly what you want.
- Never another "MMM - No Slimes" patch. Get rid of any creature you dislike by just typing keywords into DLL's exception system.

Developers
- Simplifies most Leveled Lists to only need one of each creature (Noah's Ark / 2); DLL handles the probabilities.
- Never hand-tweak a Leveled List again.
- Leave the spawning setup to the users. Or not! Add your Leveled Lists to an exception list to prevent DLL from tampering with your desired setup.


The most up to date
http://www.afterimagemetal.com/DynamicLeveledListsReadme.html.


|> News/Updates <|


Plans for next patch:
- Reducing the size of the backup array to decrease save/load times.
- As a possible alternative to an in-game OBSE backup array, a file I/O backup system will be investigated.
- Investigation of a "SGL" system as an option for a spawn count system. Courtesy of nDervish. Check out the discussion on the forum for more info.
- Introducing an Boss exception list. The purpose being to bar boss creatures from entering Normal Tier and becoming "common" creatures, when they should be unique named creatures. Options to make the Boss exception list always have a spawn count of 1, and not enter Normal/Low Tiers will be added.
- Probably more goodies!



2.04.3 patch Released!:
Make sure you update to 2.04.3 if you are experiencing "armies" of creatures that are way more than your max count setting.
This was associated with large mod setups that had large LList daisychains. (LLists that had LList entries, that had LList entries themselves, etc)

Loads of new settings to tweak and enjoy!
Make sure you do a clean install and run the exe again if you're upgrading from a previous version of DLL. 8)

- An enhanced Readme with a First Time User guide. (http://www.afterimagemetal.com/DynamicLeveledListsReadme.html)
- A more sophisticated exception system
- Immediate Initial Backup option
- Quick Replace System
- Better DLL processing speed settings.
- "startquest DLLtime" lets you see how long DLL has left to process.
- Upgraded the exe to create missing folders automatically, and hopefully not crash on XP!
- Included a debugger in the exe. Upload it if you're having issues!

MODDERS!
If you have a mod that you want on the exception list, contact me. I will add you to the DLLexceptions folder included in my download,
ensuring your mod is untouched if anyone uses DLL.

Getting console spam?
Sorry. I passed out an .ini file out with the Print Function set to 1.

Fix: Turn DLLPrintUpdateStatus to 0


|> Why Would You Want to Use DLL? <|

DLL gives you an amazing amount of control over how your world spawns.
Similar mods that do this type of thing are Adrenaline Oblivion, FCOM's "Slightly Increased/decreased Spawns" patches, TIE, WarCry, etc. All these have their own way they handle spawns in game.

For example, Warcry makes every creature spawn at level 1. The world never changes. This means it's extremely difficult for a level 1 character when they run into a minotaur, but it gets easier as they level up and get equipment.
This is very different then FCOMs setup, or vanilla, or Adrenaline Oblivion which makes mobs of 5-6 creatures everywhere.

What DLL can do is take ANY mod setup (WarCry, FCOM, -anything- else) and make it perform like ANY setup you desire --> Without ANY handtweaking of any Leveled List. You can take a vanilla setup, and make it perform like WarCry; You can take a TIE setup and make it perform like FCOM. Or you can take any other setup and tweak it to your own custom idea of how the world should spawn, all on a whim. It doesn't matter what setup you have, DLL will make it spawn to your set standards.

But please remember, you still need mods that ADD creatures to your game. DLL doesn't make any creatures of its own. So don't take FCOM/WarCry/TIE/WAC out of your load order, just add DLL and tell it how you want them to spawn.


It also will fix any "spawning errors".
One prime example is the Staada bug found in Warcry, where a level 25 demon spawns left and right for level 1 PCs. DLL inherently fixes these issues.


|>A More Detailed Description <|

How does DLL work? Why is it capable of working with any mod you throw at it?

1) DLL first locates all the FormIDs of all the Leveled Lists you're using. It does this with the supplied exe that loads up your active mod list and exports the FormIDs into the file DynamicLL.ini, located in My Documents/My Games/Oblivion/Pluggy/User Files.

2) In game, DLL refers to the FormID list and slowly begins making a backup array of your original leveled list setup. It stores them with a set of nested OBSE arrays.

3) Once the backup array is complete, it then applies a set of complex algorithms using your given settings to the data stored in the backup array.

4) Once the correct percentages and ratios have been calculated for each leveled list, it clears and replaces your leveled lists with the updated and customized setup.

5) When Oblivion is restarted, the Leveled Lists are automatically reverted to their original state (this is inherent in the programming of OBSE/Oblivion). DLL then refers to its backup array and quickly re-replaces your leveled lists back to your customized settings. This means that DLL has no permanent side-effects. Your leveled lists are restored every time you restart Oblivion. Disable DLL, and the OBSE storage array it uses is wiped without a trace automatically.


|> The Goals of DLL <|

1) To be as compatible as possible.
If you sense any incompatibility with any mod, please let me know!

2) To give the users as much customization as possible.
Any ideas for further customization are welcome!

3) To be completely safe and removeable.
I know DLL may sound scary, claiming that it messes with every mod on your list, but it's inherently safe to use. Oblivion automatically removes any changes to Leveled Lists on game loadup, reverting everything the way it was automatically. Play worry free!

DLL should be painless, simple (except for maybe the settings), powerful, and compatible with everything.



|> Requirements <|
OBSE v 20 (http://obse.silverlock.org/)

Pluggy (http://tesnexus.com/downloads/file.php?id=23979)
- (I use v125c, but I believe the newer versions will work too)
- For file I/O


|> ReadMe <|
For:
- Installation
- First Timers Guide
- Settings Overview
- Troubleshooting
- Bug Reporting
- Credits/Legality
- Changelog

Be sure to refer to the

http://www.afterimagemetal.com/DynamicLeveledListsReadme.html


|> Default Settings and Some Recommended "Presets" <|
Spoiler

Normal, Subtle setup (Default Settings)
Note: feedback on what should be the default settings would be appreciated!

DLLEpicButton = 1
DLLIncreasedSpawnsButton = 1

DLLlowTierReducLine = 1
DLLlowTierCutLine = 15

DLLHighTierReducLine = 1
DLLHighTierCutLine = 5

DLLEpicTierDropPercent = 2
DLLEpicTierSoftCutLine = 8
DLLEpicTierCutLine = 15

DLLSpawnIncreaseMax = 3
DLLSpawnIncreaseBasePercent = 20
DLLSpawnIncreaseFinalPercent = 25
DLLSpawnForceButton = 1

DLLForceLevel = 1
DLLAverageLListLevels = 0
DLLPrintUpdateStatus = 0
DLLLimitLListProcessMax = 1
DLLLimitProcessingTimer = 1
DLLReviveEmptyLLists = 1


WarCry Setup (The world never changes, everything spawns the same all the time. Beware lowbies!)

DLLlowTierCutLine = 0
DLLHighTierCutLine = 0

Adrenaline Oblivion Setup (There are hordes of creatures everywhere!!)

DLLSpawnIncreaseMax = 6
DLLSpawnIncreaseBasePercent = 90

User avatar
Crystal Clarke
 
Posts: 3410
Joined: Mon Dec 11, 2006 5:55 am

Post » Wed Mar 30, 2011 5:44 am

I love this mod. A new must-have for my load order from now on.

One question:

Does DLL effect interior spawns too? From my experience, it doesn't.
User avatar
Melanie
 
Posts: 3448
Joined: Tue Dec 26, 2006 4:54 pm

Post » Wed Mar 30, 2011 12:11 pm

It should affect any Leveled List you have. Once a formID is on its list, it will modify it, Interior, Exterior, Unused, anything.
Let me know if you really do think it's having issues, though.
User avatar
candice keenan
 
Posts: 3510
Joined: Tue Dec 05, 2006 10:43 pm

Post » Wed Mar 30, 2011 3:38 am

If this mod is half as effective as it sounds, it will be a new permanent addition to my LO! This is a wonderful idea and looks/sounds very well done; downloading immediately!

Oh, and just so your aware, these forums block all media/img/anything-similar tags, which is why your graphic won't display.

Nice work!

>>>R4C
User avatar
Marcia Renton
 
Posts: 3563
Joined: Fri Jan 26, 2007 5:15 am

Post » Wed Mar 30, 2011 2:58 pm

Hey Leviathan1753, glad to see you've decided to post here. It'll definitely get more exposure. I still haven't run it in my game, kinda waiting for someone to test it with FCOM. :P
User avatar
katsomaya Sanchez
 
Posts: 3368
Joined: Tue Jun 13, 2006 5:03 am

Post » Wed Mar 30, 2011 6:05 am

Emmm...call me stupid but I cannot find a download link in the OP. Not hard to look for the mod on TESNexus but a link is useful nonetheless. ;)
User avatar
Brandon Bernardi
 
Posts: 3481
Joined: Tue Sep 25, 2007 9:06 am

Post » Wed Mar 30, 2011 11:53 am

@omeletted
I've done an okay amount of testing with my FCOM setup. 8)
The best part about DLL is it's totally removable. Just untick the esp and it's clean as a whistle. Just give it a try, you can always revert back to vanilla FCOM.




I got a link up now, 8)
User avatar
Sian Ennis
 
Posts: 3362
Joined: Wed Nov 08, 2006 11:46 am

Post » Wed Mar 30, 2011 8:56 am

I saw this earlier on Nexus. Good to see more explanation on this. Now off to do some tweaking.

PS: Can this replace some of the MMM plugins, such as "No Balrogs", "No Slimes", "No Spiders" etc.? If not, is this something that can be added by ini? If so, corepc would be happy to know this ;)
User avatar
Joanne
 
Posts: 3357
Joined: Fri Oct 27, 2006 1:25 pm

Post » Wed Mar 30, 2011 3:27 pm

Looks awesome :D

Now I just need to wait till someone divines some setings to make WAC work with FCOM :P
User avatar
lydia nekongo
 
Posts: 3403
Joined: Wed Jul 19, 2006 1:04 pm

Post » Wed Mar 30, 2011 8:00 am

Glad you posted this here - I've been following it on the Nexus but was dissapointed it was getting so little attention. Hopefully this helps.

+1 for WAC and FCOM, man, if that happens, I am going to be a very happy dude.
User avatar
Jordan Moreno
 
Posts: 3462
Joined: Thu May 10, 2007 4:47 pm

Post » Wed Mar 30, 2011 4:49 am

I saw this earlier on Nexus. Good to see more explanation on this. Now off to do some tweaking.

PS: Can this replace some of the MMM plugins, such as "No Balrogs", "No Slimes", "No Spiders" etc.? If not, is this something that can be added by ini? If so, corepc would be happy to know this ;)


I could definitely set up an exception system for people to plug in specific FormIDs of entries to ignore. I'll see what I can cook up.


Looks awesome :D

Now I just need to wait till someone divines some setings to make WAC work with FCOM :P


Workin' on it! 8D
User avatar
Tasha Clifford
 
Posts: 3295
Joined: Fri Jul 21, 2006 7:08 am

Post » Tue Mar 29, 2011 11:08 pm

Wow great work man. Im looking forward the the loot edition. Ill get to testing this now.

Just to be clear I can untick the fcom reduced spawn plugins and "more random spawns" plugin ?
User avatar
Danel
 
Posts: 3417
Joined: Tue Feb 27, 2007 8:35 pm

Post » Wed Mar 30, 2011 9:09 am

Great. Will check it out later. :)
User avatar
Maya Maya
 
Posts: 3511
Joined: Wed Jul 05, 2006 7:35 pm

Post » Wed Mar 30, 2011 11:29 am

Wow great work man. Im looking forward the the loot edition. Ill get to testing this now.

Just to be clear I can untick the fcom reduced spawn plugins and "more random spawns" plugin ?


Yup! You -can- keep it on, but DLL will just override it with whatever settings you feed it.


And I'm currently rolling around ideas for how to make the loot system work. It's not as simple as the creature system, because there are no set "levels" to items. It would have to be some complex system of assigning levels to items based on their stats. But then what about items that are not weapons/armor? How do I designate "level" value to a scroll? What about custom scrolls from custom mods? What about calipers and tomatos? The more I think about it the more complex I realize it has to be. It may be a while before I can fandangle a system in my head to make it work. Perhaps I'll limit it to only moderating weapons/armor.

This would also only really matter for chests and such. Items are almost already self-moderated for creature drops.



Also, anyone know what the difference is between [REL] and [RELz]? XD
User avatar
Far'ed K.G.h.m
 
Posts: 3464
Joined: Sat Jul 14, 2007 11:03 pm

Post » Wed Mar 30, 2011 7:38 am

Also, anyone know what the difference is between [REL] and [RELz]? XD

You can't search for three-letter words.
User avatar
Hussnein Amin
 
Posts: 3557
Joined: Sun Aug 05, 2007 2:15 am

Post » Wed Mar 30, 2011 7:33 am

This mod is awesome!

One question - would it be possible to, say, do something like http://www.tesnexus.com/downloads/file.php?id=23993 without having to mess around with the player's level - through levelled lists?
User avatar
Stacy Hope
 
Posts: 3391
Joined: Thu Jun 22, 2006 6:23 am

Post » Wed Mar 30, 2011 12:46 pm

You can't search for three-letter words.


You couldn't, but with the new forum software you now can :D. The limit is 2 letters now. But it's sort of stuck around because everyone has been using it for so long/most people don't realise it's changed :P
User avatar
Franko AlVarado
 
Posts: 3473
Joined: Sun Nov 18, 2007 7:49 pm

Post » Tue Mar 29, 2011 11:51 pm

Please forgive me for asking or for my ignorance, but is this similar to shadeMe's mod SPAWN? If not can they be used together...and if so does DLL need to load before or after SPAWN.
User avatar
Vicky Keeler
 
Posts: 3427
Joined: Wed Aug 23, 2006 3:03 am

Post » Wed Mar 30, 2011 3:42 am

Please forgive me for asking or for my ignorance, but is this similar to shadeMe's mod SPAWN? If not can they be used together...and if so does DLL need to load before or after SPAWN.

SPAWN appears to cover when cells respawn, not what spawns in them. So assuming both mods have been designed to only affect their specific domains, I would imagine they're perfectly compatible. As for load order, I can only guess, but my instinct would be to have DLL load after SPAWN, if it matters at all.

Anyway, great mod! I haven't tried it yet, but it will be nice to be able to replace the MMM modifier plugin I'm using to reduce the number of creatures spawning with my own custom values.

As for the incompatibilities between WAC and FCOM (or in my case, MMM, having never used FCOM), I don't think this mod will solve the issues. WAC adds its own unlevelled spawns, and in the case of the OverSpawn plugin, affects leveled lists that MMM also modifies, and all of the incompatibilities can't be resolved with Bash. As far as I know the only solution is to resolve issues yourself using TES4Edit, basically patching together things from each mod to populate the leveled lists. I haven't done it myself yet, but DLL wouldn't be able to fix these issues unless its algorithm can somehow magically patch things together the same way it'd be down by hand, beyond what Bash does.
User avatar
sally R
 
Posts: 3503
Joined: Mon Sep 25, 2006 10:34 pm

Post » Wed Mar 30, 2011 12:52 am

SPAWN appears to cover when cells respawn, not what spawns in them. So assuming both mods have been designed to only affect their specific domains, I would imagine they're perfectly compatible. As for load order, I can only guess, but my instinct would be to have DLL load after SPAWN, if it matters at all.


Hmm i see what you mean, thanks palidoo. :)


I will download it but to be on the safe side i will wait with installing it to see what Leviathan1753 thinks.
User avatar
Yung Prince
 
Posts: 3373
Joined: Thu Oct 11, 2007 10:45 pm

Post » Wed Mar 30, 2011 9:36 am

And I'm currently rolling around ideas for how to make the loot system work. It's not as simple as the creature system, because there are no set "levels" to items. It would have to be some complex system of assigning levels to items based on their stats. But then what about items that are not weapons/armor? How do I designate "level" value to a scroll? What about custom scrolls from custom mods? What about calipers and tomatos? The more I think about it the more complex I realize it has to be. It may be a while before I can fandangle a system in my head to make it work. Perhaps I'll limit it to only moderating weapons/armor.


At risk of looking at this too simply, couldn't the value of an item be used pretty consistently within its type to scale it properly? For example, couldn't you parse all the Alchemical ingredients in the LL's, and have the least valuable spawn the most often or at lower levels (so you'll progress from tomatoes to wolf meat to fir salts, more or less)? I have no idea how your mod is implemented, and wouldn't presume to know how to make things work, but as far as a means of comparison goes, the value seems pretty straight forward (although you would need a separate array for pretty much every type of item).

Either way, good luck, and great work ;)

>>>R4C
User avatar
Loane
 
Posts: 3411
Joined: Wed Apr 04, 2007 6:35 am

Post » Wed Mar 30, 2011 6:27 am

This mod is awesome!

One question - would it be possible to, say, do something like http://www.tesnexus.com/downloads/file.php?id=23993 without having to mess around with the player's level - through levelled lists?


Hmm, that mod seems to modify specific areas so that they 'stick' at the level they originally first spawned at. Am I correct in assuming that it changes your player level to the level the area is stuck at, lets things spawn, and then changes your player level back to where you were at? I imagine that would cause some issues with other mods XP

And no, DLL has no 'easy' way to replace that system that I can think of. 8(


Please forgive me for asking or for my ignorance, but is this similar to shadeMe's mod SPAWN? If not can they be used together...and if so does DLL need to load before or after SPAWN.


I believe they can be used together without any issues as they monitor different things. I highly doubt SPAWN directly modifies leveled lists. I just recently found SPAWN myself, and I plan on adding it to my load order.

The load order doesn't matter one bit with DLL, since it's all unique scripts that shouldn't override or be overwritten by anything.

As for the incompatibilities between WAC and FCOM (or in my case, MMM, having never used FCOM), I don't think this mod will solve the issues. WAC adds its own unlevelled spawns, and in the case of the OverSpawn plugin, affects leveled lists that MMM also modifies, and all of the incompatibilities can't be resolved with Bash. As far as I know the only solution is to resolve issues yourself using TES4Edit, basically patching together things from each mod to populate the leveled lists. I haven't done it myself yet, but DLL wouldn't be able to fix these issues unless its algorithm can somehow magically patch things together the same way it'd be down by hand, beyond what Bash does.


Well, I've mentioned a few times that I created DLL for one of my bigger projects which WAS to port over the creatures/armor from WAC/OWC-ND over to an FCOM setup. 8) DLL doesn't have anything that magical to automatically make them compatible, I just created it to be the 'standardizer' once I had ported everything over; I'm doing it by hand in Tes4Edit. Tedious, but it's gonna be AWESOME! 8)


At risk of looking at this too simply, couldn't the value of an item be used pretty consistently within its type to scale it properly? For example, couldn't you parse all the Alchemical ingredients in the LL's, and have the least valuable spawn the most often or at lower levels (so you'll progress from tomatoes to wolf meat to fir salts, more or less)? I have no idea how your mod is implemented, and wouldn't presume to know how to make things work, but as far as a means of comparison goes, the value seems pretty straight forward (although you would need a separate array for pretty much every type of item).


Hmm, I think you just gave me an idea. Instead of parsing game-wide, I would just look at each container. For example: Vanilla Oblivion container with EditorID LL1LootArmorLightMagic100 is a leveled list that has:
MagicLightFur at level 3
MagicLightLeather at level 5
MagicLightChainmail at level 8
etc

I would just import that info, and then apply the probability algorithms based on those modder-given levels.
So it would end up with something like this for a player level 3:
93 entries of fur (93% chance)
5 entries of leather (5% chance)
3 entries of chainmail (3% chance)

There couldn't/wouldn't be any "force level" setting for items, as that would get into the complexities i was talking about earlier. It would always be based on the modder-given level assigned to each entry.
User avatar
x a million...
 
Posts: 3464
Joined: Tue Jun 13, 2006 2:59 pm

Post » Wed Mar 30, 2011 9:39 am

Well, I've mentioned a few times that I created DLL for one of my bigger projects which WAS to port over the creatures/armor from WAC/OWC-ND over to an FCOM setup. 8) DLL doesn't have anything that magical to automatically make them compatible, I just created it to be the 'standardizer' once I had ported everything over; I'm doing it by hand in Tes4Edit. Tedious, but it's gonna be AWESOME! 8)

Ah, that makes a lot of sense. And it will be nice for me to be able to use it in that manner as a 'standardizer' because one of these days I'm planning to tackle that tedious task of compatibilitizizing WAC and, in my case, MMM. I'm not sure how different it is for WC:ND, but I may end up asking you for tips in the future! hehe

Anyway, there's no doubt your mod is great, but now I'm wondering how much more time I'm going to be spending not actually playing the game now that I have a whole new set of variables to tweak! :teehee:
User avatar
kat no x
 
Posts: 3247
Joined: Mon Apr 16, 2007 5:39 pm

Post » Wed Mar 30, 2011 12:25 pm

Anyway, there's no doubt your mod is great, but now I'm wondering how much more time I'm going to be spending not actually playing the game now that I have a whole new set of variables to tweak! :teehee:


Story of my life. I started modding my oblivion about 9 months ago... still only have a level 5 mage.. 8(

SOMEDAY! Soooomeday it'll all pay off! XD
User avatar
claire ley
 
Posts: 3454
Joined: Fri Aug 04, 2006 7:48 pm

Post » Tue Mar 29, 2011 11:40 pm

I believe they can be used together without any issues as they monitor different things. I highly doubt SPAWN directly modifies leveled lists. I just recently found SPAWN myself, and I plan on adding it to my load order.

The load order doesn't matter one bit with DLL, since it's all unique scripts that shouldn't override or be overwritten by anything.


Thanks for the confirmation Leviathan1753. :)
User avatar
Ria dell
 
Posts: 3430
Joined: Sun Jun 25, 2006 4:03 pm

Next

Return to IV - Oblivion