Tools Handler | Handle your tools easily

Hello! This is my first post on the community resources section, I apologize for any confusing information or code.

Introduction
For my past few projects, I’ve been struggling on how the tool system would work and what not. I’ve tried using classes, too complicated; also tried custom backpacks, also too complicated. I realized that both of these solutions didn’t even use Roblox’s tools, which is why I made this system. I understand that this wouldn’t be suitable for everyone, might have some bugs and some other issues, as it’s also my first free community resource that I put out to the public, but I would still like some feedback on what I should change as such.

Why this system?
This system splits your tool scripts into 3 different modules, 1 for configuration, 1 for the server and 1 for the client. Creating separate scripts for each tool won’t be efficient as it would be hard if you ever need to update something in each of them, since you have to go through each and every script just to change something.

What can this be used for?
This system is generally more suitable to use for tools that can be classified into classes, such as Melees, Guns, etc. It can also still be used for singular tools which doesn’t need to be classified. This system is quite modular so you can change anything to however you like.

Features

  • Organized scripts
  • Tool resources
  • Tool data
  • Tool config

Installation
This system uses FastNet2

Youtube Video: Video
Get it here: Tools Handler
Game File: Tool Handler.rbxl (81.2 KB)

Tutorial

Creating a tool needs 3 module scripts,

  • Server Module in ( ServerStorage > Tools )
  • Client Module in ( ReplicatedStorage > Modules > Tools ) (Optional)
  • Config Module in ( ReplicatedStorage > Modules > Configs )

You can have both modules and folders for tool classes and tool names, example:
ServerStorage > Tools > Melee and ReplicatedStorage > Modules > Tools > Sword
or
ServerStorage > Tools > Melee (Folder) > Sword and ReplicatedStorage > Modules > Tools > Melee

What I meant by class is the name of the folder of the weapon’s config is parented in, so if a sword’s config is parented to Melee, it’s classification will be melee

Customize the folder directories in ( ServerScriptService > Tool_Main > Directories )

--// Directories
Configs = Modules:WaitForChild("Configs");

ClientModules = Modules:WaitForChild("Tools");
ServerModules = ServerStorage:WaitForChild("Tools");

ClientResources = require(Modules:WaitForChild("Tools"):WaitForChild("Resources"));
ServerResources = require(ServerStorage:WaitForChild("Tools"):WaitForChild("Resources"));

Example Sword: ( You can find the example inside the rbxl file )
Config module:
image

Server module:
image

Client module:
image

There’s a tutorial module inside the file so you can also check that out along with the 2 example tools

Would appreciate any feedbacks / bug reports!

Would you use this system for your games?
  • No
  • Yes
  • Maybe

0 voters

How would you rate this sytem?
  • Good
  • Okay
  • Bad

0 voters

9 Likes

I really like the system, i am using it constantly, but ihave a problem, my rpg games uses new uis, skills, for each Melee of the same class, that means, i need to have things like A Different Data for each new tool with the same name/class, it would be cool if u could update the system to support this