spideswine 278 Report post Posted December 22, 2017 9 minutes ago, Silentdarkness1 said: Wait..........now that you mention it, isn't there an API for modded custom skins? Although even if we did do that, we'd need a way to force that skin to always be on. EDIT: No, that wouldn't work either. Illegal to do that to make it work with standard characters. It's not really a skin, it's a workaround, and klei are generally reasonable. Share this post Link to post Share on other sites
Silentdarkness1 1162 Report post Posted December 22, 2017 (edited) Yes, but using it to make skin for vanilla characters would mean instant report. Edited December 22, 2017 by Silentdarkness1 Share this post Link to post Share on other sites
spideswine 278 Report post Posted December 22, 2017 from who? People won't be able to tell it's a skin because it's not really a skin. Share this post Link to post Share on other sites
Silentdarkness1 1162 Report post Posted December 22, 2017 From Klei community members. Rules are rules, and I really don't want to risk running afoul of Klei because I skirted the rules a bit too much. Now, if someone from Klei was to give the go-ahead, then I guess we could try that. Share this post Link to post Share on other sites
Eusong 179 Report post Posted December 22, 2017 I personally don't want to risk it when it likely won't work anyway. Not a bad suggestion though. Share this post Link to post Share on other sites
Silentdarkness1 1162 Report post Posted December 22, 2017 UPDATE: So, after having gotten someone else to pitch in and help on Discord, we managed to make a great deal of progress: Many thanks to @PeterA for the piece of code that helped us get this far! However, there is now a new problem after unequipping. The hand animations seem to be permanently borked after unequipping the shield. local function onequip(inst, owner) owner.AnimState:OverrideSymbol("swap_object", "swap_buckler", "swap_buckler") owner.AnimState:SetMultiSymbolExchange("swap_object", "hand") owner.AnimState:Show("ARM_carry") owner.AnimState:Hide("ARM_normal") inst:ListenForEvent("blocked", OnBlocked, owner) end local function onunequip(inst, owner) owner.AnimState:SetMultiSymbolExchange("hand", "swap_object") owner.AnimState:Hide("ARM_carry") owner.AnimState:Show("ARM_normal") inst:RemoveEventCallback("blocked", OnBlocked, owner) end This is in the shield prefab file, not modmain. We're still trying to figure out why this isn't working out. We know about the build name, but that shouldn't be doing this. Any ideas would be appreciated. Share this post Link to post Share on other sites
PeterA 9097 Report post Posted December 22, 2017 in onunequip you'll want to call anim_state:ClearSymbolExchanges() Share this post Link to post Share on other sites
Silentdarkness1 1162 Report post Posted December 22, 2017 4 minutes ago, PeterA said: in onunequip you'll want to call anim_state:ClearSymbolExchanges() ....................PETER. DAMNIT, YOU'RE MAGIC. That did it! Share this post Link to post Share on other sites
PeterA 9097 Report post Posted December 22, 2017 I suspect you'll run into some issues with the legs clothing and various shoes. The Symbol exchanges was added for that and I think only support a single exchange at a time. So beware there may be some bugs there Share this post Link to post Share on other sites
Silentdarkness1 1162 Report post Posted December 22, 2017 Alright. If we run into more problems, we'll let you know here, and then we'll try to iron it out if possible. Share this post Link to post Share on other sites
spideswine 278 Report post Posted December 22, 2017 So uh, what does SetMultiSymbolExchange do exactly? Share this post Link to post Share on other sites
PeterA 9097 Report post Posted December 22, 2017 It allows for up to two instances of a symbol in the animation to trade places in the layering with up to two instances of another symbol. The main use case for this is for switching the layering between two leg symbols with two feet symbols when the pants have a large cuff than the feet. Share this post Link to post Share on other sites