#[GTG] Live Map & Replay System

1 messages · Page 1 of 1 (latest)

pastel barn
#

Hey Arma Reforger Community!

🗺️ Take Your Ops to the Next Level with the [GTG] Live Map & Replay System! 📡

My friend Matty Schmidt and I have developed a comprehensive web-based tactical map system for Arma Reforger, designed to give your community a live overview of the battlefield and powerful tools for after-action analysis.

Check it out in action here:
map.gtg-arma.de

Our goal was to create a tool that's both powerful and easy to use. Here’s what it offers:

  • 🛰️ Real-Time Tactical Map: Track player and vehicle positions live from any web browser.
  • Powerful Replay System: Rewind the timeline to analyze troop movements, engagements, and key moments from any operation.
  • 🔥 Strategic Heatmaps: Visualize hotspots, patrol routes, and common engagement zones to refine your tactics.
  • 💥 Detailed Kill & Damage Logs: See a full log of combat events, clickable to jump straight to the player and the action on the timeline.
  • 🌐 Easy Web Access & Discord Login: No complicated setup for your players. If they have Discord, they can log in.
  • ⚙️ Simple Setup for Server Owners: An intuitive dashboard and setup wizard to get your server connected quickly.

Big News: The Future is Open Source!

We are excited to announce that we are planning to make the entire backend of the [GTG] Live Map fully Open Source! This means you will be able to self-host the system, have 100% control over your data, and even contribute to the project's development.

Our current priority before releasing the source code is to remove the requirement for an external CDN. The goal is to refactor the backend so that self-hosting is as simple and low-cost as possible for everyone.

Try it out now!

Your feedback is incredibly valuable as we continue to develop this project. If you have any problems, questions, or ideas, please feel free to ping either of us here!

neon hull
#

Really nice !!

pastel barn
#

@verbal nova Thank you very much for spending hours and weeks creating the maps and mods!

wooden copper
#

looks good, any chance of the web / back end being open sourced for those who may want to self host?

disregard that, I have now learned to read fully

clever trench
#

Installing this tonight!!!!

wraith arch
lost fjord
#

set it up last night and its awesome! the heat map are a nice bonus

frail pecan
#

LIVE option doesnt seem to work

clever trench
frail pecan
#

I'm testing it on ANIZAY and the localization of my character is wrong.

I should be located inside the green circle

#

at least, thats where I'm spawning

#

anyone else?

wraith arch
#

Thx for the information!

frail pecan
#

I was trying to activate also the logs for damage and kills... but I do not understand how to do so...notlikemeow

I have installed the RJS mod and I can see the RJS folder as well but I'm not sure on how to connect it to the GTG Server Dashboard

lost fjord
#

Live is working again 🎉

lost fjord
frail pecan
#

ok I have SFTP

lost fjord
#

Yup just fill in the details from there and you should be good to go

frail pecan
#

in profile folder path what do I need to put?

lost fjord
#

Depends on what the path is where your profile folder was located for me it's was just "/" since mine was in the root of filesystem

#

You can probably see it in the file manager if GTX has one

frail pecan
#

but the folder path thats intended, is it the folder named RJS? or the same one for the LiveMap ?

lost fjord
#

No they are asking for the profile folder not just the rjs one

frail pecan
#

I see

clever trench
#

Ahh FTP not needed for live map correct

lost fjord
#

Correct

frail pecan
#

I must be doing something wrong... I cannot connect with FTP 😭

#

it says this frogthinking

lost fjord
#

had the same issue, close that window and go to dashboard on the site and click on manage

#

a window will open and then select the log source tab on there, you should be able to enter your information there

lost fjord
#

Player is offset on the takistan map too

frail pecan
#

I noticed that it is a matter or coordinates... if you insert the grid your character is supposed to be at it'll show you another location

pastel barn
#

I'll take a look today.

clever trench
#

anyone else having trouble installing via Bacon servers?

pastel barn
#

Why?

clever trench
#

followed the steps and unable to get working

pastel barn
#

In order to be shown in Panel that everything is okay, you have to produce data. This means you must be on the server, generating position data, and taking damage.

clever trench
pastel barn
#

I can take a look at it in about 30 minutes.

pastel barn
#

I guess the live mode isn't working because of this:

I scaled the app today.

strange silo
#

Was about to post that the live didnt seem to be working and that the position data seems off for the Anizay map

lost fjord
pastel barn
#

@lost fjord for me FTP or SFTP?

lost fjord
#

SFTP with SSH

strange silo
pastel barn
#

THE FUCK

strange silo
#

Yeeeep Lul She a bit off there.

pastel barn
#

We tested Anizly. (We use the map on our server.) It looks like the last position is 5 minutes old.

strange silo
#

I havent moved since I started the server?

pastel barn
#

jap ok looks like the API is to slow......
meowsweats

strange silo
#

If I had a Decent server spare I'd let ya use it heh

pastel barn
#

I'm scaling vertically for now. Tonight, I'll move the FTP/SFTP & cache worker to another node.

The website will be offline for a few minutes for this purpose.

#

Back Online

pastel barn
#

I'll take a look at the incorrect position tonight. I also have the problem that the DB takes a very long time to process the 200–300 inserts per second. I'll probably have to optimize that as well and integrate a batch insert.

(We use a dedicated server that is only responsible for Redis and MariaDB.)

pallid basalt
clever trench
#

Got install to work nice!!!

solar hound
#

I had a quick glance at the implementation. You'd want to use a world system (https://community.bistudio.com/wikidata/external-data/arma-reforger/EnfusionScriptAPIPublic/Page_WorldSystems.html) for this kind of thing, not a single component. This also avoids the CallQueue.
There are also a lot of other improvements / optimisations you could make (I previously thought about designing a similar system) but I won't get into detail here.
For example you can be A LOT more efficient than sending a position JSON string for every player every second.
Though personally I would probably not go with the "send everything live to a single centralized server" approach at all and just make it a playback system that saves to a local file with a custom open ended binary format, which is then distributed by a self-hostable web server (possibly even the live version) and interpreted locally.

pastel barn
# solar hound I had a quick glance at the implementation. You'd want to use a **world system**...

The aim of the current system is to work with nearly every game server provider. Most people do NOT allow a web server to run on the same system.

Writing a file is always better than making an API request for performance reasons.

However, I believe that the mod is most likely not optimized in the end. We simply lack the experience for that. However, you can say in the mod, for example, that you only want to transfer the following position density every x seconds.

We use the mod on all our servers and have not noticed any significant difference after using the mod, so optimizing it is not a high priority at this time. However, the mod is already APL licensed and the web backend/frontend will soon be fully open source, so anyone who has the time and interest can support us there.

But thank you for the feedback!

pastel barn
#

FYI: The web app currently runs completely on a CPX11 (2 cores, 2 GB RAM) (without database) at Hetzner. The problem with the high CPU load was due to the fact that we store the API keys as hashes and therefore always have to convert the Request API Key into a hash to validate it. We have now integrated an in-memory cache.

We have now also identified the cause of the incorrectly displayed cords. I am currently fixing this.

heady thorn
#

following

pastel barn
#

Okay, some maps need their own offset, which I have now implemented along with a tool that allows me to adjust it. Anyone who has a map where the position doesn't fit should contact me via DM. Here's how it works: you write to me which map and which server uses this map. Then I need your in-game name and a screenshot of your current position, preferably one that is clearly visible on the website (e.g., helicopter landing pads like here). (You must be on the server while doing this.)

pastel barn
#

Kunar and ANIZAY is now fixed

#

Note: All old data will also work with this.

pastel barn
#

The live function is now truly live (delay < 2 seconds).
We now use a cache for this purpose.

pastel barn
#

Takistan is now fixed

#

Ruha is now fixed

pastel barn
pastel barn
#

Edit: found a new Bug with the pos. :/

gaunt socket
#

Very cool mod so far, testing it out currently. Any chance for the ability to turn off the "heading" in the tracker, but only a position for the unit? Also, being able to use NATO unit markings would be very cool for use in milsim units!

frail pecan
#

@pastel barn I still haven't been able to set up the damage & kill logs with FTP

#

I put all information requested but nothing ... not able to connect

shell heart
#

Hey is this only for PvP servers, or it can show also ai characters?

#

Wanted to ask because it’s super cool mod for coop missions against ai

scarlet jetty
#

Amazing work btw GTG. I don’t use it as i already track my player pos myself but it’s really cool.

frail pecan
#

I still experiencing wrong coordinates for ANIZAY, could this be caused by other mods?

atomic bane
#

so player would like to know if it can be used to cheat

verbal nova
verbal nova
verbal nova
frail pecan
#

Yeah I notice it is only a matter of coordinates the orientation North, South, East and West works fine

heady thorn
#

there like a youtube vidoe or something that we can watch on adding it into the server?

clever trench
shell heart
swift heath
#

Love to see it when it's released to allow self hosting. Looks very cool.

pastel barn
#

Good news.
I had to rewrite the entire Tranform system for the map display, but now it works as it should. Kunar, Anizay, and all default maps are now ready.

pastel barn
#

Ruha now Fixed

#

Gogland now fixed

#

Takistan now fixed

pastel barn
#

The dashboard server status is now much faster.
And the “Setup” section has been corrected. (save bug)

pastel barn
verbal nova
#

Woop Woop - on our way to a "AtlasOfWorlds".

gaunt socket
#

Just had a session with 20 players run it for our milsim mission. Worked quite well!

verbal nova
#

Top, reworking Rostov tiles after its update ATM

young pelican
pastel barn
young pelican
mortal halo
#

I'm trying to set this up but I cant get it to start, I think I have the json in the wrong "server profile" folder, could anyone point me in the right direction?

#

Hm, it actually does seem to be running, but the webpage is still waiting for its first packet

mortal halo
#

I've tried running it with no other mods and that still doesnt work

#

Hm I got it working by putting the config in my regular reforger profile, not the server one 🤔

dry rivet
#

Waiting for first data packet...
i wonder if it because im using bisect server

pastel barn
mortal halo
pastel barn
#

@mortal halo

#

@mortal haloThe problem with the damage and kill data is that your SSH port is not open, which is why my server cannot connect to it.

mortal halo
#

The SSH port is open, and your server does connect to it

#

I press "Save & Test Connection" and its successful

pastel barn
#

Changelog:

  • Improved Windows support
  • Arland calibrated
vast swallow
#

Got a small problem how do i get the config to show up im using nitrado btw

Edit rjs is installed and creates logs

pastel barn
#

@vast swallow I'll send you a direct message.

cosmic pelican
#

@pastel barnHello, can you add the WCS Serhiivka map?

pastel barn
#

@cosmic pelicandone

I just added and calibrated WCS_Serhiivka.
You can now select it in the server settings.

cosmic pelican
#

@pastel barn - Everything you need for proper calibration. Place the player in the upper left corner with coordinates (x-0; y-0). Then you will see how much you need to move the map in pixels or percentages, depending on the code, or what image alignment you have.

#

#map {
width: 100%;
height: 100%;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: .375rem;
position: relative;
top: -80px; /* raises the map by 80px or whatever is needed - but you need to calculate the deviation accurately */
}

pastel barn
#

@cosmic pelican try again?

cosmic pelican
pastel barn
cosmic pelican
#

@pastel barn -Hello, I am uncertain if anyone has contacted you regarding this matter, but there is an issue with one of the functions in the script in your mod in the server logs. Here is the message from the log:
Stack trace:
scripts/Game/Components/GTG_LifeMapComponent.c:93 Function GetPlayerPosition
scripts/Game/game.c:922 Function OnUpdate
SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance. Variable 'faction'
Class: 'GTG_LifeMapComponent'
Function:** 'GetPlayerPosition'**

atomic mauve
#

Nicee

verbal nova
visual ether
# pastel barn Here is the GitHub project, by the way. However, there will be major updates in ...

I’ve been trying to get it working but keep running into some issues. Not sure if I missed any instructions, but initially this error appeared and the container didn’t boot up:

Could not seed server because no map config was found.

I then uncommented line 42 of main.go, which was database.Migrate(), and it booted up successfully.

This action appears to have created some demo map data it need.
However, when I tried logging into the admin panel to retrieve the APIToken for the mod, I got an error when attempting to log into the dashboard (I’ve removed the URL and code for privacy).

?code=secret&state=state-token:150  GET api/v1/users/me 401 (Unauthorized)
checkAuth @ ?code=secret&state=state-token:150
(anonymous) @ ?code=secret&state=state-token:234
?code=secret&state=state-token:156  GET /api/v1/public/demo-data 404 (Not Found)
initDemoMap @ ?code=secret&state=state-token:156
(anonymous) @ ?code=secret&state=state-token:235
?code=secret&state=state-token:179 Demo map failed to load: Error: Demo server has no map configuration.
    at initDemoMap (?code=secret&state=state-token:159:39)

I hope this helps. If you need me to do anything to configure or help debug, let me know.

#

p.s. Thank you very much for sharing this app! I love the idea.

pastel barn
gaunt socket
pastel barn
#

@gaunt socket
Displaying only group leads is technically more complex but possible (
ReforgerJS theoretically gives us the information about who is in which group), but it is not currently on the to-do list.

There are currently no plans to use custom images for factions. (We are currently using the color of the faction in-game.)

We also plan to implement AI in the long term. (So that you can use it in the debriefing after Milsims, for example).

The plan is to display only one faction on the map, but I can't say when that will happen.

Currently, the plan is to get the functionality we have in place rock solid and then we will build in specific features.

The next step after the Postgress migration is to integrate Raven Anticheat so that when the anti-cheat detects something, you get a link to the event in Discord so you can react immediately.

However, all of this takes time because I don't want to break anything that has already been implemented.

gaunt socket
#

Trying to set the update time on the icons to be around 1 minute, so setting IntervalLOG and IntervalAPI to 60 - however, my experience atm is that anything above 15 leaves our LIVE map image not functioning at all. Have I understood it incorrectly how to use the LOG and API interval?

pastel barn
#

Actually, 60 seconds shouldn't be a problem.

gaunt socket
#

Think I might have solved it by leaving the IntervalLog on 10 seconds, then just upping the IntervalAPI to 60 -for some reason raising them both up caused the map to never update

clever trench
#

systems down?

clever trench
#

nothing, so take it this is dead

dusk orchid
#

Guess so, link doesn't work

pastel barn
#

I am currently busy with other things, both professionally and privately, and therefore the GTG Live Map will not be coming back online.