You are viewing a potentially older version of this package.
View all versions.
EmoteLib
Emote wheel UI and API for playing emotes in Roadside Research. Supports hotkeys, third-person camera, and custom animations via asset bundles.
By Deja
| Date uploaded | 3 weeks ago |
| Version | 1.0.0 |
| Download link | Deja-EmoteLib-1.0.0.zip |
| Downloads | 26 |
| Dependency string | Deja-EmoteLib-1.0.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_IL2CPP
BepInEx pack for IL2CPP x64 Unity games. Preconfigured and ready to use.
Preferred version: 6.0.755README
EmoteLib
An emote wheel and emote API for Roadside Research.
Features
- Emote Wheel — Hold a key (default: E) to open a radial emote selector. Release while hovering over a slot to play that emote.
- Hotkeys — Bind any of the 8 emote slots to individual keys for quick access.
- Third-Person Camera — Automatically switches to third person when emoting so you can see yourself. Configurable per-user.
- Custom Animation Support — Load custom emote animations from asset bundles.
- Emote API — Other mods can trigger emotes programmatically via
EmoteAPI.
Configuration
Settings are in BepInEx/config/com.emotelib.roadsideresearch.cfg, generated on first launch.
| Setting | Default | Description |
|---|---|---|
| ToggleKey | E | Hold to open the emote wheel |
| ThirdPersonOnEmote | true | Switch to third person while emoting |
| EmoteSlot1-8 | None | Hotkey bindings for each emote slot |
Installation
- Install BepInEx IL2CPP if you haven't already.
- Launch the game once to generate interop assemblies.
- Place
EmoteLib.dllinBepInEx/plugins/. - Launch the game. Hold E to open the emote wheel.
CHANGELOG
Changelog
1.1.0
New features
- Custom emotes now auto-stop at the end of their animation clip (matches base-game emote behavior). Set
AnimationClip.isLooping = truein the bundle, or callCustomAnimationPlayer.RegisterClip(name, clip, loop: true), to keep looping until the user stops it. RegisterClipnow accepts an optionalbool? loopparameter. Default (null) reads the clip's ownisLoopingflag.- Added
Wheel/InnerRadius,Wheel/OuterRadius,Wheel/SlotsPerPage,Wheel/ScrollCooldownSecondsfor wheel sizing and pacing. - Added
Wheel/CloseOnSelectto close the wheel on a left-click selection. - Added
Wheel/ShowHotkeyBadgesto hide per-slot hotkey labels. - Added
Camera/RestoreFirstPersonOnExitto opt out of the post-emote first-person snap. - Added
Hotkeys/StopEmoteKey— a global cancel key that works without opening the wheel. - Added support and issue-tracker links to README.
Fixes
- Fixed camera being stuck in third person after a game emote finished playing naturally. The game's internal emote-lifetime coroutine doesn't route natural completion through
StopEmote(), so the existingStopEmotepostfix only caught explicit cancels. Replaced with polling onIsEmotingin the wheel component, which catches both natural completion and explicit stops. - Fixed
StopGameInstantlyNullReferenceException spam caused by IL2CPP method deduplication — multiple Minigame subclasses share the same native function pointer for empty overrides, so patchingSpinning.StopGameInstantly(bool)inadvertently detoured all of them. Moved to patching the non-virtual no-argMinigame.StopGameInstantly()with a type check instead. - Removed
CompleteMinigameFunctionalitypatch for the same dedup reason (covered byEndMinigameFunctionalitywhich has a unique RVA for Spinning). - Sign-spinning minigame dance emote no longer forces third person — the camera stays first-person for the auto-triggered dance regardless of
Camera/ThirdPersonOnEmote. All other emotes (wheel, hotkeys, base-game 1-8) are unaffected.
1.0.0
- Initial release
- Radial emote wheel (hold E to open, release on a slot to play)
- Per-slot hotkey bindings for all 8 emote slots
- Automatic third-person camera while emoting (toggle via config)
EmoteAPIfor triggering emotes from other mods- Custom animation loading from asset bundles