So I’m working on a skill system, and i need a reliable and easy-to-work-with framework. I have a module script (in ReplicatedStorage called MoveData) that defines everything about the move. I want every move to be activated from tools that have the corresponding name. Please help me I’ve been trying for the past 5 hours and I’m really starting to get very disappointed because this is literally my dream game. If anyone could help create a framwork that would mean the WORLD to me. Thank you!
(MoveData):
local assets = game.ReplicatedStorage:WaitForChild("Assets")
local MoveData = {
--test move
Fireball = {
Damage = 5, --self-explanatory
StunTime = 1.5, --how long the user cannot use moves
UserStuckTime = 1.2, --this determines how long the user is stuck while using the move
UserStuckSpeed = 7, --this determines how much WalkSpeed the user has while stuck
RagdollTime = 1.5, --amount that user is ragdolled for (to ragdoll/unragdoll a player, just do RagdollModule.RagdollCharacter(charactertoragdollgoeshere) and the same thing to unragdoll only instead of saying RagdollModule.Ragdoll it is RagdollModule.Unragdoll)
MoveFireTime = 1.1, --this is how long it will take before the move fires (example: if its a projectile, it will fire the projectile towards where the cursor is at the time of this firing. Also, right when the move starts, BEFORE this fires, i want the users body to constantly be rotating towards the mouse postion)
KnockbackForce = 10, --force of the knockback
KnockbackOrigin = "Center", --could be either center or a specified knockback origin for somthing like a push move
Animation = "rbxassetid://132127577863396", --the animation the move playes
Cooldown = 4, --cooldown of the move in seconds
MoveType = "Projectile", --can be either Projectile, Beam, AoE, Dash, or Continued (for context, continued is if someone stays in the hitbox they will get continued damage and stun.)
HitboxSize = 3, --calculated in studs
HitboxType = "Explosion", --can be either Explosion, or Beam (beam will allow me to shape the size in specified directions)
HitboxOrigin = "Right Arm", --where the hitbox comes form. For example, if its a projectile it will fire from the arm of the player
VFX = assets.Fireball.Explosion, --VFX that will play for the move
Projectile = assets.Fireball, --for if the move is a projectile type move
ProjectileExplodes = true, --for if the move is a projectile type move
TickDamage = nil, --for continued type moves
TickTime = nil --for continued type moves
},
}
return MoveData
To anyone who helps.