Identica
Installation

Normal Installation

Standard installation path without replication.

Use this path when you want to use Identica on a simple Minecraft server setup without shared restart-surviving state. It is meant for straightforward usage, simple routing, and normal day-to-day operation where cache and pending journey state do not need to survive plugin restarts.

Scope

This guide covers the basic installation needs most users expect from existing authentication plugins. Use the Providers overview to see the full set of providers you can install and use. Those broader provider choices are not covered by this installation page.

What this path assumes

  • one Identica runtime is enough
  • you want a simple setup instead of a replicated environment
  • sessions, cache, and pending journey state do not need to survive plugin restarts
  • a simple routing layout is enough for the server or proxy

If you do need sessions and pending state to survive plugin restarts, use Advanced installation. That requires replication to be enabled.

1. Download the artifacts

Use GitHub releases when you want stable published versions.

Download flow:

  1. Open the releases page.
  2. Open the release version you want to install.
  3. Expand the release assets if they are collapsed.
  4. Download these three jars from the asset list:
  • Identica-VELOCITY-<version>.jar
  • Identica-Credential-<version>.jar
  • Identica-Premium-<version>.jar

You do not need the API jar for a normal server installation.

2. Place the runtime and provider jars

Place the main Identica runtime jar directly in plugins/. It should sit beside your other plugin jars, not inside the identica/ folder.

Place provider jars in:

plugins/identica/providers/

If that folder does not exist yet, create it manually before the first boot.

Placement flow:

  1. Copy Identica-VELOCITY-<version>.jar into plugins/.
  2. Create plugins/identica/ if it does not exist yet.
  3. Create plugins/identica/providers/ if it does not exist yet.
  4. Copy Identica-Credential-<version>.jar into plugins/identica/providers/.
  5. Copy Identica-Premium-<version>.jar into plugins/identica/providers/.

Before starting the server, double-check these placement rules:

  • the main Identica runtime jar belongs in plugins/
  • provider jars belong in plugins/identica/providers/
  • provider jars should not be placed directly in the root plugins/ folder

A minimal layout looks like this:

plugins/
├── Identica-VELOCITY-<version>.jar
└── identica/
    └── providers/
        ├── Identica-Credential-<version>.jar
        └── Identica-Premium-<version>.jar

3. Start the runtime once and stop it again

Start the platform once so Identica can create its initial files and folders. This first boot is only meant to let the plugin prepare its default configuration layout. You are not expected to finish setup on this first start.

First startup can look stuck

On the first startup, Identica downloads its required libraries, so the server may not print anything new for a while and can feel stuck even though the download is still in progress. This can be fast or slow depending on the internet connection, and the server must have internet access and be able to reach Cloudflare-protected sites.

If everything is fine, Identica will print its welcome message or banner after startup finishes.

Once that first boot has completed and the files were created, stop the proxy cleanly before editing the generated configuration.

On this first start, the main goal is to let Velocity load the runtime jar and let Identica prepare its config directory.

Review these generated locations after the first boot:

  • plugins/identica/settings
  • plugins/identica/messages
  • plugins/identica/commands
  • plugins/identica/verification
  • plugins/identica/persistence
  • plugins/identica/replication
  • plugins/identica/providers/providers

Provider-specific config directories for enabled providers also appear under plugins/identica/providers/.

The current default boot path creates a configuration marker with type=YAML.

It is safe to stop the proxy after these files exist.

This page stays procedural on purpose. The detailed meaning of each config area belongs in Configuration.

4. Enable and order the providers

Open the generated providers config and keep the generated structure as your base. In most cases, the defaults are already close to what you want.

For typical mixed setups, it makes sense for premium to have a higher priority than password. In practice, that means if Identica has to choose between those providers for the same player or entrypoint situation, premium wins before password. That is the behavior most users expect.

For the first pass, the important decisions are:

  • which providers stay enabled
  • which provider gets higher priority
  • whether entrypoint hostnames should map directly to a provider

A practical starting point looks like this:

providers:
  - id: premium
    displayName: "PR"
    enabled: true
    priority: 200
    overrides:
      sessionTtl: 12h
    entrypoints:
      - premium.example.com

  - id: password
    displayName: "CR"
    enabled: true
    priority: 100
    overrides: {}
    entrypoints:
      - password.example.com

If you are not using hostname-based routing yet, leave entrypoints empty or replace the default values later when you know the real hostnames. Keep the generated verification blocks unless verification setup is intentionally part of this installation pass.

5. Understand journey mode and journey policy

The generated settings may also include journeyMode and journeyPolicy.

  • SEAMLESS means a step is expected to continue without player interaction
  • INTERACTIVE means the step may prompt the player, wait for input, or otherwise require explicit interaction

For most normal installations, INTERACTIVE is the easier and safer choice because the player can clearly see what Identica expects from them. Typical interactive behavior includes things like entering a password, choosing a provider, confirming a verification code, or responding to a migration prompt.

In the current setup described by this guide, INTERACTIVE can also produce a better first impression. If you leave the flow on SEAMLESS, a player who joins from an offline account while using a premium username may hit the higher-priority premium provider first and get an invalid-session-style kick from the server on that first join. That can scare users away before they understand what happened, even if a second rejoin would work.

With INTERACTIVE, the player can enter the enrollment step instead and choose the provider directly. If you want less manual selection in that flow, the generated settings also include autoSelectSingleProvider, which you can enable for scenarios where only one provider should be chosen automatically.

journeyPolicy controls how strictly the selected mode should be applied:

  • PREFER means Identica tries to use the configured mode first, but may fall back to another viable mode if needed
  • STRICT means Identica should only use the configured mode

For most setups, PREFER is the better default.

6. Replace default routing targets with a simple real route

The generated settings defaults use example routing targets. Do not leave them unchanged unless those names really exist in your environment.

It is usually not a good idea to use the same target for both step routing and completion routing. In most cases, step targets should point to an authentication or transition destination, while completion should point to the place where the player is actually meant to end up.

In Velocity, these target values are backend server names from your proxy configuration.

If you want, you can still balance those requests across multiple backend servers, but that is not a feature of Identica itself. Identica only asks Velocity to route a player to the target you configured.

Load balancing or target rewriting belongs to an external plugin. For example, a balancer plugin such as PlayerBalancer can intercept a request for auth-1 and redirect the player to another server such as auth-3 according to its own rules.

For a simple setup, a single shared target is a good baseline:

connection:
  routing:
    defaults:
      step:
        target: lobby
      complete:
        target: lobby

Generated settings keep scenarios empty by default. If your setup already separates authentication, registration, or migration across different backends, add only the scenario entries that differ from these defaults. Otherwise, keep the routing simple and use one shared target.

If your hosting panel limits how many separate backend servers you can run, a lightweight limbo server can help. One example is PicoLimbo, which can run with Velocity and gives you a virtual routing destination hosted through the proxy side instead of requiring another full gameplay server.

8. Review security and refine the setup

Do not stop at the first successful startup. After the baseline works, walk through the generated configuration and the rest of the docs so you understand what the plugin will do in your network.

Some defaults are intentionally strict. For example, password requirements may be stronger than what your players are used to, so review them before treating the setup as final.

Protect the authentication flow

Because Identica is an identity plugin, it does not try to own every command or routing behavior on the server. That is why it is strongly recommended to use a command filter or blocker for commands that could let players escape the authentication flow before they finish it.

Examples of dangerous behavior can include:

  • switching servers before authentication is complete
  • using commands that move the player into the real server environment too early
  • reaching systems that should only be available after authentication

Many networks handle that with a separate blocker or filter plugin. Identica does not treat that as core identity-plugin functionality.

9. Get help or report issues

If you find a bug, need support, or want a feature, we are happy to help:

Critical fixes are usually handled quickly. Less critical improvements may be prioritized later.

On this page