Instead of having the callbacks in OnStart, you place them in a timer.
void OnStart()
{
TimerCallbacks("cb");
}
void TimerCallbacks(string &in asTimer)
{
if(GetLocalVarInt("Collide1") == 0)
AddEntityCollideCallback("entity1", "entity2", "EventName", true, 1);
AddTimer(asTimer, 10, "TimerCallbacks");
}
void EventName(string &in asParent, string &in asChild, int alState)
{
SetLocalVarInt("Collide1", 1);
WhateverElse();
}
Here's an example I just made up. It would probably work. It just checks if this callback has happened. If it has, it will ignore adding it, but if it hasn't happened yet, it will add another callback for it every 10 seconds. You can change the frequency if you'd like it to refresh faster.
This is one way to counter it but it shouldn't be necessary. I hope we can find the reason for this "bug" whether it is one or not.