[2.0] WCS - A combat system framework

:crossed_swords: WCS - A combat system framework

WCS is a handy framework that provides useful abstraction for your combat systems. It allows you to create any kind of combat system with ease, providing tools and covering basic and tedious stuff, like replication, skill creation, side effects, requests to server.

WCS is made utilizing Typescript and compiled to luau using roblox-ts. It supports both
roblox-ts and luau usage,
by prodiving type definitions for both languages.

:book: Documentation

:bar_chart: Github Repository

Good compatibility with :sparkles:Refx

Please give feedback! :dizzy:

102 Likes

I’ve taken a quick look and this looks really solid, nice job!

7 Likes

can you provide a version of the download link that doesn’t use github? some of us (me) are completely unfamiliar with github and don’t know how to use it

4 Likes

Direct link: https://github.com/g1mmethemoney/WCS/releases/download/0.7.1/wcs.rbxm

3 Likes

thank you very much

character limit is stupid, thank you developer forum

3 Likes

:star:0.7.21 Hotfix Release is out.

:blue_book: Changes:
• Fixed hard moveset replication bug + moveset not being cleared fully.
• Cleanup Unit Tests
• Fixed a bug where janitor won’t cleanup on client

Consider updating your WCS version.

Any examples of it to show what can be done with it ?

based roblox-ts user, would love to see example projects in the repo

5 Likes

looks pretty easy to use, thanks

Is there an editable demo place with some examples or .rbxl file ?

Thanks

you can build any combat system you want, the framework just provides you QOL stuff to make coding easier, it never limits you in any way

how would i do vfx with this? and can it be used outside of combat? like sprint or dash?

yeah ofc, sprint or dash can be “abilities” too

what is the difference between OnStartServer() and OnConstructServer()? because on my sprint test script the OnConstructServer runs as soon as the game starts and OnStartServer didnt

OnConstructServer() runs when the class of a status/skill gets instantiated. OnStartServer() executes when you :Start() the skill/status

It would be great if there were any examples shown of what can be done with this framework like @Lord_BradyRocks has said above. :slight_smile:

1 Like

i’ll post some of my creations soon

1 Like

Version 1.0.0 released. Release ⭐1.0.0 · g1mmethemoney/WCS · GitHub

How would i stop the sprint status effect

– Services
local ReplicatedStorage = game:GetService(“ReplicatedStorage”)
local Debris = game:GetService(“Debris”)

– WCS Framework
local WCS = require(ReplicatedStorage.Libs.CombatFW[“wcs-framework”])
local SpeedBoost = require(ReplicatedStorage.Combat.StatusEffects.SpeedBoost)
local Sprint = WCS.RegisterHoldableSkill(“Sprint”)

function Sprint:OnConstructServer()
self:SetMaxHoldTime(nil)
end

function Sprint:OnStartServer()
SpeedBoost.new(self.Character):Start()
end

function Sprint:OnEndServer()
end

return Sprint

You would create it inside OnConstructServer, set DestroyOnEnd to false and re-use it like this:

– Services
local ReplicatedStorage = game:GetService(“ReplicatedStorage”)
local Debris = game:GetService(“Debris”)

– WCS Framework
local WCS = require(ReplicatedStorage.Libs.CombatFW[“wcs-framework”])
local SpeedBoost = require(ReplicatedStorage.Combat.StatusEffects.SpeedBoost)
local Sprint = WCS.RegisterHoldableSkill(“Sprint”)

function Sprint:OnConstructServer()
      self:SetMaxHoldTime(nil)
      self.SprintingStatus = SpeedBoost.new(self.Character)
      self.SprintingStatus.DestroyOnEnd = false
end

function Sprint:OnStartServer()
      self.SprintingStatus:Start()
end

function Sprint:OnEndServer()
     self.SprintingStatus:End()
end

return Sprint