dugtrioramen.bsky.social's Avatar

dugtrioramen.bsky.social

@dugtrioramen

Web & Godot plug-in developer https://github.com/dugramen

144
Followers
79
Following
36
Posts
06.02.2024
Joined
Posts Following

Latest posts by dugtrioramen.bsky.social @dugtrioramen

You're welcome. And yeah I always enjoyed Godot's UI system, so I'm happy to help improve it

23.12.2025 19:51 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Add StyleBox transition animations by dugramen Β· Pull Request #114285 Β· godotengine/godot Closes godotengine/godot-proposals#8992 Also partially related to godotengine/godot-proposals#13269 This is an implementation for Stylebox animations, but they work for theme_color and rect changes...

The PR is up now if you're interested
github.com/godotengine/...

22.12.2025 22:33 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Not sure how to do it for this one. Normal arrays have 1 property per item. So buttons were embedded inside it

But these arrays are like structs with multiple properties per item

So should it embed into the first property? Or do we add an extra area above, like with groups/subgroups

21.12.2025 22:13 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Probably not soon. But on the bright side, I'm currently working on bringing animated styleboxes to godot officially. I should be ready to submit a PR soon, and if it gets merged it can atleast enable transition animations

For the other features, I'll try reviving this plugin later on

09.12.2025 20:13 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The same is done to resources and scenes. The raw ".tres" and ".tscn" file contents have external paths labeled "[ext_resource]" or something

Finally there's the ".import" files for loading things like images

Redirect those and I think most typical scenes can load normally

25.11.2025 04:02 πŸ‘ 3 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

In my version, when a global script is saved, it gets duplicated and saved into a hidden subfolder, but all it's "res://" paths are replaced with absolute paths

The unhidden version remains untouched, as the "uncompiled" version you work on

The modified script is what's loaded into other projects

25.11.2025 04:02 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Nice! Maybe I'll pick it back up someday too. But in the meantime I checked out the limitations you wrote, and I can address one of them which is loading with "res://", if you're interested

25.11.2025 04:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Thanks! Its nice to see someone else tackling this, since I've kinda abandoned my version πŸ˜…. If there's any pointers I can give let me know

24.11.2025 23:14 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

#Godot Stylebox plugin update:

Added multi layer support, like CSS before and after styles, but with as many layers as you want!

Here's a demo with 3 extra layers on the hover style:

31.12.2024 19:35 πŸ‘ 16 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

Using the RenderingServer however, we can spawn & draw to seperate canvas items, update them anytime, and free them independently of draw events

Tricky to get right, but worth it, as it also simplifies other planned features like "layers" (similar to css ::before and ::after)

30.12.2024 19:55 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

A key part of the refactor was isolating rendering logic from the draw event. This was particularly important for exit animations

For example, ItemList only draws a stylebox for the currently hovered item, so any boxes exiting / animating out wouldn’t be drawn at all

30.12.2024 19:55 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

#Godot Stylebox plugin update:

After refactoring, I’ve added enter & exit animations!

Nodes like Button already had a β€œnormal” style to animate to & from, but nodes like ItemList didn’t. Now you can transition them too

(Also switched to Godot’s handy movie mode for 60fps clips + inputs at bottom)

30.12.2024 19:55 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

Made a custom Godot mesh type called NinePatchMesh, which lets you resize any 3D mesh as though it were a UI panel. Great for making 3D UI, picture frames, computer monitors, TVs, etc. You can find it here if you wanna use it:
github.com/CozyCubeGame...
#GodotEngine #gamedev

28.12.2024 21:47 πŸ‘ 902 πŸ” 174 πŸ’¬ 25 πŸ“Œ 5

All Godot needed was a passivestar

28.12.2024 14:17 πŸ‘ 10 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

It's great until you get to the bugs, sometimes browser specific

Like the other day I found 2 issues. Background attachment fixed doesn't work if you apply a transform. And backdrop filters don't work if you have a mask

27.12.2024 18:47 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Godot Minimal Theme 2.0 The minimal theme has just undergone a complete rewrite. It’s now dynamically generated just like godot’s own built-in theme, so it supports editor settings and fixes some issues that couldn’t be fixe...

honey wake up godot minimal theme 2.0 just dropped!

27.12.2024 01:34 πŸ‘ 490 πŸ” 86 πŸ’¬ 20 πŸ“Œ 4

Awesome! That's what I was going for too in the plugin I'm working on

It kinda has css selectors too with node.get_index(), though I'm not sure how to handle things like ItemList that's just all in 1 node

bsky.app/profile/dugt...

27.12.2024 15:31 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
bert from sesame street is standing in front of a window with the words amazing below him ALT: bert from sesame street is standing in front of a window with the words amazing below him

And this too!
github.com/godotengine/...

20.12.2024 04:57 πŸ‘ 6 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Thanks! Your monopoly style game looks great too. The official ones by Hasbro feel a little stale so looking forward to this one

19.12.2024 12:34 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I'm a plug-in dev if that counts. Currently working on a stylebox / theme plugin

19.12.2024 11:52 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Expression to wrap the TabBar background to its tabs. The breakdown:

The goal is to go through all of our tabs, get the sum of their widths, and one of their heights (since they'd all be the same height).

- The first line is the expression that will be returned. Seperated by an empty newline, are other expressions that you can call by name.
- "range_i()" is equivalent to range(). It creates an array like [0, 1, 2, 3]. It's one of the few utility functions not available to Expressions by default so I added it like this.
- "node" is the TabContainer being drawn.
- "node.get_tab_bar()" gives the underlying TabBar, and its tab functions.
- "func reducer" registers the next line as a function / Callable.
- "functions.reducer" accesses that registered Callable.
- "arg" is the array of arguments passed to the Callable when it is called.
- ".reduce" is just the usual Array.reduce(). We pass it our registered Callable called "reducer", and .reduce() will call it with the arguments [accumulator, value].

Expression to wrap the TabBar background to its tabs. The breakdown: The goal is to go through all of our tabs, get the sum of their widths, and one of their heights (since they'd all be the same height). - The first line is the expression that will be returned. Seperated by an empty newline, are other expressions that you can call by name. - "range_i()" is equivalent to range(). It creates an array like [0, 1, 2, 3]. It's one of the few utility functions not available to Expressions by default so I added it like this. - "node" is the TabContainer being drawn. - "node.get_tab_bar()" gives the underlying TabBar, and its tab functions. - "func reducer" registers the next line as a function / Callable. - "functions.reducer" accesses that registered Callable. - "arg" is the array of arguments passed to the Callable when it is called. - ".reduce" is just the usual Array.reduce(). We pass it our registered Callable called "reducer", and .reduce() will call it with the arguments [accumulator, value].

Here's the expression modifier applied to the "rect_size" property.

Expressions as callables lets you utilize higher order functions like map, filter, reduce.

The full explanation is in the alt text, for the more generous character limit Β―\_(ツ)_/Β―. The syntax is also open to suggestions.

19.12.2024 02:33 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

#Godot Stylebox plugin. Did some work to REALLY enable pill style tabs in TabContainers, namely wrapping the background to the size of the tabs

To do this, I powered up expression modifiers to allow much more complex calculations. Now you can have multiple expressions & call each other as functions

19.12.2024 02:33 πŸ‘ 8 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

And here's some video footage of how I made the quoted post as a penguin from inside a Godot VR game. 🐧
#GodotEngine #gamedev #indiedev

18.12.2024 02:26 πŸ‘ 287 πŸ” 47 πŸ’¬ 13 πŸ“Œ 3
Video thumbnail

Holy moly, Bosca in browser! πŸͺ—πŸŒ

The file I/O has been my chief concern, as you cannot rely on your regular file dialog nodes in Godot. A neat API here, a few hacks there β€” and in theory it is now fully functional!

17.12.2024 17:33 πŸ‘ 20 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

In this plugin, each drawn box has an identifying key. By default its [node, rect]

Now you can specify a custom key, like just [node].
This means when the rect changes, the plugin will still treat it as the same box, since rect no longer identifies the box. This allows rects to animate over time

17.12.2024 17:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

#Godot Stylebox animations plugin. Just added rect transitions, letting you do things like pill bar animations in TabContainers

Here is a sample of the "tab_selected" stylebox always sliding into its new position

(There's a mix of clicking the tab and using arrow keys)

17.12.2024 17:07 πŸ‘ 13 πŸ” 0 πŸ’¬ 1 πŸ“Œ 1
Video thumbnail

Took a week break from my #godot stylebox plugin, but I'm back now. Just added animation sequences

Every property can have a "from" modifier, defining an extra state it should animate from. They can be chained to make any length sequence

red -> hovered
blue -> pressed / toggled
green -> normal

16.12.2024 05:21 πŸ‘ 6 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0

Traits and then GDextension stuff. I always had the impression that GDextension would give you a lot more internal access & capabilities than gdscript, but in practice it's mainly just a faster gdscript

Maybe accessing other modules could fix that, like internal engine modules or something

13.12.2024 13:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Haha thanks. I'm not that familiar with Unity's ecosystem, but don't they basically use css?

I come from web dev so there's still a few features I hope to bring over from it

06.12.2024 22:19 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

In #Godot ASB (animated styleboxes), every property can have an expression modifier.

There, you can set computed values based on things like the size, dpi, node index, or even EditorSettings preferences.

06.12.2024 14:18 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 1