I want to create my own UI using Verse blended with current Fortnite HUD elements.
I want to show Cutscenes to individual players without showing the Fortnite HUD.
The problems:
In Verse, the HUD elements only effect the playspace - meaning all players are effected - this is bad.
In the HUD Controller Device you can filter by Class or Team, however Class does not work without respawning the player and Team only works if players are the only member of that team!
It is impossible for me to create a clean, custom UI or display cinematic cutscenes without full control of all of the Fortnite HUD elements on a per player basis!
I was looking at this issue too, I found this function which could be interesting :
# Deprecated. This function affects all players. Please use `fort_playspace.GetHUDController().HideElements()`.
# Hides a set of HUD elements.
(PlayerUI:player_ui).HideHUDElements<native><public>(HUDElements:[]hud_element_identifier):void
I’m wondering really hard why it is noted as deprecated, since it looks like it can do it on a per player basis and they don’t seem to have brought a replacement to it.
Did not try the function yet, I might just do.
EDIT: This function does as it says (in the comments), it updates for every players…
Can you not just use the hud device like we do in creative to hide the hud, it can provide a clean screen from many if not all displays. You could even enable/disable as you need displays on/off
@2GHSamburskoy@AxelCapek Thank you for your report! Can you please re-post using the “New Issue” option on the Issues and Bug Reporting forums? Posts with this feature are connected directly into our development team so we can quickly get to them!
Instead of respawning, if it doesn’t take effect without a respawn (which it should) could you not run 2 triggers in sync immediately afterwards, first to save player data (including class) second to load save data? worth a shot if nothing else.
Wanna bump this, we should be able to disable HUD elements on a per player basis in Verse or at least be able to use the HUD controller device to register/unregister different players, rather than having to change their team or class and respawn them.
To workarond this, you can create an empty HudMessageDevice and show it to the screen anytime you want to remove a different hud. The only issue is when having huds on different layers, youll need multiple of these empty Huds. But basically you are going to need to logically keep track of the states of players huds to ensure they are always being drawn the proper one given your situations. You get 5 layers to work with on the hud message device, also, I think you should turn off the priority setting on all the hud message devices, so when you call your blank one to show, it will remove the hud element on the same layer immediately.
Edit: Also, if you have multiple hud elements on the same layer (not even sure if thats possible off the top of my head), this means youll need to redraw those elements on the same layer that get erased if you were still wanting them to display. Ultimately I would try grouping the huds logically so I could wipe away certain layers as a whole, but it should be entirely possible to achieve what you were wanting with the cinematic using this empty Hud technique, as long as you track hud states/logic very carefully.
Also you can have unlimited UI layers by copying (Ctrl+C) an index number and right clicking on the field and selecting paste. Seems the 5 layer limit is only an arbitrary limit of the editor’s property field range.
However, I am here in 2024 as well and only posting to reinforce that: we really do need a cleaner way to do this. In my current project it seems like some tweaks to the hud_message_device would also be useful. Namely an “Invert Class” and/or “Invert Team” flag on the hud_message_device.