Please select what you are reporting on:
Creative
What Type of Bug are you experiencing?
Verse
Summary
My Published Tycoon game has been using verse to display a UI resource counter since Jan 1. 2024. After the most recent Update, the Verse UI doesn’t display in any versions of the game.
Steps to Reproduce
Use this code to create a creative device and link it to a single-player spawner in a level. Run the game and look for a UI of a dollar amount in the lower left corner of the screen above the shield bar.
Expected Result
The result should be a UI of a dollar amount displayed representing the amount of gold possessed by the player.
Observed Result
There is no UI displaying how much gold the player has.
Platform(s)
PC
Island Code
9235-5038-4833
Additional Notes
Here’s my verse creative device code:
using { /Fortnite.com/Devices }
using { /Fortnite.com/UI }
using { /Verse.org/Simulation }
using { /Verse.org/Colors/NamedColors }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/UI }
using { /UnrealEngine.com/Temporary/SpatialMath }
A Verse-authored creative device that can be placed in a level
ResourceUIDevice := class(creative_device):
S2M<localizes>(S:int):message="${S}"
BILLIONARE:int = 1000000000
@editable PlayerSpawners : []player_spawner_device = array{}
@editable RefreshRate : float = 0.1
@editable ConditButton : conditional_button_device = conditional_button_device{}
@editable TrackerBillionare : tracker_device = tracker_device{}
var ResourceTextBlockPerAgent : [agent]?text_block = map{}
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
for(PS:PlayerSpawners):
PS.SpawnedEvent.Subscribe(PlayerSpawned)
PlayerSpawned(Agent:agent):void=
Print("Player Spawned")
#if(MyTextBlock:=ResourceTextBlockPerAgent[Agent]?){}
#else:
AssignUI(Agent)
AssignUI(Agent:agent):void=
Print("Assigning UI")
MyCanvas:=MakeCanvas(Agent)
if:
PlayerUI:=GetPlayerUI[player[Agent]]
then:
PlayerUI.AddWidget(MyCanvas)
spawn{RefreshUI(Agent)}
RefreshUI(Agent:agent)<suspends>:void=
Print("Starting to Refresh")
if(TextBlock := ResourceTextBlockPerAgent[Agent]?):
loop:
Sleep(RefreshRate)
MyResource := ConditButton.GetItemCount(Agent,0)
TextBlock.SetText(S2M(MyResource))
if(MyResource >= BILLIONARE):
TrackerBillionare.Complete(Agent)
MakeCanvas(Agent:agent):canvas=
Print("Making Canvas")
MyTextBlock:=text_block:
DefaultTextColor:=White
if(set ResourceTextBlockPerAgent[Agent] = option{MyTextBlock}){}
MyCanvas:=canvas:
Slots:=array:
canvas_slot:
Widget:=MyTextBlock
Anchors:=anchors{Minimum:=vector2{X:=0.0,Y:=0.0},Maximum:=vector2{X:=1.0,Y:=1.0}}
Offsets:=margin{Left:=96.0,Top:=852.0,Right:=1152.0,Bottom:=100.0}
SizeToContent := true
return MyCanvas