Moderation

The admin page gives you access to an example moderation system. Admins can access text message and voice transcription history from worlds started from your organisation.

Admins can also mute and ban players from this page. Messages are checked against a modifiable list of banned profanity (this is stored in Live Config), and offending messages are highlighted in red.

The users page, listing all players who have sent a message.

To use the admin page you must set up the following:

1. Set a database to store messages

  1. For this example we will use Redis Cloud, a free database that allows you to store up to 30MB of data in their Key Value store.

    1. Create an account.

  2. Create a new database via the Redis Cloud console.

    1. For the purpose of this example it doesn't matter which cloud vendor or region you choose.

  3. Go to https://cloud.redis.io/#/databases and select the free database that you just created. This will take you to the database's Configuration tab.

  4. Go to the General section and note down these values:

    1. REDIS_HOST: This will be listed as "Public endpoint" and will look like: redis-13619.c338.eu-west-2-1.ec2.redns.redis-cloud.com

      1. It will have a colon and another number at the end of it. Remove that from the vale that you note down.

    2. REDIS_PORT: This is a subset of Redis Host. It's the number after redis- (13619 in the example above).

  5. Go to the Security section and note down these values:

    1. REDIS_USERNAME - This should be default

    2. REDIS_PASSWORD - This is listed as "default user password".

  6. Follow the steps in Managing environment variables to declare the following values that you just noted down as environment variables in Vercel.

Once set up, all messages sent via your game client will be stored in your Redis database. The template app allows you to configure various settings (such as the max messages to store per world, the time to live for each key stored in Redis, and the key prefix for message values). You can configure these in your app's constants/config.ts file.

2. Add your redis to your Unreal project's live config

For moderation to function your Unreal project needs to know where to send messages to. Let's tell the Unreal project about our database.

  1. In your IDE, open Config/LiveConfig/Overrides/game.override.json

  2. Replace its contents with the following:

{
  "Inventory": {
    "HidePlaceMode": true,
    "Quickbar": {
      "GadgetTabSlots": 8,
      "EmoteTabSlots": 8,
      "UsingEquipmentTabs": true
    }
  },
  "Moderation": {
    "ModerationSiteUrl": "http://localhost:3000/api/",
    "UseSpeechToText": true
  }
}
  1. In this snippet ModerationSiteUrl is set as localhost. This means that you can test it against a locally deployed version of morpheus-platform-example-app.

  2. Once you're happy that this works locally, replace ModerationSiteUrl with [your-vercel-app-url]/api/

  3. Follow these steps to deploy a world: Upload Content.

    1. This new upload is necessary to update the Live Config that the world will use.

  4. Deploy your world.

  5. Your new world will have a new WORLD_ID. You need to update the WORLD_ID Environment Variable of your Vercel app, then redeploy the app for the variable change to take effect.

You should now see any messages that have been sent come through to your Vercel hosted Moderator app! Messages that are potentially dangerous will be flagged in red.

Last updated

Was this helpful?