#enfusion_gui

1 messages ยท Page 3 of 1

warm junco
#

Do we have a list of what rich text is supported?

worldly sphinx
#

idk about your use case for the panel widget tho

warm junco
#

ty for the link, thought we had no wiki pages for the widgets

#

I was just wondering what the panel widget did tbh

worldly sphinx
#

idk I feel like its a widget that is not a layout widget but also not a text widget or something

#

it has border styles tho

#

so maybe encompassing things in like a border is the use case

worldly sphinx
#

edit box filter has a max length limit, character validation, reverse character validation, numeric and ascii validation, but doesnt have minimum length validation pained

warm junco
#

Are image widgets special in that they can't coexist with other widgets in size layout widgets?

#

Its solved by more nesting, but it seems odd idk

oblique patrol
#

Hello, where are the files for this description?

warm junco
#

How do I get a slot from a Widget? I made a prefab of a widget, which is just a RichTextWidget with a UniformGridWidgetSlot attached (picrel). I want to populate a uniform grid widget component & change the row values of each widget, meaning I need to somehow get the UniformGridWidgetSlot so I can call its functions

#

wait, might've figured it out. didn't notice they were static methods

ashen urchin
#

I'm learning though osmosis ๐Ÿ™‚

ashen urchin
#

@warm junco is their an easy way to tell what "widgets" are from prefabs?

warm junco
#

Only way I know how to see when a widget is from a prefab is in this screen

#

if its from a prefab that prefab column will have something in it

ashen urchin
#

I just noticed that wasn't the name of the thing - eventhough it matches ๐Ÿ˜›

warm junco
#

but "prefabs" here actually just means .layout

#

so you can paste layouts into layouts and its considered a prefab then

ashen urchin
#

Man, blind as a bat. My bad ๐Ÿ˜›

#

Yea, I'm trying to edit and getting yelled at, because they are nested.

#

I'm guessing thats also why some things wont delete?

warm junco
#

unsure, I haven't encountered that

#

I only modified one original prefab while testing before I've now moved onto just making my own, since my widget has little complexity

ashen urchin
#

GUI doesn't look like it should be too hard. Did you ever find a master widget list? I tried searching.

warm junco
#

wdym, like all the possible widgets?

ashen urchin
#

Like what they all do

warm junco
#

oh.... no

#

after staring at it all day its started to make sense

#

something about GUI editing with a hangover

#

not sure why but it let me lock in

ashen urchin
#

I'm a few days in, but I think its coming along as well.

Drinking and coding is dangerous behavior ๐Ÿ˜›

worldly sphinx
#

that's weird, I never edit it sober

warm junco
#

First thing i'm doing as a scrum master is requiring pre-scrum shots

ashen urchin
#

That would have improved my workplace

worldly sphinx
#

then remove scrum

#

more like

#

scrub master

ashen urchin
#

Bacon is on the sauce ๐Ÿ˜›

warm junco
#

this isn't right but this isn't wrong... I've at least gotten somewhere with this

#

Not even sure where the hell 0 came from

ashen urchin
#

Better then me. I'm fighting with the inventory screen ๐Ÿ™‚

warm junco
#

we're so back, once I get this layout sexy I can actually do the fun part which is coding again

ashen urchin
#

This is all for your master stats stuff?

warm junco
#

Ideally yeah, I want to make it look cool, but I forgot how much I had hated UI design in college

#

loosely basing my design decisions off of the COD4 stats screen

ashen urchin
#

Well this also painful UI that doesn't render until your ingame.

warm junco
#

Yeah you can use the live preview but its kinda jank

worldly sphinx
#

I would suggest trying to keep to the arma reforger style

ashen urchin
#

Have you seen the career stats menus they are going to come out with at somepoint it seems?

worldly sphinx
#

or dont, actually

warm junco
#

Probably? I can't remember it though, I think i've opened 80-90% of the layout files

worldly sphinx
#

maybe you can make it better

#

in my other projects I like using widgets with icons for stats

warm junco
#

The "reforger" version that I had taken from the debriefing screen is just lines of text

#

Yeah, I want to add icons but I have yet to figure out how the image sets work, atm I'm getting the formatting right

#

but I do intend to have some pics in there

worldly sphinx
#

something like this but in Reforger I would not put border inbetween them

#

I want to do similar widgets for my next admin tools version

ashen urchin
#

They look intresting ๐Ÿ˜›

worldly sphinx
#

something like this would be something like

- HorizontalLayoutWidget
  - VerticalLayoutWidget (or) PanelWidget (size fill/auto)
    - ImageWidget (align to top)
  - VerticalLayoutWidget  (size fill/full)
    - TextWidget (label)
    - TextWidget (value)
#

could wrap the whole thing in a panelwidget or framewidget for padding I guess

#

so without border inbetween I want to do something like this actually

#

better example than the last one

#

whether my idea will work in reforger or not we'll find out soon enough

#

also why is success notification blue and not green

warm junco
#

Just realized I don't need to restart my workbench client if i'm creating the widgets on runtime....

#

so much time saved

warm junco
#

we ball

ashen urchin
#

Looking sexy

warm junco
#

Yeah once I fix them floating points, convert to km, and then work maybe on the font

ashen urchin
#

Comic Sans baby

warm junco
#

Papyrus MS

warm junco
ashen urchin
#

RIP wildlife ๐Ÿ˜†

warm junco
#

Fortunately the for the wildlife they're not counted

ashen urchin
#

Unacceptable ๐Ÿ‘Ž
I want my BTR going through a cow to count.

warm junco
#

all the entirys & even how stuff is tallied is configurable in the attributes

#

the total kills & K/D widget are the same, just toggled most of the flags off

#

Forgot to show the medical one as well, which I think a few ppl probably deeply care about and most care none at all

worldly sphinx
#

which of those are global and which are server?

ashen urchin
#

You might as well load up all the stats. People love stats.

Later when I finally get somewhere with my code, we can make these global stats in my game mode ๐Ÿ˜

warm junco
#

All the stats are sent from the server during OnPlayerKilled atm. At least in my workbench, the client doesn't seem to keep accessible records of its events. I found it easier to just process the data & send the array<float> back to the client

#

I still need to test and make sure all the ones i'm referencing actually get updated. The ones that don't I'll probably end up doing the math client side or dropping/substituing the feature

#

I need to investigate the Infantry/Logistic/Medical points specifically.

#

SPPOINT0-2

#

This'll all be free to use, either just plain apl or apl-sa I think

ashen urchin
#

Regardless pretty cool.
Are those lines generated in script or is everything manually placed by hand?

warm junco
#

this should ideally given an idea of what its strucuted like

#

the base widget

#

line-item / entry in the base widget

#

Then I have two prefab richtextwidgets that I insert as Fields & Values in that Uniform Grid

#

I may have to change the base widget a bit though, I need it to be spread a bit horizontally as theres a vertical limit to the comp the jounrals are inserted into

#

There shuld be more below that red line + padding so that the dark doesn't meet the light like that

#

If this ends up being usable for others I would hope to add more datacollectormodules to try and get new stats from players

ashen urchin
#

And I guess in code you're just making new instances and they end up just stacking on themselves based on the params locking the view?

warm junco
#
//! Build the individual stat row widgets
    void FillStats(Widget wStatsLayout)
    {
        STH_ClientComponent client = STH_ClientComponent.Cast(GetGame().GetPlayerController().FindComponent(STH_ClientComponent));
        if(!client)
        {
            Print("STH_JournalEntry::FillStats could not find STH_ClientComponent", LogLevel.ERROR);
            return;
        }
        array<ref STH_StatisticBaseClass> statistics = {};
        array<float> stats = client.GetStats();
        if(!stats)
        {
            Print("STH_JournalEntry::FillStats stats == null",LogLevel.ERROR);
            return;
        }
        //TODO: store the stat widget classes in the config rather than the clients. Same with the tile layoutss
        int statisticsCount = client.GetStatWidgets(statistics);
        if(statisticsCount <= 0)
        {
            Print("STH_JournalEntry::FillStats No stat widgets received", LogLevel.ERROR);
            return;
        }
        
        ResourceName statLayout = client.GetStatLayout(); //TODO get m_sEntryLayoutCustom?
        
        foreach (STH_StatisticBaseClass stat : statistics)
        {
            stat.InitWidget(stats, wStatsLayout);
        }
    }
#

stats inserted in the foreach at the end

#
    void InitWidget(notnull array<float> stats, Widget containerWidget, bool lastWidget = false)
    {
        Widget entryWidget = GetGame().GetWorkspace().CreateWidgets(GetStatScreenLayout(), containerWidget);
        m_mEntries = new map<string,string>();
        CalculateStats(stats);
        SetupWidget(entryWidget);
        
        //TODO insert stat separator prefab
        if(lastWidget)
            Print("STH_StatisticsBaseClass lastWidget!!!");
    }
#

CalculateStats will populate a map with formatted strings which are then inserted during setupwidget

#

So its all just prefabs

ashen urchin
#

So I'm a lot closer than I think I was okay. I'm pretty much at the same place. But I wasn't getting the results I wanted, but I have to fight with containers more.

#

Thanks for the info. Maybe tomorrow I'll actually have a breakthrough

warm junco
#

gl, the UI stuff has become weirdly fun once it clicks a bit

#

its toggleable whether it only shows friendly bandages, friendly (self) or friendly + self

ashen urchin
#

I bet. I'm not there yet ๐Ÿ˜‚
After this then it's modeling learning ๐Ÿ˜‚

warm junco
#

modeling is a pain, I don't think I can ever get into it

ashen urchin
#

I heard liquor helps ๐Ÿ˜†

warm junco
#

I used to do UV maps for friends when I was in highschool, but anything beyond that had me grinding gears

warm junco
#

I think i've come to the conclusion that a horizontal<vertical> layout beats the gridlayout component

ashen urchin
#

What's the difference? Grid as far as I know is made for inv?

warm junco
#

Uniformgridlayout is nice, it does what it says, aligns everything & has them size themselves nicely. Problem is that widgets that need less space are given all the space they can take. (expected and good behavior)

But not what I needed, so I jumped for the grid layout and its honestly just a pain to setup. Couldn't get it to left align & fill for the contents of column 0, and then right align the contents of column 1 while only auto sizing it. I'm sure its got its own uses, but it was a bit opaque when trying to figure out how to leverage it properly

#

Unsure if its 'made' for inventory, its there because its a common/necessary widget I figure

ashen urchin
#

You would know better then I ๐Ÿ™‚

warm junco
#

But a vertical layout that I insert horizontal layouts into gives me the sizing solutions that are basically what i'm looking for. Although I did love the uniform grid layout, there are something that I want to be a bit less uniform

#

There are times you just want uniform columns or uniform rows

ashen urchin
#

Vert and Horz layouts are just containers with props to control the aformentioned, right?

warm junco
#

They just ensure the order between your widgets really, but it can be made to work for what i'm doing.this is one row (horizontal layout) in my v layout (breakdown container)

#

but when you setup your sizing slots right it functions similarly enough

ashen urchin
#

what do you mean "the order"?

warm junco
#

Item0,
Item1,
Item2,

#

you set Z order (misleading name) to set their order in the widget

#

so a vlayout item 0 appears at the top (competes with other order 0 items), order 1 is below 0 &c

ashen urchin
#

lol, that is confusing ๐Ÿ˜›

warm junco
#

top->bottom left->right

#

probably not explaining it clearly, it makes more sense once you've fiddled with it

ashen urchin
#

I guess they fight for space, and the result, is proper order.

#

and if you set the "fight order" they align properly. makes sense

#

They just have code that says "don't draw on top of each other" so the result is ordered

warm junco
#

I needed this type of spacing in my rows in the grid, couldn't figure out how to accomplish that with the grid layout

#

With the uniform grid layout, this widget would've just been split equally in half meaning my field text got cutoff

ashen urchin
#

I think I feel ya. I'm going to pour over your info from last night and see if I can't get my refinery operational this weekend ๐Ÿ™‚

#

Thanks again. Appreciate the effort and info.

warm junco
#

lol np, this channel is gonna hopefully just turn into the non-existant wiki page for ppl to search through

ashen urchin
#

I might breakdown and build a proper semantic modding wiki for Reforger, if I really get into it. I'm trying my best to avoid that, and just focus on my own learning ๐Ÿ˜›

warm junco
#

Yeah I thought about keeping some clear notes, but I figure the BI dev who wrote the gui widgets or has worked on the system will one day provide a clear breakdown of widgets. Atm it's partially guesswork about whether I'm doing things 'right'

worldly sphinx
#

I have no freaking clue how the grid layout widget is supposed to work

#

but I think if you have two elements with size set to fill and equal weight then they should take equal space

warm junco
#

ong its terrible, I sat there for 20 minutes trying different ways of getting what I wanted out of it

worldly sphinx
#

so to change the ratios youd change the weight

warm junco
#

i'll never fw this again

#

nvm hated on the grid component too quickly, might get it now

#

we ball

ashen urchin
#

"I'll never touch it again"
"NM we best freinds now"

warm junco
#

Only thing I can say is I have never appreciated my git history more than now

worldly sphinx
#

99% of my commits just say update

warm junco
#

I've been naming most of mine, but all the early commits just say Update/Comments/Formatting with no info

#

classic 'note'

#

GitHub Desktop really hasn't come far since they released it, still can't believe the app is this limited

#

still worse than the githubcli they made tho

#

anyone had this happen? size layout is just being disregarded in the grid?

#

Gridlayout, not uniform

#

Found the panel widget works best in an overlay, not as as a wrapper for another element.

worldly sphinx
#

like a background border type thing yeah

#

I think they use it for buttons

warm junco
#

Only thing to be desired would be control over the type of border? I guess at a point I'd have to use an alpha mask

worldly sphinx
#

there are several styles

#

theres a dropdown

#

you can make your own styles but I forgot how

warm junco
#

yeah I went through them all, meant more the pixel width

#

I was just looking for how to do that

worldly sphinx
#

oke hold on

#

UI/Styles/default

warm junco
#

these options are nice, but a 2-4px version would also be cool

#

baller

worldly sphinx
#

or maybe Custom not Default

#

override it and add a style to panelwidget

#

see if you can do it without crashes

warm junco
#

I think i've crashed nearly 6-7 times already today, won't feel any different

worldly sphinx
#

those are rookie numbers

warm junco
#

surprisingly not that hard, UI could definitely be improved for making styles, but it works

#

never change

#

love you workbench

#

The jedi don't teach you this, but if you right-click in the image set while editing a style it will fill in the currently selected entry with whatever you have selected last

#

Anyone know a method for setting the widgets style during runtime? I can make 9 different layouts, but if I could just call a Widget::SetStyle(...) it would be cool. We have string Widget::GetStyleName()

ashen urchin
#

Getting a button to work should be just a call to action manager? GetGame().GetInputManager().AddActionListener("CloseINV", EActionTrigger.DOWN, Action_CloseInv);

naive marlin
#

What is needed for Slot_VON (When inserted by HUDManager)?
It constantly throw error, but everything in UI is works:

WORLD        : UpdateEntities
 RPL          : rpl::Pip::ProcessNetToGame
  SCRIPT    (E): Virtual Machine Exception

Reason: Index out of bounds.

Class:      'SCR_VonDisplay'
Function: 'Get'
Stack trace:
scripts/Game/UI/HUD/SCR_VonDisplay.c:162 Function GetWidget
scripts/Game/UI/HUD/SCR_VonDisplay.c:190 Function OnReceive
scripts/GameCode/Network/SCR_VoNComponent.c:73 Function OnReceive
#

And it's throw error only on Server in Workbench (At least in Workbench)

ashen urchin
#

Somebody was saying the other day that VON was locked down and not able to be enabled or something like that.

naive marlin
#

It just spam with error on Workbench only (Peer clients don't spam) on begin of receiving

#

So i think i can ignore this...

ashen urchin
#

Maybe. I wouldn't know without looking at it. Perhaps what the person was talking about is background code engine is locked? Are you saying it transmits and everything is good and dandy?

ashen urchin
#

@warm junco some menu inspiration. Very Reforger mod like ๐Ÿ˜

warm junco
#

until we get the ability to set styles in a panel widget, this is how you do selective bordering btw

#
enum STH_BordersUI
{
    STH_LEFT,
    STH_RIGHT,
    STH_TOP,
    STH_BOTTOM,
    STH_ALL
};
    protected void DecoratePanel(Widget panel, STH_BordersUI border, bool Do2px)
    {
        panel = panel.FindAnyWidget(layers[border]);
        if(Do2px)
            panel = panel.FindAnyWidget(px2);
        else
            panel = panel.FindAnyWidget(px1);
        panel.SetVisible(true);
    }
worldly sphinx
#

holy smokes

#

my condolences

warm junco
#

at this point I don't even remember what I was trying to make it look like yesterday, might not ever even use this I was just frustrated that we don't have a basic feature office 1997 had

ashen urchin
#

Making something with a click drop down probably is a bad idea for console players. What's the equivalency? Tabbed windows? some type of button to flip something? I'm not a console person.

Also how bad is typing on a console/in reforger?

warm junco
#

for some of the imagesets there is already a texture made that can be used in the imagewidget; however, some of the imagesets do not have an edds already made that hsa the image separated. How do I go about making one part of an imageset into an image... Or better yet, can I use an image in an imageset in the imagewidget?
Right now i'm specifically asking about Medical-icons.imageset's Bandage_UI

half solstice
ashen urchin
#

@primal phoenix I'm implementing what you see into reforger. Its a refinery, but its PC style from 2014. I'm just trying to remind myself of how console players interact with menus, to get a feel for how it needs to be designed to fit the Xbox community.

primal phoenix
ashen urchin
#

rgr. no rush

worldly sphinx
#

how do I find which UI layouts use a script?

plucky tree
#

hey there,
using the Localise Selected File plugin on a .layout file, I'm getting a CTD.
Should I do it another way ?

warm junco
warm junco
#

Anyone know what 'num' means in this? Does each image widget keep eight images cached and I choose which index to save it into?

#

GUI pic added for engagement

worldly sphinx
#

I think that is the usage yes, you can have one image widget that is used to display a few different images

warm junco
#

Baller, ty

worldly sphinx
#

I dont know what the use case is though

#

maybe a status icon?

#

that changes depending on something

warm junco
#

I'd imagine something like loading icons, or yeah status icons

#

something like bleeding, bleeding glow effect, bleeding holo image &c

quartz stone
#

Hey, if i create a Widget from the original MapLayout:

GetGame().GetWorkspace().CreateWidgets("{0651202E9F2646DE}UI/layouts/Map/Map.layout");

It will render as usual. But if i copy the MapFrame and MapWidget to my own Layout, the map stays black. Any knowledge about this?

ashen urchin
#

Copying doesn't carry over content and properties well - that or, it needs to "Refresh" as its dynamic content maybe?

quartz stone
#

i double checked the properties and they are all the same ๐Ÿ˜ฆ

ashen urchin
#

@primal phoenix Heres your xbox powered window we talked about. Gernades are placeholders. Resources in the left, better resources on the right. I'll figure out quick keys for xbox for "maximum" add and remove.

quartz stone
#

Is there any Docu or Sample how to make a RenderTarget which use the mouse cursor? My Cursor always using the whole Screen size and not only the Render Target. So, also the cursor positions are wrong.

nimble sapphire
#

Was thinking about doing the same, how bad is it?

#

Haven't looked into the notification code yet.

worldly sphinx
#

so now I just send color, text, resourcename of the imageset and icon name

nimble sapphire
#

BI should add something like this

ashen urchin
#

If I want 3 items to share the screen, a Horiz layout will "float" them left, right, all, small, center. But if I want them not floating (due to small screen overlap behavior) I use a modified grid layout?

wooden moss
#

would anyone potentially know why I have a random Text Widget popping up here? the one in white. It appears when I call my layout but I dont have a second text widget

ashen urchin
wooden moss
ashen urchin
#

I have item preview widgets, being dynamically created (like inventory) what's the easiest way to embed data into the dynamic UI elements, so I can query a dataset/know what button was clicked.

ashen urchin
#

Since this is a strongly typed lanuage the ideal way I assume is to make a subclass and add a value, then call "myCustomWidget of parent widget" and update the member element. A more hacky/simpler way is to just edit the widgets name dynamically and embed the data. Additionally: PreviewWidgets are sealed so you can't make children. Which would create more class complexity as you would need to make a encapsulating parent and then calls like "is Inherited" will start failing - ect.

crimson plover
#

Anybody knows why reforger brokes UI image coloring?
Color become more pinky

ashen urchin
#

Fancy artwork

deep pawn
crimson plover
deep pawn
#

any reason why this is not default @static raven ? every time you import an img you have to do this or it has a washed effect

deep pawn
static raven
#

any kind of mask texture actually

deep pawn
#

i see thx

static raven
#

My guess is then, that what is mostly going to be having them in mass was decided for default

#

To reduce file size of the paks

deep pawn
#

yeah it make sens i just dont know shit about it so was wondering as my use case was only simple images shown in gui ๐Ÿ™‚

wooden moss
#

probably should have asked before I went and did it, but is this how your supposed to make button gui's? just layers of img widgets and text? or is there a better way?

ashen urchin
#

The way the interface for the inventory menu does it is by swapping out the icon and the text I believe. This would probably be the manual way. And you would just hide and unhide what you want displayed.

wooden moss
#

well I would want all of those up at the same time on the ui, gonna make it look a little better but that is part of the controls for my build system

#

dunno why I put wasd though, meant to be arrow keys. I was tired when I threw it together I guess

#

oh also, how would I go about making my text here take up 2 columns in my grid layout?

#

oh neat, found it

wooden moss
#

not the prettiest but itll do for a 15 minute creation

wooden moss
#

honestly might remove that outline from the text and just make the text white, might look better

ashen urchin
#

Yeah I tried to match the look and feel when possible. but you're doing better than me. You got this figured out quickly

wooden moss
#

is there a simple way to center GUI stuff?

#

in frames and in the root

ashen urchin
#

Use the Center thing in slots, and disable all the children from forcing their will. GUI is though hierarchy

wooden moss
#

how should I be setting up my chimeraInputCommon.conf context? I havent even activated the context yet and it seems to disable most other input, atleast movement, it also doesnt display the users cursor

ashen urchin
#

I managed to code myself into a bit of a corner. I have a system that manually interacts with widgets, based on the name of the button, within an InventorySlotUI structure, via/using "under cursor".

Works fine for adding. But to enable drag, the code (InvMenuUI) wants a m_pSelectedSlotUI or m_pFocusedSlotUI, which is done by a SCR_InventorySlotUI which needs a SCR_InventoryStorageBaseUI which is a "loot storage /container grid".

I now realize I should be using SCR_InventorySlotUI, but I only need one property and its a sea of bloat, but if I want dragging, I'll need it's few more props. Not a huge deal.

The big problem is the loot storage. My central UI elements are orphans unconnected and visually no place for this grid either.

It looks like I can just hack the requirements to bypass the need for the SCR_InventoryStorageBaseUI, but its a lot of overrides, so I figure I'll ask before I go down this long road, or before I go and try to "virtualize" with a custom SCR_InventoryStorageBaseUI ๐Ÿ˜

static raven
worldly sphinx
#

is there a guide on how to add my own hud to vehicles?

#

I'm interested in the part that tells me how to get my layout to show up and how to get it from script

#

I added it as an scr infodisplay but onstartdraw doesnt seem to be called when i get in vehicle

#

Do i need a car controller component?

#

ok looks like I do, unfortunately the game crashes when I press play if I add a car controller component I got this to work but SCR_InfoDisplay.GetRootWidget() returns null now, even though I can see my layout on the screen

worldly sphinx
#

centering larger image in smaller container with clipping is not possible?

static raven
worldly sphinx
#

yes

static raven
#

There was a nice way to do so in DayZ Enfusion Layout system, can't seem to find the same in the newer system here

#

unfortunate

#

You will need to do it on scripts I guess

worldly sphinx
#

Wtf

#

What about without tiling then

#

I'll just make an image wide enough

static raven
#

Then wrap it in an horizontal layout with

#

if you then tile it

#

You can use the padding values on the image to move it around

#

You can also do it with a frame as container

worldly sphinx
#

hmmm oke I will try that thank you

static raven
#

@worldly sphinx Otherwise you can script UV changes on the image widget with ImageWidget::SetUV

#

Which will move it around, taking into account tiling

worldly sphinx
#

first I need to figure out how to make it stay centered when UI is resized

#

then I can worry about making it work

static raven
#

what I mentioned will do it ๐Ÿ™‚

worldly sphinx
#

great, should be all I need then

static raven
worldly sphinx
#

yeah its not enabled

static raven
#

also, your image should not be on fill = stretch

#

tiling*

worldly sphinx
#

tiling is set to none

static raven
worldly sphinx
#

yep

static raven
worldly sphinx
#

this is what I see in preview

#

this is what I see in game

#

maybe problem is in parent slot?

static raven
#

on the image

#

also make sure that under transform group, in slot the size mode is auto

#

and in the layout widget, for clipping to be true for the clipping

worldly sphinx
#

its centered in preview but not in game

#

well, it's not centered in game and in live preview, in the edit window it is

static raven
#

Maybe some component is messing with it

worldly sphinx
#

Maybe I should just bake this out of text widgets and panel widgets instead of using an image

static raven
#

I can't really tell you what is going on unless I have the layout itself

#

Because of all the scripted chaos that is common with the components

worldly sphinx
static raven
#

And how some, affect their children even when appended later on dynamically

worldly sphinx
#

forgot what I pressed but I lost the alignment options for the horizontal layout widget

static raven
#

you pressed delete on the slot I guess

#

do ctrl + z

worldly sphinx
#

I put it in an overlay widget to get those back but it doesnt matter, it never centers anyway

worldly sphinx
#

@sweet heron hello can I use the way you have your widgets laid out for my heading compass thingy?

worldly sphinx
sweet heron
hallow kayak
worldly sphinx
surreal rover
worldly sphinx
hallow kayak
worldly sphinx
hallow kayak
# worldly sphinx no problem, people seem to be quite starved for drones, and it reminds them of d...

Cause BI chose to set the game in the Middle Ages while most people are looking for contemporary equipment and weaponry. Anyway yes, if I have to be honest it reminds me a lot of the drones from Ghost Recon Wildlands and Breakpoint, which in my opinion is a compliment! Anyway it's a nice job, especially for how it's piloted, it seems much more interesting than the helicopter piloting system, which is definitely limited.

storm tusk
#

Is there a good way to make the item preview

#

or is it a constant struggle to adjust x y z until the thing is the right color

storm tusk
#

man struggling to get this to color correctly in the inventory

storm tusk
#

got it good enough for government work

hollow heath
#

Some sort of hardcore hax0rs fixing color with xyz meowsweats

worldly sphinx
#

obviously preview world should include an 8K HDRi environment

wooden moss
#

is there a wiki or anywhere that lists what each subwidget in the gui editor is meant for?

#

for instance, PanelWidget? WindowWidget?

worldly sphinx
#

wtf is a window widget

#

is that new?

wooden moss
#

oh neat, there is also SCR_PagingButtonComponent, will also be useful in the future

ashen urchin
#

Yea the backround is a image, mostly faded in most UI's. There is a menu widget starter, that gives you the whole base structure to start with.

marsh anchor
# ashen urchin If you haven't seen it, this is cool https://enfusionengine.com/api/redirect?to=...

These aren't just images.
https://enfusionengine.com/api/redirect?to=enfusion://ResourceManager/~ArmaReforger:UI/layouts/WidgetLibrary/Showcase/LabeledWidgets.layout

https://enfusionengine.com/api/redirect?to=enfusion://ResourceManager/~ArmaReforger:UI/layouts/WidgetLibrary/Showcase/UnlabeledWidgets.layout

Oh, what delicious things there are here!
SCR_ComboBoxComponent "{546B1D464BC32853}" {
m_bUseLabel 0
m_aElementNames {
"Everon" "Kolgujev" "Malden" "Nogova" "Sahrani" "Chernarus" "Takistan" "Zargabad"
}

ashen urchin
#

Old map names. Nothing spooky or indicative.

wooden moss
#

would anyone know what m_wList is? or what it should be? SCR_ListBoxComponent is complaining about it being null

wraith shore
#

Iโ€™m having trouble trying to find how to change in-game faction name, everything I have seen or tried isnt working or is a bit vague. I simply want to take the โ€œUS Armyโ€ faction name and make it say โ€œUS Marinesโ€ instead, everything I see seems to be more for attribution of assets like weapons, loadouts, etc. Does anyone know what core or faction manager is needed to edit?

worn marten
worn marten
wooden moss
#

oh hmm

#

I do create my own component that inherits SCR_ListBoxComponent and attach it to my TextListboxWidget, perhaps I need to instead have it inherit a TextListBox component? I dont see any class for that though

worn marten
#

Yo just need to dragg and drop the ListBox.layout to your layout

wooden moss
#

lemme try messing with that instead

wooden moss
#

alright, looks like m_wList is no longer null, hooray, but now I have no clue why my widget isnt being created.

Widget newWidget = GetGame().GetWorkspace().CreateWidgets(selectedLayout, m_wList);

I checked, selectedLayout isnt null, neither is m_wList.
However for some reason newWidget is null. Any reason CreateWidgets would fail with good params?

worn marten
wooden moss
#

this is my hierarchy

#

im duplicating _AddItem to be called _AddLobbyItem from SCR_ListBoxComponent.

Only change I made to the logic was adding a bool for eanbling the added item, and a float to set the font size.

#
int _AddLobbyItem(string item, Managed data, out SCR_ListBoxLobbyElementComponent compOut, bool clickable, float fontSize, ResourceName itemLayout = string.Empty)
{
    ResourceName selectedLayout = m_sElementLayout;
    if (!itemLayout.IsEmpty())
        selectedLayout = itemLayout;
    
    Widget newWidget = GetGame().GetWorkspace().CreateWidgets(selectedLayout, m_wList);
    
    SCR_ListBoxLobbyElementComponent comp = SCR_ListBoxLobbyElementComponent.Cast(newWidget.FindHandler(SCR_ListBoxLobbyElementComponent));
    
    comp.SetLobbyText(item, fontSize);
    
    if (!clickable)
        comp.SetEnabled(false);
    
    comp.SetToggleable(true);
    comp.SetData(data);
    
    int id = m_aElementComponents.Insert(comp);
    
    comp.m_OnClicked.Insert(OnItemClick);

    string widgetName = this.GetUniqueWidgetName();
    newWidget.SetName(widgetName);
    if (m_aElementComponents.Count() > 1)
    {
        Widget prevWidget = m_aElementComponents[m_aElementComponents.Count() - 2].GetRootWidget();
        prevWidget.SetNavigation(WidgetNavigationDirection.DOWN, WidgetNavigationRuleType.EXPLICIT, newWidget.GetName());
        newWidget.SetNavigation(WidgetNavigationDirection.UP, WidgetNavigationRuleType.EXPLICIT, prevWidget.GetName());
    }
    
    compOut = comp;
    
    return id;
}
#

7th line newWidget is the one that seems to be coming back null

#

I also inherit SCR_ListBoxComponent and duplicate these functions into my own class SCR_ListBoxComponentLobby

#

I just disabled the original comp on the prefab

worn marten
#

Ok, im out of pc now. I Will try to take a look into It tomorrow afternoon. Maybe someone can help you earlier.

wooden moss
#

Alrighty, taking a break myself but ill keep fiddling with and, will let ya know here if I figure it out

ashen urchin
#

@wooden moss put a breakpoint before and check on the widget. Your creating the widget which can be empty it seems.

wraith shore
#

Can someone show me the exact place to look to take a base game huey variant and make it a separate prefab from the base games, I duplicated it off of being the override prefab but cant seem to figure out how to make it show up in the game as a separate item so to speak (sorry if I use terrible terminology)

wooden moss
ashen urchin
wooden moss
ashen urchin
#

Correct. Once it's created, it should not be null, it should return a handle to the widget. It returns null if it fails vs a "error"

wooden moss
#

yeah its returning null, kinda wish it threw an error so I had some idea why

#

oh wait

#

this layout doesnt exist, where is it getting this from I wonder?

#

for some reason it added some random text to the front of the real layout

ashen urchin
#

Hahahah ๐Ÿคฃ Well I'm glad we solved it.

ashen urchin
ashen urchin
#

On a side note, just throwing it out there. If anyone's a. GUI expert and wants to put their mark on RF/A4, I have a series of buildings that need interfaces - and I'm holding back my urge of throwing my laptop off of a balcony. Would love a teammate on this ๐Ÿ˜ญ๐Ÿ˜‚

wraith shore
#

Can someone explain in a very simple way of what I need to do to take my copied UH1H variant I made and make it its own prefab to spawn it separately from the original (not overriding the original)

wooden moss
ashen urchin
#

I don't think it warns, just a silent null. It nailed me as well ๐Ÿ˜›

wooden moss
#

Oh unfortunate, yeah would definitely would like some sort of notification "hey, that resource name you gave me? Can't find it bro."

#

Save me a few hours of confusion lmao

#

Weird though, don't they load and validate the resource names before creating? Youd think something would throw in that process

half solstice
wooden moss
half solstice
wooden moss
#

attempt to create with the resource name that doest really exist of course

half solstice
#

or

#
if (Resource.Load(ResourceName).IsValid())
  GetGame().GetWorkspace().CreateWidgets(ResourceName);
#

a null check after is better

wooden moss
#

yeah I can definitely do the check myself, I just kinda figured the CreateWidgets would check or throw a warning/error somewhere in its own process of creation

half solstice
#

an*

#

If you're just calling GetGame().GetWorkspace().CreateWidgets() without casting to a class then you're doing it wrong in the first place....

half solstice
wooden moss
half solstice
wooden moss
#

yeah but the next line basically I cast to the specific widget, technically thats base game/vanilla code though

#

I just added to it

half solstice
#

A RichTextWidget with it's text set to <username/>, when I load a menu it displays my name. Is it possible to display a particular players name instead?

#

I'd also like to know if it's possible to load a particular players ProfileImage as well. We have a ProfileImageWidget that isn't exposed. I'd really like to make use of it.

half solstice
#
GetGame().GetWorkspace().CreateWidgets(selectedLayout, m_wList);

this isn't, in most cases.

#

but if you're doing a cast right after why wouldn't you just cast as it's created?

wooden moss
#

not sure, I didnt write that code like i said I just added a few lines to a vanilla function ยฏ_(ใƒ„)_/ยฏ

half solstice
#

In their case, they're getting a component from newWidget after so they have no need to cast really but, if you're gonna cast after it would make more sense to just cast as you create.

wooden moss
#

Great progress, finally got the listbox to work as intended

wooden moss
#

oh, my first need to actually work with replication, yippee

#

also realized I made my menu wrong on accident ๐Ÿ˜ฆ

Pro Tip, do NOT be lazy and use a window widget as if it was a frame widget, you can click and drag those around. Since ya know, "window"

#

wonder if there is an easy way to replace those...

slender meteor
#

How do I initialize a layout for a vehicle? I'm extending SCR_InfoDisplayExtended in a script, but where would my component go? The vehicle prefab itself I'm assuming? I have an idea of how to actually draw my desired layout on a texture in my vehicle, but how do I make sure my script is working with the right layout to begin with? From what I've seen and searched, m_wRoot is how I can do operations with my layout like finding widgets, but where does that come from?

#

I'm assuming that it's initialized for every layout so my class would potentially run on every layout that exists - which is not a great approach. Just stumped trying to find the proper configuration for this.

worldly sphinx
ashen urchin
wooden moss
# ashen urchin Ah so that's what "window" is all about. Neat. Finish up your project so you c...

soonTM, probably not what anyone wants to hear but uh, I might have created a fresh project.

My original project I created when I first started learning and have been messing with/progressing ever since so for me it felt very messy and was starting to feel all over the place.

With this project I'm hoping to avoid that, I'll be updating the GitHub once I get it back to similar functionality as the original. Which having most of the code and experienceshouldn't take long however I'm moving in about a week so it's gonna be a tad delayed

wooden moss
worldly sphinx
#

search and replace would take 5 seconds

wooden moss
#

Oh wait you right

#

Forgor about search and replace

wooden moss
ashen urchin
wooden moss
#

Yeah so far it hasn't been horrible, I think I was able to create the spawn menu with a single class, and overriding a config iirc.

All the issues so far have been my own fault.

Next big step in regards to the gui is replicating the changes, zelik wrote me a bit of a step by step but sounds like he also isnt 100% that's the problem. Probably another thing I messed up lol

ashen urchin
#

Well, its how we learn. Once more into the breach. I'm doing some multi-inventory witchcraft. Its not too too bad, but not fun by any means ๐Ÿ˜›

wooden moss
half solstice
slender meteor
#

I am unable to get any widgets from my custom HUD display class. The class extends SCR_InfoDisplayExtended. Root is not null but using m_wRoot.FindAnyWidget("VerticleLayout0"); is null. Not sure what is going on here, kind of lost on how to fix this.

wooden moss
#

quick question, how can I get my child widgets to adjust there size with the parent widget/s?

#

probably need to instead use a gridlayout or something huh

#

interesting, switched my FrameWidget to a GridLayoutWidget, 2 rows, 2 columns. rows are 1 and 1, columns are 1 and 10 in size

#

my image is in column 1

#

both text are in column 2

#

whats with that space at the end?

wooden moss
#

another question, this time a bit bigger probably.

I want am making a group layout that will house a bunch of character slots dynamically.

I want to make it possible to open and collapse the slot part of the layout so that the overall height of the group layout shrinks.

The layout size needs to shrink because it will be in a listbox with multiple instances of itself.

How do I disable the slotlist so that the height shrinks?

#

basically trying to make the layout go from this

#

to this

#

back and forth whenever

wooden moss
#

havent tried anything yet, but im thinking ill probably just get the parent widget, in this case group_base and setting the height to whatever group_header's name is whenever the header is clicked. Curious if there is a simple way to get the height of my group_header. Id like to think there is, I havent looked at the widget class yet just got home from work

ashen urchin
#

I thought I replied to this and I guess I didn't. So the GUI should automatically expand to the content placed in If it's set up properly. Then you just refresh it when the new content comes in or the new content leaves,

wooden moss
#

well I dont believe mine are set up properly then

#

but heres more progress

#

now I just gotta force the slots into each of those groups, and add the join/leave/open/close functionality

#

and make it prettier

#

and find out where in gods name that duplicate set of roles is coming from in the top left

stuck mesa
#

Pixel_corners
Pixel corners panel type broken or is it just me ๐Ÿคž

slender meteor
#

How would one move an image widget via scripting? I'm assuming I might need to nest this in another widget type, not sure what though.

stuck mesa
#

Depends on what kind of widget your widget is inside of

slender meteor
#

Yeah everything I tried with FrameSlot had no effect. Kind of stumped on what I need for the configuration.

#

Iโ€™m sure itโ€™s because of how sticky images/layouts are.

wooden moss
#

if it helps at all, I was moving my map markers around like so:

bool UnitAlive = IsAlive(unit);
vector UnitPos = unit.GetOrigin();
vector UnitAngles = unit.GetAngles();
float screenPosX, screenPosY;
float mapZoom = m_MapUnitEntity.GetCurrentZoom();
m_MapUnitEntity.WorldToScreen(UnitPos[0], UnitPos[2], screenPosX, screenPosY, true);
ImageWidget m_UnitImage = ImageWidget.Cast(m_UnitMapWidgets[currentIndex].FindAnyWidget("Image"));
screenPosX = GetGame().GetWorkspace().DPIUnscale(screenPosX);
screenPosY = GetGame().GetWorkspace().DPIUnscale(screenPosY);
if (m_UnitImage)
{
    m_UnitImage.LoadImageTexture(0, "{067F7C2D05D49085}UI/Textures/Icons/iconman.edds");
    m_UnitImage.SetColor(Color.Red);
    m_UnitImage.SetVisible(UnitAlive);
    FrameSlot.SetPos(
        m_UnitImage,
        screenPosX,
        screenPosY
    );
    m_UnitImage.SetRotation(UnitAngles[1]);
}

TextWidget m_UnitText = TextWidget.Cast(m_UnitMapWidgets[currentIndex].FindAnyWidget("Text"));
if (m_UnitText)
{
    m_UnitText.SetColor(Color.FromRGBA(0, 0, 0, 255));
    m_UnitText.SetText("");
    m_UnitText.SetVisible(true);
    FrameSlot.SetPos(
        m_UnitText,
        screenPosX,
        screenPosY
    );
}
slender meteor
gaunt fjord
#

Trying to add hud elements to the game master menu, but since I built it around SCR_InfoDisplayExtended I have no way to trigger the script I attempted to tie just the hud element to the player with show in editor enabled but it wont show up but works as a normal hud and in pause menu

wooden moss
#

Could anyone tell my why my onclicked doesnt seem to cover the entirety of my layout?

Red is my header, not clickable. Green is over my listbox, clickable. Red is elements in my listbox that have their own on clicked events.

#

layout looks like so

#

to get the on clicked events I grab the component from lib_lobby_group_layout and insert a function to its onclicked scriptinvoker

slender meteor
#

Using SetGUI with any index causes my render target widget to render on all render targets despite them having different render target indexes, any fix for this or am I boned?

slender meteor
#

Dug a bit and realized I might be better off separating my meshes with render target materials into slots via slot component #1050079312977596426 message

worldly sphinx
#

pressed ctrl + z a few times = crash

worldly sphinx
#

how do I make size widget fill space between min and max?

#

ie. replicate block html elements that have min-width and max-width

#

where do I define gap size for grid layout/their children?

worldly sphinx
#

why does my canvas widget log spam with this error when a different widget in the layout updates?

GUI       (E): DrawPolygon triangulation failed, is the polygon degenerated?
tardy pagoda
#

Yes hmmyes

upbeat flame
#

Hello, I am trying to adds buttons on top of the inventory UI, I need it to trigger only in certain scenarios.
I've got the UI drawing but my current issue is that it doesn't overlay on top of the inventory UI but opens before it

#

Is there anyway to make overlays like this currently

#

You can see the white button in the top left, if I close it it then opens up the inventory UI

worldly sphinx
#

why are user actions rendered on top of dialogs?

worldly sphinx
#

this feels like a bug

#

also the multiline input has no indicator for how many characters you can type? wtf

#

now when I confirm my dialog I get instant crash with no logs 46f46452-261a-4b44-92f2-5beb1fdc6f83

half solstice
# upbeat flame

Most menus close all other menus when they open. If you want something to display over the inventory UI then you have to make it display over the Inventory UI. If it's a menu, it's not gonna ever do that.

upbeat flame
#

Is there a way to turn off widgets if I where to override the default inventory

worldly sphinx
#

how do I make a multiline input field work on xbox?

#

the standard one doesnt show the keyboard

worldly sphinx
#

ok I had to do ActivateWriteMode โœ…

#

my dialog closed instead of focused on input box because A closes the window

upbeat flame
#

Is there anyway to change the font size in a TextListboxWidget

#

Currently adding an item gets me that lmao

#

Nvm got it

#

Had to set lines

upbeat flame
#

New issue

#

In this list box when there's a bunch of entries like this the select area starts to shift from where the text is

worldly sphinx
#

theres no table widget right? should I use grids?

slender meteor
#

You figure this out? I'm about to just throw image widgets on top of what I have and create a pseudo mask using that

slender meteor
# quartz stone Nope, dont get it to work

A hacky way is creating an image with desired mask affect but have the masked portions be white. After importing as EDDS, you can select the image widget and change the color to black, with blend operation. Seems to be the rest way to accomplish a picture frame.

quartz stone
half solstice
#

Why is adding a hud to the character a giant convoluted mess? I can't even get it to work anymore.

worldly sphinx
#

lol I made my own hud for my vehicle rather than messing with the hud manager bs

feral quiver
#

Can I get rid of the doll in the loadout screen? Or would that be problematic?

half solstice
deep pawn
half solstice
deep pawn
#

@ BI answer time i guess

half solstice
#

I'll look into the player controller stuff and see about doing it that way.

deep pawn
half solstice
#

One of the first things I did was create a hud for my character to go along with my metabolism system. Simple info display. Class and layout is all i needed back then.

deep pawn
half solstice
#

It may be the same for the player controller, but it's not the same setup for the character. Not now at least

#

at least not in my experience recently

worldly sphinx
#

how do I use TimeBasedGraphWithAxesWidget in experimental?

#

I wanted to make my own chart but using Math3D.Curve has the side effect of it curving into wrong places like under or above axes min/max lines

#

alternatively is there a way I can fix this with knots array?

#

for now I can just clamp it but it doesnt look as pretty

#

like there will still be those lil bumps when I clamp it

#

and now the chart is lying

static raven
worldly sphinx
#

cool

worldly sphinx
#

is there a widget that can handle pagination input for me? especially on controller

#

I guess I can just use action buttons and activate them on focus of the element with content

idle prawn
#

How do you link scripts to GUI.layout files? I cant seem to access it

idle prawn
#

anyone know how to get the UI widgets to update?

bold socket
#

is there any way to add more than two slots to charachter without having the UI double itself?

#

any time you go past 12 the equipment slots glitch out and theres two rows of equipment slots. wondering if theres any way to get past that

worldly sphinx
#

why does WrapLayoutWidget grow vertically with each object added to it horizontally?

#

and in grid layout widget everything goes into column 0 row 0

#

unless I MANUALLY set it where it needs to be

#

any tips? I am adding items from script and want them to go left to right and wrap, and wrap layout widget is broken

static raven
#

I will refresh my mind later and tell you if no one has to before

worldly sphinx
#

I wrapped it in a sizelayout and am scaling the sizelayout with every child added

#

this sucks so I'd like something that works without me having to write any scripts

static raven
#

I think you had to set off size to content H

#

or something like that

worldly sphinx
austere widget
#

Is it possible to disable DPI UI scaling for RT widgets?
I need to render it in screen space.

#

rn I manually compensate DPI scaling through script.

#

100+ widgets fun

worldly sphinx
#

UIWidgets.EditBoxMultiline doesnt work in config editor?

worldly sphinx
#

need some kind of sortable table widget

worldly sphinx
#

editbox widget has no minimum length for validation

worldly sphinx
#

I wish I could set colors in UI editor to a constant available in script

ancient star
#

Anyone know why I can't import PNG images that only have black? Importing images with different colors and changing to sRGB works fine. If I add a little white to this it works fine. But if the only color is black it turns the whole image black. Below is an example. In the photos window you can see what the png should look like.

austere widget
worldly sphinx
#

why dont configurable dialogs stack?

#

I mean visually, only one seems to be visible at a time

short maple
#

In this modding series, will GUI creation be covered?

#

it is lacking on the biki, from what ive seen anyway

worldly sphinx
#

would be cool to have docs on how to do all this nonsense correctly

#

because I feel like I'm pushing circle shapes through triangle openings successfully somehow

worn marten
#

Totally agree on that

worldly sphinx
#

also how do I set widget tooltip from script

onyx geyser
#

Has anyone seen this error before? It happens after I run my game once, then recompile, then play a 2nd time.

gritty birch
#

Hi does anyone know of any tutorials out there to help with making gui I'd prefer them to be as simple as possible because when it comes to gui stuff I'm a fucking moron I can make it even show up never mind work with my scripts

worldly sphinx
#

widgets sometimes resize themselves depending on settings, for example edit box component is bigger when it does not use label, and combo box widget is wider but not taller when set to not use label, annoying inconsistency

#

content padding shouldnt change based on whether there is some text on the left or not

worldly sphinx
#

any tools out there that can help me generate an atlas and imageset with quads defined? no way I'm defining quads manually for 100 icons its built in nvm

worldly sphinx
#

so padding in UI editor is actually margin

worldly sphinx
#

why do images with imageset icons scale like they were nearest neighbor in play mode but filtered in GUI preview

static raven
upbeat flame
#

How do I import a png with opacity

#

Trying to import this and it turns into this

#

Got it

#

Just changed my export settings for the PNG

stuck mesa
#

It's better if it's not PNG

#

Try tiff

#

.tif

slender meteor
#

Does it matter that much? I haven't thought about trying to use semi-transparent overlays but I have battled the .edds system to do masks for my layouts haha

half solstice
stuck mesa
# upbeat flame

Ahh try using a resolution divided by 2
1024x512 for example

upbeat flame
#

So i know there is SetRotation() for ImageWidgets but is there any member for SetPosition() for a widget?

upbeat flame
#

I figured out you can through a CanvasWidget however it seems it doesn't have an alpha channel?

#

Top left regualr image widgets, middle image drawn in a canvas widget

#

Nvm it was as easy as

FrameSlot.SetPos(compass, 500, 1.5);
sharp socket
#

Is there a way to hide parts of a progress bar widget and customize the shape?

crystal zenith
#

Hi everyone!

Iโ€™m facing a small issue with my UniformGrid: the item on the right gets "cut off."

Does anyone know how to fix this?

Thanks in advance! ๐Ÿ˜Š

half solstice
#

Perhaps posting in the right channel will yield an answer as this has nothing to do with modding gui.

rain pivot
rain pivot
upbeat flame
#

So I've got the map drawing but I can't seem to manipulate it in anyway

#

Any idea

#
void OpenMap()
{
    GetGame().GetCallqueue().CallLater(OpenMapWrap, 0); // Need two frames
}
void OpenMapWrap()
{
    BaseGameMode gameMode = GetGame().GetGameMode();
    if (!gameMode)
        return;
    
    SCR_MapConfigComponent configComp = SCR_MapConfigComponent.Cast(gameMode.FindComponent(SCR_MapConfigComponent));
    if (!configComp)
        return;
    
    MapConfiguration mapConfigFullscreen = m_MapEntity.SetupMapConfig(EMapEntityMode.FULLSCREEN, "{1B8AC767E06A0ACD}Configs/Map/MapFullscreen.conf", GetRootWidget());
    m_MapEntity.OpenMap(mapConfigFullscreen);
}
tulip quartz
#

Is there a way to rotate a group of widgets?
I tried putting them in FrameWidget but don't see any option to rotate it

worldly sphinx
tulip quartz
worldly sphinx
#

I wonder if you can put widgets inside an image widget rizz

upbeat flame
#

Is there any documentation on creating lists with custom items?

lilac viper
worldly sphinx
#

I think some kind of MFD

lilac viper
tulip quartz
worldly sphinx
#

but new MSFS is out lol

lilac viper
worldly sphinx
#

stalker probably has 5x as many bugs tho

lilac viper
# worldly sphinx I think some kind of MFD

I was going to guess that you're working on the UI for your old Javellin's screen, but that screen was already done, so either he's making an MFD for a solo vehicle of his own or helping the RHS on the Venon chopper.

worldly sphinx
#

that javelin was cool

lilac viper
undone coral
#

@rotund hinge hello ๐Ÿ‘‹ was just wondering if you had any plans on adding tiger stripe to your planned camos on your camo pack? Apologies if this is the wrong thread.

rotund hinge
main galleon
#

Hello fellow creator, i came here to seek for help regarding UI layout for a potential plate generator to help fix the script from the everon life team

here my probelem in order to be clsoe to the licence plate prefab from the vanilla game i want to change the font used in my layout

For that i have see that yo ucan set the font in the layout text propreties but it seems to only take .nft file rather thant my ttf font format

things i have tried:

  1. use the improt button from the WB to import the .tff and hope that it onvert to .nft (did not work) (instant error with log)
#
  1. import manualy the font by placing it inside my mod foler (i see the font but still cant put it in the font properiteis because it take .nft file
#

Thanks in advance

#

โœ… Solution found by bacon (it was the generate bitmap in my ttf font to create the nft)

#

i use the previous message to ask if any of the bohemia team did know wich font is used to replicate the palte prefab i stil dont have find the perfect one ^^

worldly sphinx
#

seems similar

#

but some characters are missing lol

main galleon
worldly sphinx
#

edit box changes background color on hover even when background color event is disabled and background magically appears in the widget when I disable the background widget

#

got it it was enabling itself from component

#

when dropdown is used with keyboard or gamepad focus goes back to nothing instead of remaining on the dropdown

worldly sphinx
#

can recompiling scripts stop expanding my whole UI widget hierarchy? incredibly annoying

#

actually I dont even know what it is, I collapse it and then it opens itself shortly after

median totem
#

heyo

anyone know why changing the font size in a overriden .layout file doesn't actually change the font size ingame? it does work for opacity, padding and all that that but fontsize just doesn't want to cooperate lol

static raven
median totem
vernal stag
#

can someone help me? im trying to give enemy ai (ussr) bigchungusShotguns and it keeps giving me this message everytime i pump the shotgun, can i ignore this?

cold moon
#

Hello,
it's there a possibility to find an ui source (.layout item in resource browser) with debug menu inside the world editor ?

upbeat flame
#

Any idea why the default AddItemWithIcon doesn't let me select it?

#

m_cPlayerListBoxComponent.m_OnChanged.Insert(SelectPlayer);
I've added this when the menu opens but for some reason it's not calling the member?

worldly sphinx
#

copy pasting widgets in layout editor doesnt copy their attributes

#

not all of them anyway

upbeat flame
#

I added the list box component to it, works fine on the list box to the left with my own custom items but the default one isn't working for some reason

upbeat flame
worldly sphinx
#

I put a panel widget inside an overlay widget and its invisible wtf

#

if the panel has bigger z order than text widget it shows but if text widget has bigger z order than panel it doesnt show

#

why does this work in other layouts but not this one?

#

ah ok it breaks when its nested under a button component

#

but now border and background inside button are not shown on hover, I give up

minor crane
#

Folks, how do I draw an ellipse/circle on the UI?

worldly sphinx
#

when Size to Content does not resize to content lol

worldly sphinx
#

vertical and horizontal align of my layout is ignored when it is added to a dialog? wtf

#

then after adding it to a dialog content area

worldly sphinx
#

me when UI in reforger

#

I have several words for the UI dev team

#

text widgets do not support break-word wrapping?

minor crane
worldly sphinx
#

how do I set tooltip of a widget from script

#

seems like there would be some SetTooltip function idk

ancient star
worldly sphinx
#

hm this doesnt compile

ancient star
#

compile in your head or in the workbench? lol

worldly sphinx
#

yes

ancient star
#

works for me void Foo() { SCR_ScriptedWidgetTooltip testTooltip; testTooltip.GetContent().SetMessage("DOG"); }

worldly sphinx
#

okay but lets say I have a Widget

#

I want to give it a tooltip from script

#

wat do?

ancient star
#

If you look at SCR_FilterPanelComponent it does something like this override void HandlerAttached(Widget w) { SCR_ScriptedWidgetTooltip.GetOnTooltipShow().Insert(OnTooltipShow); } void OnTooltipShow(SCR_ScriptedWidgetTooltip tooltip) { tooltip.GetContent().SetMessage("DOG"); }

worldly sphinx
tulip mesa
#

do we have to make our own debounce (ignore rapid presses) function for UI buttons?

worldly sphinx
#

I think so because

minor crane
#

Hi, I'm trying to draw a custom shape on the map. I created the required layouts and script components. The shape renders, but it overlaps the task icons.

https://s3.amazonaws.com/i.snag.gy/SipVYj.jpg

How do I fix that and move task icons above the custom shape?

mellow escarp
#

does anyone know how to make sure that popup window will be always drawn on top overlapping the icons?

mellow escarp
static raven
#

alternatively give your window a priority of 999 (Hacky)

mellow escarp
static raven
#

you can think of priority as z-index from CSS

#

and having things on the same parent being the same as in the context of html and css

static raven
#

You can also change it in code

minor crane
# mellow escarp seems that you're puzzling essentially on the same layering problem, have you fo...

Both yes and no. My class is a descendant of the SCR_MapUIElementContainer.

class My_Class : SCR_MapUIElementContainer
{
  override void OnMapOpen(MapConfiguration config)
  {
     super.OnMapOpen(config); <<--draws tasks UI
     DrawMyStuffOnMap();
  }
}

I can technically arrange my UI elements' Z-orders correctly. However, because super.OnMapOpen(config) was called before DrawMyStuffOnMap(), there are still render issues..

One would ask why won't I write:

DrawMyStuffOnMap();
super.OnMapOpen(config);

and have my stuff drawn on the map "under" the tasks.

The answer is inside the BIS code of super.OnMapOpen(config);

Widget child = m_wIconsContainer.GetChildren();
while (child)
{
    Widget sibling = child.GetSibling();
    delete child;
    child = sibling;
}

To paint its own items, SCR_MapUIElementContainer removes everything off the map when it is opened.

In response to your question, I am aware of what I need do to get things to function, but I am unable to do it without rewriting an amount of BIS code.

๐Ÿคฆโ€โ™‚๏ธ

mellow escarp
# static raven yeah

So, the root element has z order 1 (I guess z order affects the things only in the same container, so it means nothing for multiple instance of same layout?), text wrapper/container has 0 z order index, so, to add it as a child of something that is not on the same level or under the container that has those icons - so, I'm trying to wrap my head about it ๐Ÿ˜…

#

so, to add as a child of something that is not on the same level (as icons)

static raven
#

only difference

#

Is that on layout widgets (Wrapper, Scroll, Grid, etc) priority will handle it's arrangement there, to some extent

#

So the z-index behavior is not applicable on direct children of those

#

In that case it serves as order index

mellow escarp
#

the strangest thing is that sometimes it works and sometimes it doesn't

#

interestingly, previously services popup window in conflict was a widget c with z-index 10 created with a overlay widget as parent, now it's already part of a base element icon and it works just fine

#

and more interestingly, it doesn't work with the conflict BaseElement.layout too, and I don't see any manipulations with the z-index in the widget components either

queen shoal
#

Any way to preserve order of elements when extending base game layout? Trying to add a button to pause menu but it always ends up at the top.

static raven
#

Priorirty field

static raven
#

omg I kept calling it priority, as in old enfusion

#

Z Order I meant

queen shoal
#

It does not work, the element has 0, all vanilla entries have 0 too

#

If I have 0 my entry is at the top, if I have -1 it's at the top too, with 1 it's at the bottom.

#

While editing the layout I've added my entry in the middle.

#

so I guess the only way would be to also edit the ZOrder in vanilla entries in my prefab override

static raven
queen shoal
#

Vertical layout

queen shoal
#

I put my AFM_ServerSettings widget in the middle of the list, and after every restart it comes up back on top.

#

So I guess it's some sort of an issue with merging of the layout files?

static raven
#

Merging of container/config files is always append or replace

#

Moving things around is not a thing

#

Layouts use the container system

#

That is the same system prefabs and config files use

#

If you check the text on the layout file

#

You will see that is an array of containers

#

So you wont be able to do what you want except for either messing with the z order or slapping a scripted component that does it for you by moving the widgets around

zenith grail
#

How do I load my healthbar layout i made onto my screen and make it work? I don't really want it to be an entity, as map changes will make it disappear

slender meteor
worldly sphinx
#

What changed in the update to GUI that made panel widgets invisible until their Z Order is higher than 0 despite being of parent's size?

#

Which changelog entry is related to this?

#

I now have a lot of my UI broken and zero motivation to fix it because I have no idea wtf is going on

frank terrace
worldly sphinx
#

The context is this worked before the recent update and it does not work after

#

So something changed in rendering of those elements or somewhere related and I'd like to know what

frank terrace
worldly sphinx
#

Drag a TextWidget into Frame0

#

Then panel appears

#

Remove it and panel disappears

#

I am 100% positive this worked before the update in a way where the panel would Just Workโ„ข๏ธ

frank terrace
# worldly sphinx Then panel appears

(using reforger experimental)
I can see the red panel just by opening the layout, adding or removing a text widget doesnt make the red panel invisible.

#

I am missing something ?

worldly sphinx
#

This means it is a bug on main branch that is fixed in exp

#

So it gives me some hope

#

Thank u duckbongo

frank terrace
#

No worries~

worldly sphinx
#

I'll just wait until update before continuing because some other things may be borked also that I don't realize yet

frank terrace
#

and its christmas anyway :b

eager hollow
#

Can I actually just draw/render onto a specific material in a prefab or do I have to work out the correct position and start rendering from there?
I have an RTTextureWidget created in a layout but I can't actually see where I "stick it on"

worldly sphinx
#

It can be done through RTTexture and RenderTargets but it is a bit difficult to explain quickly

eager hollow
#

If there's any resources around I'm happy to read

worldly sphinx
#

In your material (emat) go to the BCR for example and in the name of the texture you can select rendertargets

#

Once you have that setup you need to call the relevant functions in script that I forgot the names of

eager hollow
#

SetGUIWidget ?

worldly sphinx
#

perhaps

eager hollow
#

Had to manually edit the file but seems to be working, thank you

static raven
quasi harness
#

Hello guys, trying to create Display on player spawn ( Like HUD ), can u give me some advices where scripts of opening display need to be called?

gilded sedge
quasi harness
static raven
stuck mesa
#

๐Ÿ™ teach masking entire UI like how masking on imageWidget works

worldly sphinx
#

Teach how to use UI editor without crashing

stuck mesa
#

Teach how to report crashes so they get fixed faster XD

#

I think my weakest area is understanding how the postion systems work for widgets.
It's not very clear. I get it's the parent based etc.
How:

  • Make a widget that always takes 20%x20% of the screen
  • Widget and text that scales correctly with screen sizes
worldly sphinx
#

I like how I can setup a slot for my widget in a layout prefab and then when I add the layout prefab to any widget it changes the slot it uses

#

Or when I save, then WB crashes, I open my project again and my supposedly saved changes are reverted

#

I also like the feature that crashes WB when I copy something 5% of the time

#

Or UI layout hierarchy not being collapsed and just opening everything randomly

#

Don't let me into that boot camp

stuck mesa
worldly sphinx
#

But the devs are using it, do they have special dev version where none of this happens?

stuck mesa
#

Special dev version with advanced interface and ease of access, 0 bugs ๐Ÿ˜„

frank terrace
#

In this example, the UI scale automatically based on the resolution

static raven
gilded sedge
worldly sphinx
#

Both approaches break the APL-ND license of the mod though but that's how you'd usually do it.

gilded sedge
worldly sphinx
#

Well the Server Message and Admin Tools buttons are controlled by scripts in the mod. The Server Message button doesn't appear if your configuration file has no server welcome message defined (empty message) I think.

slender meteor
wraith relic
#

Is it possible something with the game master UI "AttributeCategories > Character.conf" is not right?
I'm using it for some additional GM stuff but somehow everything below the vanilla settings will not be saved/loaded when using the save state of GM.
The "AttributeCategories > Group.conf" which i'm using too works properly and changed settings added by my mod get saved and loaded properly by using the GM save states.

This:

#

Maybe i should have ask in configuration... ๐Ÿคช

tame kernel
#

Did BI mess up? Y does the latest mbc video link in announcements say modeling? But yet it should be for GUI aviator

slender sierra
#

gui video will come soon

quartz mango
# static raven

Hey Maria,

Will you send a ping when this becomes available on Youtube. Very excited to see this one

north sentinel
#

Well, I enjoyed the bootcamp, but I can not get a scoring system off the ground.

north sentinel
#

Initializing the hud. I have it all written out and stuff, but can't initialize.

#

'test'

#

test

#

`class KOTH_TeamScoreHUDClass : ScriptComponentClass
{
};

class KOTH_TeamScoreHUD : ScriptComponent
{
protected Widget m_Root;
protected ref KOTH_TeamScoreDisplayObject m_TeamScoreDisplayObject;

// Initialization method
void InitHUD(IEntity owner)
{
    Print("Initializing HUD...");

    // Load the layout
    m_Root = GetGame().GetWorkspace().CreateWidgets("Scripts/UI/Layouts/TeamScoreHUD.layout");
    if (!m_Root)
    {
        Print("Failed to load layout.");
        return;
    }

    Print("Layout loaded successfully.");

    // Initialize the display object with the root widget
    m_TeamScoreDisplayObject = new KOTH_TeamScoreDisplayObject(owner, m_Root);
    if (!m_TeamScoreDisplayObject)
    {
        Print("Failed to create display object.");
        return;
    }

    Print("Display object created successfully.");

    // Example initialization with a faction
    Faction faction = GetGame().GetFactionManager().GetFactionByIndex(0); // Replace with actual faction
    if (faction)
    {
        m_TeamScoreDisplayObject.Initialize(faction);
        Print("Display object initialized with faction.");
    }
    else
    {
        Print("Faction not found.");
    }
}

// Method to update the score
void UpdateScore(int score)
{
    if (m_TeamScoreDisplayObject)
    {
        m_TeamScoreDisplayObject.UpdateScore(score);
    }
}

// Method to update the player count
void UpdatePlayerCount(int count, bool in_zone)
{
    if (m_TeamScoreDisplayObject)
    {
        m_TeamScoreDisplayObject.UpdatePlayerCount(count, in_zone);
    }
}

}`

frank terrace
#

what is calling InitHUD ?

north sentinel
#

InitHUD is the name for the debugging process.

north sentinel
#

But, when I run the game, nothing pops up in log or anything.

north sentinel
#

Allow me to simplify my question. How do you initialize a hud in the engine?

burnt axle
north sentinel
#

Got it, thanks!

burnt axle
#

You'll have access to these base events from BaseInfoDisplay:

    event protected void OnInit(IEntity owner);
    event protected void UpdateValues(IEntity owner, float timeSlice);
    event protected void OnStartDraw(IEntity owner);
    event protected void OnStopDraw(IEntity owner);```
As well as a few other functions in the SCR_InfoDisplay
north sentinel
#

I'll keep that in mind.

north sentinel
#

Hey! I got it to work, Thanks!

burnt axle
#

FYI: if you want vehicle specific HUDs check the same component on vehicle prefab

balmy token
#

Hi guys, is it possible to have a EditBoxWidget in which you can type in different lines, basically like you know it from any textfield.
Once you reach the end of line it jumps into the next line or when you press Enter

balmy token
#

unfortunatly this doesnt has Limit Visible so you can write outside of the box

worldly sphinx
#

I did this somehow in GM editable Intel mod but dont remember how

balmy token
#

I could download the mod if its on the ws and have look

#

Thank you for the Info

frank terrace
# quartz mango Hey Maria, Will you send a ping when this becomes available on Youtube. Very ex...

This Modding Boot Camp seminar was originally held on the Arma Discord Server on January 9th, 2025.

TIMESTAMPS ARE WIP

0:00 - Introduction
00:20 - Presentation
1:10:08 - Outro

Modding isn't just about custom assets. With Arma Reforger Tools, you can completely modify widgets, HUD, menus, and other aspects of the user interface!

In this...

โ–ถ Play video
quartz mango
quaint yew
#

I have a question and Iโ€™m hoping someone can help.

A few friends and I are creating our own third person camera mod and we decided that we wanted some custom crosshairs to go with it.

Unfortunately, weโ€™re at a point where we canโ€™t figure out which one of the SCR_InfoDisplayโ€™s is the SCR_Crosshair. Can anyone give us some guidance?

pure tiger
#

Does anyone have an idea how to save settings for a custom submenu on a server enviroment? Is there a specific way to do this since AR also saves the settings from the submenu and they are permanent

noble basalt
#

how to display the controles like vanilla does in the bottom left

#

like this

noble basalt
#

@worldly sphinx

worldly sphinx
#

HUD manager component or whatever

#

SCR_InfoDisplay classes

#

Off the top of my head

noble basalt
#

โค๏ธ

stuck mesa
balmy token
#

Whats the best way to make UI widgets useable for Console Players? pepeshake

#

Its smth about the OnFocus() and the Navigation (eg. Escape) right?

worldly sphinx
#

You just move between them with left stick or whatever

#

It works most of the time

balmy token
#

Yeah im just trying to make them "visible" so the Xbox user can see where hes navigating.

#

Is it just e.g the ButtonComponent in which Focus and the color is set up?

#

I thought I have to implement some sort of logic into my ChimeraMenuBase

#
  • im using EditBoxWidgets and when im adding a SCR_EditBoxComponent it gives me this error
SCRIPT    (E): Virtual Machine Exception

Reason: NULL pointer to instance. Variable 'm_wBackground'

Class:      'SCR_EditBoxComponent'
Function: 'HandlerAttached'
Stack trace:
scripts/game/UI/Components/WidgetLibrary/SCR_EditBox/SCR_EditBoxComponent.c:127 Function HandlerAttached
stuck mesa
#

same for editbox

balmy token
#

gotcha, will try that, also makes kinda sense lol

balmy token
#

I have to rename the editbox to get the text from it, otherwise the second editbox will have the same name.
But It wont let me. If I duplicate the prefab and change it in there, it wont let me type anymore.
Any smart tips?

noble basalt
stuck mesa
stuck mesa
# noble basalt how to use this am confused

Look at the vanilla ones for a bit, the one the in the picture is VEHICLE_EXIT
Then it has conditon configs, which if they are true, will show the VEHICLE_EXIT action on the bottom left

balmy token
balmy token
#
GetActualEditBox(string parentName, string childName)

Widget parentWidget = m_wRoot.FindAnyWidget(parentName);

Widget childWidget = parentWidget.FindAnyWidget(childName);

return EditBoxWidget.Cast(childWidget);```
stuck mesa
#

You can just look at the vanilla code in the script editor

#

I suggest looking at menus that use layout templates like the field manual

#

Ahh your case is pre-defined.
Yeah you can just do that function you posted

balmy token
silent raft
#

Hi there, I'm trying to emulate what the play button does for an item within the PlayMenu of the MainMenu. However I'm having trouble finding where the it actually tells the game what to do when the play button is pressed. I'm using the PlayMenuTile_Featured.layout file, however the play button within it doesnt actually point to anything. I'm super confused and any help would be greatly appreciated!

balmy token
silent raft
balmy token
silent raft
balmy token
#

chimeramenus I think is the name

dusky veldt
#

What would be the process of making the screen black for a couple of seconds?

#

I tried looking up in the medical system but could not find how BIS did it

#

Does anyone here know a way to do that?

balmy token
#

you could use an InfoDisplay or a ChimeraMenu to display an Image (blacked out) to the player for a certain amount of time e.g 5 seconds and close it automatically after the timer run out.
After a certain event triggers it.

dusky veldt
#

I have a useraction that teleports someone and I wanted to do like a blackout, play a sound of a guy dropping in with a parachute and then the screen comes back

#

It would be awesome if the thing would fade but maybe that is to much to ask for

#

All executed locally ofc

balmy token
balmy token
#

I think its smarter to put the timer and fade out in front of the teleport, so the player doesnt see where hes teleported before its blacked out

dusky veldt
#

agreed

#

i made this ```class BlackoutMenu : MenuBase
{
override void OnMenuOpen()
{
Print("OnMenuOpen: menu/dialog opened!", LogLevel.NORMAL);

    Widget rootWidget = GetRootWidget();
    if (!rootWidget)
    {
        Print("Error in Layout Tutorial layout creation", LogLevel.ERROR);
        return;
    }
}

override void OnMenuClose()
{

}

}

modded enum ChimeraMenuPreset : ScriptMenuPresetEnum
{
BlackoutMenu
}and then in the performaction i have
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
{
if (m_wDisplay)
{
delete m_wDisplay;
return;
}
GetGame().GetMenuManager().OpenMenu(ChimeraMenuPreset.BlackoutMenu);
}```

#

its just a layout where the rootframe color is black

#

cant get it to work

balmy token
#

did you override chimeraMenus.conf from base game and set up the menu?

dusky veldt
#

yes

balmy token
#

like this

dusky veldt
balmy token
#

when you perform the action what does the console say?

dusky veldt
#

is there a specific widget i need to use?

#
 WORLD        : PostFrame
  ENGINE    (E): Can't find menu preset with ID = 56
  GUI       (E): Can't open menu 'unknown preset'```
balmy token
#

rn your not using any widget, but im trying to figure out if set up the other stuff correctly

balmy token
#

one sec

dusky veldt
#

xD

balmy token
#

your config Menu preset has to be named BlackoutMenu

#

try again once you changed it

dusky veldt
#

i did something lol

#

ok wait ill add the black screen ageen

balmy token
#

your also using (inheriting from) MenuBase instead of ChimeraMenuBase

dusky veldt
#

ah it worked and i have a little black thing in the top left corner now

#

but i think it is better to do a displayinfo bc if i do a menu i have a mousecursor in screen

balmy token
#

now set up ur UI correctly and then setup a timer or for debugging a close button to close it again

balmy token
#

if ur using InfoDisplay make sure to set it up in the HUD comp on the player

dusky veldt
#

I actually used a widget so I could change the opacity to create a fade-out and fade-in

#

Thanks for the help

silent raft
#

Could someone explain how an entire submenu is "instanced" within a layout from just its component and a pointer to the item layout? This screenshot shows it. When I try and duplicate the setup with a parent that has the component and a child, literally nothing happens.... The parent is an overlayWidget and the child is a gridLayoutWidget

orchid river
#

I have a SlotMarker that I want to change the colour of using:

#

which works on initialization, but doesn't run after cap, despite being called.

#

well, everything but the actual line where the colour changes seems to run fine

#

ie mapMarkerCustom.m_eMapMarkerColor = SCR_EScenarioFrameworkMarkerCustomColor.RED; isn't running after init/on capture

orchid river
#

figured it out -- I had to delete and re-create the map marker to update it lol

#

(using a modded method on the map marker class that called both funcs since one is protected)

north sentinel
#

Has anyone or does anyone know the .layout file displaying the task markers on the map?

frank terrace
north sentinel
north sentinel
frank terrace
gritty birch
#

Has anyone got any tips/youtube channels on where the hell i can learn how to do gui stuff

frank terrace
#

You can probably start with this video

worldly sphinx
#

Now all GUI styles are broken

#

All I want to do is get rid of the opacity change when my panel widget goes disabled :/

quick salmon
#

how can i make a background image that is always the size of the parent?

#

also is there a description of what each of the layout widgets does? not seeing much self descriptive docs in the code

gritty birch
# frank terrace

thanks (sorry for late reply got muted for 3d for offering to send feet pics to community manager)

balmy token
worldly sphinx
#

Size to content doesnt work with text widgets if they are wrapping. Only with explicit newlines.

worldly sphinx
#

Seems like widgets only extend horizontally when they feel like it

static raven
static raven
worldly sphinx
#

Switching to overlayWidget worked

#

As the parent I mean

frank terrace
worldly sphinx
#

Yeah I had some issues with panels etc in them but they are fixed in 1.3 apparently

frank terrace
#

Hmm, might be worth checking on monday if I can uncurse my layouts

upbeat flame
#

Is there a way so when a menu is open no other displays get shown, like the chat menu and such

worldly sphinx
#

Make your menu full screen and show it on top lol

worldly sphinx
#

Of course there's also a background imagewidget there that doesnt work at all

frank terrace
short maple
worldly sphinx
#

How do I turn off the feature in UI editor that randomly expands the whole hierarchy to troll me?

worldly sphinx
#

How do I make parent element ignore size of child element?

#

Seems like my framewidget expands itself to the size of a size widget inside that I want it to ignore

#

Ok wow my size layout widget is not actually sizing anything

#

wow my framewidget had unidentified slot

#

I had to notepad it to an AlignableSlot

upbeat flame
frank terrace
frank terrace
# upbeat flame Is there a way so when a menu is open no other displays get shown, like the chat...

You have a few ways you can achieve this.

In your layout you can specify which slots to use/display. (see HUDManager_Root.layout and RespawnMenu.layout for examples)

Or if its causing issues for you and how you designed your mod you can also tell specific layers to be hidden. Ideally I would do what I explained above, but in case if you have to go option B here you go. This is one of the old (scrapped) systems so it might not work as intended

// ================================================
// When you open your menu
SCR_HUDManagerComponent hudManager = GetGame().GetHUDManager();
if (!hudManager)
    return;

// Hide all (assuming your layout isnt dependant of the HUD Manager)
hudManager.SetVisible(false);

// OR
// Hide all layouts excepts the ones meant to be always on top
hudManager.SetVisibleLayers(EHudLayers.ALWAYS_TOP);

// ================================================
// When you close your menu
SCR_HUDManagerComponent hudManager = GetGame().GetHUDManager();
if (!hudManager)
    return;

hudManager.SetVisible(true);

// OR
hudManager.SetVisibleLayers(-1);
// ================================================
half solstice
frank terrace
#

How do you make a UIinfo display when in

upbeat flame
#

I've checked to see if there's another menu open from the camera and it returns nothing.

static raven
upbeat flame
static raven
#

If you do GetParent() on the workspace you got, then you will see another widget

upbeat flame
#

What's the reasoning behind setting the visibility of the workspace to 0 completely breaking the game?

static raven
#

I am not sure if it still works that way. But before Enfusion, with the older engine Enforce. Even the game RT was a widget.

#

And you could access it that way

upbeat flame
#

As far as I understand the workspace is just all the UI right?

#

Like everything

static raven
#

As I said, there can be multiple workspaces

#

and a workspace within a workspace

upbeat flame
#

Ah

#

Jesus

static raven
#

It's just a way to handle some logic for child widgets

upbeat flame
#

Really fucking complicated haha, I see why there's no way to consistently hide the ui

static raven
#

Just go GetParent() until you find the upmost parent

#

Just beware, that when you reach that, there are other widgets under the same level

#

But iirc it's only debug widgets

upbeat flame
#

Like no input control, it flickers in and out

static raven
upbeat flame
#

Works fine in the workbench but completely breaks the game in dedi tools

static raven
#

So all inputs handled through it are gone

upbeat flame
#

Hmmm

#

Visibility is the same way I'm guessing

#

I wonder

#

Frame.SetPosY(WorkspaceWidget, -1920)

static raven
#

Why do you want to disable the entire UI, including the game settings and all that?

upbeat flame
#

Photos in my spectator menu

static raven
#

We might actually disallow that in the workshop, unless blocking your mod to PC.

upbeat flame
#

Don't worry it's not even possible

static raven
#

Wasn't there a game setting already for this?

half solstice
#

ArmaVision

upbeat flame
#

We run pvp so we don't want players having access to that

#

but here

#

m_InterfaceSettings = GetGame().GetGameUserSettings().GetModule("SCR_InterfaceSettings");

#

I can just manually set and disable the interface settings ig

static raven
#

and restrict it

#

No need to reinvent the wheel

upbeat flame
#

How would I open up arma vision then, it seems quiet convoluted to open cause it seems to be merged with the editor

static raven
#

They are separate things, they just use the same free cam stuff

half solstice
#

uh, nothing game breaking can be done from ArmaVision