Although I am still actively working on RS2, I would like to offer my help in finding errors that cause your mod to crash. Just browsing through a few things, I found a number of errors that can be the cause for various types of CTDs.
For example, 'faction_creator' must be the same in both descr_regions.txt and descr_strat.txt. If they are not, you can get random scroll-over CTDs and end turn CTDs which report no error and leave you mystified as to what is causing them.
There are also numerous mistakes in faction ownership of units, particularly in the slave sections, which will cause errors, and there is one in descr_rebel_factions.txt that, if that unit is spawned, you will get an instant CTD.
Also, I noticed this in DMB.txt:
type cretan_guards
skeleton fs_fast_archer,fs_spearman
indiv_range 40
texture cretans, bi/hcs/data/models_unit/textures/unit_crete_guards.tga
texture slave, bi/hcs/data/models_unit/textures/unit_crete_guards.tga
model_flexi bi/hcs/data/models_unit/HEG_crete_guards.CAS
model_sprite 60.0, bi/hcs/data/sprites/cretans_cretan_guards_sprite.spr
model_tri 400, 0.5f, 0.5f, 0.5f
If it is your intention to use one sprite for all units, this is an incorrect way to do it. The model_sprite line in this DMB entry is meant ONLY for a mercenary unit, and it is iffy that that will always work correctly anyway. All other units that would use this model will get a 'game generated' sprite on the fly, and this can cause slow performance and even possibly in battle CTD's. The correct way to do this is as follows:
type bellovaci_infantry ;;;;and Roman auxiliary infantry 1+2
skeleton fs_s1_semi_fast_javelinman, fs_semi_fast_spearman
indiv_range 40
texture gauls, data/models_unit/textures/tone/arverni/bellovaci_infantry_arverni.tga ;;bellovaci infantry
texture germans, data/models_unit/textures/tone/cimbri/bellovaci_infantry_cimbri.tga ;;bellovaci infantry
texture romans_julii, data/models_unit/textures/tone/belgae/bellovaci_infantry_belgae.tga ;;bellovaci infantry
texture boii, data/models_unit/textures/tone/boii/bellovaci_infantry_boii.tga ;;bellovaci infantry
texture thrace, data/models_unit/textures/tone/romans/bellovaci_infantry_roman2.tga ;;;cohors viii belgae
texture slave, data/models_unit/textures/tone/slave/bellovaci_infantry_slave.tga ;;bellovaci infantry
texture romans_brutii, data/models_unit/textures/tone/romans/bellovaci_infantry_roman2.tga ;;;cohors viii belgae
texture merc, data/models_unit/textures/tone/romans/bellovaci_infantry_roman.tga ;;;cohors v gallorum
model_flexi data/models_unit/bellovaci_infantry_high.cas, max
model_sprite 50.0, data/sprites/RS_bellovaci_infantry_sprite.spr
model_sprite gauls, 50.0, data/sprites/RS_gauls_bellovaci_infantry_sprite.spr
model_sprite germans, 50.0, data/sprites/RS_germans_bellovaci_infantry_sprite.spr
model_sprite romans_julii, 50.0, data/sprites/RS_romans_julii_bellovaci_infantry_sprite.spr
model_sprite boii, 50.0, data/sprites/RS_boii_bellovaci_infantry_sprite.spr
model_sprite thrace, 50.0, data/sprites/RS_romans_brutii_bellovaci_infantry_sprite.spr
model_sprite slave, 50.0, data/sprites/RS_slave_bellovaci_infantry_sprite.spr
model_sprite romans_brutii, 50.0, data/sprites/RS_romans_brutii_bellovaci_infantry_sprite.spr
model_sprite merc, 50.0, data/sprites/RS_bellovaci_infantry_sprite.spr
model_tri 400, 0.5f, 0.5f, 0.5f
This is from RS2 DMB. Note that every faction using the texture also has a sprite entry. It can be all the same sprite, but there has to be an entry for each one. An entry for a sprite that does not exist will cause a CTD. Also note this:
model_sprite 50.0, data/sprites/RS_bellovaci_infantry_sprite.spr
model_sprite merc, 50.0, data/sprites/RS_bellovaci_infantry_sprite.spr
Both of these entries are to ensure that a mercenary unit for this model gets 'a' sprite, first, and that it gets the 'correct' sprite.
I learned this from experience, that the first line is 'supposed' to work, but doesn't always work right. IOWs, it is buggy. Adding the second line ensures that this works as it should.
I'll see if I can find out what is causing the 'Barbarian Invasion has stopped working' error, but no promises. I have actually seen this caused by something I did myself...but I forgot what!