If I am understanding your question correctly, you may want to map a canvas to each player…
var PlayersCustomCanvas: [player]canvas = map{}
…you assign a canvas to each playing using PlayersCustomCanvas and hide/display it using something like…
# 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)