cmooref17 / Lethal-Company-TooManyEmotes

https://thunderstore.io/c/lethal-company/p/FlipMods/TooManyEmotes/
MIT License
16 stars 10 forks source link

Cosmetics Do Not Show During Emote #156

Open Dormirre opened 1 month ago

Dormirre commented 1 month ago

Having an issue where my cosmetics will show in the emote selection wheel (the preview), but when selecting the emote, none of the cosmetics appear in third person. Not sure what would cause this, any info would be appreciated.

cmooref17 commented 1 month ago

I'm sorry, but there's not much information to work with here. It's most likely a mod incompatibility since this has been working normally with my mod for awhile now afaik.

Would you happen to have a mod list that I could look at?

Dormirre commented 1 month ago

r2modman_qOzhOIxZf5

Sure here's a gif showing my mod list, its quite big at 95 mods, I tried to look through them earlier today to see if there were any obvious conflicting mods, but couldn't find any. My only assumption would be the hyena mod which currently replaces the model of the default outfit only. But I have not tested this.

cmooref17 commented 1 month ago

Maybe I can test this later this weekend. Would you be able to post the modpack code so I can import this profile?

And normally, I would think mods such as the model replacement API would potentially cause issues like this, but from what I know, this does not cause the issue. I could be wrong though. Does the hyena mod require the model replacement API?

It could be worth trying to disable those mods just in case, and see what happens.

Dormirre commented 1 month ago

Sure here's the Code:0191be52-9806-db03-ac34-3a8a9a717188

If I recall correctly, the hyena mod does require the model replacement API. Ill do some testing tomorrow.

Dormirre commented 1 month ago

UPDATE: I did some testing and found that the "Lethal Creatures" Mod is the issue, when using it, it conflicts with the cosmetics I guess? Not really sure the detailed cause, but after disabling it, I can see cosmetics whilst emoting. Not sure if thats something you can even patch. :/

cmooref17 commented 1 month ago

I guess the real question is, is it something I "should" patch. Realistically, I think Lethal Creatures should make the patch. I am unsure on why Lethal Creatures would be causing this issue, though. Do they alter anything about the player?

Dormirre commented 1 month ago

I mean I know a few people who would appreciate it! Lol. As for the Lethal creatures creator, they haven't updated it in about six months, so the likely hood of them making any sort of patch is extremely low... But I understand if it's not worth the time. As for what it does to the player, it just replaces the model with a Hyenid-esk creature, with its own menu that has 3 models to pick from, as well as color and style choices.

cmooref17 commented 1 month ago

Oh, so the Lethal Creatures mod is the mod that turns you into the Hyena? I was thinking it either created new creatures, or modified existing creatures.

I guess it makes sense that it could affect the player then. I'm still not sure why the cosmetics wouldn't be showing up. I'll throw it on my TODO list if I have nothing better to do, but it's not a huge priority right now, sorry!

Dormirre commented 1 month ago

No worries, appreciate your time regardless 👍

dounai2333 commented 1 month ago

Bump, this issue still exists. From my testing, the issue only exist if:

  1. You have MoreCompany and ModelReplacementAPI both installed.
  2. You were a custom playermodel (from ModelReplacementAPI) instead of default model.

So, if you are using the default playermodel (reskin from More Suits is fine), the issue will not exists. EDIT: The issue only happens on your playermodel, so when others performing emote, you will see their cosmetics appearing very fine.

As in a further testing, if you have SuitSaver installed and you are using a custom playermodel, when performing emote there will be a exception:

[Info   :TooManyEmotes-2.2.6] Attempting to perform emote on local player.
[Info   :TooManyEmotes-2.2.6] [dounai2333] Performing emote: idk
NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_transform(UnityEngine.Component)
  at TooManyEmotes.Compatibility.MoreCompany_Compat.ShowLocalCosmetics (UnityEngine.Transform playerRoot) [0x0007b] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_007B 
  at TooManyEmotes.Patches.ThirdPersonEmoteController.OnStartCustomEmoteLocal () [0x00192] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_0192 
  at TooManyEmotes.EmoteControllerPlayer.PerformEmote (TooManyEmotes.UnlockableEmote emote, System.Int32 overrideEmoteId, System.Boolean doNotTriggerAudio) [0x000f1] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_00F1 
  at TooManyEmotes.EmoteControllerPlayer.TryPerformingEmoteLocal (TooManyEmotes.UnlockableEmote emote, System.Int32 overrideEmoteId, TooManyEmotes.Props.GrabbablePropObject sourcePropObject) [0x0032c] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_032C 
  at TooManyEmotes.Input.Keybinds.PerformEmoteLocal (UnityEngine.InputSystem.InputAction+CallbackContext context) [0x00066] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_0066 
  at TooManyEmotes.Input.Keybinds.OnPressOpenEmoteMenu (UnityEngine.InputSystem.InputAction+CallbackContext context) [0x000aa] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_00AA 
  at (wrapper delegate-invoke) System.Action`1[UnityEngine.InputSystem.InputAction+CallbackContext].invoke_void_T(UnityEngine.InputSystem.InputAction/CallbackContext)
  at UnityEngine.InputSystem.Utilities.DelegateHelpers.InvokeCallbacksSafe[TValue] (UnityEngine.InputSystem.Utilities.CallbackArray`1[System.Action`1[TValue]]& callbacks, TValue argument, System.String callbackName, System.Object context) [0x0001b] in <dbb0ce7b96144bd8bcbcb8b0d765f970>:IL_001B 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.InputSystem.Utilities.DelegateHelpers:InvokeCallbacksSafe(CallbackArray`1&, CallbackContext, String, Object)
UnityEngine.InputSystem.InputActionState:CallActionListeners(Int32, InputActionMap, InputActionPhase, CallbackArray`1&, String)
UnityEngine.InputSystem.InputActionState:ChangePhaseOfActionInternal(Int32, TriggerState*, InputActionPhase, TriggerState&)
UnityEngine.InputSystem.InputActionState:ChangePhaseOfAction(InputActionPhase, TriggerState&, InputActionPhase)
UnityEngine.InputSystem.InputActionState:ProcessDefaultInteraction(TriggerState&, Int32)
UnityEngine.InputSystem.InputActionState:ProcessControlStateChange(Int32, Int32, Int32, Double, InputEventPtr)
UnityEngine.InputSystem.InputActionState:UnityEngine.InputSystem.LowLevel.IInputStateChangeMonitor.NotifyControlStateChanged(InputControl, Double, InputEventPtr, Int64)
UnityEngine.InputSystem.InputManager:FireStateChangeNotifications(Int32, Double, InputEvent*)
UnityEngine.InputSystem.InputManager:UpdateState(InputDevice, InputUpdateType, Void*, UInt32, UInt32, Double, InputEventPtr)
UnityEngine.InputSystem.InputManager:UpdateState(InputDevice, InputEvent*, InputUpdateType)
UnityEngine.InputSystem.InputManager:OnUpdate(InputUpdateType, InputEventBuffer&)
UnityEngine.InputSystem.LowLevel.<>c__DisplayClass7_0:<set_onUpdate>b__0(NativeInputUpdateType, NativeInputEventBuffer*)
UnityEngineInternal.Input.NativeInputSystem:NotifyUpdate(NativeInputUpdateType, IntPtr)

NullReferenceException while executing 'canceled' callbacks of 'FlipMods.TooManyEmotes.IngameKeybinds/OpenEmoteMenuHotkey[/Keyboard/backquote]'
PLAYER EMOTE START dounai2333 ID 114
[Info   :TooManyEmotes-2.2.6] Saving TooManyEmotes emote menu preferences.
[Info   :TooManyEmotes-2.2.6] [dounai2333] Stopping emote.
NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_transform(UnityEngine.Component)
  at TooManyEmotes.Compatibility.MoreCompany_Compat.HideLocalCosmetics () [0x00054] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_0054 
  at TooManyEmotes.Patches.ThirdPersonEmoteController.OnStopCustomEmoteLocal () [0x00100] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_0100 
  at TooManyEmotes.EmoteControllerPlayer.StopPerformingEmote () [0x000ff] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_00FF 
  at TooManyEmotes.EmoteController.LateUpdate () [0x00025] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_0025 
  at TooManyEmotes.EmoteControllerPlayer.LateUpdate () [0x00053] in <93950d8e1e1444e5ae1504ebae3c76c9>:IL_0053 
cmooref17 commented 1 month ago

Thanks for this! I can definitely add a check to prevent this exception. It may resolve some other issues, as well. I'll look at this later tonight.