Hi, I thought I'd have a go at making a dialogue UI similar to Disco Elysium.
So basically a character face about half way up the screen, set in a bit from the right, and then their bit of conversation appear next to their face.
When you click "next", a new dialgoue item is added pushing the previous one up - and maybe the face is replaced etc..
Each item getting pushed up means they do disappear off screen, but theyre contained in a scrollable window so you can scroll up review the convo.
So I need a container that I could add items to. I need the container to be scrollable. And I needed the items to be added from bottom up. Lastly I wanted the items to be added about mid way across the screen, being able to take up all potential space below, while pushing previous items up out of the way.
I attempted this by adding a ScollerContainer, and adding to that a VBoxContainer, then creating a "ConvoItem" control object to add to the VBoxContainer.
The ScrollerContainer and VBoxContainer are set to "Fill" on the vertical size. So they are taking up 100% of the screen's vertical space.
Ive got code working that adds a ConvoItem to the VBoxContainer and it grows the list from bottom to top.
But I cant get it to add "half way up the screen" (or a specific position) and then let the ConvoItem fill the space below it while also pushing other items up - potentially - off screen.
Ive tried many combos of the size flags on the ConvoItem, but I think im missing something with them.
Hopefully this makes sense, and someone can help point me in the right direction.

You cannot really set specific locations. It is all auto sized and auto spaced based on the parent's and children (sort of similar to CSS, but without the manual controls). You can add filler objects, like a Control set up fill horizontal/vertical with nothing in it. This will push the object below to the bottom. You can also set the min size for a control, so that way it doesn't shrink too much. You can add objects either from the top or the bottom (add_child() adds to end end, if you need the beginning, after add_child() call move_child(child_obj, 0). VBox is correct, this just aligns nodes in a column. You can next nodes as much as you want. ScrollContainer would be the parent, then VBox, then the items for each row (could be HBoxes with more children, etc.).

hey, thanks for the response. does this mean to achieve what i want i will have to programatically alter the controls sizes (as i add them) ?
I like the idea of a place holder already in the Container, which holds the space at the top forcing the next "convo item" to be below it.
I was able to just use add_child() and set the VContainer to "grow" end or start (i cant rmemeber which - and those flags i find confusing)