Identica

First configuration

Change the defaults that every network has to change before players join.

The files Identica writes on its first start work as they are, but they name example servers and hostnames. Go through these steps with the proxy stopped, then start it and join.

The examples use YAML. Each setting is described in full in Configuration.

Configure Identica

Choose and order the providers

Open providers/providers.yml. Each entry configures one installed provider:

providers:
  - id: "credential"
    displayName: "Credential"
    enabled: true
    priority: 50
    entrypoints: []

  - id: "premium"
    displayName: "Premium"
    enabled: true
    priority: 100
    entrypoints: []
  • enabled turns a provider on or off. Turn off a provider your network should not offer.
  • priority decides between providers that have an equally good reason to handle a player; the higher value wins. Premium before Credential is what most networks want: a player who owns a premium account logs in with it.
  • entrypoints lists hostnames that pick a provider, such as premium.example.com. The generated entries are examples: replace them with your own hostnames, or empty the lists when your players all join through one address.

How a provider is picked explains the order in full.

Choose how players log in

Open engine.yml. Each scenario has a choice: who picks how a player logs in or registers when more than one provider could do it.

  • AUTOMATIC: Identica picks, and asks the player only for what that provider needs, such as a password.
  • PROMPTED: the player chooses the provider. With only one provider to choose from, nobody is asked.

For registration, PROMPTED is the easier start. With AUTOMATIC, a new player who joins from an offline client with a premium username is asked for a premium login first, which their client cannot complete, so they are disconnected with an invalid-session message on their first join. With PROMPTED, the same player chooses the provider instead. Premium's CLIENT_PROFILE detection avoids the disconnect for clients on 1.19.1 or newer either way.

scenarios:
  registration:
    choice: "PROMPTED"

Provider choice covers both in detail.

Point routing at your servers

Open routing.yml. Identica sends a player to the step target while it waits for them, such as for a password, and to the complete target once they are logged in. The defaults, auth and survival, are examples. Use the names of servers in your proxy's configuration:

defaults:
  step:
    target: "auth"
  complete:
    target: "lobby"

A separate server for players who are logging in keeps them away from the rest of the network until they are done. If your host limits how many servers you run, a lightweight limbo server such as PicoLimbo can serve as the step target without a full server.

To send players to the server their hostname belongs to, or to route registration differently from login, see Routing players.

Keep players inside the login

Block commands and chat until players have logged in

Identica decides who a player is. It does not stop a player who has not logged in yet from typing commands, such as switching servers, or from seeing chat. Use a plugin that holds those back until the player has logged in.

Identica-CommandBlocker and Identica-ChatBlocker do this and let Identica's own commands through. See Community addons.

Movement and block breaking on the step server are the backend's matter; a limbo server avoids them, because it has no world to change.

Review the rest

A few defaults are worth a look before players arrive:

  • Credential's password rules require upper and lower case letters, a digit and a symbol.
  • Accounts are stored in SQLite inside the data directory. To use MySQL, MariaDB or PostgreSQL, see Database.
  • Identica sends anonymous usage statistics; that page also says how to turn them off.

Start the proxy and join

Start the proxy and join. A new player is asked to register; after registering they are sent to the complete target.

After later changes, /identica admin reload reads the files again without a restart. See Reloading for what needs a restart.

If something does not work as expected, see Troubleshooting, or ask for help as described in Support.

On this page