Whats an efficient and optimal way to handle multiple different Abilities/Movesets for a fighting game?

Hey, so I’ve been repeatedly trying to make a fighting game only to restart the project over and over all because the system i create is clunky and/or hard to use. I’ve tried using one script to hold all movesets. Ive tried having module scripts for every moveset that hold multiple abilities and have another script that uses those abilities. Every single method i’ve tried ends up failing because either its not a good method to use, or i just dont know how to implement it. I’m tired of going on and on trying to make my game only for it to be scrapped and redone over and over. Please, someone, tell me how i should handle doing abilities for games. Also, this isnt just for abilities/movesets. I dont even know how i should be making the abilities. Do i make a module to handle damage/knockback, and use its functions throughout multiple scripts? Or do i just redo the stuff each ability? I dont know and i need someone who does know to tell me how to do this stuff. Ive been going for probably a year by now thinking im finally gonna create my game, only to get partway in and realise the stuff i made is buggy/inefficient/hard to read/slow to make/my system doesnt let me do a certain thing. How do i handle having certain abilities that need to save extra info? Like what if, for example, Ability A will target a player that your mouse is hovering over. And i need to save what player was hovered over to be able to use it somewhere else to make the ability actually target that player. How would i save the stuff? If its in a module and i save it there then it would be shared between players right? Do i need to make a folder that holds info for every player’s movesets? Another thing. What if some movesets dont have as many moves as others, or they have cooldowns that change based on certain factors like how long you’ve been holding the ability. How do i even handle cooldowns? Do i put it in a folder with number values? I thought i could have a folder with number values that say the time an ability was last used and how long the cooldown is. But i dont know if thats right or not.

Someone help me here. Im starting work on it again and it seems that my system im using is already starting to fail. I cant even make a simple punch work. Ive tried looking for answers but apparently im the only one with this issue. I already suck and constantly procrastinate over this project, its even worse when i stop procrastinating and it just doesnt work anyways.

Didn’t mean to make a paragraph but this has been bugging me for SO LONG

This wall of text is a little daunting to read. Here’s a general tip because we don’t really know how to support your efforts here: You can try to see if you can separate components of the system whenever needed and then “string” them up together in a cohesive manner.

Follow some simple tutorials on how to make a combat system on YouTube, just don’t think of it as memorization, think of it as something that you’ll be able to use outside of just this one combat system.