Skip to content

Is there a way to make spawns actually random and unscaled?

MeriliremMerilirem Member Posts: 4
edited February 2016 in BG:EE Mods
I want to know if an unleveled spawns mod or something exists.

I want the game to be the same regardless of how many people are in my party or what level they are.

I want it to be random though, so i can run into top or bottom spawns when i solo or full group.

otherwise what's the point of teaming up if the game makes itself the same no matter what you do...

PS: if the enemy spawns are controlled by a 2da or something which i can edit, so if that's a thing just point me to it.

Comments

  • SerignuadSerignuad Member Posts: 1
    I would love to know if this is possible as well.
  • AstroBryGuyAstroBryGuy Member Posts: 3,437
    edited February 2016
    The spawns are controlled by the spawn point sections of the ARE files.

    http://gibberlings3.net/iesdp/file_formats/ie_formats/are_v1.htm#formAREAV1_0_Spawn

    One way to do something like what you want would be to take my BGEE Leveled Spawns mod (https://forums.beamdog.com/discussion/34840/bgee-leveled-spawns-mod-v0-3-updated-2014-12-27/p1) and replace the level checks with random number checks.

    For example, you could replace the LevelPartyLT() and LevelPartyGT() checks in the code below:

    IF
    Range([PC],60)
    LevelPartyLT(2)
    Global("AYSpawnResetAR01230","%Undercity%",0)
    Global("AYSpawnRandomSetAR01230_3","%Undercity%",1)
    THEN
    RESPONSE #100
    SetGlobal("AYSpawnResetAR01230","%Undercity%",1)
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    SetGlobalTimer("AYSpawnTimerAR01230","%Undercity%",AY_SPAWN_TIMER)
    END

    IF
    Range([PC],60)
    LevelPartyGT(1)
    LevelPartyLT(3)
    Global("AYSpawnResetAR01230","%Undercity%",0)
    Global("AYSpawnRandomSetAR01230_3","%Undercity%",1)
    THEN
    RESPONSE #100
    SetGlobal("AYSpawnResetAR01230","%Undercity%",1)
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    SetGlobalTimer("AYSpawnTimerAR01230","%Undercity%",AY_SPAWN_TIMER)
    END

    IF
    Range([PC],60)
    LevelPartyGT(2)
    Global("AYSpawnResetAR01230","%Undercity%",0)
    Global("AYSpawnRandomSetAR01230_3","%Undercity%",1)
    THEN
    RESPONSE #100
    SetGlobal("AYSpawnResetAR01230","%Undercity%",1)
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    SetGlobalTimer("AYSpawnTimerAR01230","%Undercity%",AY_SPAWN_TIMER)
    END


    with a RandomNum(X,3) check:

    IF
    Range([PC],60)
    RandomNum(1,3)
    Global("AYSpawnResetAR01230","%Undercity%",0)
    Global("AYSpawnRandomSetAR01230_3","%Undercity%",1)
    THEN
    RESPONSE #100
    SetGlobal("AYSpawnResetAR01230","%Undercity%",1)
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    SetGlobalTimer("AYSpawnTimerAR01230","%Undercity%",AY_SPAWN_TIMER)
    END

    IF
    Range([PC],60)
    RandomNum(2,3)
    Global("AYSpawnResetAR01230","%Undercity%",0)
    Global("AYSpawnRandomSetAR01230_3","%Undercity%",1)
    THEN
    RESPONSE #100
    SetGlobal("AYSpawnResetAR01230","%Undercity%",1)
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    SetGlobalTimer("AYSpawnTimerAR01230","%Undercity%",AY_SPAWN_TIMER)
    END

    IF
    Range([PC],60)
    RandomNum(3,3)
    Global("AYSpawnResetAR01230","%Undercity%",0)
    Global("AYSpawnRandomSetAR01230_3","%Undercity%",1)
    THEN
    RESPONSE #100
    SetGlobal("AYSpawnResetAR01230","%Undercity%",1)
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    CreateCreature("ZOMBIE_C",[2586.1956],0) // ~Zombie~
    SetGlobalTimer("AYSpawnTimerAR01230","%Undercity%",AY_SPAWN_TIMER)
    END


    This wouldn't change the types of creatures that are spawned. So, you won't meet a group of 6 Orge Magi on the Lion's Way at the start of the game, but it would be a way to randomize the encounters somewhat.
    Post edited by AstroBryGuy on
Sign In or Register to comment.