Thanks to @boatbomber, Roactify is now Codify. Codify has undergone a huge change which now allows for generating code for multiple frameworks, including vanilla Roblox Instances, Fusion and Roact!
Awesome project! Might convince me to move over to Roact in the future.
Would it be possible to create a web proxy for larger object trees (> 200,000 chars) that would like output a URL and you go to it to download a RBXMX file that can be imported to studio so you can get the code?
If that sounds too complicated I may end up doing it for myself, I can provide the working code in the end if anyone is interested if I do end up trying that.
Or does that whole thing undermine what you said in one of the earlier posts where you wanted to make this for smaller components?
that’s awesome! we support Fusion and vanilla Roblox too, so you don’t have to tie yourself into a specific framework to use this plugin!
yep, so you wouldn’t use this plugin to create an entire app, but rather the smaller components which make up an app. it’s really not designed to output an entire tree; just the code needed to physically render the instances.
feel free to go ahead with this! the project is open source on GitHub, so you’re free to use it as you see fit!
yep! v2.2.0-rc.1, which is currently available to manually install from GitHub, features the ability to customise indenting
there will be an option to switch between tabs and spaces in the settings tab, and additionally specify the number of spaces to use when set to use spaces
will be coming to the stable releases soon! I need to update the GitHub workflows, which automate releases, before I push any more updates
This plugin is fantastic. Converting UI components to Fusion saves me a lot of time. Thank you very much for creating such an important and appropriate plugin!
Fixed an issue where installing the plugin locally (i.e. from itch.io) would put the plugin into development mode. This change restores the correct icon and labels.
Hey! Absolutely awesome plugin - makes my workflow much easier.
Some criticisms, though:
FontFace property on TextLabel objects generates the following code:
Adornee property on BillboardGui instances (possibly others) generates the following code:
I believe a better solution would be to intentionally omit this property to generate an error, making it easier to see.
There should be an option for PascalCase names; I use PascalCase in my code, while this plugin generates them in camelCase. Closest option I found was Naming Scheme, but this does not control variable naming conventions.
Thanks so much! Always great to hear people are enjoying Codify!
Good catch! I’m on holiday now, but I’ll look into this when I can. There’s not currently a separate case for handling FontFace, but that’s easily added.
Oops. Properties that take Instances are supposed to be omitted. I’ll take a look into this one too!
Excellent suggestion, and I agree with you. While I might use camelCase in Roact, I would definitely use PascalCase with vanilla Roblox instances. I’m planning an updated look for the settings panel, so I’ll include this setting in with that
Thanks for the quick response time! To clarify on this:
I believe the plugin should make it clear that the property was omitted, to prevent people from spending hours figuring out why their billboards aren’t rendering
Absolutely valid point! Alerting people of that upfront definitely makes for a better DX.
The only time you should be seeing Instance-based properties being set is when you’re using the “Regular” framework, where the Parent property is set for any descendant Instances (so, all Instances with the exception of the root object that was initially selected).
The reason behind not setting Instance properties is for the sake of portability. Those Instances aren’t guaranteed to exist (or have the same pointer) in one project file as they are another, and are irrelevant in some frameworks (Roact, and possibly Fusion, but I’ve not used Fusion before to be able to comment).