I currently have my skill system set up like this:
The local script sorts through the skills the player binded, skillsHandler essentially require and set up the skills in the folders (effects stats and what not). If you’re wondering why I should just combine the effects module with the skills itself, its because I would need to replicate those effects to other players by calling FireAllClient aswell, although I’m unsure if this is efficient.
However, the tricky part is the server, in the client I had to fire to the server with the skill name and call their functions like this
local skillsTbl = {
["Takedown"] = function(plr, target, args)
-- do stuff
end,
["Ground Takedown"] = function(plr, targetTbl, args)
-- do stuff again
end,
}
There will be lots of skills so this will be very unorganized, I could replicate the folders and modules method I used in the client though. I’m unsure if this approach is effective and I’m willing to change my system as there will be more complicated stuff like UIs so lots of arguments have to be passed through the modules
Any suggestions is welcome!