Metastruct / outfitter

Outfitter: Workshop player models for multiplayer
http://metastruct.net
13 stars 7 forks source link

Hands do not work possibly due to a bug #97

Open Link2006 opened 7 months ago

Link2006 commented 7 months ago

I've got a model uploaded to the workshop that has hands working with its lua script, but it seems outfitter cannot find the model made for the hands.

Is there something that has to be done to make it support outfitter? Any specific file name for the hands?

Cynosphere commented 7 months ago

Outfitter does not touch any Lua files.

The model's filename must match either one of these https://github.com/Metastruct/outfitter/blob/cdf1e9a9f86029b2070e3989fa9ae4cec47eca52/lua/outfitter/cl_util.lua#L750-L753

You can try using outfitter_dbg 1 and looking at the output when wearing to find the reason as to why its failing outside of that.

Link2006 commented 7 months ago

I've changed from link2006_arms to c_arms_link2006 and the issue persists, the playermodel's arms works fine when installed manually like normal (without using outfitter).

There seems to be a problem with how the addon uses/detects hands/arms? [Outfitter] CategorizeModel arms unkn models/link2006/c_arms_link2006.mdl [Outfitter] CategorizeModel nil player models/link2006/link2006.mdl [Outfitter] EnforceHands? true 1 true table: 0x889f8f32 nil

I've also checked and MDLIsHands() only seems to check for /c_arms_ while CategorizeBadModelPaths checks for more, while returning arms rather than hands? Not sure what else could be wrong otherwise.

EDIT: Also it seems that outfitter_dbg is not just a boolean, but rather a level, setting it to 999 (probably just needed higher than 11?) is how i've found more of these debug logs

Link2006 commented 7 months ago

I've done some local testing and found that outfitter considers my hands bones being invalid, i've checked the code and found this line to be the culprit? https://github.com/Metastruct/outfitter/blob/cdf1e9a9f86029b2070e3989fa9ae4cec47eca52/lua/outfitter/sh.lua#L270

At this point, with a valid hands model, gotone is set to true and hadspine to false, yet returns the bones aren't valid

I'd assume the intended line is if not gotone or hadspide then return false, 'bones' end but i have no means to test it myself.

EDIT: Unsure if i should edit the name now EDIT2: Changed title.

sr229 commented 3 months ago

I've tried to replicate this just yesterday as passing boredom and I can conclude Outfitter is working intended here. It may be your model is incorrectly compiled/rigged hence the model is invalid.

Link2006 commented 3 months ago

Interesting as I've tried the model directly and Garry's mod does load the hands properly, even when i checked the files, the bones and rigging looks okay. The workshop comments also all claims their c_hands also stopped working, Thanks though.