ExportToolButton Doesn't work

Problem

Export Tool Button Literaly just doesn’t work just throws an error essintialy saying it doesn’t exist

using System.Collections.Generic;
using Godot;
namespace ProjectKazen.Framework.FGAnimation;
[GlobalClass]
[Tool]
public partial class FGAnimationTracks : Resource
{
    FGAnimation Track;
    List<FightBoxKeyFrame> HitBoxDimensionTracks;
    List<FightBoxKeyFrame> HurtBoxDimensionTracks;
    [ExportToolButton]
    Callable Test => Callable.From(Tester);
    public void Tester(){GD.Print("Testing Testing Testing");} 
    public void Init(FGAnimation Track)
    {
        this.Track = Track;
    }
    public FGAnimationTracks(){}
    public void UpdateTrackList(List<FightBoxKeyFrame> HitBoxes,List<FightBoxKeyFrame> HurBoxes)
    {
        HitBoxDimensionTracks = HitBoxes;
        HurtBoxDimensionTracks = HurBoxes;
    }
    
    public void AddHurtKeyFrame(int Frame)
    {
        FightBoxKeyFrame KeyFrame = new()
        {
            Frame = Frame,
            Size = HurtBoxDimensionTracks[Frame].Size,
            Position = HurtBoxDimensionTracks[Frame].Position
        };
        HurtBoxDimensionTracks.Add(KeyFrame);
    }
    public void RemoveHurtKeyFrame(int Frame)
    {
        HurtBoxDimensionTracks.Remove(HurtBoxDimensionTracks[Frame]);
    }
    void UpdateHitBoxesRelativeToFrames(int Frame)
    {
        foreach(FightBoxKeyFrame FightBoxKeyFrame in HitBoxDimensionTracks)
        {
            if (FightBoxKeyFrame is not null)
            {
                if (FightBoxKeyFrame.Frame == Frame)
                {
                    for(int i = 0; i < Track.FightData.HitBoxDimensions.Count; i++)
                    {
                        if (FightBoxKeyFrame.Owner.Equals(Track.FightData.HitBoxDimensions[i]))
                        {
                            FightBoxKeyFrame.Position = HitBoxDimensionTracks[i].Position;
                            FightBoxKeyFrame.Size = FightBoxKeyFrame.Size;
                        }
                    }
                }
            }
        }
    }
    void UpdateHurtBoxesRelativeToFrames(int Frame)
    {
        foreach(FightBoxKeyFrame FightBoxKeyFrame in HurtBoxDimensionTracks)
        {
            if (FightBoxKeyFrame is not null)
            {
                if (FightBoxKeyFrame.Frame == Frame)
                {
                    for(int i = 0; i < Track.FightData.HurtBoxDimensions.Count; i++)
                    {
                        if (FightBoxKeyFrame.Owner.Equals(Track.FightData.HurtBoxDimensions[i]))
                        {
                            FightBoxKeyFrame.Position = HurtBoxDimensionTracks[i].Position;
                            FightBoxKeyFrame.Size = FightBoxKeyFrame.Size;
                        }
                    }
                }
            }
        }
    }
    public void UpdateAllBoxesRelativeToFrames(int Frame)
    {
        UpdateHurtBoxesRelativeToFrames(Frame);
        UpdateHitBoxesRelativeToFrames(Frame);
    }
}

Errors
CS0246: The type or namespace name ‘ExportToolButtonAttribute’ could not be found (are you missing a using directive or an assembly reference?) C:\Users\User\Documents\project-kazen\Framework\Animation.cs\FGAnimationTracks.cs(11,6)

CS0246: The type or namespace name ‘ExportToolButton’ could not be found (are you missing a using directive or an assembly reference?) C:\Users\User\Documents\project-kazen\Framework\Animation.cs\FGAnimationTracks.cs(11,6)

Most likely because by itself like that it doesn’t make sense, it takes an argument that will be displayed on said button.

[ExportToolButton("ButtonName")]

tried that didn’t work


still had a weird error

Could you tell us exactly which version of Godot you are using? (Just saying 4 is not enough, there are a lot of versions for Godot 4)

4.3 is the godot version of choice

ExportToolButton was introduced in Godot 4.4

:sob: thank you for telling me