You can also use the "for" syntax as an alternative to collection service, as you can multitask with it and it's very simple and not complicated at all to use. CollectionService is still pretty good though, but I prefer "for".
i suggest not trying to use workspace as a whole, because player models will exist in there too, and if their displayName is the same as a tag...then that changes a lot about the player in question
I never use collection service enough, but it is pretty handy. I personally just throw any object of a certain type (ie doors) into a folder called doors and loop through them instead
I don't use collection service, nor do I use dupe scripts. Instead I put them in a folder and for the loop I do folder:get children instead of collectionservice:get tagged but both work
This works well until you want to organise your folder structure differently. What if your doors are inside a building? You would probably want them to be inside the folder/model for that building rather than in their own separate doors folder. CollectionService allows you to easily access all the tagged elements rather than relying on a specific folder layout.
hey bro nice video !!! but by the way remember ? about doors ? you made the last episode is 7 about how to make doors in roblox studio so maybe you should continue making video about how to make doors in roblox studio ?
I usually just handle it on the client via a local script. However one time I was making a FE2 game, and in that one I just put a script that loads a module script with the code
Okay so, what makes me mad is that you didn't explain the for loop for this particular topic. Can you please tell me how that works for CollectionService?
it basically gets every instance (doesn't matter if they are in the ServerStorage, ReplicatedStorage, Workspace, etc) with the tag you are looking for. For example, it's very good if you want to handle AI's because you dont need a single script inside every npc or every npc inside a single folder
thank you. This is a very helpful video, everyone should know to do these. I've looked so much on how to do this. I really appreciate this, keep the work and don't give up. Also you should make a remake of your Tower Defense, maybe with rng, many people will look at a tutorial such it!
These tutorials provide the building blocks for a game. You're the one who makes the game! Use these as steps if you need to. Hopefully you can create yourself a fun game!
Can someone explain the original moving door script to me, specifically the "function MoveDoor(isOpen)" thing? I'm not understanding the argument of "isOpen" and how it's pertaining to the function. I know that arguments send information that is out of scope of a function to said function, but what information is "isOpen" sending? Does the "isOpen" attribute need to be applied to the model in order for the door to move? What about when the attribute is set to "not isOpen" after the proxim prompt is triggered? The door can still be moved after it's opened (closing the door). What does "local isOpen = model:GetAttribute("isOpen")" even mean?
If the door should be open or not, if it should, then it reacts a way, if it shouldn’t, then it react another way. Also, the last line just get the value of the attribute.
Its advanced scripting stuff and it seems like you dont understand it,but dont worry just practice more!And believe me studying better is better than studying more,so if you find scripting tutorials that you perfectly understand youre good to go!😊
There can be grammar mistakes so I hope you know how to fix my grammar (Put the Tween:Play() somewhere in a function like Script.Parent.ProximityPromt.Triggered:Connect(function() Tween:Play() end)
This is literally game changing! Just the other day I was wondering if Roblox has some sort of system similar to Unity Prefabs where you can just edit 1 and it would edit all of them. But now I know! ~~After almost 8 years~~ _Now I just have to go and implement this change... Oh god..._
How do you see the tags of an instance without a plugin? I use custom attributes and check its value for scripting. I can see attributes on the properties panel but idk where to easily find tags without plugin.
I dont use collection service , but i dont duplicate doors with scripts either, i would probably put parts to be replaced with the actual door asset when the game is launched, and used a module for the client to open doors
That's actually what many games outside of Roblox do, they just have a door as an asset and when game is launched and the level loaded, it will spawn the door assets at their respective positions and have their logic setup by a class. Same goes for NPCs, interactables, player spawners and in-fact, Roblox's engine works same way since the basic parts and stuff like that are all handled by engine side, it just the logic/player stuff is handled on the Lua side. Tho setting up a system like that is kinda difficult, but i assume you can utilize the Package system they have to have all assets, scripts all placed in that package, so you only have to import it once, and all updates should affect every place that has your package.
@@chibisayori20 i alteady made a system that has a module that can acess an asset with a directory string, its pretty cool , ex: "Models/Door/Cool Door"
Can you do hungry pig i've been waiting over 6.5 months for you to make the tutorial series and it's making me bored and tired of waiting and I want to see it right now I'm not good at waiting for stuff you know that!
Gnome, i really want to make a game like zombie Attack and zombie Rush.. Can you make a tutorial series about this please? I really want for example an episode about How to make a unique Boss for each map
Hey gnome code, I would love to see a FPS Game tutorial series like the How to make tower of defense game (Great Tutorial By the way). Thanks. And keep up the AMAZING videos!
@@GnomeCode bro you actually responded, i didn’t expect it would happen, me and my friend know its in derelict but, a question is would you know how to make a local script which prob has multiple scripts or not, if you do know can you try to make a vid or reply to this comment with a script, not needed but if you can then can you do it?
It basically means the object that you put the script into, for example if you put a script into a part the script.Parent would be the part,and the script would be called the ‘Child’ of that part. If you are new to scripting and you think you are ready and smart you can always learn to script,as there are many tutorials out there on RUclips! 😊
hey, i have a few video suggestions. you know your custom characters video (not the morph one)? well, maybe you could show us how to code an idle animation and jump animation. also, how do you make it so an animated decal plays only for a specific animation?
Hey gnome, could you explain why do you use "isOpen" and "Close" or "Open" for proximity prompt text? Im assuming isOpen is a boolean attribute, but how does this works? The same happens at the color... Is it because, since its a boolean, if its true it will get the first parameter otherwise get the second? Appreciate, Thanks.
or gives you the first value if its not nil or false and the second otherwise. true and "close" or "open" will give you close becuase true and "close" are both true values false and "close" or "open" turns into false or "open" because false and true -> false and if the first value is false or gives back the second one Idk if this made any sense Its lua's ternary operator
Thats actually really usefull, but i have a game that cant have this or some stuff will break, also i know people ask this a lot but when is episode 8 of the doors tutorial? I dont wanna risk breaking everything by changing some code
... bro lore is a story element in your game, u dont need scripting for lore, lore is story and you decide it, u dont need a tutoeial to make up a story
Sorry i thought you asking about the model that is in the for loop, in the parameter because you add the function movedoor to the for loop and told the script that you want it to work on the model and isopen using the parameter
Just copy and paste them, or use Package system to make the door a package, so if you change the door's script, and update the changes it should update all doors in the place. You could also put the door in a storage service (ReplicatedStorage or ServerStorage) and clone them to a position on the map.
It makes more sense to have your scripts either in server script or player scripts. They should never be in a model. It keeps things organized and maintains a good workflow
@@miles1094 So how about NPCs? Do i have to use OOP or even use for loops to make something like a enemy NPC that shoots you with a weapon? I can understand AI navigation, but what about aiming, shooting weapon, and all that misc stuff? 99% of NPCs with weapons i came across in toolbox have their scripts inside the model, and yeah sure non roblox NPCs are handled differently like they have seperate classes for them, like behavior, weapon handling, etc but this is roblox
@@chibisayori20I use CollectionService and ModuleScripts for my AI's, and when I did a stress test with 30 of them i mostly get 45-50 fps and my PC is pretty much a low-end pc. And when all my AI's had separate scripts it made me get 20-30 fps.
@@chibisayori20 That doesn't mean theyre good 99% of those npcs are outdated and not very optimized Now you could have scripts in your npcs and still have them optimized, but generally itd just be better to have one script manage multiple npcs instead of multiple scripts managing their respective npcs Aiming, shooting, etc, just use modulescripts brah
Should be noted that you no longer need the CollectionService plugin, as it has been officially added to roblox in the View tab.
It makes it easier with the world view
NOTE: if you encounter bugs with it try to make sure none of the variables you are making are global because that really messes with everything alot
Outside the loop or in?
Generally anywhere, you shouldn't use global unless you have to reference it in another script for some reason
@@coreydorce8246module scripts negate that
These are the habits that more people should be spreading awareness of.
I found you here too?! Cool
oh hey ph4ntomize
Oh hey
dear sweet jesus you're alive
Gnome always with a helpful video, keep up the good videos man.
Thank you!
@@GnomeCodecan you show how to use messaging service i want to make global shop stock, and wonder how it works. Hope you will help
If you have multiple server script, it is highly recommended to tween the doors in client side and not server side for performance and efficiency
Exactly what I had been searching for. Thank you!!
You can also use the "for" syntax as an alternative to collection service, as you can multitask with it and it's very simple and not complicated at all to use. CollectionService is still pretty good though, but I prefer "for".
More of this series please
i suggest not trying to use workspace as a whole, because player models will exist in there too, and if their displayName is the same as a tag...then that changes a lot about the player in question
??? Bro what they don't have the tag themself it's just their display they don't have a tag value
@@FINDROBLOX didnt know at the time, lol
This video saved me from copy and pasting 840 times thank you so much 😊
I never use collection service enough, but it is pretty handy. I personally just throw any object of a certain type (ie doors) into a folder called doors and loop through them instead
Same
same
same
Not very convienent, in my situation i have to use over 5 for loops..
Ty so much I’m learning to script and I’m in the middle of making a game and this helps a lot with optimization
unironically saved me a huge headache
Bro, I needed This Tutorial
♥
it took me so long to find a good tut like this one
💀💀💀💀
Gnome sir you explain so good but how do you have so much less subs you should reach 1 million!
This video saved me from copy and pasting 840 times tysm
didn't know about that, thank you man!
I’m going to use this for UI button sounds. Thanks!
Thank you very much, now I can make my Sci-Fi doors of my game work on that
The tag editor plug in is no longer needed. Robots add a tag instance in the properties window.
"Robots" lol
typo I meant Roblox, :)@@chibisayori20
I don't use collection service, nor do I use dupe scripts. Instead I put them in a folder and for the loop I do folder:get children instead of collectionservice:get tagged but both work
same
This works well until you want to organise your folder structure differently. What if your doors are inside a building? You would probably want them to be inside the folder/model for that building rather than in their own separate doors folder. CollectionService allows you to easily access all the tagged elements rather than relying on a specific folder layout.
@@GnomeCode ooo good point imma start using this
I was doing this too but now that I know this exists I will be using collection service
Thank you GnomeCode. I’m currently making a game and you have no idea how helpful this is 😅
Could you do a tutorial of a turn based system? I've been looking for some a long time.
I agree! It would be so cool to learn how to make one!
Ohh now this makes more sense.
this video is so helpful
hey bro nice video !!! but by the way remember ? about doors ? you made the last episode is 7 about how to make doors in roblox studio so maybe you should continue making video about how to make doors in roblox studio ?
There’s a different way I like to do it using folders
I usually just handle it on the client via a local script. However one time I was making a FE2 game, and in that one I just put a script that loads a module script with the code
I learned you dont need pairs() or ipairs() anymore because luau now has general iteration. :(
I have a question, what if I wanted to change one thing on each of these? Ex. A button has a unique variable that only it has
Okay so, what makes me mad is that you didn't explain the for loop for this particular topic. Can you please tell me how that works for CollectionService?
it basically gets every instance (doesn't matter if they are in the ServerStorage, ReplicatedStorage, Workspace, etc) with the tag you are looking for.
For example, it's very good if you want to handle AI's because you dont need a single script inside every npc or every npc inside a single folder
OH MY GOD I LOVE YOU.
omg omg omg omg ty ty ty ty
your tutorials are amazing dude, thanks to you i actually know quite a bit about coding now.
I never knew what this was before this video :)
thank you. This is a very helpful video, everyone should know to do these. I've looked so much on how to do this. I really appreciate this, keep the work and don't give up. Also you should make a remake of your Tower Defense, maybe with rng, many people will look at a tutorial such it!
Thanks for making this
where are new tutorials on how to do games?
These give you the building blocks / tools to make games!
These tutorials provide the building blocks for a game.
You're the one who makes the game! Use these as steps if you need to.
Hopefully you can create yourself a fun game!
Upload grind recently.
you can make a tutorial on how to create a boss fight like the ones in item asylum
Can someone explain the original moving door script to me, specifically the "function MoveDoor(isOpen)" thing? I'm not understanding the argument of "isOpen" and how it's pertaining to the function. I know that arguments send information that is out of scope of a function to said function, but what information is "isOpen" sending? Does the "isOpen" attribute need to be applied to the model in order for the door to move? What about when the attribute is set to "not isOpen" after the proxim prompt is triggered? The door can still be moved after it's opened (closing the door). What does "local isOpen = model:GetAttribute("isOpen")" even mean?
If the door should be open or not, if it should, then it reacts a way, if it shouldn’t, then it react another way.
Also, the last line just get the value of the attribute.
Its advanced scripting stuff and it seems like you dont understand it,but dont worry just practice more!And believe me studying better is better than studying more,so if you find scripting tutorials that you perfectly understand youre good to go!😊
This video really helped with my original simulator
question:how do you make the sliding door is it in the toolbox?
There can be grammar mistakes so I hope you know how to fix my grammar (Put the Tween:Play() somewhere in a function like
Script.Parent.ProximityPromt.Triggered:Connect(function()
Tween:Play()
end)
how to make a purchase prompt for catalog items and clothes appear when text button gui is clicked
Can you make a tut On how to Make a Tds Game??
he already did
@@thingytb7458 I Mean like a New Tut Sense this one does not work
Thank for the video
Any way to make collection service execute when new part with such tag gets added to a workspace?
are you back from your break?
will you continue the Noors tutorial? are you planning on make other tutorials also?
Noors
@@sebalby34 *Doors
Hey GnomeCode, could you show us how to make a turn based fighting game similar to Adventure Story? It would be awesome!!
what about For i loops
you could also use that
Gnomecode make chapter 5 man I beg you make chapter 5 I LOVE YOUR GAME MAKE CHAPTER 5😢
Its helpful this thanks
Thank you mr gnomecode!
Hello! you can make a tutorial on how to make Doors HOTEL UPDATE in roblox studio
What if i need to put while loop in a ton of parts?
thanks
please make a rts game tutorial
This is literally game changing! Just the other day I was wondering if Roblox has some sort of system similar to Unity Prefabs where you can just edit 1 and it would edit all of them. But now I know! ~~After almost 8 years~~
_Now I just have to go and implement this change... Oh god..._
This is actually sick! Gnome, how did you learn coding?
How do you see the tags of an instance without a plugin? I use custom attributes and check its value for scripting. I can see attributes on the properties panel but idk where to easily find tags without plugin.
Hey gnomecode how to we use collection services on kill parts?
Any other game engine makes that automatically for everything...
Roblox is pretty flawed
I have been wondering how do this for the past few weeks this will help SO MUCH
Help I want to put a tween in it
bro said no doors
This is so helpful!
Please finish the doors series
I dont use collection service , but i dont duplicate doors with scripts either, i would probably put parts to be replaced with the actual door asset when the game is launched, and used a module for the client to open doors
I would create a separate folder with doors and use a for loop
That's actually what many games outside of Roblox do, they just have a door as an asset and when game is launched and the level loaded, it will spawn the door assets at their respective positions and have their logic setup by a class.
Same goes for NPCs, interactables, player spawners and in-fact, Roblox's engine works same way since the basic parts and stuff like that are all handled by engine side, it just the logic/player stuff is handled on the Lua side.
Tho setting up a system like that is kinda difficult, but i assume you can utilize the Package system they have to have all assets, scripts all placed in that package, so you only have to import it once, and all updates should affect every place that has your package.
@@chibisayori20 i alteady made a system that has a module that can acess an asset with a directory string, its pretty cool , ex: "Models/Door/Cool Door"
Hey man your one of my favorite youtuber can u do a 'teddi' series. Its a very underrated game so u may have not heard about it
He made teddy
Nice, short and entertaining video!
No one is gonna mention the creator named sweetheartichoke xd?
I was waiting for this Exact tutorial.
Can you do hungry pig i've been waiting over 6.5 months for you to make the tutorial series and it's making me bored and tired of waiting and I want to see it right now I'm not good at waiting for stuff you know that!
He is bad at waiting
Is there any way to make this A touched function?
Thank you so much!
How do you do this with zombies
Thx
Gnome, i really want to make a game like zombie Attack and zombie Rush..
Can you make a tutorial series about this please?
I really want for example an episode about How to make a unique Boss for each map
Hey gnome code, I would love to see a FPS Game tutorial series like the How to make tower of defense game (Great Tutorial By the way). Thanks. And keep up the AMAZING videos!
GnomeCode, why you using a plugin for tagging objects? Roblox studio have their own simple tag editor.
so he can infect his place with viruses
hey any of you know how to get the player to rotate based on the rotation of a part the player is standing on?
Use Cframes!
@@GnomeCode bro you actually responded, i didn’t expect it would happen, me and my friend know its in derelict but, a question is would you know how to make a local script which prob has multiple scripts or not, if you do know can you try to make a vid or reply to this comment with a script, not needed but if you can then can you do it?
@@GnomeCode also i have a question, im trying to make a horse but cant find any tutorials if you could make one i will be thankful
Very useful, ive had enough of changing scripts in 20 different models
What does scipt.Parent mean?
It basically means the object that you put the script into, for example if you put a script into a part the script.Parent would be the part,and the script would be called the ‘Child’ of that part. If you are new to scripting and you think you are ready and smart you can always learn to script,as there are many tutorials out there on RUclips! 😊
can you make a how to make jojo game?
hey, i have a few video suggestions. you know your custom characters video (not the morph one)? well, maybe you could show us how to code an idle animation and jump animation. also, how do you make it so an animated decal plays only for a specific animation?
Hey gnome, could you explain why do you use "isOpen" and "Close" or "Open" for proximity prompt text? Im assuming isOpen is a boolean attribute, but how does this works? The same happens at the color... Is it because, since its a boolean, if its true it will get the first parameter otherwise get the second?
Appreciate, Thanks.
or gives you the first value if its not nil or false and the second otherwise.
true and "close" or "open" will give you close becuase true and "close" are both true values
false and "close" or "open" turns into false or "open" because false and true -> false and if the first value is false or gives back the second one
Idk if this made any sense
Its lua's ternary operator
@@kristof0713 I see... Ty, now it makes sense!! =D
Thats actually really usefull, but i have a game that cant have this or some stuff will break, also i know people ask this a lot but when is episode 8 of the doors tutorial? I dont wanna risk breaking everything by changing some code
Mr Gnomecode, you should make a video about making lore!
... bro lore is a story element in your game, u dont need scripting for lore, lore is story and you decide it, u dont need a tutoeial to make up a story
How does the script knows what ''model'' is? (parameter on 4:55)
Because you told it to look at any model that has sliding door tag
Also "model" is a variable so you can change it to what ever you want like name it "door"
Sorry i thought you asking about the model that is in the for loop, in the parameter because you add the function movedoor to the for loop and told the script that you want it to work on the model and isopen using the parameter
Just copy and paste them, or use Package system to make the door a package, so if you change the door's script, and update the changes it should update all doors in the place. You could also put the door in a storage service (ReplicatedStorage or ServerStorage) and clone them to a position on the map.
It makes more sense to have your scripts either in server script or player scripts. They should never be in a model. It keeps things organized and maintains a good workflow
@@miles1094 So how about NPCs?
Do i have to use OOP or even use for loops to make something like a enemy NPC that shoots you with a weapon? I can understand AI navigation, but what about aiming, shooting weapon, and all that misc stuff?
99% of NPCs with weapons i came across in toolbox have their scripts inside the model, and yeah sure non roblox NPCs are handled differently like they have seperate classes for them, like behavior, weapon handling, etc
but this is roblox
@@chibisayori20I use CollectionService and ModuleScripts for my AI's, and when I did a stress test with 30 of them i mostly get 45-50 fps and my PC is pretty much a low-end pc. And when all my AI's had separate scripts it made me get 20-30 fps.
@@chibisayori20Plus my AI's can actually attack
@@chibisayori20 That doesn't mean theyre good
99% of those npcs are outdated and not very optimized
Now you could have scripts in your npcs and still have them optimized, but generally itd just be better to have one script manage multiple npcs instead of multiple scripts managing their respective npcs
Aiming, shooting, etc, just use modulescripts brah
Thank you so much! It's really annoying to copy & paste every single line of code a lot of times.
Glad it helped!
Thank you.
Elo mate! Is it possible for you to make another TDS tutorial on roblox? I feel the first one is pretty outdated.
thanks its so usefull
Updated tower defense code!
Its not workimg...
this is MAD useful and easier
Hey gnome! Do u know how to make one of those animation games? Day 1.
Animaton games?
i would just use a module script for all the doors to share.
"NO I REFUSE TO TOUCH MODULESCRIPT I WILL NOT USE OOP. LONG LIVE REGULAR SCRIPTS!!"
- A regular script purist probably.
@@chibisayori20 lol, but then wouldn't you repeat ur code?