Leveled Main Dungeon

raitheraithe Posts: 39
edited January 2013 in Levels
I'm trying to make the main dungeon scale monster level with the player level (the way the hatch quests do). I've changed PLAYER_LVL_MATCH_MIN/MAX to 1-000 PLAYER_LVL_MATCH_OFFSET:-1 & MONSTER_LVL_MULT:1 then gone through and deleted the moster min/max lvl on each strata, which seems to be the only difference between the hatch lvls and the main; but it's still using the default level scheme. What am I missing here? I've searched for other mods but nothing seems to do this and the only questions on it I found were unanswered.
here's the dungeon and strata0 of my main.dat for reference (rest are the same changes)
[DUNGEON]
<STRING>NAME:Main
<STRING>PARENT_DUNGEON:Town
<FLOAT>MONSTER_LVL_MULT:1
<INTEGER>PLAYER_LVL_MATCH_MIN:1
<INTEGER>PLAYER_LVL_MATCH_MAX:1000
<BOOL>VOLATILE:0
<INTEGER>PLAYER_LVL_MATCH_OFFSET:-1
<BOOL>BOTTOMLESS:0
[STRATA0]
<STRING>RULESET:media/layouts/mine/firstfloorrules.dat
<INTEGER>FLOORS:1
<STRING>MONSTERSPAWNCLASS:MINEFLOOR1
<FLOAT>MONSTERS_PER_METER_MIN:.0175
<FLOAT>MONSTERS_PER_METER_MAX:.0175
<STRING>CHAMPIONSPAWNCLASS:NONE
<FLOAT>CHAMPIONS_MIN:0
<FLOAT>CHAMPIONS_MAX:0
<STRING>PROPSPAWNCLASS:PROPS_LEVEL1
<STRING>NPCSPAWNCLASS:NONE
<STRING>CREEPSPAWNCLASS:MINECREEPS
<FLOAT>CREEPS_PER_METER_MIN:.003
<FLOAT>CREEPS_PER_METER_MAX:.003
<STRING>FISHSPAWNCLASS:FISH_SPAWN_MINES
<STRING>QUESTMONSTERSPAWNCLASS:MINEFLOOR1
<STRING>QUESTITEMSPAWNCLASS:RQUEST_MINE
<STRING>QUESTCHAMPIONSPAWNCLASS:MONSTERSETCHAMPION_MINES_FIRST_LEVEL
<STRING>CINEMATIC:VIGNETTE1
[MUST_BE_COMPLETED]
<STRING>QUEST:ENTEREDMINE
<STRING>QUEST:INTROTOGAMEPT1
<STRING>QUEST:INTROTOGAMEPT1.1
<STRING>QUEST:INTROTOGAMEPT2
[/MUST_BE_COMPLETED]
[MUST_BE_COMPLETED_OR_ACTIVE]
<STRING>QUEST:INTROTOGAMEPT3
<STRING>QUEST:RANDOMMINERS
<STRING>QUEST:RANDOMPEOPLE
[/MUST_BE_COMPLETED_OR_ACTIVE]
[/STRATA0]
thanks

Comments

  • I generally use the following to match the player level:
    <BOOL>VOLATILE:1
    <BOOL>BOTTOMLESS:0
    <STRING>PARENT_DUNGEON:Town
    <INTEGER>PLAYER_LVL_MATCH_MIN:1
    <INTEGER>PLAYER_LVL_MATCH_MAX:1000
    <FLOAT>MONSTER_LVL_MULT:1
    <INTEGER>PLAYER_LVL_MATCH_OFFSET:-1
    

    Not exactly sure what volatile does, but you may want to try setting to 1 to see if it works...
    Also make sure you have a [/DUNGEON] at the end. It is missing in your posted code.
  • raitheraithe Posts: 39
    I'll try it and see, I left out volatile because in most roguelikes volatile means the level is non-permanent, and I wasn't sure how that would affect the main quest. The missing end tag is because that's just an excerpt of the main.dat. The whole thing is super-long.
  • Speaking of permanence, when you test this out make sure you are going to a floor you weren't recently in because the floors save and will only refresh from scratch after you load enough new floors into your character to wipe out old historical floors....
  • raitheraithe Posts: 39
    Yeah I tried it with new characters, I even tried it on clean install with no saves. The volatile flag won't do the trick either. I'm guessing the main dungeon has some other flags hidden somewhere or maybe it's level is hard-coded... sigh. Seems like every action RPG I try there's just one thing I'd love to to change that would make all the balance difference in the world... and it's always hard-coded.

    The only reason I even care about this is the game drops tons of loot and it's all useless, because if you do one hatch quest, challenge map, random map, or just buy something from the store, all the dungeon drops are junk because you've overleveled so far. The monsters become pushovers etc. If the stupid main dungeon scaled the way ALL the other maps do this wouldn't be a problem.
  • GingercatGingercat Posts: 55
    I have the answer! (And sorry for necroposting, but every time I myself have wanted to change this, Google brings me to this forum topic. It finally annoyed me enough to dive in and fix it myself.)

    The answer lies in the Pak.zip file, as you might imagine. The steps:

    1. From directly within Pak.zip's "media" folder, extract the file "massfile.dat.ADM" somewhere conventient, such as your Desktop.

    2. Use the very useful ADM <-> DAT converter (Full credit to its author, you did a fantastic job making this! - Link to original topic here) to convert this .adm file to its human-readable .dat form.

    3. Delete massfile.dat.adm from the location you extracted it to. Here's why: Now that you've converted it to .dat, you don't need it anymore. You'll be creating a new one later on from your modified data, and it's THAT copy of this file that you'll be using. Best to delete this one so you know you're working with your custom data later. :)

    4. Search the newly created massfile.dat file for this text string: [MEDIA/DUNGEONS/MAIN.DAT]

    5. Edit this data (or replace it completely using data from, say, The Little Horde mod) to reflect how you want the Main Dungeon to behave. As an example I'll provide the first few lines from mine:

    <STRING>PARENT_DUNGEON:Town
    <FLOAT>MONSTER_LVL_MULT:1.5
    <INTEGER>PLAYER_LVL_MATCH_MIN:1
    <INTEGER>PLAYER_LVL_MATCH_MAX:1000
    <BOOL>VOLATILE:0
    [STRATA0]
    <STRING>RULESET:media/layouts/mine/firstfloorrules.dat
    <INTEGER>FLOORS:1
    <STRING>MONSTERSPAWNCLASS:MINEFLOOR1
    <FLOAT>MONSTERS_PER_METER_MIN:.07
    <FLOAT>MONSTERS_PER_METER_MAX:.10
    <STRING>CHAMPIONSPAWNCLASS:NONE
    <FLOAT>CHAMPIONS_MIN:4
    <FLOAT>CHAMPIONS_MAX:20

    etc etc. Note the MUCH harder level matching of Player's level * 1.5, minimum of 4 champions, max of 20 on this floor, and increased monsters per meter!

    Note also: Every "STRATA" (up to 34, from memory) needs to be individually edited depending on how many champions you want, how many monsters should be everywhere, etc etc.

    A nice caveat: You can also simply remove any line containing "MONSTER_LEVEL_MIN" and "MONSTER_LEVEL_MAX" which are normally responsible for strangling the monster levels. You don't need to modify each of them to be minimum of 1 and maximum of whatever; deleting those lines entirely is more efficient. :)

    6. Use the converter tool to convert your now-custom "massfile.dat" back to "massfile.dat.adm" format.

    7. Overwrite the existing file in Pak.zip's "media" folder with your newly converted, modified copy.

    8. Test!

    It seems that the contents of "massfile.dat.adm" inside Pak.zip take absolute priority over any mods when it comes to the main dungeon, but it allows itself to be overridden when it comes to the other optional dungeons. Odd, but not unbeatable.

    I myself have tested this by creating a completely new character, making him level 6 via character editor, THEN heading into the main dungeon. I immediately ran into Level 7 enemies instead of the normally-expected level 1 ones. Success!
  • AttackGorillaAttackGorilla Posts: 1,656
    Gingercat, I recommend you use the mod folder instead of directly editing the Pak.zip file. Either works, but if you use the mod directory as intended you won't mess up the original game files (may save you some frustration later and help you share your content).
  • Thank you for the excellent research you all have done. I am surprised that this issue has gotten such little attention because in my view it ruins the game.

    Although I'd love to use this type of mod I am not comfortable modding the main game files myself. I would really appreciate it if a kind soul could create the game files (or release a mod) that changes the enemy levels to the same as the player character (so a level 5 player fights level 5 monsters). Honestly a mod would be easier and safer but beggars can't be choosers.

    Thanks again and take care.
Sign In or Register to comment.