Cross Server Chat

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Public Service Announcement

    Hey Guest, I’ve got some exciting news to share! 🎉

    Starting this December, I’ll be moving the entire GameServersHub website away from WordPress and rebuilding it in Next.js! This upgrade will bring incredibly faster speeds, smoother performance, and a modern user experience that sets the stage for everything coming next.

    In 2026, GameServersHub will be entering a new era. I’ll be revamping the entire platform from the ground up and launching a brand-new, fully modernized marketplace. It’ll feature a cleaner design, improved functionality, and better tools for both creators and server owners.

    On top of that, development has already started on the GameServerListing project at https://gsl-six.vercel.app/, which is expected to launch in early Q1 2026. This new system will make discovering and managing servers easier than ever before.


    👉 Stay in the loop!
    Join our Discord for behind-the-scenes updates, early previews, and community discussions.

    » Click here to join our Discord! «

    ~ MrOwlSky

If you are experiencing issues with this you can try running your atlas servers with separate server folders. (Don't think that should be needed though)
It should work either way.
And this is how you should have your configuration on every server (specially if you don't want the "ocean" tag:
JSON:
{
    "CrossChatKey":"yourownserverkeyitcanbeanything",
    "CrossChatMapNameInclude":true,
    "RconServers":[
    "127.0.0.1:36013",
    "127.0.0.1:36014",
    "127.0.0.1:36015"
    ],
    "CrossChatMapNameOverride":" ", <---- Observere it's a space here.
    "Async":true
}

There were only a few things I found during my testing:
  • When heavy load of typing it can't handle the amount msgs and gets queued up in the buffer and result is some msg is lost or repeated. (This has been seen in the ARK version as well so this is a known issue.)
  • When having this setup as mention above the last name isn't provided and the first name can get cut off. (See pictures)
View attachment 1344View attachment 1345

Hope this helps some of you out there struggling with this :)
 
Last edited:
Thanks Foppa. I've set my CrossChatMapNameInclude to false and set the space in the override (which isn't in the author's sample file) and it seems to be working ok now on my small friends' server.

edit: spoke too soon. Crash. I'm sure it's the plugin because in a month of running the server, I've only had one crash when the plugin wasn't active.
 
Last edited:
Thanks Foppa. I've set my CrossChatMapNameInclude to false and set the space in the override (which isn't in the author's sample file) and it seems to be working ok now on my small friends' server.

edit: spoke too soon. Crash. I'm sure it's the plugin because in a month of running the server, I've only had one crash when the plugin wasn't active.
Please upload a crash stack and dump for that I and we can analyze it ! :)
 
This might seem like a stupid question but where are the crash logs? I can't find *any* under c:\atlasserver
Is there an ini setting I need to turn on before it'll create crash logs?
 
This might seem like a stupid question but where are the crash logs? I can't find *any* under c:\atlasserver
Is there an ini setting I need to turn on before it'll create crash logs?
You find them under: X:\ShooterGame\Saved\Logs :)
 
I figured as much but there're no crash logs there. So either it's crashing w/o an error or it's not making logs for some reason.
 
k, just had a crash while trying to sort out a different problem and got a crash log. XSC isn't loaded at the moment so it's not to blame but it does suggest that XSC is causing a crash in such a way that no crashlog is generated. Perhaps we could get a debug version that does its own detailed logging? I have a server which doesn't get more than 3 players at a time so we can test without upsetting too many people.
 
k, just had a crash while trying to sort out a different problem and got a crash log. XSC isn't loaded at the moment so it's not to blame but it does suggest that XSC is causing a crash in such a way that no crashlog is generated. Perhaps we could get a debug version that does its own detailed logging? I have a server which doesn't get more than 3 players at a time so we can test without upsetting too many people.
Have you disabled crash logs somehow? if you get a crash window you could paste that as well. But it should generate a crashstack file and dump depending on the crash. (That's the most debug we can get)
 
If you are experiencing issues with this you can try running your atlas servers with separate server folders. (Don't think that should be needed though)
It should work either way.
And this is how you should have your configuration on every server (specially if you don't want the "ocean" tag:
JSON:
{
    "CrossChatKey":"yourownserverkeyitcanbeanything",
    "CrossChatMapNameInclude":true,
    "RconServers":[
    "127.0.0.1:36013",
    "127.0.0.1:36014",
    "127.0.0.1:36015"
    ],
    "CrossChatMapNameOverride":" ", <---- Observere it's a space here.
    "Async":true
}

There were only a few things I found during my testing:
  • When heavy load of typing it can't handle the amount msgs and gets queued up in the buffer and result is some msg is lost or repeated. (This has been seen in the ARK version as well so this is a known issue.)
  • When having this setup as mention above the last name isn't provided and the first name can get cut off. (See pictures)
View attachment 1344View attachment 1345

Hope this helps some of you out there struggling with this :)

Interesting, that is the only difference i can see between this and Ark being the separate folders per server so if it does work that would be something.

Anyone currently using separate server folders for each grid? any issues or difficulty managing them in this way?
 
As I mentioned, the unrelated crash did produce a crashlog and dump which tells me that crash logging is working fine.

Since crossserverchat (XSC) is resulting in crashes w/o a crashlog, my approach would be to create a new version of the plugin that's full of debug logging commands. e.g.:
writelog: checking chat buffer for updates
writelog: updated detected, copying buffer
copy buffer
writelog: buffer copied, parsing buffer
- loop
- writelog: parsing buffer line
- regex split user id / message
- writelog: building echo message
- get server id, get server name, myvar = serverid+servername+userid+usermessage
- writelog: sending message packet
- rcon send chat message
- writelog: iterating buffer parse loop
- /loop
writelog: buffered parsed, idling

That kind of thing. Then when there's a logless crash, we can see what the plugin was doing when the server crashed.
 
As I mentioned, the unrelated crash did produce a crashlog and dump which tells me that crash logging is working fine.

Since crossserverchat (XSC) is resulting in crashes w/o a crashlog, my approach would be to create a new version of the plugin that's full of debug logging commands. e.g.:
writelog: checking chat buffer for updates
writelog: updated detected, copying buffer
copy buffer
writelog: buffer copied, parsing buffer
- loop
- writelog: parsing buffer line
- regex split user id / message
- writelog: building echo message
- get server id, get server name, myvar = serverid+servername+userid+usermessage
- writelog: sending message packet
- rcon send chat message
- writelog: iterating buffer parse loop
- /loop
writelog: buffered parsed, idling

That kind of thing. Then when there's a logless crash, we can see what the plugin was doing when the server crashed.

@OwnProx Any possibility this could be done? :unsure: Think a lot of us would like this plugin to work smoothly, real pain in the ass for communication on large unofficial maps without it!
 
This error comes

VERSION: 18.15
PhysX3_x64.dll!physx::Sq::BucketPrunerCore::removeMarkedObjects() (0x00007ff9b7cf2264) + 0 bytes [e:\arksvn_pc\engine\source\thirdparty\physx\physx_3.4\source\scenequery\src\sqbucketpruner.cpp:794]
PhysX3_x64.dll!physx::Sq::ExtendedBucketPruner::removeMarkedObjects() (0x00007ff9b7cfa6db) + 0 bytes [e:\arksvn_pc\engine\source\thirdparty\physx\physx_3.4\source\scenequery\src\sqextendedbucketpruner.cpp:476]
PhysX3_x64.dll!physx::Sq::AABBPruner::commit() (0x00007ff9b7ce8791) + 0 bytes [e:\arksvn_pc\engine\source\thirdparty\physx\physx_3.4\source\scenequery\src\sqaabbpruner.cpp:491]
PhysX3_x64.dll!physx::Sq::SceneQueryManager::afterSync() (0x00007ff9b7ce6f45) + 0 bytes [e:\arksvn_pc\engine\source\thirdparty\physx\physx_3.4\source\scenequery\src\sqscenequerymanager.cpp:433]
PhysX3_x64.dll!physx::NpScene::fetchResultsPostContactCallbacks() (0x00007ff9b7c1a600) + 0 bytes [e:\arksvn_pc\engine\source\thirdparty\physx\physx_3.4\source\physx\src\npscene.cpp:2259]
PhysX3_x64.dll!physx::NpScene::fetchResults() (0x00007ff9b7c15c42) + 0 bytes [e:\arksvn_pc\engine\source\thirdparty\physx\physx_3.4\source\physx\src\npscene.cpp:2327]
ShooterGameServer.exe!FPhysSubstepTask::SubstepSimulationEnd() (0x00007ff6b737f5cd) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\physicsengine\physsubsteptasks.cpp:387]
ShooterGameServer.exe!TBaseRawMethodDelegateInstance_NoParams<FRecastNavMeshGenerator,void>::ExecuteIfSafe() (0x00007ff6b71962aa) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:360]
ShooterGameServer.exe!TGraphTask<FDelegateGraphTask>::ExecuteTask() (0x00007ff6b6cb3b66) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\public\async\taskgraphinterfaces.h:872]
ShooterGameServer.exe!FTaskThreadAnyThread::ProcessTasks() (0x00007ff6b699cb6c) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\async\taskgraph.cpp:1257]
ShooterGameServer.exe!FTaskThreadAnyThread::ProcessTasksUntilQuit() (0x00007ff6b699d27a) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\async\taskgraph.cpp:1150]
ShooterGameServer.exe!FTaskThreadBase::Run() (0x00007ff6b69a224c) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\async\taskgraph.cpp:622]
ShooterGameServer.exe!FRunnableThreadWin::Run() (0x00007ff6b6a2963f) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:73]
ShooterGameServer.exe!FRunnableThreadWin::GuardedRun() (0x00007ff6b6a27da8) + 8 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:26]
KERNEL32.DLL!UnknownFunction (0x00007ff9da298364) + 0 bytes [UnknownFile:0]
ntdll.dll!UnknownFunction (0x00007ff9dcaa70b1) + 0 bytes [UnknownFile:0]
ntdll.dll!UnknownFunction (0x00007ff9dcaa70b1) + 0 bytes [UnknownFile:0]
 
So it seems like Atlas has a built-in cross server chat in company chat. Perhaps there is a way to use that to create a version for global chat? Maybe a separate chat box for global?
 
So it seems like Atlas has a built-in cross server chat in company chat. Perhaps there is a way to use that to create a version for global chat? Maybe a separate chat box for global?

I would assume this also works for alliances? I haven't tested either but if that were the case then it should be very easy to set up by just copying how it's done? It should only have to specify which grid the person is from when talking in chat. Would very much like to see if this is possible via plugin
 
Can you fix the plugin or not, so you can not release a plugin and then no updates, wanted to buy Advanced Chat but if that does not work then I will not buy the Advanced chat synonymous.




KERNELBASE.dll!UnknownFunction (0x00007ff90a963c58) + 0 bytes [UnknownFile:0]
ShooterGameServer.exe!FOutputDeviceWindowsError::Serialize() (0x00007ff6810e0a43) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
ShooterGameServer.exe!FError::LowLevelFatal() (0x00007ff6810b83b6) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\misc\outputdevice.cpp:354]
ShooterGameServer.exe!FGenericPlatformMemory::OnOutOfMemory() (0x00007ff681051f03) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\genericplatform\genericplatformmemory.cpp:52]
ShooterGameServer.exe!FMallocBinned::Malloc() (0x00007ff6810d48f6) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\public\hal\mallocbinned.h:985]
ShooterGameServer.exe!FMallocBinned::Realloc() (0x00007ff6810d6e1e) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\public\hal\mallocbinned.h:1046]
VERSION.dll!FMemory::Realloc() (0x00007ff8ef711f2c) + 67 bytes [d:\programs\ark\**************\version\core\public\api\ue\hal\unrealmemory.h:110]
VERSION.dll!TArray<FString,FDefaultAllocator>::ResizeGrow() (0x00007ff8ef71b0de) + 24 bytes [d:\programs\ark\**************\version\core\public\api\ue\containers\tarray.h:2035]
VERSION.dll!FString::ParseIntoArray() (0x00007ff8ef716a06) + 24 bytes [d:\programs\ark\**************\version\core\public\api\ue\containers\fstring.h:2565]
VERSION.dll!ArkApi::Commands::CheckCommands<ArkApi::Commands::Command<void __cdecl(RCONClientConnection *,RCONPacket *,UWorld *)>,RCONClientConnection * &,RCONPacket * &,UWorld * &>() (0x00007ff8ef7274f0) + 0 bytes [d:\programs\ark\**************\version\core\private\commands.h:104]
VERSION.dll!AtlasApi::Hook_RCONClientConnection_ProcessRCONPacket() (0x00007ff8ef7266c4) + 0 bytes [d:\programs\ark\**************\version\core\private\atlas\hooksimpl.cpp:131]
ShooterGameServer.exe!RCONClientConnection::Tick() (0x00007ff68060c404) + 0 bytes [h:\yarkupdatelivereal\projects\shootergame\source\shootergame\private\rconserver.cpp:92]
ShooterGameServer.exe!URCONServer::Tick() (0x00007ff68060c5b1) + 0 bytes [h:\yarkupdatelivereal\projects\shootergame\source\shootergame\private\rconserver.cpp:297]
ShooterGameServer.exe!AShooterGameMode::Tick() (0x00007ff6806fca6c) + 0 bytes [h:\yarkupdatelivereal\projects\shootergame\source\shootergame\private\shootergamemode.cpp:5772]
ShooterGameServer.exe!AActor::TickActor() (0x00007ff68155f60e) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\actor.cpp:776]
ShooterGameServer.exe!FActorTickFunction::ExecuteTick() (0x00007ff6815467da) + 27 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\actor.cpp:151]
ShooterGameServer.exe!TGraphTask<FTickTaskSequencer::FTickFunctionTask>::ExecuteTask() (0x00007ff6817d8106) + 31 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\public\async\taskgraphinterfaces.h:871]
ShooterGameServer.exe!FNamedTaskThread::ProcessTasksNamedThread() (0x00007ff68105466d) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\async\taskgraph.cpp:939]
ShooterGameServer.exe!FNamedTaskThread::ProcessTasksUntilQuit() (0x00007ff68105477e) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\async\taskgraph.cpp:680]
ShooterGameServer.exe!FTaskGraphImplementation::WaitUntilTasksComplete() (0x00007ff68105e1a9) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\async\taskgraph.cpp:1777]
ShooterGameServer.exe!FTickTaskSequencer::ReleaseTickGroup() (0x00007ff6817ec275) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\ticktaskmanager.cpp:205]
ShooterGameServer.exe!FTickTaskManager::RunTickGroup() (0x00007ff6817f0132) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\ticktaskmanager.cpp:999]
ShooterGameServer.exe!UWorld::Tick() (0x00007ff681695f5e) + 20 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\leveltick.cpp:1224]
ShooterGameServer.exe!UGameEngine::Tick() (0x00007ff681636e12) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\gameengine.cpp:1183]
ShooterGameServer.exe!FEngineLoop::Tick() (0x00007ff6801ed61b) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\launchengineloop.cpp:2449]
ShooterGameServer.exe!GuardedMain() (0x00007ff6801e837d) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\launch.cpp:140]
ShooterGameServer.exe!GuardedMainWrapper() (0x00007ff6801e83da) + 5 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\windows\launchwindows.cpp:125]
ShooterGameServer.exe!WinMain() (0x00007ff6801edf0a) + 17 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\windows\launchwindows.cpp:209]
ShooterGameServer.exe!__tmainCRTStartup() (0x00007ff6824eb14d) + 21 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
KERNEL32.DLL!UnknownFunction (0x00007ff90bd78364) + 0 bytes [UnknownFile:0]
ntdll.dll!UnknownFunction (0x00007ff90dc97091) + 0 bytes [UnknownFile:0]
ntdll.dll!UnknownFunction (0x00007ff90dc97091) + 0 bytes [UnknownFile:0]
 
@OwnProx
At least let us know if this plugin will be updated or not :)
Everybody wants to use it, but nobody does because of the crashes.
 
Back
Top