Getting verse UI/HUD to track and display on all players

The above specifically adds it to JUST the first player.

This may help:

    var PlayersCustomCanvas: [player]canvas     = map{}

[...]

# after building a canvas 'NewCanvas' I give each player their own copy

        for (thisPlayer: Self.GetPlayspace().GetPlayers()):
               # lots of stuff deleted
                if:
                    set PlayersCustomCanvas[thisPlayer] = NewCanvas
                    # lots of stuff deleted
                then:
                    SetCanvasVisiblity(thisPlayer, true) 
                  # lots of stuff deleted

    # hide/display the Custom UI canvas    
    SetCanvasVisiblity(thisPlayer: player, bVisible: logic): void =
        if (CustomCanvas := PlayersCustomCanvas[thisPlayer]):
            if (bVisible?):
                CustomCanvas.SetVisibility(widget_visibility.Visible)
            else:
                CustomCanvas.SetVisibility(widget_visibility.Hidden)

You have to map a canvas to each player, and assign each player their canvas. I cannot recall if I HAD to make the canvas visible at the start, but I turn it on and off, so I may have turned it on at first for clarity.