It does not get more technical than this I guess.
But its good to have this documented.
When you load a library in the Simple editor (or in the troopType editor or the officer editor) specific data is read from the library, depending on what kind of library it is. See another article here.
However how does the engine decide if a piece of data in your scenario will have to be replaced or if a piece has to be added?
First of all. If you reload a library you should make sure you are substituting an existing library.
If you do not substitute a 2nd copy of the library will be added and no replacements of data will take place.
If you do substitute the paragraphs below will explain how will be decided if it concerns a data replacement or addition.
Condition for all below is that the current library of the data instance is equal to the one you are subtituting.
If you reload a library, but some data instances have been removed from it, these instances will also be removed from your scenario.
IF Library ID# of scenario SFType == ID# of the SFType in the library
IF Library ID# of scenario ReinfType == ID# of the ReinfType in the library
AND IF scenario ReinfType Name == ReinfTypeName in the library
NB: Keep in mind it is not possible for TroopTypes from different TroopTypes libraries to share the same ReinfType.
IF Library ID# of scenario historical unit/model == ID# of the historical unit in the library
NB: Historical units are updated with their models and units are updated with their historical units
NB: Officers assigned to historical units that have been removed from library are returned to the pool
IF Library ID# of scenario officer == ID# of the officer in the library
NB: Yes officers are kept in the same datatype as historical units and models.
IF Library ID# of the scenario Unit == PredefID# of the unit in the library
IF Library ID# of the scenario People == ID# of the people in the library
NB: The only way to actually add People to the scenario through the Simple Editor is to have them already present in the masterfile (like Universals in VR Ruleset) or import them through loading a historical library or map file.
IF Library ID# of the scenario action card == Slot# of the action card in the library
AND IF sceon card name == library action card
IF Library ID# of the scenario event== ID# of the event in the library
AND IF scenario event name == library event name
IF Library ID# of the scenario stringlist== ID# of the stringlist in the library
AND IF scenario stringlist name == library stringlist name
IF name of the scenario libvar == name of the libvar in the library
AND IF type of the scenario libvar == type of the libvar in the library
AND IF valueType of the scenario libvar == valueType of the libvar in the library
IF Library ID# of the scenario SmallGfx == ID# of the smallGfx in the library
AND IF the file name of the scenario SmallGfx == filename of the smallGfx in the library
NB: SmallGfx are removed from scenario if they no longer are present in library, even if they are referenced in libvars or stringlists.
IF Library ID# of the scenario event picture == ID# of the event picture in the library
AND IF the file name of the scenario event picture == filename of the event picture in the library
NB: Event pictures are removed from scenario if they no longer are present in library, even if they are referenced in libvars or stringlists.
This follows a special protocol.
You can only load a map file that has the same width X height as the map of the current scenario.
You can optionally load the Victory Points from the map file.
All hex data including landscape type, labels, rivers, roads, 9 areaslots will be overwritten.
All location data will be overwritten.
NB: A map load can also add or subtitute people.