Skip to content

Discord Rich Presence support for Gothic 1/Gothic 2 games based on Union platform

Notifications You must be signed in to change notification settings

Lavalierre/GothicRichPresence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GothicRichPresence

This is Discord Rich Presence plugin made in Union 1.0l for Gothic I and II.

Preview

Preview

Usage for regular users

  1. Download and install Union.
  2. Download GothicRichPresence.vdf file from the latest release and place it in <GothicPath>\Data\Plugins\ folder.
  3. Remember to add Gothic to games detected by Discord if you haven't already. (not necessary)
  4. If for some reason, language of the rich presence is not right, change Language entry in Systempack.ini.

Usage for mod developers

You can easily implement this plugin into your mod to change images or handle more worlds.

1. First you have to set up your own Discord application:

  • Log-In to Discord Developer Portal and go to Applications section.
  • Create New Application and set a name. This name will be displayed as a title on rich presence and should be named Gothic: Mod Name or somewhat similar.
  • Copy Application ID, it will be needed later.

2. Upload and set your own images for worlds specified later in the config. Additionally some images have constant names, and you need to upload them for proper usage:

  • Image with name menu will be displayed when player currently is in menu, or in unknown location.
  • Image with name info, day and night will be displayed in the bottom-right corner of your location pic, and it contains information about game time.
  • Image with name unknown will be displayed when player is in zen not present in the config.
  • One image for every zen in your mod. Those images will be used as a cover when player is in this location.
  • Remember to also set App Icon and Cover Image.

3. Now you need to create a GothicRichPresence.json config file, which you can put right into your .vdf/.mod file in the System\ folder. I advise editing default config that can be downloaded in releases. And don't use zipped .vdf/.mod.

4. Create publickeyoverride and copy APPLICATION ID from Discord Developer Portal as it's value as shown below.

{
  "publickeyoverride": "APPLICATION ID",
  "strings": {},
  "worlds": []
}

5. strings object contains translations for general strings used by the plugin. I recommend not to change them.

{
  "publickeyoverride": "APPLICATION ID",
  "strings": {
    "day": {
      "eng": "Day",
      "pol": "Dzień",
      "rus": "День",
      "ger": "Tag"
    },
    "level": {
      "eng": "Level",
      "pol": "Poziom",
      "rus": "ур.",
      "ger": "Stufe"
    },
    "chapter": {
      "eng": "Chapter",
      "pol": "Rozdział",
      "rus": "Глава",
      "ger": "Kapitel"
    },
    "unknownworld": {
      "eng": "Unknown Lands",
      "pol": "Nieznana Kraina",
      "rus": "Неизвестные Земли",
      "ger": "Unbekanntes Land"
    }
  },
  "worlds": []
}

6. worlds array contains names and images for all zen's.

{
  "publickeyoverride": "APPLICATION ID",
  "strings": {},
  "worlds": [
    {
      "zen": "orcgraveyard",
      "image": "orcgraveyard",
      "name": {
        "eng": "Orc Graveyard",
        "pol": "Cmentarzysko Orków",
        "rus": "Кладбище Орков",
        "ger": "Orkfriedhof"
      }
    },
    {
      "zen": "orctempel",
      "image": "orctempel",
      "name": {
        "eng": "Sleeper Temple",
        "pol": "Świątynia Śniącego",
        "rus": "Храм Спящего",
        "ger": "Tempel des Schläfers"
      }
    }
  ]
}
  • Each location object must have 2 strings: zen and image.

  • zen must be the same as the .zen in game files.

  • image is cover image of that location. You must upload image with same name to Rich Presence Assets at Discord Developer Portal.

  • name is an object containing names for different languages.

    • Plugin supports all languages that are supported by Union.
    • Language is based on Language symbol in [CORE] section from SystemPack.ini.
Default config
{
  "publickeyoverride": "",
  "strings": {
    "day": {
      "eng": "Day",
      "pol": "Dzień",
      "rus": "День",
      "ger": "Tag"
    },
    "level": {
      "eng": "Level",
      "pol": "Poziom",
      "rus": "ур.",
      "ger": "Stufe"
    },
    "chapter": {
      "eng": "Chapter",
      "pol": "Rozdział",
      "rus": "Глава",
      "ger": "Kapitel"
    },
    "unknownworld": {
      "eng": "Unknown Lands",
      "pol": "Nieznana Kraina",
      "rus": "Неизвестные Земли",
      "ger": "Unbekanntes Land"
    }
  },
  "worlds": [
    {
      "zen": "newworld",
      "image": "newworld",
      "name": {
        "eng": "Khorinis",
        "pol": "Khorinis",
        "rus": "Хоринис",
        "ger": "Neue Welt"
      }
    },
    {
      "zen": "oldworld",
      "image": "oldworld",
      "name": {
        "eng": "Valley of Mines",
        "pol": "Górnicza Dolina",
        "rus": "Долина Рудников",
        "ger": "Alte Welt"
      }
    },
    {
      "zen": "addonworld",
      "image": "addonworld",
      "name": {
        "eng": "Jharkendar",
        "pol": "Jarkendar",
        "rus": "Яркендар",
        "ger": "Jharkendar"
      }
    },
    {
      "zen": "dragonisland",
      "image": "dragonisland",
      "name": {
        "eng": "Irdorath",
        "pol": "Irdorath",
        "rus": "Ирдорат",
        "ger": "Irdorath"
      }
    },
    {
      "zen": "world",
      "image": "world",
      "name": {
        "eng": "Penal Colony",
        "pol": "Kolonia Karna",
        "rus": "Колония",
        "ger": "Strafkolonie"
      }
    },
    {
      "zen": "oldmine",
      "image": "oldmine",
      "name": {
        "eng": "Old Mine",
        "pol": "Stara Kopalnia",
        "rus": "Старая Шахта",
        "ger": "Alte Mine"
      }
    },
    {
      "zen": "freemine",
      "image": "freemine",
      "name": {
        "eng": "Free Mine",
        "pol": "Wolna Kopalnia",
        "rus": "Свободная Шахта",
        "ger": "Freie Mine"
      }
    },
    {
      "zen": "orcgraveyard",
      "image": "orcgraveyard",
      "name": {
        "eng": "Orc Graveyard",
        "pol": "Cmentarzysko Orków",
        "rus": "Кладбище Орков",
        "ger": "Orkfriedhof"
      }
    },
    {
      "zen": "orctempel",
      "image": "orctempel",
      "name": {
        "eng": "Sleeper Temple",
        "pol": "Świątynia Śniącego",
        "rus": "Храм Спящего",
        "ger": "Tempel des Schläfers"
      }
    }
  ]
}

About

Discord Rich Presence support for Gothic 1/Gothic 2 games based on Union platform

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages