Releases: TheUbMunster/SmoOnlineServer
pxcht-v1.0.1
Voice proximity pxcht-v1.0.1!
This is a feature rich proximity chat mod for Super Mario Odyssey Online! NOTE using my proximity chat requires a client to run on a windows computer (that computer must have discord installed), my version of the server, and the discord bot set up (the discord bot is what's responsible for setting up voice lobbies, so without it, voice proximity does not function). You do NOT need to update the Super Mario Odyssey Online mod on your switch to use proximity chat! Here's a link to CraftyBoss' Switch mod for SMO if you don't have it installed (make sure your switch is moddable, take precautions against getting banned, I used and recommend this guide: NOTE: any damage or problems that occur from doing any of this is entirely your fault, and I take no responsibility. DO AT YOUR OWN RISK!)
Features:
- serverside enabling/disabling of proximity chat
- serverside adjustment of volume/distance thresholds
- serverside enabling/disabling of "send lobby secret" to prevent unauthorized people from joining VC
- clientside volume adjustment of other users
- mute, deafen for yourself, muting others
- keybinds for muting/unmuting, deafening/undeafening, PTT, PTM, toggle mute
- seeing your client's percieved volume of another client (silent when far, loud when near, this can be disabled)
- global, teamwide, and individual walkie-talkie feature
Known issues:
-
Proper volumes for voice proximity aren't calculated until the server receives packets regarding the stage of the player, and the position of the player, the former is sent upon loading the kingdom you're in when starting the game, but the latter isn't sent until you first move. If two players mutually are hearing incorrect volume levels for each other (i.e. muted by default in this case), they both need to move before they can hear each other. This issue would require a change in the modded game client, and is a low priority. (Easily fixed by having both players moving even a smidge).
-
Sometimes a horizontal scrollbar will show up in the user's pane (this will be fixed in a future release)
-
If you become a hider, then leave hide & seek mode, you'll still be considered on the "hiders" team when using the team walkie-talkie button. This is because there isn't a way for the server to tell if you've left the mode, only if you're a hider or a seeker. Fixing this seems to require a change in the modded game client, and is a low priority.
-
If an (unauthorized) user attempts to connect to vc and is prompted for the lobby secret, if they don't close their client, they will consume a slot in the max server capacity. This will be changed in a future release to immediately kick a user, then when they enter it, attempt to reconnect.
-
Discord usernames with UTF-16 characters causes issues with the server that cause voice proximity with the offending users to not function. If you have a discord username with emoji or other "nonstandard" characters in it, you'll have to change it to get rid of them while using proximity chat. (Feel free to re-add them afterwards). This will be fixed in a future release.
Troubleshooting:
-
"I'm using an emulator and I can't see other players..." -- The emulator and switch aren't in perfect parity yet. The emulator is still being worked on, and changes are coming that will help fix compatibility with this sort of networking stuff. Until then, functionality with the emulator is a bit of a hit-and-miss. Check out CraftyBoss' discord, as that sort of news is likely to show up there. Recently, the dev branch of the switch mod in conjunction with the newest version of Ryujinx on Vulkan seems to work just fine.
-
"When I try to connect my proximity chat client, it just sits there for awhile and doesn't connect!" -- this usually indicates a connectivity issue to the server. Make sure that your port for voice proximity on the server and on the client match (if they don't, change it on one of the two programs so that the ports match), make sure that your host/ip address is correct (run pvcip on the server if you aren't sure what the voice proximity server host/ip is), and for the server host, make sure that port forwarding is set up correctly (if applicable).
-
"I'm trying to join the server with my client and I get this popup asking me to 'Enter the discord lobby secret'" -- first of all, do what it says and ask the server host for this information, it's essentially a password to join the voice proximity server. For a server admin to find this info, just run "getlobbysecret" on the server and give it to the user trying to connect. This feature can be disabled via the server command "sass on", but it's purpose is if the IP of the voice proximity server is leaked, it prevents random people from joining and requires them to enter in this information than only the server host has access to.
-
"I'm trying to join the server with my client and I get this popup asking me to 'Enter the discord Application ID:'" -- Again like the lobby secret, you need to ask the server administrator for this information.
-
"Everything is set up and I can hear other players, but as I walk away from others they don't get any quieter!" -- voice proximity is by default DISABLED. To enable it, run "voiceprox on" in the server.
-
"I'm running the server and was playing for awhile, then I got a random error in the server!" -- generally speaking if: the error message claims it's from something called "VoiceProxServer" or "VolumeCalculator", then it's likely an issue with the voice proximity additions in the server (make sure to post an issue with the details outlined below!), if it's from somewhere else, it still might be a bug in the voice proximity code, report an issue, and we'll look into it. It seems that using 100% save files and/or enabling scenario sync helps prevent some of these server issues.
-
"How do I set up communication with the server via the discord bot feature?" -- This is a bit outside the scope, but essentially you need to register a discord app in discord's developer page, get a bot token, and put that bot token and the bot communication channel id in the server settings file. There are resources out there describing how to do this in detail. This step is required regardless, since for the server to start up a voice lobby for voice proximity, this discord token needs to be present.
-
"Other people's voice proximity is working, but everyone is at full volume for me!" -- This indicates that your "In-Game" username is incorrect. Open the settings in the client and make sure that the In-Game username exactly matches your username as it appears in the game, (no extra spaces, correct capitalization etc.) Changing this value while connected to the server will force your client to restart (If you don't want this to happen, disconnect before changing this setting). Try reconnecting, if it still doesn't work try having the server host quickly hard-reboot the server.
-
"The team walkie-talkie button doesn't work for me!" -- This could be because the volume system doesn't "know what team you're on". Try changing to the other team and then back again. An indication to whether or not the server is properly aware of what team you're on is if other players correctly show up on your teammate list. If you join a team and nobody shows up on the teammate list (even though other people are on that team), then your game could be in a bugged state, try restarting your game and if that doesn't work, the server.
-
"When I join the server, I can't hear other people!" -- If this is a new server you've joined, make sure that the Application ID in your client's settings matches that of the server, ask the server admin to send it to you again and double-check that this is correct.
NOTE: If you experience what you believe to be a bug, create an issue, explain what happened, and try to include the log file(s) pertinent to the issue generated in the executable directory of the client and/or server. (Note: log files may contain IP addresses, I encourage you to remove any information you deem private for your own privacy.)