
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@4players/odin
Advanced tools
A cross-platform SDK enabling developers to integrate real-time VoIP chat technology into their projects
ODIN is a versatile cross-platform Software Development Kit (SDK) engineered to seamlessly integrate real-time voice chat into multiplayer games, applications, and websites. Regardless of whether you're employing a native application or your preferred web browser, ODIN simplifies the process of maintaining connections with your significant contacts. Through its intuitive interface and robust functionality, ODIN enhances interactive experiences, fostering real-time engagement and collaboration across various digital platforms.
You can choose between a managed cloud and a self-hosted solution. Let 4Players GmbH deal with the setup, administration and bandwidth costs or run our server software on your own infrastructure allowing you complete control and customization of your deployment environment.
Online Documentation · API Reference
npm install @4players/odin
Type definitions are included. The audio plugin (@4players/odin-plugin-web) is a dependency and is loaded automatically when needed (e.g. when calling ensurePlugin() or setOutputDevice()).
For browser-only use you can load the SDK via CDN. Prefer pinning a specific version to avoid breaking changes:
https://cdn.odin.4players.io/client/js/sdk/<version>/odin-sdk.js (global ODIN)https://cdn.odin.4players.io/client/js/sdk/<version>/odin-sdk.esm.jsSee the documentation for current version and usage.
ODIN enhances your audio experience during VoIP chats by offering a comprehensive set of filters beyond the basic audio processing features found in web browsers. These enhancements are activated by default, ensuring clear and interruption-free communication.
We use the latest WebTransport API to transmit voice data in real time, with a seamless fallback to WebRTC for compatibility with older browsers.
ODIN supports end-to-end encryption (E2EE) through the use of a pluggable OdinCipher module. This enables you to secure all datagrams, messages and peer user data with a shared room password — without relying on the server as a trust anchor.
room.join() so you receive events that occur while joining (e.g. remote peers already in the room).room.addAudioInput(audioInput).setOutputDevice({}) to hear other peers (can be called anytime to set or switch the output device).import {
setOutputDevice,
Room,
DeviceManager,
} from '@4players/odin';
let room;
let audioInput;
async function joinRoom(token) {
await setOutputDevice({});
room = new Room();
room.onJoined = (payload) => console.log('Joined', payload.room.id);
room.onLeft = (payload) => console.log('Left', payload?.reason);
room.onPeerJoined = (payload) => console.log('Peer joined', payload.peer.userId);
room.onPeerLeft = (payload) => console.log('Peer left', payload.peer.userId);
await room.join(token, { gateway: 'https://gateway.odin.4players.io' });
audioInput = await DeviceManager.createAudioInput();
await room.addAudioInput(audioInput);
}
async function leaveRoom() {
if (audioInput && room) {
room.removeAudioInput(audioInput);
audioInput.close();
}
if (room) room.leave();
room = undefined;
audioInput = undefined;
}
// Call from a user gesture (e.g. button click).
joinRoom('__YOUR_TOKEN__');
Tokens must be generated server-side. See the documentation for authentication and gateway options.
setOutputDevice({}) has been called to configure the output device.room.addAudioInput(audioInput) is called after joining.room.join() so you receive events that occur while joining (e.g. remote peers already in the room).Join our official Discord server to chat with us and become part of the 4Players ODIN community.
Tweet us at @ODIN4Players.
FAQs
A cross-platform SDK enabling developers to integrate real-time VoIP chat technology into their projects
We found that @4players/odin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.