AddMovementInput() doesn't work when called from another Actor()/

Hey im trying to figure out why this doesn’t work. What I want to do is move the player in relation to a value input coming from an animation curve, this works on the PlayerCharacter.cpp, although, the animations have the value that I want from the curve. (this prob isn’t the best way but oh well). The Montages and movement is placed on the cpp of the child actor attached to the APlayerCharacter (ABaseWeapon). I want to get the curves and have a reference to the equipping character (var EquippedCharacter in BaseWeapon.cpp). I don’t want to use “AddActorLocalOffset()” since collision from the capsule component in a Character doesn’t get considered.

// BaseWeapon.cpp
void ABaseWeapon::Tick(const float DeltaTime) {
    Super::Tick(DeltaTime);
    // This doesn't work
    EquippedCharacter->AddMovementInput(EquippedCharacter->GetActorForwardVector() ,EquippedCharacter->GetMesh()->GetAnimInstance()<>GetCurveValue(FName("Movement Delta (Forward)")));
}

// PlayerCharacter.cpp
void APlayerCharacter::Tick(float DeltaTime) {
    Super::Tick(DeltaTime);
     // This works
    AddMovementInput(GetActorForwardVector(), GetMesh()->GetAnimInstance()->GetCurveValue(FName("Movement Delta (Forward)")));
}

Tick order perhaps?

If ABaseWeapon::Tick() happens after APlayerCharacter::Tick() or its movement component,. then the move input may simply not get there in time.

shrug