Why does it say that `Textures` is an unknown identifier?

Could someone please help me with this?

using { /Fortnite.com/UI }
using { /Fortnite.com/Game }
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Colors }
using { /Verse.org/Assets }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/UI }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /UnrealEngine.com/Temporary/Diagnostics }

ColorableCrosshairModule := module:

# IMPORTANT(frozenpawn): image_selection definitions
# will use the texture data 'in order' that they're defined.
# For example: The first image_selection, will use the first texture
# value in there and so on...
# If you want to have more than 24 textures, add more textures here,
# Or if you want to change the texture of an existing texture_selection
# change the value in here.
# (frozenpawn): texture - aspectratio(x/y)
CrosshairData : []tuple(texture, float) = array
{
    (Textures.T_Crosshair_1, 49.0/49.0)
    (Textures.T_Crosshair_2, 143.0/139.0)
    (Textures.T_Crosshair_3, 143.0/142.0)
    (Textures.T_Crosshair_4, 144.0/142.0)
    (Textures.T_Crosshair_5, 127.0/127.0)
    (Textures.T_Crosshair_6, 136.0/137.0)
    (Textures.T_Crosshair_7, 92.0/93.0)
    (Textures.T_Crosshair_8, 85.0/88.0)
    (Textures.T_Crosshair_9, 117.0/117.0)
    (Textures.T_Crosshair_10, 120.0/119.0)
    (Textures.T_Crosshair_11, 91.0/90.0)
    (Textures.T_Crosshair_12, 150.0/86.0)
    (Textures.T_Crosshair_13, 125.0/125.0)
    (Textures.T_Crosshair_14, 125.0/125.0)
    (Textures.T_Crosshair_15, 120.0/120.0)
    (Textures.T_Crosshair_16, 120.0/120.0)
    (Textures.T_Crosshair_17, 102.0/101.0)
    (Textures.T_Crosshair_18, 98.0/98.0)
    (Textures.T_Crosshair_19, 111.0/111.0)
    (Textures.T_Crosshair_20, 99.0/100.0)
    (Textures.T_Crosshair_21, 90.0/90.0)
    (Textures.T_Crosshair_22, 146.0/146.0)
    (Textures.T_Crosshair_23, 115.0/115.0)
    (Textures.T_Crosshair_24, 94.0/95.0)
}

# IMPORTANT(frozenpawn): color_selection definitions
# will use the color data 'in order' that they're defined.
# For example: The first color_selection, will use the first color
# value in there and so on...
# If you want to have more than 8 base colors, add more colors here,
# Or if you want to change the color of an existing color_selection
# change the value in here.
# (frozenpawn): R-G-B color data for the color_selection.
ColorData : []tuple(int, int, int) = array
{
    (140, 137, 154),
    (14, 41, 88),
    (6, 230, 0),
    (0, 255, 255),
    (244, 2, 11),
    (228, 20, 203),
    (252, 209, 4),
    (5, 98, 233)
}

agent_data := class:
    var MaybeHUD : ?canvas = false
    var CrosshairRGB : []int = array{255, 255, 255}
    var CrosshairSize : float = 64.0
    var TextureIndex : int = 0

image_selection := class<concrete>:
    @editable
    MaybeSelectionByFire : ?objective_device = false

    @editable
    MaybeSelectionByButton : ?button_device = false

    var TextureIndex : int = 0
    var MaybeMainDevice : ?colorable_crosshair_device = false

    Init(CrosshairDevice : colorable_crosshair_device, Index : int):void=
        Print("Init")

        set TextureIndex = Index

        # (frozenpawn): Objective device is a bit buggy. If we don't call
        # a function on it first. Its events won't fire.
        if (SelectionByFire := MaybeSelectionByFire?):
            SelectionByFire.Heal(1.0)
            SelectionByFire.DamagedEvent().Subscribe(OnDamaged)

        if (SelectionByButton := MaybeSelectionByButton?):
            SelectionByButton.InteractedWithEvent.Subscribe(OnInteractedWith)

        set MaybeMainDevice = option{ CrosshairDevice }

    OnDamaged(DamageResult : damage_result):void=
        Print("OnDamaged")

        if (MainDevice := MaybeMainDevice?, Instigator := DamageResult.Instigator?,
        Agent := Instigator.GetInstigatorAgent[]):
            MainDevice.SetCrosshairTexture(Agent, TextureIndex)

    OnInteractedWith(Agent : agent):void=
        Print("OnInteractedWith")

        if (MainDevice := MaybeMainDevice?):
            MainDevice.SetCrosshairTexture(Agent, TextureIndex)

color_selection := class<concrete>:
    @editable
    MaybeSelectionByFire : ?objective_device = false

    @editable
    MaybeSelectionByButton : ?button_device = false

    var ColorIndex : int = 0
    var MaybeMainDevice : ?colorable_crosshair_device = false

    Init(CrosshairDevice : colorable_crosshair_device, Index : int):void=
        Print("Init")

        set ColorIndex = Index

        if (SelectionByFire := MaybeSelectionByFire?):
            SelectionByFire.Heal(1.0)
            SelectionByFire.DamagedEvent().Subscribe(OnDamaged)

        if (SelectionByButton := MaybeSelectionByButton?):
            SelectionByButton.InteractedWithEvent.Subscribe(OnInteractedWith)

        set MaybeMainDevice = option{ CrosshairDevice }

    OnDamaged(DamageResult : damage_result):void=
        Print("OnDamaged")

        if (MainDevice := MaybeMainDevice?, Instigator := DamageResult.Instigator?,
        Agent := Instigator.GetInstigatorAgent[], RGBTuple := ColorData[ColorIndex]):
            MainDevice.SetCrosshairColor(Agent, MakeColorFromSRGBValues(RGBTuple(0), RGBTuple(1), RGBTuple(2)))

    OnInteractedWith(Agent : agent):void=
        Print("OnInteractedWith")

        if (MainDevice := MaybeMainDevice?, RGBTuple := ColorData[ColorIndex]):
            MainDevice.SetCrosshairColor(Agent, MakeColorFromSRGBValues(RGBTuple(0), RGBTuple(1), RGBTuple(2)))

colorable_crosshair_device := class(creative_device):

    @editable
    DefaultCrosshairClass : class_and_team_selector_device = class_and_team_selector_device{}
    @editable
    CustomCrosshairClass : class_and_team_selector_device = class_and_team_selector_device{}        

    @editable
    ImageSelections : []image_selection = array{}

    @editable
    ColorSelections : []color_selection = array{}

    @editable
    CrosshairStartingSize : float = 64.0

    @editable
    SizeChangeStep : int = 1
    @editable
    RGBChangeStep : int = 1        

    @editable
    ColorWheelObjective : objective_device = objective_device{}
    @editable
    ColorWheelRadius : float = 0.0

    @editable
    MaybeRemoveByFire : ?objective_device = false
    @editable
    MaybeRemoveByButton : ?button_device = false

    @editable
    MaybeRValueDecreaseByFire : ?objective_device = false
    @editable
    MaybeRValueDecreaseByButton : ?button_device = false
    @editable
    MaybeRValueIncreaseByFire : ?objective_device = false
    @editable
    MaybeRValueIncreaseByButton : ?button_device = false

    @editable
    MaybeGValueDecreaseByFire : ?objective_device = false
    @editable
    MaybeGValueDecreaseByButton : ?button_device = false
    @editable
    MaybeGValueIncreaseByFire : ?objective_device = false
    @editable
    MaybeGValueIncreaseByButton : ?button_device = false

    @editable
    MaybeBValueDecreaseByFire : ?objective_device = false
    @editable
    MaybeBValueDecreaseByButton : ?button_device = false
    @editable
    MaybeBValueIncreaseByFire : ?objective_device = false
    @editable
    MaybeBValueIncreaseByButton : ?button_device = false

    @editable
    MaybeCrosshairSizeDecreaseByFire : ?objective_device = false
    @editable
    MaybeCrosshairSizeDecreaseByButton : ?button_device = false
    @editable
    MaybeCrosshairSizeIncreaseByFire : ?objective_device = false
    @editable
    MaybeCrosshairSizeIncreaseByButton : ?button_device = false

    @editable
    DamageDisablingZone : mutator_zone_device = mutator_zone_device{}

    var AgentMap : [agent]agent_data = map{}

    OnBegin<override>()<suspends>:void=
        Print("OnBegin")

        for (Player : GetPlayspace().GetPlayers()):
            OnPlayerJoined(Player)

        GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerJoined)

        ImageSelectionCount := ImageSelections.Length
        for (I := 0 .. ImageSelectionCount-1, ImageSelection := ImageSelections[I]):
            ImageSelection.Init(Self, I)

        ColorSelectionCount := ColorSelections.Length
        for (I := 0 .. ColorSelectionCount-1, ColorSelection := ColorSelections[I]):
            ColorSelection.Init(Self, I)

        ColorWheelObjective.Heal(1.0)
        ColorWheelObjective.DamagedEvent().Subscribe(OnColorWheelHit)           

        if (ResetByFire := MaybeRemoveByFire?):
            ResetByFire.Heal(1.0)
            ResetByFire.DamagedEvent().Subscribe(OnResetDamaged)

        if (ResetByButton := MaybeRemoveByButton?):
            ResetByButton.InteractedWithEvent.Subscribe(ResetCrosshair)

        # (frozenpawn): Bind the increase for R Value.
        if (RValueDecreaseByFire := MaybeRValueDecreaseByFire?):
            RValueDecreaseByFire.Heal(1.0)
            RValueDecreaseByFire.DamagedEvent().Subscribe(RValueDecreaseOnFire)
        if (RValueDecreaseByButton := MaybeRValueDecreaseByButton?):
            RValueDecreaseByButton.InteractedWithEvent.Subscribe(RValueDecreaseOnButton)

        # (frozenpawn): Bind the decrease for R Value.
        if (RValueIncreaseByFire := MaybeRValueIncreaseByFire?):
            RValueIncreaseByFire.Heal(1.0)
            RValueIncreaseByFire.DamagedEvent().Subscribe(RValueIncreaseOnFire)
        if (RValueIncreaseByButton := MaybeRValueIncreaseByButton?):
            RValueIncreaseByButton.InteractedWithEvent.Subscribe(RValueIncreaseOnButton)

        # (frozenpawn): Bind the increase for G Value.
        if (GValueDecreaseByFire := MaybeGValueDecreaseByFire?):
            GValueDecreaseByFire.Heal(1.0)
            GValueDecreaseByFire.DamagedEvent().Subscribe(GValueDecreaseOnFire)
        if (GValueDecreaseByButton := MaybeGValueDecreaseByButton?):
            GValueDecreaseByButton.InteractedWithEvent.Subscribe(GValueDecreaseOnButton)

        # (frozenpawn): Bind the decrease for G Value.
        if (GValueIncreaseByFire := MaybeGValueIncreaseByFire?):
            GValueIncreaseByFire.Heal(1.0)
            GValueIncreaseByFire.DamagedEvent().Subscribe(GValueIncreaseOnFire)
        if (GValueIncreaseByButton := MaybeGValueIncreaseByButton?):
            GValueIncreaseByButton.InteractedWithEvent.Subscribe(GValueIncreaseOnButton)

        # (frozenpawn): Bind the increase for B Value.
        if (BValueDecreaseByFire := MaybeBValueDecreaseByFire?):
            BValueDecreaseByFire.Heal(1.0)
            BValueDecreaseByFire.DamagedEvent().Subscribe(BValueDecreaseOnFire)
        if (BValueDecreaseByButton := MaybeBValueDecreaseByButton?):
            BValueDecreaseByButton.InteractedWithEvent.Subscribe(BValueDecreaseOnButton)

        # (frozenpawn): Bind the decrease for B Value.
        if (BValueIncreaseByFire := MaybeBValueIncreaseByFire?):
            BValueIncreaseByFire.Heal(1.0)
            BValueIncreaseByFire.DamagedEvent().Subscribe(BValueIncreaseOnFire)
        if (BValueIncreaseByButton := MaybeBValueIncreaseByButton?):
            BValueIncreaseByButton.InteractedWithEvent.Subscribe(BValueIncreaseOnButton)

        # (frozenpawn): Bind the decrease for size.
        if (CrosshairSizeDecreaseByFire := MaybeCrosshairSizeDecreaseByFire?):
            CrosshairSizeDecreaseByFire.Heal(1.0)
            CrosshairSizeDecreaseByFire.DamagedEvent().Subscribe(DecreaseCrosshairSizeOnFire)
        if (CrosshairSizeDecreaseByButton := MaybeCrosshairSizeDecreaseByButton?):
            CrosshairSizeDecreaseByButton.InteractedWithEvent.Subscribe(DecreaseCrosshairSizeOnButton)

        # (frozenpawn): Bind the increase for size.
        if (CrosshairSizeIncreaseByFire := MaybeCrosshairSizeIncreaseByFire?):
            CrosshairSizeIncreaseByFire.Heal(1.0)
            CrosshairSizeIncreaseByFire.DamagedEvent().Subscribe(IncreaseCrosshairSizeOnFire)
        if (CrosshairSizeIncreaseByButton := MaybeCrosshairSizeIncreaseByButton?):
            CrosshairSizeIncreaseByButton.InteractedWithEvent.Subscribe(IncreaseCrosshairSizeOnButton)

    OnResetDamaged(DamageResult : damage_result):void=
        Print("OnResetDamaged")

        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            ResetCrosshair(Agent)

    ResetCrosshair(Agent : agent):void=
        Print("ResetCrosshair")

        if (AgentData := AgentMap[Agent], CrosshairHUD := AgentData.MaybeHUD?,
        Player := player[Agent], PlayerUI := GetPlayerUI[Player]):
            DefaultCrosshairClass.ChangeClass(Agent)

            PlayerUI.RemoveWidget(CrosshairHUD)
            set AgentData.MaybeHUD = false

    OnPlayerJoined(Player : player):void=
        Print("OnPlayerJoined")
        DefaultCrosshairClass.ChangeClass(Player)

        if (not AgentMap[Player]):
            if (set AgentMap[Player] = agent_data{ CrosshairSize := CrosshairStartingSize }){}

            if (FC := Player.GetFortCharacter[]):
                FC.DamagedShieldEvent().Subscribe(OnPlayerDamaged)
                FC.DamagedEvent().Subscribe(OnPlayerDamaged)

    OnPlayerDamaged(DamageResult : damage_result):void=
        Print("OnPlayerDamaged")

        if (FC := fort_character[DamageResult.Target], Agent := FC.GetAgent[],
        DamageDisablingZone.IsInVolume[Agent]):
            FC.SetShield(FC.GetMaxShield())
            FC.SetHealth(FC.GetMaxHealth())

    OnColorWheelHit(DamageResult : damage_result):void=
        Print("OnColorWheelHit")

        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[], FC := Agent.GetFortCharacter[]):
            #Print("ViewLocation: {FC.GetViewLocation()}")

            ColorWheelTransform := ColorWheelObjective.GetTransform()

            ViewDirection := FC.GetViewRotation().GetLocalForward()
            PlaneNormal := ColorWheelTransform.Rotation.GetLocalUp()
            Denominator := DotProduct(ViewDirection, PlaneNormal)

            HitDistance := DotProduct(ColorWheelTransform.Translation - FC.GetViewLocation(), PlaneNormal) / Denominator
            HitLocation := FC.GetViewLocation() + ViewDirection*HitDistance

            HitDistanceFromCenter := Distance(HitLocation, ColorWheelTransform.Translation)
            if (HitDistanceFromCenter > ColorWheelRadius):
                Print("Hit outside of the circle, exiting.")
                return

            #Print("Denominator: {Denominator}")
            #Print("HitDistance: {HitDistance}")
            #Print("HitLocation: {HitLocation}")

            # (frozenpawn): Circle location to RGB.
            CircleCenter := ColorWheelTransform.Translation
            PointOnCircle := HitLocation

            # Project the direction onto the circle's plane.
            PointDirection := PointOnCircle - CircleCenter
            Projection := PointDirection - PlaneNormal*DotProduct(PointDirection, PlaneNormal)

            if (ProjectedDirection := Projection.MakeUnitVector[]):
                # X axis of the circle.
                LocalForward := ColorWheelTransform.Rotation.GetLocalForward()
                # Y axis of the circle.
                LocalRight := ColorWheelTransform.Rotation.GetLocalRight()

                CircleX := DotProduct(ProjectedDirection, LocalForward)
                CircleY := DotProduct(ProjectedDirection, LocalRight)                    

                # Calculate the angle in radians.
                var Angle : float = ArcTan(CircleY, CircleX)
                if (Angle < 0.0):
                    set Angle += 2.0 * PiFloat

                # (frozenpawn): Some color wheel rotation.
                set Angle += DegreesToRadians(5.0)

                # Normalize the angle to [0, 1] for hue.
                NormalizedAngle := Angle / (2.0 * PiFloat)

                # Convert the hue to RGB.
                Hue := NormalizedAngle * 360.0
                Saturation := (HitDistanceFromCenter / ColorWheelRadius)
                RGBColor := MakeColorFromHSV(Hue, Saturation, 1.0)

                SetCrosshairColor(Agent, RGBColor)

                #Print("Direction: {PointDirection}")
                #Print("ProjectedDirection: {ProjectedDirection}")
                #Print("Circle (X,Y): ({CircleX},{CircleY})")
                #Print("Angle: {Angle}")
                #Print("NormalizedAngle: {NormalizedAngle}")
                #Print("ColorRGB: ({RGBColor.R}, {RGBColor.G}, {RGBColor.B})")

    RValueDecreaseOnFire(DamageResult : damage_result):void=
        Print("RValueDecreseByFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            DecreaseCrosshairR(Agent)
    RValueDecreaseOnButton(Agent : agent):void=
        Print("RValueDecreaseOnButton")
        DecreaseCrosshairR(Agent)

    RValueIncreaseOnFire(DamageResult : damage_result):void=
        Print("RValueIncreseByFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            IncreaseCrosshairR(Agent)
    RValueIncreaseOnButton(Agent : agent):void=
        Print("RValueIncreaseOnButton")
        IncreaseCrosshairR(Agent)

    GValueDecreaseOnFire(DamageResult : damage_result):void=
        Print("GValueDecreseByFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            DecreaseCrosshairG(Agent)
    GValueDecreaseOnButton(Agent : agent):void=
        Print("GValueDecreaseOnButton")
        DecreaseCrosshairG(Agent)

    GValueIncreaseOnFire(DamageResult : damage_result):void=
        Print("GValueIncreaseByFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            IncreaseCrosshairG(Agent)
    GValueIncreaseOnButton(Agent : agent):void=
        Print("GValueIncreaseOnButton")
        IncreaseCrosshairG(Agent)

    BValueDecreaseOnFire(DamageResult : damage_result):void=
        Print("BValueDecreseByFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            DecreaseCrosshairB(Agent)
    BValueDecreaseOnButton(Agent : agent):void=
        Print("BValueDecreaseOnButton")
        DecreaseCrosshairB(Agent)

    BValueIncreaseOnFire(DamageResult : damage_result):void=
        Print("BValueIncreseByFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            IncreaseCrosshairB(Agent)
    BValueIncreaseOnButton(Agent : agent):void=
        Print("BValueIncreaseOnButton")
        IncreaseCrosshairB(Agent)

    DecreaseCrosshairSizeOnFire(DamageResult : damage_result):void=
        Print("DecreaseCrosshairSizeOnFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            UpdateCrosshairSize(Agent, false)
    DecreaseCrosshairSizeOnButton(Agent : agent):void=
        Print("DecreaseCrosshairSizeOnButton")
        UpdateCrosshairSize(Agent, false)

    IncreaseCrosshairSizeOnFire(DamageResult : damage_result):void=
        Print("IncreaseCrosshairSizeOnFire")
        if (Instigator := DamageResult.Instigator?, Agent := Instigator.GetInstigatorAgent[]):
            UpdateCrosshairSize(Agent, true)
    IncreaseCrosshairSizeOnButton(Agent : agent):void=
        Print("IncreaseCrosshairSizeOnButton")
        UpdateCrosshairSize(Agent, true)

    DecreaseCrosshairR(Agent : agent):void=
        Print("DecreaseCrosshairR")
        UpdateCrosshairRGB(Agent, -RGBChangeStep, 0)
    DecreaseCrosshairG(Agent : agent):void=
        Print("DecreaseCrosshairG")
        UpdateCrosshairRGB(Agent, -RGBChangeStep, 1)
    DecreaseCrosshairB(Agent : agent):void=
        Print("DecreaseCrosshairB")
        UpdateCrosshairRGB(Agent, -RGBChangeStep, 2)

    IncreaseCrosshairR(Agent : agent):void=
        Print("IncreaseCrosshairR")
        UpdateCrosshairRGB(Agent, RGBChangeStep, 0)
    IncreaseCrosshairG(Agent : agent):void=
        Print("IncreaseCrosshairG")
        UpdateCrosshairRGB(Agent, RGBChangeStep, 1)
    IncreaseCrosshairB(Agent : agent):void=
        Print("IncreaseCrosshairB")
        UpdateCrosshairRGB(Agent, RGBChangeStep, 2)

    UpdateCrosshairRGB(Agent : agent, UpdateValue : int, RGBIndex : int):void=
        Print("UpdateCrosshairRGB")

        if (AgentData := AgentMap[Agent], Canvas := AgentData.MaybeHUD?,
        CrosshairTextureBlock := texture_block[Canvas.Slots[0].Widget]):
            if (ImmValue := AgentData.CrosshairRGB[RGBIndex]):
                ValueToSet := Clamp((ImmValue + UpdateValue), 0, 255)

                if (set AgentData.CrosshairRGB[RGBIndex] = ValueToSet){}

                if (R := AgentData.CrosshairRGB[0], G := AgentData.CrosshairRGB[1],
                B := AgentData.CrosshairRGB[2]):                        
                    Color := MakeColorFromSRGBValues(R, G, B)
                    CrosshairTextureBlock.SetTint(Color)

                    Print("R,G,B: ({R}, {G}, {B})")

    UpdateCrosshairSize(Agent : agent, bIncrease : logic):void=
        Print("SetCrosshairSize")

        if (AgentData := AgentMap[Agent],
        CrosshairTuple := CrosshairData[AgentData.TextureIndex],
        Canvas := AgentData.MaybeHUD?,
        CrosshairTextureBlock := texture_block[Canvas.Slots[0].Widget]):

            AspectRatioXOverY : float = CrosshairTuple(1)
            set AgentData.CrosshairSize += if (bIncrease = true)
            then SizeChangeStep*1.0
            else -SizeChangeStep*1.0

            Size := vector2{ X := AgentData.CrosshairSize * AspectRatioXOverY, Y := AgentData.CrosshairSize }
            CrosshairTextureBlock.SetDesiredSize(Size)

    SetCrosshairTexture(Agent : agent, TextureIndex : int):void=
        Print("SetCrosshairTexture")

        if (AgentData := AgentMap[Agent],
        CrosshairTuple := CrosshairData[TextureIndex]):
            CustomCrosshairClass.ChangeClass(Agent)

            CrosshairTexture := CrosshairTuple(0)
            AspectRatioXOverY : float = CrosshairTuple(1)

            # (frozenpawn): Canvas is empty, create it first.
            if (AgentData.MaybeHUD = false, Player := player[Agent], PlayerUI := GetPlayerUI[Player]):
                Size := vector2{ X := AgentData.CrosshairSize * AspectRatioXOverY, Y := AgentData.CrosshairSize }
                Canvas := CreateCanvas(CrosshairTexture, Size)

                set AgentData.MaybeHUD = option{ Canvas }

                PlayerUI.AddWidget(Canvas)                    

            if (Canvas := AgentData.MaybeHUD?,
            CrosshairTextureBlock := texture_block[Canvas.Slots[0].Widget]):

                set AgentData.TextureIndex = TextureIndex
                Size := vector2{ X := AgentData.CrosshairSize * AspectRatioXOverY, Y := AgentData.CrosshairSize }

                CrosshairTextureBlock.SetDesiredSize(Size)
                CrosshairTextureBlock.SetImage(CrosshairTexture)

    SetCrosshairColor(Agent : agent, Color : color):void=
        Print("SetCrosshairColor")

        if (AgentData := AgentMap[Agent], Canvas := AgentData.MaybeHUD?,
        CrosshairTextureBlock := texture_block[Canvas.Slots[0].Widget],
        R := Round[Color.R*255], G := Round[Color.G*255], B := Round[Color.B*255]):

            if (set AgentData.CrosshairRGB[0] = R, set AgentData.CrosshairRGB[1] = G,
            set AgentData.CrosshairRGB[2] = B){}

            ConvertedColor := MakeColorFromSRGBValues(R, G, B)
            CrosshairTextureBlock.SetTint(ConvertedColor)

    CreateCanvas(Texture : texture, Size : vector2):canvas=
        Print("CreateCanvas")

        return Canvas := canvas:
            Slots := array
            {
                canvas_slot:
                    Anchors := anchors{ Minimum := vector2{ X := 0.5, Y := 0.5 }, Maximum := vector2{ X := 0.5, Y := 0.5 } }
                    Offsets := margin{ Top := 0.0, Left := 0.0, Right := 0.0, Bottom := 0.0 }
                    Alignment := vector2{ X := 0.5, Y := 0.5 }
                    SizeToContent := true
                    ZOrder := 0
                    Widget := texture_block{ DefaultImage := Texture, DefaultDesiredSize := Size }
            }

It says that Textures is an unknown identifier. Can someone help please
btw. Textures is at the top.

You need to follow the installation tutorial that goes with this bought snippet, unless you didn’t buy it from the original source ?

I had to change a Folder it’s working now.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.