Это видео недоступно.
Сожалеем об этом.
Explaining ModuleScripts As If You Were 5
HTML-код
- Опубликовано: 21 дек 2023
- 50% OFF COUPON WITH "DOUBLEBYTE" (ends in 3 days):
linktr.ee/Byte...
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/...
You’ll also get 20% off an annual premium subscription!
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
i finally understand it holy crap you are amazing
oh hi chaseroony
NAH 3 LIKES
Hi chase
Chaseroony :O
Chaseroony comment with 4 replies lol
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-
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.
@@wedoalittletrolling723 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
you can use also modulescripts as a database for tool stats etc
zKevin moment
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
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
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@@wedoalittletrolling723
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
you explained it SO GOOD! i couldn't understand how it works until i saw this guide, thank you!
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.
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"
I absolutely love your teaching style, it's feels so much more natural while everyone else just seems *scripted* !
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.
best roblox dev yt channel ever. I literally got into dev bc of you. ty bro
bro's explanation is so good that i could watch every video of his without even noticing
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
The fact that your 9 min video explained Module scripts better than Alvinblox's 30 min video is amazing. Hats off
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.
@@arisethee 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
Module scripts are basically like installing a library if you were using a different programming language like for example python. Saying "import time" would give you a similar item with functions to use in your code. This lets you do the same where you define it yourself. It also means you can use module scripts from the toolbox in your code as you just require it and get all of these functions readily available, which may be used for advanced usages such as api calls from services outside of roblox.
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
I have the same situation basically
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.
@@arisethee 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.
NOTICE: do not put server sided modules outside of a server sided area otherwise exploits can read the file
I'm thinking if I should subscribe for more explanations, you're doing it so good and quick. thx
i think modules are used for cleaner managing and for multiple scripts to access the same material
This is very useful for when you have multiple objects that share functionality. More easy to maintain and upgrade.
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
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've actually been scripting for around 6 years, and I never have constructed a module script. Ever. Thanks for the info!
6 years??? I would be dead without them
Same I’ve been coding for 6 years and only started using them a year or 2 ago
The first time I actually tried a module script was in my most recent game. I’ve been developing for 8 years.
I love modulescripts, they makeme seem cool by making things that are really easy to do, 10x more complicated
module script is giving you one value once you require it,that it
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
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
I’ve been using modules for a lot of things over the years & they are very useful
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 feel like an old man saying "But that wouldn't be so much useful, i'd prefer to use the old way"
as a 500 year old, i can confirm this is a very good tutorial
As a 5 year old, module scripts now make sense! (seriously tho, ty for the explanation)
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
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
Can you do a tutorial explaining it to a 2 year old? I barely understood this one 😍
It's basically a table which contains functions or values and it only runs when you use "require()" on it
Module scripts feel like extra stuff I have to comb through
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’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.
@@arisethee not exactly 2 but I didn’t take it seriously for a while.
@@arisethee 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
@@lirpa6575 Best to just challenge yourself constantly, regardless of the hardship, use the documentation, don't use tutorials for learning but instead gaining knowledge.
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
good hook, nice video, good explanation, keep them videos coming 😍
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
i think its worth pointing out that module scripts can be directly used as a function if the script is written like bellow
module script:
return function()
blebleble
end
server script:
local func = require(modulescript)
func()
this is pretty useful is ur simply tying a single function to an object that is cloned.
a good example of this i found is in the game Juke's tower of hecc (jtoh) which has levels stored on the server which are cloned to each individual client making the game practically single player (even if u are playing on a server). if u look into its map making kit all the custom objects like buttons, morphers speed changes etc. youll find that each of those objects contains a module script that usually just contains a function as a set of instructions on what to do when the player interacts with them
It is a function that has no inputs but, it returns, and can only be called using require(f)
Love your thumbnail designs
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?
im still in the womb and thanks for the video
Module scripts run without call from another script. Only the functions inside the return statement are not used at runtime
OMG ITS LIKE A FUCKING CLASS!!!
THANK YOU! MY 5YO BRAIN UNDERSTAND NOW
I've been scripting for 7 years and didn't know how to use these until i watched this lmao
i have been using only modulescript for the past year, and i can confirm that module is table.
They can also return functions
Funny thing is i was recently looking up what module scripts are specifically
That was really helpful thank you
Nice for simple explaination
Also nice ModuleScript icon I wonder who draw it
thanks, i was really confused
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
A module script is just a function that only runs when you call require() on it, but it only runs once, so every other time you call require() it gives back the result it got the first time.
@freerobux49 by runs once I mean it runs once per machine, not per script
best tutorial ever!!
so basically, you can use it like a normal function, but with extra steps BUT more organized?
Byte!!! I wrote my first script without using a tutorial!!!
Awesome. Now recreate the entirely of Arsenal
@@byteblox100 as you wish master
Can you explain "return" as if we were 5, no matter how much searching I did I still can't undestand it very solidly 😖😖
instructions unclear im 4
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?
oh cool i wanted to learn a little more about these.
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 love your teaching style
but module scripts seem pretty useful now lol
I'm a 5-year-old at heart, I pinky swear promise. :D
This video had the only AD that i stopped to watch and i watched it till end
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. 😅
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
Bro me too I have been scripting for 2 years and I just recently found it
omg ty i love videos titled like this
i tbh use it mostly for sharing same tables with client and server
0 stars. As an un-educated five year old, I am not aware of the meaning of, “Variable.”
do cframes next
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
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...)
gave me a bit of javascript vibes there
How do people make objects breakapart into so many pieces like in Jujitsu Shenanigans and then respawn
This is literally module.exports from JavaScript 😭😭🙏
That's pretty cool
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.
Module scripts are similar to JSON functionality wise then
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.
Can you make a video how to make a role that requires a badge
Me who already knows what module scripts are and is just watching because I'm bored:
All hail byteblocks!
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....
A module script is basically a .dll but I Roblox.
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.
Leave a comment
Now i have information i dont need
thank you!
thanks