I am kind of curious, is the draft UI written in Lua? If so, I think that, unfortunately, the Lua implementation is causing more problems than it’s worth. The fonts are stylistically inconsistent with most non-lua studio widgets, and I’m also seeing some other side effects of lua-implemented widgets—for example, when you do commit a draft, there are frames in which things are a bit flashy since state changes quickly; it makes me think that this was made with Roact (UI updates are throttled at the Redux level for some godforsaken reason, which is why Rodux is not suitable for use anywhere outside of Roact). I also see some lua widget-specific bugs, like how if a plugin changes your mouse icon, that icon stays the same when you hover over lua widgets, but not most other widgets.
An example of the flashiness (it's very quick but disorienting)
Assuming this is Roact/Rodux, it looks to me like each entry has a “committed” state, which is sort of redundant because immediately after an action is dispatched to commit an entry, another one is dispatched to remove it from the list.
I didn’t notice the drafts button in the “View” tab before, but it seems like this widget can only appear in Team Create places, and only when you’ve explicitly opened it or changed a script. This means that, if you exit studio, or open up any non-team create places, the widget disappears from the dock, making it so you have to manually re-open it.
In my opinion, making something like this a lua widget isn’t a great idea, when it primarily interfaces with something at a non-lua layer; you’re running into the problem of leaky abstractions, but I know roblox people are sticklers for lua implementations and roact.
Yes, the Draft widget is written in Lua. Lua UI and input is definitely not where we want it right now, but the goal of dogfooding it for internal use is that these problems get resolved. There would be no text selection in TextBoxes, no rbxthumb thumbnail loading, and no ViewportFrames, among others, had we avoided Lua because it was imperfect in those areas at the time. Using Lua for internal projects results in some shorter-term inconveniences, but has and will continue to result in major improvements that the community can make use of as well.
I will file a bug for the flickering and make sure that gets fixed. In response to your comments about Roact/Rodux, we are keeping an eye on the technologies we use. Roact/Rodux provide a sense of order to the free range of UI development at scale in Lua, but we are also aware they have downsides such as those you have already mentioned, and that there are other options. For now they are sufficient enough, but we are open to looking at alternatives in the future should the need arise.
I thing, that better change will be, to make auto apply edits when publishing, because its terrible, when I have game, that is untesteble in studio, publish it, click play, than teleport to another server and after some time, i see, that it same, so i go to studio, apply edits, publish, rejoin, wait for the teleport delay, and then i find, that its ok
Is there also a way to get it back to the “apply edits” method?
I’m always the only one editing scripts in a TC so I’d prefer my edits to be published directly, not having to commit them all manually
Drafts is just about the worst thing you could have done for the co developing community. It’s terrible hard to use, and I have been sitting here for half an hour trying to even find the drafts tab because it’s not on my studio and my script isn’t updating. Terrible…
This is absolutely amazing. I love how we can edit scripts at the same time are our friends and/or other developers. This makes it much easier for people to correct errors and easier to help people fix the errors. @Roblox Your a genius! Keep up the good work!