i installed this version using wally and synced with rojo and i’m getting this error
12:40:39.880 Infinite yield possible on 'ReplicatedStorage.Packages._Index.cheetiedotpy_wcs@2.0.2.wcs.include.node_modules.@rbxts:WaitForChild("charm")' - Studio
12:40:39.880 Stack Begin - Studio
12:40:39.880 Script 'ReplicatedStorage.Packages._Index.cheetiedotpy_wcs@2.0.2.wcs.include.RuntimeLib', Line 53 - function import - Studio - RuntimeLib:53
12:40:39.880 Script 'ReplicatedStorage.Packages._Index.cheetiedotpy_wcs@2.0.2.wcs.source.actions', Line 4 - Studio - actions:4
12:40:39.880 Stack End - Studio
Thank you for the update!
Quick bug/question: the StatusEffect priority does not work as described in the tutorial.
The tutorial describes that the priority will override any changes, ‘Set’ AND ‘Increment’ here: Humanoid Data | WCS, but while I was testing, I realised that changes to the humanoid data using Increment will still go through even if the priority is lower.
A look through the code seems to confirm my suspicion. Why is priority only used for “Set” in the code below?
local _callback_1 = function(StatusEffect)
local humanoidData = StatusEffect:GetHumanoidData()
if not humanoidData then
return nil
end
local priority = humanoidData.Priority
for PropertyName, PropertyData in pairs(humanoidData.Props) do
if PropertyData[2] == "Increment" then
propsToApply[PropertyName] = (PropertyData[1] + propsToApply[PropertyName])
elseif priority > incPriorityList[PropertyName] then
propsToApply[PropertyName] = PropertyData[1]
incPriorityList[PropertyName] = priority
end
end
Fair enough, but then the explanation in the Tutorial is misleading.
Please define a consistent interaction depending upon priorities since it is currently inconsistent.
Simplest example: imagine we have two status effects: a) [Increment, -5] and b) [Set 0] both for WalkSpeed. If a) is called first then b), the WalkSpeed is 0, but if b) is called first, then the WalkSpeed becomes -5. Hopefully, you can imagine how this is a problem if you expected status effect b) to either have a higher priority or always override increments.
I’m having an issue with messages. Im testing out the framework and for some reason I cannot get a message to get noticed on the client. Here is the Skill I made:
the “serverSaidSomething” method is never fired but the Skill is started on both the server and client as shown here:
I re-read the documentation like 10 times but I am at a loss now. Am i doing something wrong?
Amazing framework, the system itself is pretty useful with a lot of handy functions, something like this is an incredible tool. My only complaint would be the Documentation, it’s not very explicative on some aspects (Status Effects and Messages), I have had to go and read the code of the modules to try and understand how to use a function as the Documentation has very little information on things like the parameters a function requires, or how even to intercept a message being sent from the server on the client.
This aside, I’m having issues understanding .GetAllStatusEffects(self.Character) and .GetAllActiveStatusEffects(self.Character). Whenever I try to print the return of the functions I get something unexpected
Is there any error in in the parameters I’m using, am I missing something and this is how it’s supposed to be, or perhaps those functions don’t work right?
I am having a breaking issue where creating a WCS_Character after the player resets does not replicate to the client and returns nil when using Character.GetCharacterFromInstance().
In the video the m1 skill is constructed on both the server and the client. I am using a while loop to continuously print out the value returned from Character.GetCharacterFromInstance() which is copied from the documentaion:
After I reset my character, the function starts returning nil even though in the output you can see the skill was constructed on the server, but not the client. I am not sure if this is a bug but its been super frustrating since I am literally using the code straight from the documentation.
This works as intended, it returns an array of StatusEffect objects.
Roblox doesn’t stringify the tables and show the internal contents of those objects, that’s why it looks a little weird in the console.
Are you sure you’re creating the character again when you reset?
A guaranteed way of getting WCS_Character from client would be Character.GetCharacterFromInstance(this.instance) || Character.CharacterCreated.Wait()[0];
i dont know if i did something wrong but when i try using messages from server to client it doesnt work even when i copy and paste the code from the documentation
Yea events from server to client dont work at all on the latest version.
Also I am not sure if I am doing something wrong but awaiting a promise from a request (client → server) just yields infinitely. And also I dont think promises are properly cleaned up because errors occur after the character resets. This is my code:
I have 2 messages, 1 for sending a event to the client to print something, and another one to get the current combo. The first message just straight up does not work at all. And the request does work but if I use .await() instead of .andThen(), the function seems to yield forever or just stop. Here is the video showing this:
I have found my own solution by modifying the ‘skill’ module to suit my needs. However, it would be nice if it was a voluntary choice whether a skill could be used even if another is active on future upgrades.