Had quick look on triggers.
- for what you use local integer in 1st trigger?
- read index/deindex methode in a tutorial. you will see what I mean (GUI-tutorial in my signature for example)
- if you have a loop from 1-100 you have to move the "RemoveLocation" action into the loop and not only once after the loop (in more than 1 trigger as I saw)
- one loop starts with 0, all others with 1
- do not use IntegerA for loop, use your own custom integer for it. it's more efficient, and your system should have it's own specific integer
- in first 3 trigger your variables are called something with "dwarven", in other triggers they have prefix "BS_" .. why?
These should be enough for next update. I see this is your first spell here, I wish you good luck with it!
Don't surrender, almost no ressource is at it's best at first few uploads. It always take some time to optimize it.