I've been having trouble getting something i'm working on to run properly, so i changed about a bit in the code, and thanks to that i found a bug.
Let me explain the bug. Most of what is going on here sounds really random, but it's part of beta testing:
I have two instances of the DotNet object. UltraTimer and BattleSystem.
Both UltraTimer and BattleSystem trigger an associated immidiate condition called "Timer" (this is part of the bug, as you will soon see). The condition is named "Timer" for both instances.
In the code for UltraTimer there is a timer that counts down from 500 ms to zero and then triggers a "Timer" condition. I start this procedure with the M button. Once the condition triggers, it is supposed to increment a visible counter by 1.
In the code in BattleSystem i have a function called "process()" which is called upon me pressing N. The function immidiately triggers an immidiate condition called "Timer" which in turn in the event editor is set to add a bit of text to a rich edit...
HOWEVER. Both triggers actually trigger the SAME event.
Regardless of which dotnet object calls the immidiate condition "Timer", the one for the UltraTimer object is the one that actually triggers.
It seems that if there are multiple dotnet objects their conditions will interfere with each other.
This is easily observed as i rename the condition in BattleSystem to "Timer2" and rename the appropriate trigger in the editor to "Timer2" it stops working entirely. At that point, only the trigger from UltraTimer will work.
EDIT: HOW TO REPLICATE
Create two dotnet objects
Create two counters
Make a function in each object to trigger an immidiate condition
Create: Add 1 to counter A when Script A triggers
Create: Add 1 to counter B when Script B triggers
Create: Press Z - run Script A function
Create: Press X - run Script B function
Only one trigger will run
If you set both scripts to activate by the same key, the trigger will actually run TWICE thus incrementing the counter with two units at a time.
EDIT: File uploaded