You are so underrated bro. You are one of the best programmers on Roblox who actually makes videos on it, explains it really well and goes for his goals. When I read the comments I also notice you are so so nice against really everyone. Thank you for all your hard work and kindness!
Thanks so much for the kind words! I’m really happy to hear that you’re able to understand the concepts in my video because I’ve heard a lot of the opposite as well. Really happy to hear the kind words and feedback :D
The most biggest module framework has to be Hoofer's framework for Oaklands. 1 local script, 1 server script, 1 module named "Client", 1 module named "Server". He has other modules stored inside those modules for doing stuff easily, and that is pretty sick.
Aw, thanks! It’s crazy you say that because I’ve been planning a short series around that. We might even have a video coming out this Friday on that exact topic! Not 100% sure yet, but if not then next week!
this framework that he has here is actually a pretty good way to organize stuff, but you can actually go a bit further with this using OOP. though personally you would also want to know how to use metatables as well as you can really get things a lot more organized and easier to read that way also it's pretty nice to have as an option. Nowadays I myself usually use a OOP framework that the main scripter from SB2 taught me how to make. OOP stands for Object Oriented Programming
Thanks for the feedback. I do have experience with OOP, but I'm really not a fan of how it works in Lua. I worked with Java before this, so I do have experience with OOP. I still work with it today when I use TypeScript. So I feel like it can be useful in different circumstances, I don't like Lua's method and I think it can be quite complicated to explain as well. I also feel like if I actively used OOP in a lot of my videos, I would either have to constantly explain it, or I would lose a lot of viewers because they don't know about it, feel it's too complicated, or don't want to give it a chance. Lastly, I just want to say that I have nothing against people using OOP. I just probably wouldn't promote it too much in my content.
I like the way you organize your module code, I recently did cs50 and the thought of having that actually code that runs to be first and having all the "backend" down below makes it feel out of of way, out of mind.
When the player dies it doesnt re require the module. With this framework how would I set this up since when the player dies it doesnt re require it and my buttons dont work again. Or did i miss understand and im supposed to use scrips and local scripts still?
@@MonzterDEV I tried to implement starter character but got an infinite yeild. Just to clarify. With this set up It replaces the need for server scripts and client scripts correct?
@@MonzterDEV wait. It’s not affected as in the gui should still work? Because when the player dies my buttons no longer work. I might try turning off gui reset on death and see if that works
Turning of gui reset seemed to fix the issue, although i am not sure why it would no longer work. Im guessing the connections that are set are lost? But no idea. @@MonzterDEV
I don't like using module scripts. The main reason why is lack of ability to properly run in parallel. Since you have to parent module script to the appropriate actor, and even if you do you wouldn't be able to require this module script outside of actor.
I hear ya, but 99% of people don’t use parallel or even need to use it. If you’re one of the few who do, then I’d recommend using whatever works for you.
You could sorta think of this as Knit w/o the extra features. If you read the text article I wrote, you can see I sourced the article written by the creator of Knit who basically mentioned a simple framework like this. If you use Knit already and enjoy the features it provides, then it sounds like you'd be fine continuing to use it. If you're not already using Knit or you want a much more lightweight framework, then I'd recommend going with this.
in the clicker sim series i found something that is quite anoying with the scrollingframe. If yo have like 100 or above pets the scrolling frame wont scrol further down, can you maybe look into this?
inside of the scrolling frames properties there is a Udim2 value called canvas size and if you change it's y value to something larger you will be able to get more available space, though do be warned if you have frames or other variable ui elements inside of the scrolling frame using the scale value for size or position it will reflect that to the canvas size as well so you will have to do some calculations to fix that. I honestly suggest using offset when it comes to ui elements inside of a scrolling frame otherwise it can become a pain real fast. And scrolling frames are already a pain in the but to get right lol.
I think it's fair to say that Knit has all the features of this framework, but more as well. I partially got this idea from the creator of Knit and another framework that I use called Flamework. I certainly don't take credit for 'creating' this framework. It almost feels like it doesn't have enough features to even be called a framework, but instead another method of organizing & scripting your project.
module.shared function(player, body) or module:shared function (player,body) or For link to other scripts Or use module extension local main = Require (module) Main:shared:connect(player,arg)
I'm not sure what the point if the Local/Shared table system was, you could just define your local functions below the Shared table and then you could access them as usual. And if you defined your shared stuff below those functions, you could just as easily access those locals.
the point for the extra table is actually pretty much encase you want function1 to access function2, but also maybe you want function2 to access function1, but if function1 was created above function2 then function1 would not be able to get function2 that is below it and only function2 would be able to access function1. Creating a table and putting the functions inside the table however is a workaround for this since if the functions are technically made inside the table then they are accessed much much more easily without having to reorganize things constantly. Very helpful when you have over 10 functions in a very large script.
@@AmiruZycro You missed the point. What I said would allow both functions to access each other (even though this is generally bad practice, that's basically just recursion). Realistically it only has to be one way, co dependant functions are pointless as you may as well just combine them into one singular function somehow but anyway as I was saying, if you had: local Public = {} local function SomethingLocal() end function Public.something() end "SomethingLocal" could access all of Public, and anything defined below could also access SomethingLocal. Basically making the entire "Local + Public" table system pointless.
I think this line of thinking is due to not actually experiencing the Framework. Trust me, I completely understand what you mean. I felt this exact way towards Knit when I first heard of it. Why would I care about their Networking features, when I can easily do it with my own usage of Remotes? Sure, you can do everything you see in a framework in your own way, but I’d recommend giving them a chance. Once you use a framework, you’ll realize the advantages to those patterns that you couldn’t realize when you enjoyed using your own way.
@@MonzterDEV I was not talking about Knit or networking at all. My point refers to the stuff you show at 7:23 in the video. 2 tables for locals and public things is completely unnecessary. Locals can be local without being in a table to be used anywhere. Just structure ur code properly
I feel like these comments stem from Knit being the only time people have heard the word "framework" being used in Roblox development. If you use Knit, you'll realize that this framework is only like 1% of what Knit offers.
Finally! Someone who actually explains how a module framework works in a way that I can understand it. Lol, thank you very much!
I’m really happy to hear it clicked for ya!
After 3 and a HALF years. Something finally good and simple for me!!
I'm happy you found it to be simple! That was one of my main goals with this.
You are so underrated bro. You are one of the best programmers on Roblox who actually makes videos on it, explains it really well and goes for his goals. When I read the comments I also notice you are so so nice against really everyone. Thank you for all your hard work and kindness!
Thanks so much for the kind words! I’m really happy to hear that you’re able to understand the concepts in my video because I’ve heard a lot of the opposite as well. Really happy to hear the kind words and feedback :D
The most biggest module framework has to be Hoofer's framework for Oaklands. 1 local script, 1 server script, 1 module named "Client", 1 module named "Server". He has other modules stored inside those modules for doing stuff easily, and that is pretty sick.
not gonna lie this guy is sooo underrated! he is sooo good. And can u maybe make a video where u show how to be better at ui design?
Aw, thanks! It’s crazy you say that because I’ve been planning a short series around that.
We might even have a video coming out this Friday on that exact topic! Not 100% sure yet, but if not then next week!
this framework that he has here is actually a pretty good way to organize stuff, but you can actually go a bit further with this using OOP. though personally you would also want to know how to use metatables as well as you can really get things a lot more organized and easier to read that way also it's pretty nice to have as an option. Nowadays I myself usually use a OOP framework that the main scripter from SB2 taught me how to make.
OOP stands for Object Oriented Programming
Thanks for the feedback.
I do have experience with OOP, but I'm really not a fan of how it works in Lua. I worked with Java before this, so I do have experience with OOP. I still work with it today when I use TypeScript. So I feel like it can be useful in different circumstances, I don't like Lua's method and I think it can be quite complicated to explain as well.
I also feel like if I actively used OOP in a lot of my videos, I would either have to constantly explain it, or I would lose a lot of viewers because they don't know about it, feel it's too complicated, or don't want to give it a chance.
Lastly, I just want to say that I have nothing against people using OOP. I just probably wouldn't promote it too much in my content.
@@MonzterDEV I feel that. Using LUA for more then 12 Years now in many many games. Never liked how OOP Scripting works in Lua.
OOP is a great definition, but with Roblox it breaks all the syntax intellisense.
I like the way you organize your module code, I recently did cs50 and the thought of having that actually code that runs to be first and having all the "backend" down below makes it feel out of of way, out of mind.
I'm happy to hear you like the organization! Nice job on completing the CS50, you've got interested in it now :P
This is great. It hits a sweetspot of doing the job without being bloated.
I really appreciate hearing that and I think it's a perfect way to describe it!
Wow, liked
Thanks :D
Modules carry so hard especially in games that require big systems
Modules are masterpieces!
When the player dies it doesnt re require the module. With this framework how would I set this up since when the player dies it doesnt re require it and my buttons dont work again. Or did i miss understand and im supposed to use scrips and local scripts still?
Are you confusing the Starter Player Scripts service with the Starter Character Scripts service?
@@MonzterDEV I tried to implement starter character but got an infinite yeild. Just to clarify. With this set up It replaces the need for server scripts and client scripts correct?
@@ShadowkingX that’s correct. This does not use the Starter Character Service, so the scripts aren’t affected by the character’s death.
@@MonzterDEV wait. It’s not affected as in the gui should still work? Because when the player dies my buttons no longer work. I might try turning off gui reset on death and see if that works
Turning of gui reset seemed to fix the issue, although i am not sure why it would no longer work. Im guessing the connections that are set are lost? But no idea. @@MonzterDEV
Cool! Now rewrite it in Rust.
That's a great game!
@@MonzterDEV I meant the Rust programming language
This is awesome!
Thank you!
I don't like using module scripts. The main reason why is lack of ability to properly run in parallel. Since you have to parent module script to the appropriate actor, and even if you do you wouldn't be able to require this module script outside of actor.
I hear ya, but 99% of people don’t use parallel or even need to use it. If you’re one of the few who do, then I’d recommend using whatever works for you.
So cool
Thanks!
could you do a remake of the first video in the series, cus it dont get right
Please make the Food Simulator series for the new version of Roblox Studio❤🥺
can you do the next video how to make a game on sumsung
it looks a bit like a flamework, so I'm waiting for a video on roblox-ts
That was my #1 reason for creating this. I dread writing in Lua after learning TS, but this was a simple change that made it a lot more enjoyable.
Awesome
Why would you do all this if Knit already exists?
Basically I want to know what this has that Knit doesn't.
You could sorta think of this as Knit w/o the extra features. If you read the text article I wrote, you can see I sourced the article written by the creator of Knit who basically mentioned a simple framework like this.
If you use Knit already and enjoy the features it provides, then it sounds like you'd be fine continuing to use it.
If you're not already using Knit or you want a much more lightweight framework, then I'd recommend going with this.
Or function shared= module stepped()
Hey you god youtuber
Aw, thanks!
What about GUIs?
in the clicker sim series i found something that is quite anoying with the scrollingframe. If yo have like 100 or above pets the scrolling frame wont scrol further down, can you maybe look into this?
inside of the scrolling frames properties there is a Udim2 value called canvas size and if you change it's y value to something larger you will be able to get more available space, though do be warned if you have frames or other variable ui elements inside of the scrolling frame using the scale value for size or position it will reflect that to the canvas size as well so you will have to do some calculations to fix that. I honestly suggest using offset when it comes to ui elements inside of a scrolling frame otherwise it can become a pain real fast. And scrolling frames are already a pain in the but to get right lol.
Please start to Pet Simulator series I subscribed
Dev i have a question
waht font are you using
this is the same as the Knit Framework no?
I think it's fair to say that Knit has all the features of this framework, but more as well. I partially got this idea from the creator of Knit and another framework that I use called Flamework.
I certainly don't take credit for 'creating' this framework. It almost feels like it doesn't have enough features to even be called a framework, but instead another method of organizing & scripting your project.
module.shared function(player, body) or module:shared function (player,body) or
For link to other scripts
Or use module extension
local main = Require (module)
Main:shared:connect(player,arg)
I'm not sure what the point if the Local/Shared table system was, you could just define your local functions below the Shared table and then you could access them as usual. And if you defined your shared stuff below those functions, you could just as easily access those locals.
the point for the extra table is actually pretty much encase you want function1 to access function2, but also maybe you want function2 to access function1, but if function1 was created above function2 then function1 would not be able to get function2 that is below it and only function2 would be able to access function1.
Creating a table and putting the functions inside the table however is a workaround for this since if the functions are technically made inside the table then they are accessed much much more easily without having to reorganize things constantly. Very helpful when you have over 10 functions in a very large script.
@@AmiruZycro You missed the point. What I said would allow both functions to access each other (even though this is generally bad practice, that's basically just recursion). Realistically it only has to be one way, co dependant functions are pointless as you may as well just combine them into one singular function somehow
but anyway as I was saying, if you had:
local Public = {}
local function SomethingLocal()
end
function Public.something()
end
"SomethingLocal" could access all of Public, and anything defined below could also access SomethingLocal. Basically making the entire "Local + Public" table system pointless.
I think this line of thinking is due to not actually experiencing the Framework.
Trust me, I completely understand what you mean. I felt this exact way towards Knit when I first heard of it. Why would I care about their Networking features, when I can easily do it with my own usage of Remotes?
Sure, you can do everything you see in a framework in your own way, but I’d recommend giving them a chance.
Once you use a framework, you’ll realize the advantages to those patterns that you couldn’t realize when you enjoyed using your own way.
@@AmiruZycro great explanation!
@@MonzterDEV I was not talking about Knit or networking at all. My point refers to the stuff you show at 7:23 in the video. 2 tables for locals and public things is completely unnecessary. Locals can be local without being in a table to be used anywhere. Just structure ur code properly
Actors: ######################
Wut
@@MonzterDEV did you heard of parallel luau?
@@yarik_superpro I do, but I wasn’t sure if those were those ones you’re talking about or how they relate to the vid lol
DSA
Stoping kids saying first
+1
but ur one?
@@onoca3861 i didnt know that im first untill u told me😅
💀
I can support that actually
So knit....
I feel like these comments stem from Knit being the only time people have heard the word "framework" being used in Roblox development. If you use Knit, you'll realize that this framework is only like 1% of what Knit offers.
KHJ
first very real
i dont know how to do scripts
First😂
a
Stop saying you liked your own comment
fIrSt
a