the Boolean checking branch is failing to do its job

I have a weapon actor which has a mesh for hammer, and also it has some variables containing the damage it deals, stamina consumption, Etc I also added two variables one of them is boolean “is attached” checks if the actor is attached to the player and the other one is niagara effect

(in short I want the weapon to have Daniel gotta effect activated when it is on the scene and not activate when the player pick it up)

when the player pick up the actor, the Boolean “is attached” is assigned the value true, and on the actor begin play event it checks this Boolean and the value is false that mean the player which means it plays the Niagara effect

in theory there are two save measurement I took
the first one is resetting the Niagara effect variable effectively deleting the effect, and also setting the Boolean “is attached” as true before and after adding the actor to the player, therefore when the player pick up the weapon the niagara affect should not play, but it is playing

I also have a debug key in the player blueprint that check the value of the Boolean “is attached” and it is “true” therefore then you got affect should not play When the actor is in the hand of the player but it is playing I’m going insane
my understanding is that when I add the actor to the actor array in the player blueprint it’s adding a new instance with the same values of the variable which checks out because the value of “is attached” is “true”