Another fact.
If server has problems at destroying actors in some early stage of initialization you might schedule destruction with a short LifeSpan and pre-checking for bStatic, bNodelete - (because some mappers are loving to be retarded).
In such cases I prefer the domestic solution - ruining them rather than trying to delete them, remove collisions, tags, disable timers, disable ticks, and leave them to sit there as useless as they are.
Probably I would patch them without iterating using a checkreplacement only when Level starts post some consolecommand. I say I would, because I'm not using those maps - for me they are NONE like they have never existed.
Code: Select all
if ( Level.bStartup ) //Once Only craps
{
if (Other.IsA('BullshitActor') )
Return False; //or other cute thing
// DoRuin(Other);
}
Console Command in InitGame will do them cute and ready for attack... without iterators from any kind.
Information about whatever Level/Actor, chronological order of events:
Events executed natively called:
1 - internal InitExecution():
2 - Assign bBegunPlay bStartup True to Level
3 - Calling InitGame
4 - PreBeginPlay
5 - BeginPlay
6 - Set Zones/Actors accordingly
7 - PostBeginPlay
8 - SetInitialState
9 - Deal with Bases - Actors sitting on other Actors
10 - bStartup becomes False right now
11 - Rearrange actors - bStatic ones goes first - if you destroy their bStatic in an early stage they won't be in account here.