Explaining ModuleScripts As If You Were 5
Вставка
- Опубліковано 5 лют 2025
- get my full Roblox Studio course here (50% OFF):
linktr.ee/Byte...
photos of my pet pigeons: / subnautica_man
discord: / discord
wondered how to make a main menu in roblox studio? or how to create a shop which has working GUI? ive made lots of 2024 roblox scripting tutorials about all the different bits of roblox to give you some up-to-date information about all of its properties and events.
my goal is to simply give some insight on how to use the various features and instances roblox studio, and show you some fun stuff you can do with them. thanks for checking out this roblox scripting tutorial :)
Get all of my knowledge in one package: linktr.ee/ByteBlox
can i send you my stuff owo
@@fardmonkegaming lil bro is weird
@@LevixTheCreator shut up
@@fardmonkegamingur a creep
@@LevixTheCreatorme when i have never heard of ironic humor
As a professional 5 year old, I think I speak for the entire community that we are thankful for this educational video.
As a 0.69 year old i understood it
Yes, having 6+ years in experience of being 5 years old, I feel as if this perfectly resembles mine, and others opinions.
Oh good heavens, it seems like I am out of luck, I’m 4!
@@-stewie-shimmy ay shimmy ay shimmy ay shimmy ay
I haven't tried this method out, but maybe it will work for you, all you must do (theoretically) is wait a singular year and you may be granted the role of "5 Years Old". Tell me if works, and thank you for your time good sir.@@-stewie-
i finally understand it holy crap you are amazing
oh hi chaseroony
NAH 3 LIKES
Hi chase
Chaseroony :O
HI CHASEROONY
To summarise, module scripts will return a value which can be accessed from any script, server or client. They are used to reduce repetitiveness in scripts by providing functions meaning you don't have to rewrite functions in every single script. This also reduces inconsistency in scripts.
Every developer uses them even if they don't have to use them so if you aren't using them right now... WHAT R U DOING?!!?
Good but the return value should still be a table, as sometimes i encounter module scripts that return nothing but nil, and all it does is regular code stuff that a regular script would perform.
@@chibisayori20 if it's returning nil then there's something undefined in there or not set up correctly (im assuming these are YOUR modules, not marketplace). and it's not just the fact that it functions like a script, it's a script toolbox essentially; script: "i need a wrench for this!" module: "okay, here is a wrench! any other tools just let me know"
@@vaeppur usually i sometimes forgot that doing 'if bla bla then return end' in a module that is in the global scope would make it not return anything since i am used to that in regular scripts
zKevin moment
also known as D.R.Y
Don't
Repeat
Yourself
Good explanation. A lot of people get confused by modulescripts but this makes them sound really simple and easy to use. Another topic you should cover is Metatables.
yeah oop is really usefull
I agree, I've been wanting to learn Metatables for a while now.
Metatables are easy to learn
I don't think he knows metatables
@Aftertime400 if you know what you're doing
ModuleScripts are primarily used for reused code, or custom classes (in object-oriented-programming or OOP). If you need more than one script to use a certain function, don't rewrite it in the other script, make a utilities module with all your reused functions.
And if using it to store data in a dictionary, the module will hold onto values if they are changing frequently. However, if a module is required both on client and server, the data is not replicated between them.
another good analogy, think of a module script like a DLL file, DLL files don't run on their own on your computer, they get injected on runtime into the specified program that needs to use them (or is forced to with dll injection). A module script contains functions and variables while the script or local script uses pieces of those functions and variables to make custom behavior happen. Hence why we have community modules like Smart Bone, Smart Bone 2, and Good Signal out that work with local scripts and server scripts to enhance development for all.
The engine itself is full of DLL then
i dont believe you, you are s0!
in a way, yes@@chibisayori20
A DLL is a library that contains code and data that can be used by more than one program at the same time.
- Ah, almost like the definition is right in front of our eyes, "Fragment". How are libraries defined on an OP? DLLs, how does a programming language define libraries? by Module(s).
This helps a lot coming from C++ :D
best roblox dev yt channel ever. I literally got into dev bc of you. ty bro
amazing man. the studio wiki confused me and you made everything clear. Thanks
I absolutely love your teaching style, it's feels so much more natural while everyone else just seems *scripted* !
Module scripts for scripting advanced stuff ❌️
Module scripts for settings ✔️
Tbh I do both, module scripts for OOP is great and settings too
Also great to use for cross script shared data like player data
module scripts for OOP ❌ (OOP sucks)
module scripts for modular programming ✔
@@execute214 yessir.
@@execute214 not if u use it right or use an OOP game framework like knit
you explained it SO GOOD! i couldn't understand how it works until i saw this guide, thank you!
As soon as I learnt how to use modules 99% of my scripts became module scripts and my server scripts became like 2 lines long (referencing ReplicatedStorage or ServerScriptService and then requiring a module or 2)
Idk if I’m going overboard tbh
That's normal that's just the pure essence of object oriented programming
That is poor, and should not be practiced, are you trying to kill the Engine? Or are you trying to make updating your own frameworks lacklustre?
- I can't express enough about how people say they know how to OOP but at the same exact time completely ruin their own code, and the whole premise behind it.
@@negerleins ok… then how should it be done?
@@haxking2352 Instead of asking others how to do it, how about actually taking time out of your day to improve on it yourself.
One thing you didn't mention in your video but is a useful property of ModuleScripts is that they are only run ONCE per context (server / client). Requiring a ModuleScript a second (or more) times on the same context will return the exact-same table without running any code present in the ModuleScript. As a result, ModuleScripts can act as a "storage container" for your scripts to communicate with each-other as the returned module (or as you said, table) will always be the same "instance" of the module / table across all scripts on the same client/server. An example:
I have a basic ModuleScript similar to the default code provided when creating a new ModuleScript. Then I have two server scripts, each requiring the ModuleScript. One sets a "key" to a value, the second script waits a second and then prints the module; despite both of these pieces of code being in different scripts, the key + value we set in the first script is printed from the second script!
One thing huh
@@Riv3rz wreqwasd dffgj *yes*
Two things huh
so is a singleton?
Also you should note that: "you could add as much module scripts as you'd like, because they don't affect performance."
Unless multiple/many scripts are running and using the modules.
Someone need's to teach you how the Roblox Engine read/store/execute's data.
@@negerleins Uh, no? since I've been using what other people say and it just works with what I do as well..
lol if you didn’t know, the Roblox app’s interface is written in Luau, and those use hundreds of module scripts and it runs just fine
I feel like an old man saying "But that wouldn't be so much useful, i'd prefer to use the old way"
I've actually been scripting for around 6 years, and I never have constructed a module script. Ever. Thanks for the info!
Same I’ve been coding for 6 years and only started using them a year or 2 ago
The main reason I never understood module scripts when learning is I never understood the concept of return. Once I got what that is I instantly opened myself up to many, many new things. Even if statements because what the heck does == do? *returns* true or false. If true then the code runs, if false it doesn't so if something isn't == to something else it returns false. That's the most powerful piece of knowledge you can have about code because now you can play around with what returns what including and, or and byte libraries.
A module returns whatever you tell it to return, usually it returns a table named module that contains functions. This doesn't return magically, you have to require the module and when that's done, that's when the module is ran and it returns whatever it was told to.
This is very useful for when you have multiple objects that share functionality. More easy to maintain and upgrade.
I've been scripting for 7 years and didn't know how to use these until i watched this lmao
I love modulescripts, they makeme seem cool by making things that are really easy to do, 10x more complicated
as a 500 year old, i can confirm this is a very good tutorial
bro's explanation is so good that i could watch every video of his without even noticing
This was very useful, Before I didn't fully understand how they worked now I know. I can see it being used to store attacks and the code for the attacks in ModuleScripts.
I'm thinking if I should subscribe for more explanations, you're doing it so good and quick. thx
The fact that your 9 min video explained Module scripts better than Alvinblox's 30 min video is amazing. Hats off
ModuleScripts are the reason I still have hair on my head, because without them I would probably go insane trying to rewrite code for every script because of data being moved around.
i think modules are used for cleaner managing and for multiple scripts to access the same material
Clickbait, it didnt start as "Once upon a time" and didnt refer values and nerdy verbs as Rabbits, Apples and neither Princess.
My 5 year old daughter got bored and went out to the lego bar to eat and drink legos.
She choked on one and died, its all your fault.
Suppose i knew nothing about scripting, yet using pure logic i could understand serverscripts better if i knew what purpose modulescripts serve.
NOTICE: do not put server sided modules outside of a server sided area otherwise exploits can read the file
what exactly does this mean
I’ve been using modules for a lot of things over the years & they are very useful
Very simple concept. I did not see you mention the DRY principle. DO NOT REPEAT YOURSELF. If you have a method used in several scripts, instead of cut and paste, refactor the code and put the reused part in a module script. This is a basic Object Oriented principle. Good video on how to use it, I think the why could use some work. Perhaps you could put out another video where you found a reused method. Show people how to use a module script to eliminate the redundancy.
I never in my life thought that something as simple as changing the color of a part when you press a button would require the most advanced script in the language…
I knew about this for 6 months now, just wanted to see how you explain it
Can you do a tutorial for 4 years old? I can't wait till I turn 5
The first time I actually tried a module script was in my most recent game. I’ve been developing for 8 years.
as a 50 yr old i thank you for your work
So old bro is turning into a roblox grandpa. "Too old for simulators" "Back is my day we had confusing ahh scripts"
@@NaraSherko50 aint old ur like 7 💀
module scripts are not really the hardest scripts to use
when I first saw someone use these, it made me know how to use them
My brain is now braining with this video! Thank you dude.
i don't think that a module script is a table
i think it more like a function that always returns something
you have to use the require() function, which makes it act like a function
Bro I love your tutorials. I have not found any other channel where all the scripting stuff is explained so comprehensively and easily for my smooth brain to understand. Is there any chance you could make a tutorial on making a melee fighting system or something like that? We are trying to make a game with my friend but we are struggling so much to figure this out.
Maybe in the future. A melee system is simple, just learn about how to use raycasts
This was super useful for me. Thank you😭🙏
this sounds very useful for what im doing if i can just get it paired correctly.
module script is giving you one value once you require it,that it
its basically a predefined table that any script (well depending on its location) can access
It is a function that has no inputs but, it returns, and can only be called using require(f)
As a 5 year old, module scripts now make sense! (seriously tho, ty for the explanation)
ModuleScripts are actually more like functions with their main purpose being returning more functions that you will need
however you can put anything from a normal script into that modulescript and it will work like a normal one except you have to require it
example:
local module = {}
function module.add(...) -- sample function
local result = 0
local numbers = {...}
for i,v in pairs(numbers) do
result += v
end
return result
end
print("ModuleScript required!") -- This will print when the modulescript gets required
return module
So if I have a function that has a function that if your moving you have a variable damage = HungerReduce * deltaTime from a heartbeat function. And you return the damage. And you call the function from a server script and a local script. and on each script you have a hum.Health -damage. Will that take the health down on the Server and the Client side of things? I know you probably won't reply to this before I figure out how to do this. But i have been stuck trying to figure out how to get Damaged Health to happen on the server side so I can replenish it.
Love your thumbnail designs
good hook, nice video, good explanation, keep them videos coming 😍
Module scripts run without call from another script. Only the functions inside the return statement are not used at runtime
Funny thing is i was recently looking up what module scripts are specifically
Can't these be used like classes, kinda like stuff from GDScript or Java.
Basically you could have an Entity ModuleScript, and have all of your entities require it so that they all share common variables and functions. The cool part is that you could make another ModuleScript that requires the Entity ModuleScript and Override the ModuleScript's initial stuff so you can customize it for something else.
Ex: A dog ModuleScript extending from Entity
The upside to this method is that it allows you to create some really cool stuff using inheritance and composition like StateMachines pretty easily.
Although I could be wrong here. It's been like 3 years since I've touched roblox studio lmao
i have been using only modulescript for the past year, and i can confirm that module is table.
aka:
modulescripts are scripts that return a value once required, usually which returns a table containing variables but you can make it return anything
this is useful if you want modular code; you can store functions in modulescripts and thus code can be reused anywhere
2 years? 😨 i starrted making a random obby game like 4 years ago, where i didnt know wjat anchor is, crazy ur still smarter than me
I’m exactly like you. I’ve been scripting for 2 years but i only started using modules a few months ago. They’re game changing
2 years? Are you sure, what exactly have you been exploring? Definitely nothing programming wise.
@@negerleins not exactly 2 but I didn’t take it seriously for a while.
@@negerleins it’s because after a while I got scared of learning new stuff for some reason. So I stuck to the basic stuff I had and made games purely for fun. It wasn’t that long ago that I realised that this was something more serious
@@DustyGotBusted Best to just challenge yourself constantly, regardless of the hardship, use the documentation, don't use tutorials for learning but instead gaining knowledge.
0 stars. As an un-educated five year old, I am not aware of the meaning of, “Variable.”
i love your teaching style
but module scripts seem pretty useful now lol
so module scripts are basically like libraries for c++ where you can write some simple functions (like cout) and then include them in your regular script without having to copy-paste all those functions over?
Can you explain "return" as if we were 5, no matter how much searching I did I still can't undestand it very solidly 😖😖
oh cool i wanted to learn a little more about these.
This video had the only AD that i stopped to watch and i watched it till end
thanks, i was really confused
and where am i supposed to store all these module scripts
Leave a comment
Me who already knows what module scripts are and is just watching because I'm bored:
so basically, you can use it like a normal function, but with extra steps BUT more organized?
Is this channel just where you like as you learn scripting yourself, you are posting tutorials on what you are learning? Because if it is, I would recommend going a little more in depth about what it is, and where it can be used, etc... plus you learn more!
It’s both. I share what I’ve recently learned, and share what I learned like two years ago
They can also return functions
I'm a 5-year-old at heart, I pinky swear promise. :D
How do people make objects breakapart into so many pieces like in Jujitsu Shenanigans and then respawn
i was gonna say "lol there is someone that doesnt know how an simple modulescript works :o" but i cant judge as my experience learning and studying is better than most people as i had good developers also front-page helping me with good oportunities and doubts in general and i also had knowledge in python, c, javascript,html ( all basic but still nothing ) and i got an good mind to learn in general
good didact, i feel its impossible to someone not understand how u explained lol, i like to think scripts as an paper with their functions written in and an modulescript would be taking an paper from an box and then reading their information and then using in another paper, other script, i also like think about other things as the same concept
sadly most of roblox developers lack alot in knowledge and its why they understand something simple like that or even dont have maturity or simple dont know how to study, but well i can't complain, i already tried to help lots of people with my knowledge most of them dont want to be helped
im still in the womb and thanks for the video
All hail byteblocks!
0:09 seconds in and I already didn't understand it, might making 1 1 to explain ModuleScripts if I were a 2 year old?
Nice for simple explaination
Also nice ModuleScript icon I wonder who draw it
That was really helpful thank you
Can you make a video how to make a role that requires a badge
Basically its just a tool so you dont have to copy and paste the same function for 6000 different scripts
Don't tell me you do that....
ByteBlox, so a module script is just something like a storage unit or some box with things you use?
It’s just a table that can be accessed by any script
now make a tutorial on OOP (Metatables, inheritance, polymorphism, etc...)
and also, a modulescript doesn't have to return a table (it can return a function, integer, etc...)
Module scripts feel like extra stuff I have to comb through
So I'm making a game where if you tap a part, it plays a tween that rises that part. The thing is, if I put all of those variables and all of those functions in a module script, would I have to call each and every one of those variables and functions?
Might as well tell you how to fix this. So I was wanting to tween a part when I clicked a part, but I wanted this to happen for every part in a folder. Well, I tried collection service and couldn't figure it out, so I had to use attributes as booleans(true or false) basically, i can't type all the code because it will surpass the limit most likely, but first, make your folder a variable, second, make a for loop like
for I, part in (Folder:GetChilderen()) do
if part:IsA("BasePart") then
part:SetAttribute("Debounced", false)
end
end
This just adds an attribute called debounce into each part, and sets it to false. Let me know if you have questions
this gonna be hella useful
Byte!!! I wrote my first script without using a tutorial!!!
Awesome. Now recreate the entirely of Arsenal
@@byteblox100 as you wish master
hey man, I've been wondering for some time now, but how can i make a script that affects 1 player, example: A player touches a part and a sound will start playing, it only plays for the player whom touched the part and not other players.
Local scripts lol
I’m pretty sure I heard something about them being useful for larger amounts of data like inventories and characteristics-pets, tools, etc. I could be wrong though, it’s been a while. 😅
omg ty i love videos titled like this
OMG ITS LIKE A FUCKING CLASS!!!
THANK YOU! MY 5YO BRAIN UNDERSTAND NOW
So tell me if i'm wrong...
But this means you can put loads upon loads of variables and functions inside the module (that you've attached to a script)
And you can just script on a local or server scale without writing variables and functions inside those because you already made them inside the module???
(What i'm trying to say is that the module serves as a library that you yourself made)
If that's the case it's huge, very helpful because you don't need to scroll within 6 different scripts and more than 500 lines just to find your function or variable 😂
Basically yeah, modules are meant to be used as libraries
@@byteblox100 thanks for confirming, i put my head into coding like a month ago (since i was maining animations and vfx) and i was getting annoyed by the amount of time it took for to just go through a lot of lines and different scripts just to find functions and variables.
Thx again, i don't think i would've found this.
best tutorial ever!!
i learned how module scripts work and now my most recent project uses like 7 of them purely for the sake of storing functions🤑🤑🤑
i tbh use it mostly for sharing same tables with client and server
object oriented programming in roblox?
Can you explain what i and v do
bro functions are litteraly functions in lua butf can be shared across multiple scripts and data. you can index the functions and object within them to make things easier how the hell is this hard this is baby. im suprised, normal scripts are slighly challenging.
I still don't understand, Do I need to be 5 years old to learn this cuz I'll have to wait 1 more year.