Hello there! I have been a Roblox developer/scripter for almost two years now. I have been coding different random things and games in studios here and there, and I recently became interested in more advanced code using modules to organize games and make them easier to update. But the problem is, I have zero clue where to look and where to find a good tutorial— not some random YouTube tutorial that will teach some basic thing and call it advanced. I specifically want to learn how to script advanced combat systems, ability systems, and frameworks . I really have no idea where to look. Almost all dev forums that talk about combat systems and all that are all the same answers and not really helpful . I have been trying to understand how to code such systems for a while—maybe a few weeks—and I’m completely lost . So, I came here as a last resort to possibly get actual help to get better at scripting . One thing I do have to say is, I’m definitely behind when it comes to scripting. I feel like after two years, I should be the one helping people, not asking for help .
Although I don’t want to and scripting fun things is my passion I don’t think I’m gonna be a good scripter anytime soon which kind of upsets me as it’s been my dream like everyone’s to make a popular game…
To summarize all this yap I’m looking for help where I can find courses paid or free where I will learn to code advanced systems or maybe some forums I can check out and learn from them to create advanced modules and systems. (mostly combat)
I would rather be a good scripter than better script as there is no joy in being a game developer if the work isn’t yours if the game ends up succeeding in the end it’s not really your game.
If you want to see how to use modules effectively a good place to start imo is with roblox’s example games in studio. You can find them in the “Templates” tab when you go to make a game and they make great use of advance scripting techniques like using modules effectively, and they have some documentation on how they work
However no tutorial or guide will always be a silver bullet for figuring out a problem so it’s best to train your ability to break down complex problems into simple tasks. Something as massive as a combat system will be daunting and confusing without breaking it down into smaller components first.
Example
Combat
To make combat I need to…
Get the players input
Play an animation on that input
Fire a remove event to the server at a point in that animation
Do a server check to see if there’s anyone in an area
If there’s someone, do damage
If they’re blocking, don’t do damage
Shop
To create an item shop where players can purchase things I need too…
Have the player trigger a remote event through something like a proximity prompt with what they’re buying
Also don’t get discouraged if it feels like it’s taking a long time to learn something. Everyone learns at different speeds, what’s important is if you’re making progress and having fun while learning :3
I’m in the same position as you are, I recently heard of frameworks, and there are almost no tutorials about them. I thought to myself that I could just start getting used to using a modular framework scripting style. What I understood about frameworks so far, is that there are two scripts, one server, and on client. Those two scripts load in the client or server, modules that make the game work.
I can definitely make a simple combat system using a local script sever script and a remote event that’s not advanced but I want to learn how to make a combat system using hitbox modules knockback modules skillset modules so each character skill set is different I can easily make a laggy and unresponsive combat system but then I wouldn’t really be making the game
The problem I’m having is not knowing where I should put which module should this one be server only or should it go into replicated storage or what needs to actually be a module script and what can just be a few simple lines on code in the regular scripts. I have searched all over YouTube forums and google to try and find a tutorial explaining how to structure and use module scripts and haven’t found what I’m looking for
So instead of scripting systems the old way that I used to, like making a bunch of scripts/local scripts, I would start using modules, because they allow you to communicate between scripts and much more, this is why they are better than normal scripts.
Well from what I read about frameworks is that they are made in a way where you can just copy and paste the entire framework and it works in every game they should also be easy to customize and addon to the only actual kind of decent tutorial out there is Ampro’s tutorial only problem is his code is most likely outdated and will cause a lot of error but he has a nice and neat framework set up for battlegrounds games with the folders different modules u will need etc personally I can’t really learn just by reading code but maybe you can so you can check out the video:
Only thing I don’t like is that he doesn’t really explain anything you are just copying what he puts in the code and he doesn’t even write it
Where you place the module is just for organization and what you want the client to access. If the module is only being used on the server then place it in ServerScriptService, but if you want the client to access the module put it in ReplicatedStorage
You could also write down everything you’re wanting accomplish with your combat and structure it on paper, maybe even writing pseudo code to further help you plan what you want to do, to help prevent you from getting overwhelmed with everything
measure twice = prepare for what you are gonna make and prepare well
cut once = use those preparations so you can slice through once and complete it the first time
I would suggest not only researching exclusively for Roblox content to understand systems and ways to optimize your workflow for any project in mind. It’s true that there are plenty of tutorials and resources for Roblox, but don’t limit yourself to these as sometimes the answers you are looking for can be found somewhere else.
As for where to place scripts, with how flexible the engine is slowly becoming it’s more a preference than a requirement. Keep in mind that if you need your server code to be secure, you shouldn’t place your scripts where they are replicated to the client and should opt for remotes and adding at least a basic layer of validation.
You might want to keep some things from replicating to the client or not require them for client execution, so you can keep them inside:
ServerStorage
ServerScriptService
For client side, you have StarterPlayer for player or character script execution. RunContext was added as forking your code from these can pose some challenge as not everything loads at the same time, so you’ll notice that Roblox tutorials opt for entirely storing their scripts in ReplicatedStorage instead. I’ve gotten used to doing it as well since it’s easier to find your codebase grouped and not looking at multiple places.
The use of modules is highly recommended when you want to either keep your code organised or build on something without putting all the code in one place as it either makes a script do too many things and the core functionality is made unclear. If your code has thousands of lines doing different things you might want to group stuff in modules.
There are many ways to use modules:
Utility methods
Singleton classes
Object Oriented Programming (OOP)
Plugins
Module loaders and handlers
And much more…
As a final note, do not worry that much about early optimizations as they can end up being more harmful than beneficial in the long run, but that doesn’t mean you should avoid clean clode and planning.
Interesting I haven’t thought of checking tutorials for other languages ill try that out and maybe there will be a good tutorial do you know anyone I should check out specifically?
I don’t really have any in particular to share, sorry.
There are plenty of papers around explaining just about anything if you don’t mind it here in the forums. When you do this kind of research, it’s more about understanding the thought process rather than the language itself.