Jump to content

.ini spawn clarification


Avenger

Recommended Posts

spec = [xxx.yyy.zzz.vvv.qqq]
xxx, yyy, zzz, vvv, qqq - integer numbers - I have no idea what do they mean

 

 

 

These numbers are the ID values. (IDs targeting, EA/General/..etc). If there is a creature fulfilling the 'specification', then the spawn won't occur. It should be set to the ID values of the creature, or infinite spawning will occur.

 

Link to comment

spec = [xxx.yyy.zzz.vvv.qqq]

xxx, yyy, zzz, vvv, qqq - integer numbers - I have no idea what do they mean

 

These numbers are the ID values. (IDs targeting, EA/General/..etc). If there is a creature fulfilling the 'specification', then the spawn won't occur. It should be set to the ID values of the creature, or infinite spawning will occur.

thanks for clarification, but I'm afraid this is not precise enough. I read somewhere that you were porting IWD features to EE engine for Beamdog, so it would be great if you could share with us more about this file format, if you have that knowledge that is (not sure if Beamdog received full ini documentation, or if it is obvious from the source code. Hope it's not under NDA). Some truly amazing spawn mods are now possible for BG2:EE (yep, this feature has been backported from IWD:EE to BG2:EE in patch 1.3 and will be probably added to BG:EE in next patch)

 

xxx = spawned creature Allegiance. If you set wrong value here than you will end up with this problem

yyy = ? always set to 0 in default IWD/IWD2 ini files)

zzz = ? as above

vvv = ? as above

qqq = probably refers to SPECIFIC.IDS, but from my tests you just need to add the same value to ai_specifics entry and it will work without expanding SPECIFIC.IDS

 

For IESDP maintainers - whole INI documentation is lacking. There are many undocumented options available

 

spawn_point = [xxxx.yyyy:z]

xxxx - is x position on the area

yyyy - is y position on the area

z - is the face direction of spawned creature.

this can have multiple values assigned, for example: [0765.0305],[0820.0375],[0680.0330],[0765.0430],[0835.0490],[0600.0355]. Not sure if the spawn will be random or if it will be present in all these places (probably the former based on how cre_file works)

 

cre_file = CRE_file_name

File name of CRE file without extension that is used for spawned creatures.

this one accepts multiple cre files as well. They will be spawned randomly (also see spec_qty)

 

spec_qty = integer number

some number, I have seen only value 1, usage unknown,

you can set how many cre files will be spawned at once. If you choose multiple cre_file than there will be random spawn, for example: cre_file=wolf01,bearbl,worg and spec_qty=3 will spawn any variation of these 3 creatures (3 wolfs, 2 worgs and 1 black bear, 3 bears etc.).

 

------

 

In case someone is interested in helping with testing here is a code that will disable vanilla BG2:EE spawns (useless for IWD:EE as it doesn't have ARE spawn points):

COPY_EXISTING_REGEXP GLOB ~.+\.ARE~ ~override~
    PATCH_IF NOT ("%SOURCE_SIZE%" = 0) BEGIN
        READ_LONG 0x60 "spawn_off" ELSE 0
        READ_LONG 0x64 "spawn_num" ELSE 0
        FOR (index = 0 ; index < spawn_num ; index = index + 1) BEGIN
            WRITE_SHORT (spawn_off + 0x86 + (0xc8 * index)) 0
        END
    END
BUT_ONLY
interval= integer number

Time interval before creatures from [name_of_section1] will be spawned. Time is counted in relation 1 minute (of real or game time ?) = 900.

The similar definition is given in case of [name_of_section2] or other sections defined by user in [spawn_main] section.

At last spawned creatures identifier definitions.

and change above mentioned value to 1 in order to make the spawn work without delays.

 

edit: updated list of working BG2:EE arguments is available in this post.

Link to comment

Yeah, I understand that, but we need to know more details to make it reliable. First value is Allegiance (EA), last is SPECIFIC. Which ones are between them. If you mess up order (at least the first value based on my tests) than you get infinite spawns, so IESDP can't have such vague explanation.

Link to comment

7 numbers: ea/general/race/class/specific/gender/alignment

 

They don't use faction, team etc. (At least in IWDEE/IWD/HoW).

You can use fewer numbers, they default to 0, this is why there are only five numbers, ending with specific.

Link to comment

Ok, some more notes.

 

Previous reverse engineering suggested interval has a lower cap in pst:

http://gibberlings3.net/forums/index.php?showtopic=23623&p=194547

 

pst also has partyarea and partypoint, used at least for entering tno's tomb. Keeps the party out of it. For some reason, the same nice solution wasn't used for the fortress. Neither for the player maze, but that one has multiple entry points, so it's understandable.

Link to comment

Some more notes based on BG2:EE patch 2.x

[spawn_main]     //section of the file where 'enter' and 'events' type spawns are assigned
enter            //list of all 'enter' type spawns (spawns that should happen when you enter the area)
events           //list of all 'events' type spawns (repeating spawns)
critters         //list of all spawn point names associated with 'events' or 'enter' type spawns
interval         //how much time should pass before engine re-checks conditions for another spawn (measured in game ticks)
spec_var         //if GLOBAL variable referenced here is not set, then the spawn won't occur
spec             //if there is a creature fulfilling the 'spec', then the spawn won't occur. It should be set either to the CRE DV or ID values of the creature [EA.GENERAL.RACE.CLASS.SPECIFIC.GENDER.ALIGN]
spec_qty         //how many creatures will be spawned (spawn point will re-spawn death creature even if other spawned creatures are still alive)
create_qty       //how many creatures will be spawned (spawn point will re-spawn creatures only if all of them are death)
cre_file         //filename of the CRE that should be spawned
script_name      //overwrite spawned CRE script name (DV)
ai_ea            //overwrite spawned CRE ea value
ai_general       //overwrite spawned CRE general value
ai_race          //overwrite spawned CRE race value
ai_class         //overwrite spawned CRE class value
ai_gender        //overwrite spawned CRE gender value
ai_specifics     //overwrite spawned CRE specifics value
ai_alignment     //overwrite spawned CRE alignment value
script_override  //overwrite spawned CRE override script
script_class     //overwrite spawned CRE class script
script_race      //overwrite spawned CRE race script
script_general   //overwrite spawned CRE general script
script_default   //overwrite spawned CRE default script
script_area      //overwrite spawned CRE area script (not remembered after game load)
script_specifics //overwrite spawned CRE specifics script
dialog           //overwrite spawned CRE dialog file
spawn_point      //spawn point coordinates eg. [1200.600:14] (the last argument is facing and can be omitted, several spawn point coordinates can be separated with commas)
facing           //CRE facing after spawn (can be also set via 'spawn_point')
ignore_can_see   //if set to 1 spawn point will be active even if you're in a view of a spawn point (default = 0)
do_not_spawn     //disables spawn point (useless considering there is no way to enable it in-game)

Example usage:

[spawn_main]
enter=ENTER
events=8_HOURS

[ENTER]
critters=SpawnPoint1
interval=1

[8_HOURS]
critters=SpawnPoint2
interval=432000

[SpawnPoint1]
spec = AASIM
cre_file = AASIM
spawn_point = [1200.600:14]
ignore_can_see = 1

[SpawnPoint2]
spec = ABELA
cre_file = ABELA
spawn_point = [1200.600:14]
ignore_can_see = 1

INI spawn points don't work with SpawnPtActivate, SpawnPtDeactivate, SpawnPtSpawn actions.

 

There are several other arguments that either don't work at all (leftovers from other games?) or I don't know what they do or how to use them. If someone has more information regarding them please share the knowledge.

[locals]
spec_area
control_var
ai_faction
ai_team
good_mod
law_mod
lady_mod
murder_mod
death_scriptname
death_faction
death_team
point_select
point_select_var
check_crowd
find_safest_point
save_selected_point
save_selected_facing
spawn_point_global
spawn_facing_global
inc_spawn_point_index
hold_selected_point_key
check_by_view_port
spawn_time_of_day
time_of_day
Link to comment

These creature options are only relevant for PST/PST:EE

good_mod    // Increment global "Good" by specified amount when killed (can be negative)
law_mod     // Increment global "Law" by specified amount when killed (can be negative)
lady_mod    // Increment global "Lady" by specified amount when killed (can be negative)
murder_mod  // Increment global "Murder" by specified amount when killed (can be negative)
Link to comment

Many of these don't work (because they were unneeded in the official campaign). Just talking about IWDEE (and BG*).

It is probably easier to tell which ones from that list actually do more than parsing the .ini:

 

spec_area - it allows defining a rectangular/circle area, where it looks for the specific creature (other spec stuff). So you can theoretically limit your respawn condition to a portion of the area. (Untested).

You can have 2 3 or 4 data elements.

2 - defines a point, checks if the creature is in that point

3 - defines a point and a radius, checks if the creature is in that circle

4 - defines a rectangular area....

 

point_select and point_select_var also work. Also the save_* keywords.

Link to comment

thanks for the info.

 

spec_area - it allows defining a rectangular/circle area, where it looks for the specific creature (other spec stuff). So you can theoretically limit your respawn condition to a portion of the area. (Untested).

You can have 2 3 or 4 data elements.

2 - defines a point, checks if the creature is in that point

3 - defines a point and a radius, checks if the creature is in that circle

4 - defines a rectangular area....

can't get this one to work as intended. I've just tried following variants with spawn_point set to [1200.600] (confirmed that CRE is spawned exactly at that point via ctrl+M)

1. spec_area = [1200.600]

2. spec_area = [1200.600.100]

3. spec_area = [1000.500.2000.1000]

 

Each one results in infinite spawn from the very beginning.

 

edit: also not exactly sure how this can be tested:

point_select and point_select_var also work. Also the save_* keywords.

please clarify. In IWD:EE AR6006.INI uses:

point_select          = R

what is R? What "var" refers to in point_select_var? What those save_* keywords are used for? (can't find any examples of them in IWD:EE, PST:EE and IWD2) Thanks in advance.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...