hi @x_nerve thank you for your time.
code is not simple actually it has about 500 lines as far as I remember. To make scenario clear here I wrote very simple scripts. I needed to use external link for all python tags because that code is changing time to time (bug or new features etc) so with this way I change code in a single source.
With this entry I had an "infinitely running script" problem and it was solved by removing "c4d.EventAdd()" line from external function. After this I had another issue with python tags. It was triggered whenever is changed in the scene. To prevent that I tried frame triggered python tags so with your answer it mixed with that issue below paragraph is my further step about the main topic)
I've tried frame triggered tags but not by your way. I added null object and attach a python tag on it. This simple code watch current take changing and if take is changed it changes the frame so tags are triggered that way. Because I use takes. every take holds different data values. So when I changed active take, python tags has to be run.
I will check your code as well currently I've been struggling with new issue about takes - user data - scene update :/
thank you again.