Cross Server Chat

Cross Server Chat 1.0

No permission to download
Advertisement

Monetise Your Game Server

Want to monetise your ARK Server? Create your own webstore at tebex.io

Foppa

Moderator
Staff member
Messages
744
Likes
69
Points
28
Website
foppasgaming.com
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)
grid1.png grid2.png

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

trevorjd

New member
Messages
13
Likes
0
Points
1
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:

Foppa

Moderator
Staff member
Messages
744
Likes
69
Points
28
Website
foppasgaming.com
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 ! :)
 

trevorjd

New member
Messages
13
Likes
0
Points
1
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?
 

trevorjd

New member
Messages
13
Likes
0
Points
1
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.
 

trevorjd

New member
Messages
13
Likes
0
Points
1
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.
 

Foppa

Moderator
Staff member
Messages
744
Likes
69
Points
28
Website
foppasgaming.com
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)
 

Shadowsong

Member
Donators
Messages
89
Likes
14
Points
8
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 1344 View 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?
 

trevorjd

New member
Messages
13
Likes
0
Points
1
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.
 

Shadowsong

Member
Donators
Messages
89
Likes
14
Points
8
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!
 

OnlyCrunch

New member
Messages
19
Likes
2
Points
3
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]
 

Visual

Member
Donators
Messages
64
Likes
12
Points
8
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
 
Messages
19
Likes
2
Points
3
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\ark-server-api\version\core\public\api\ue\hal\unrealmemory.h:110]
VERSION.dll!TArray<FString,FDefaultAllocator>::ResizeGrow() (0x00007ff8ef71b0de) + 24 bytes [d:\programs\ark\ark-server-api\version\core\public\api\ue\containers\tarray.h:2035]
VERSION.dll!FString::parseIntoArray() (0x00007ff8ef716a06) + 24 bytes [d:\programs\ark\ark-server-api\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\ark-server-api\version\core\private\commands.h:104]
VERSION.dll!AtlasApi::Hook_RCONClientConnection_ProcessRCONPacket() (0x00007ff8ef7266c4) + 0 bytes [d:\programs\ark\ark-server-api\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]
 
Top