NecroChat
Finally, actual in-game chat for Necropolis! Chat box, floating messages above players, event notifications, and more.
▶ Demo Showcase
💡 Notice
- It is highly recommended to use Mod Config Menu to edit and hot-reload configuration changes in-game without restarting. Not required, but convenient.
Features
Core Chat Functionality
- Text Chat - Press Enter to open chat, type your message, Enter to send
- Chat History - Hold Tab to view full chat history with scrolling
- Action Messages - Use
/me command for action-style messages (e.g., /me waves)
- Text Selection - Click messages to select, Ctrl+C to copy
- Resizable & Draggable - Drag header to move, drag corner to resize
Display Modes
- Basic - Traditional chat box in corner of screen
- AbovePlayer - Messages appear floating above player characters
- BasicAndAbovePlayer - Both modes combined
- Smart - Automatically switches based on player distance (default)
Above-Player Messages
- Messages float above each player's head
- Automatic height adjustment for Brute vs Thief character classes
- Off-screen player indicators clamped to screen edges
- Smooth fade-in and slide-up animations (configurable)
- Stacking for multiple messages from same player
Chat Box Animations
- Fade-in animation for new messages in standard chat
- Smooth transitions when Smart mode switches display types
Player Customization
- Dye Colors - Player names colored using their character's dye color
- Color Full Message - Option to color entire above-player message with player color
- Hide Player Names - Optionally hide default player name HUD when showing chat
Game Event Messages
When enabled, the chat displays notifications for:
- Player joined / Player left
- Player incapacitated (fallen)
- Player revived (shows who revived them)
- Player cheated death (auto-resurrect)
- Player respawned (lost all gear)
- One-hit protection activated
Sound Options
5 selectable notification sounds for incoming messages.
Font Styles
- Basic - Standard system font
- Necro - Native stylized font - Nexa Slab Regular (default)
Chat Logging
- Optional chat logging to file
- Logs saved to
/chatlogs folder with date-based filenames
- Timestamps for all messages
Lobby Chat
- Chat works in multiplayer lobby before game starts
- Auto-opens when another player joins
- Enter key intercepted to prevent accidental game start
Configuration
All settings configurable via BepInEx config file or in-game config manager.
Booleans
| Setting |
Default |
Description |
| ModEnabled |
true |
Enable/disable the mod |
| DebugMode |
false |
Debug logging and offline testing |
| EnableLogging |
false |
Save chat to log files |
| HidePlayerNameOnChat |
true |
Hide player name HUD when showing chat above them |
| UsePlayerDyeColors |
true |
Color names with character dye |
| ColorAbovePlayerMessage |
true |
Color full above-player message with player color |
| AbovePlayerAnimations |
true |
Enable fade/slide animations for above-player text |
| ChatBoxAnimations |
true |
Enable fade-in animation for chat box messages |
| GameEventMessages |
true |
Show game event notifications |
| ShowTimestamps |
false |
Show timestamps [HH:mm] on messages |
Enums
| Setting |
Default |
Options |
| ChatSound |
Sound2 |
None, Sound1-5 |
| FontStyle |
Necro |
Basic, Necro |
| DisplayMode |
Smart |
Basic, AbovePlayer, BasicAndAbovePlayer, Smart |
Keys
| Setting |
Default |
Description |
| ToggleHistoryKey |
Tab |
Key to hold for chat history |
| OpenChatKey |
Return |
Key to open chat |
Integers
| Setting |
Default |
Range |
Description |
| FontSize |
25 |
20-40 |
Chat box font size |
| MaxMessages |
50 |
50-100 |
Messages kept in history |
| MaxVisibleMessages |
5 |
3-10 |
Messages shown on screen |
| MessageDisplayTime |
5 |
5-12 |
Seconds before fade |
| MessageFadeTime |
2 |
2-8 |
Fade duration in seconds |
| AbovePlayerDisplayTime |
5 |
5-12 |
Above-player display time |
| AbovePlayerFadeTime |
2 |
2-8 |
Above-player fade duration |
| AbovePlayerFontSize |
40 |
20-50 |
Above-player font size |
| AbovePlayerWidth |
400 |
300-500 |
Above-player text width in pixels |
| SmartModeDistance |
30 |
20-100 |
Distance threshold for Smart mode |
| ChatBoxOpacity |
70 |
0-100 |
Chat box background opacity (%) |
Controls
| Key |
Action |
| Enter |
Open chat / Send message |
| Escape |
Close chat (preserves typed text) |
| Tab (hold) |
Show chat history |
| Click |
Select message |
| Ctrl+C |
Copy selected message |
| Ctrl+V |
Paste (anything) |
| Drag header |
Move chat window |
| Drag corner (yellow triangle) |
Resize chat window |
Changelog
1.0.1
- Fixed issue where non-Enter keys required double-press to open chat
- Fixed typed character appearing in input when opening chat with non-Enter keys
- Fixed words getting cut off at certain window widths when resizing
1.0.0
Credits
Author: KoMiKoZa
Discord: komikoza
Support