Switching from Plan

Every plan

Bring your player history over from Plan (Player Analytics) with one console command. What comes over, what does not, and why it is safe to run again.

The clip shows, in order:

  1. One command where Plan is installed.
  2. It reads Plan's own config, read only.
  3. Players, sessions, playtime and join addresses.
  4. Safe to run again, live data stays as it is.

If your network ran Plan, its database already holds who joined, when, for how long, and through which address. The connector can read that database and send it to MCAnalytics, so your charts start with your real history instead of an empty week.

Everything that comes over is marked Imported from Plan on the player page. Nothing is estimated or filled in.

#Run the import

You need connector 1.0.19 or newer, a paired server, and Plan's files still in the plugins folder. Plan does not have to be running. Run the command on the console of the proxy where Plan is installed, or on your Paper server if you have no proxy. Behind a proxy, run it on the proxy, not on a backend.

The connector reads plugins/Plan/config.yml to find the database. With SQLite it opens plugins/Plan/database.db read only. With MySQL it uses the host, port, user, password and database from that file, and the MySQL or MariaDB driver Plan downloaded into its own folder or the one your server ships.

The import runs in the background, a batch of players at a time, and never on the server thread. The console prints a short line as it goes. If the server stops or you cancel, the next run picks up where it left off.

textconsole
mca import plan
mca import plan status
mca import plan cancel

#What comes over

  • Players, with their name and account type. A Floodgate id becomes a Bedrock player, an offline id becomes a cracked player, and a Mojang id becomes a premium player. Any other id is skipped, never guessed.
  • Sessions, with the server, the start and the end. When a player moved between servers behind a proxy, Plan kept one session per server; the import joins those back into one visit, like the proxy records it.
  • Playtime, which is the session length minus the time Plan saw the player AFK.
  • Join addresses. Each one becomes a source, the same source a live join through that address is credited to. The first session's address becomes the player's first source.

#What does not come over

  • Server performance: TPS, CPU, memory and player counts over time.
  • Ping, kills, deaths and mob kills.
  • Countries. Plan stores a country name, not a code, so imported sessions show Unknown.
  • Bans, operator status, nicknames and Plan's data from other plugins.
  • Sessions Plan recorded with no join address keep no source. A cracked player's login was never seen by Plan, so imported cracked sessions do not count as confirmed logins.

#Your live data is never changed

For a player the connector already recorded, the import only adds sessions from before their first live session. Their name, their first source and everything after that stay as the connector recorded them. Their first join moves earlier when Plan saw them earlier, so they show up as new on the day they really arrived.

A player is only given a first source from Plan when they had none.

#Running it again

Each Plan session is stored under an id built from Plan's own server, player and start time, so running the import twice never adds a session twice. Run it again if Plan kept running for a while after you switched, and only the new sessions are added.

The import needs an active plan or Community access, like the rest of your data. Without one it stops and says so; run it again once the plan is active and it goes on from the player where it stopped.