{"id":50608437,"url":"https://github.com/2kai2kai2/eu4img","last_synced_at":"2026-06-06T01:03:49.107Z","repository":{"id":46116852,"uuid":"166905241","full_name":"2kai2kai2/eu4img","owner":"2kai2kai2","description":"A Discord bot for the video game EU4 that creates in-channel post-game reports, organizes game reservations, etc.","archived":false,"fork":false,"pushed_at":"2023-06-14T23:17:26.000Z","size":63623,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"release","last_synced_at":"2023-06-15T00:24:33.951Z","etag":null,"topics":["after-action-report","bot","discord","discord-bot","discord-py","eu4","eu4-multiplayer","europa-universalis-4","europa-universalis-iv","game","games","scheduler"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2kai2kai2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-22T01:25:34.000Z","updated_at":"2023-06-15T00:24:33.951Z","dependencies_parsed_at":"2022-09-03T22:02:35.758Z","dependency_job_id":null,"html_url":"https://github.com/2kai2kai2/eu4img","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/2kai2kai2/eu4img","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2kai2kai2%2Feu4img","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2kai2kai2%2Feu4img/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2kai2kai2%2Feu4img/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2kai2kai2%2Feu4img/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2kai2kai2","download_url":"https://codeload.github.com/2kai2kai2/eu4img/tar.gz/refs/heads/release","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2kai2kai2%2Feu4img/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33965591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["after-action-report","bot","discord","discord-bot","discord-py","eu4","eu4-multiplayer","europa-universalis-4","europa-universalis-iv","game","games","scheduler"],"created_at":"2026-06-06T01:03:48.402Z","updated_at":"2026-06-06T01:03:49.092Z","avatar_url":"https://github.com/2kai2kai2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e ### This version is not longer supported\n\u003e \n\u003e I have a new version of the The Cartographer [**here**](https://github.com/2kai2kai2/cartographer), written in rust and supporting modern versions of Discord (if you previously had the bot in your server, it will be using the new version now).\n\n---\n\n![Deployment State](https://img.shields.io/github/deployments/2kai2kai2/eu4img/eu4imgbot?label=deployment\u0026logo=heroku)\n![Code Size](https://img.shields.io/github/languages/code-size/2kai2kai2/eu4img)\n![Total Size](https://img.shields.io/github/repo-size/2kai2kai2/eu4img)\n![License GPL-3.0](https://img.shields.io/github/license/2kai2kai2/eu4img)\n![Vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/2kai2kai2/eu4img)\n# The Cartographer\n\nThis bot is a must-have for Discord servers that play the video game [Europa Universalis IV](https://eu4.paradoxwikis.com/Europa_Universalis_4_Wiki) (EU4) by Paradox Interactive.\n\nWhile primarily intended for multiplayer campaigns, The Cartographer fully supports all applicable features for singleplayer.\n\n## Features:\n\n### 1) Beautiful Post-Game AAR Stats\n\nSimilar to the popular tool [Skanderbeg](https://skanderbeg.pm), The Cartographer provides statistics and a map showing information about an uploaded game save file. However, The Cartographer is unique in that it posts an aesthetically fitting image containing this information directly into the Discord channel.\n\nTo get started, simply type `/stats` in the channel where you want the display to be posted. There is an optional `skanderbeg` option which, if enabled, will automatically upload to Skanderbeg and post the link alongside the in-channel stats display.\n\nThe Cartographer will send you a direct message with instructions on how to upload the file and optionally modify the list of players to be displayed.\n\n![Stats Example](https://media.discordapp.net/attachments/655980109676675072/812136817125490748/finalimg.png?width=2016\u0026height=1134)\n\n_Map shows player borders including subject states. And yes, I am the one playing the unnecessarily wealthy Russia that has seized London, Tehran, and Beijing. For the record, colonialism and imperalism are bad IRL._\n\n\n### 2) Managing Multiplayer Campaign Reservations\n\nEasy commands to set up a channel for reservations. Simply set up a fresh channel for reservations and type `/reservations`\n\n- Avoid duplicates picks and conflicts: It's first-come, first serve (with admin overrides, of course)!\n- Automatically inform users when they've selected a banned nation.\n- Automatically delete messages to the channel that could push the reservation list up.\n- An image showing the picked nations, making it easier to find one you want to play that's open.\n- Most importantly, keep everything organized!\n\n![Reservations](https://cdn.discordapp.com/attachments/655980109676675072/908943926814195713/unknown.png)\n\n----\n\n## How can I add this to my Discord server?\nWhile we do not currently have a link to add the bot publically available, but you can request a link on\n[**The Cartographer** Official Discord Server](https://discord.gg/yQWUAxMsZf)\n\n[![Discord Button](https://img.shields.io/discord/846487859661504532?label=Discord\u0026logo=discord\u0026logoColor=white)\n](https://discord.gg/yQWUAxMsZf)\n\n## Running Your Own Bot Instance\n\nIf you would prefer to run your own instance of the bot, you can. (If you're not sure, feel free to join the Discord server with the above link and ask!) \n\nDepending on your system or hosting service, you may have different ways of running the program. However, there are a few things that are important:\n\n### 1. Environment Variables\n\nEither in your environment variables or in the `.env` file, provide the following:\n\n| Environment Variable | Description |\n| -------------------- | ----------- |\n| `DISCORD_TOKEN`      | A Discord bot token from the [Discord Developer Portal](https://discord.com/developers/applications). |\n| `SKANDERBEG_TOKEN` | (optional) A [Skanderbeg](https://skanderbeg.pm/) API token for automatic Skanderbeg uploads. |\n| `MONGODB_USERNAME` | Username to access a MongoDB cluster where the bot will store its data. |\n| `MONGODB_PASSWORD` | Password to access a MongoDB cluster where the bot will store its data. |\n| `MONGODB_CLUSTERURL` | Cluster URL to access a MongoDB cluster where the bot will store its data. |\n\nA template can be found in the file `template.env`; simply rename to `.env` and modify.\n\n### 2. Install Dependencies\n\nThe recommended method for running the bot is in a Docker Container. A `Dockerfile` is provided which will load the necessary dependencies.\n\nIf you decide not to use Docker, you can still install dependencies manually:\n```\npip install -r requirements.txt\n```\n\n### 3. Run\n\nIf you choose to run the bot in a Docker Container, the command to start is already setup in `Dockerfile`.\n\nIf you decide not to use Docker, the following are example commands for starting up the bot:\n\nLinux:\n```\npython3 EU4Bot.py\n```\nWindows:\n```\npython EU4Bot.py\n```\nHowever, many hosting services or different platforms may have different methods for running Python 3.x programs.\n\n----\n\n## Updates\n\nUpdated game data will be needed when a new EU4 version is released. I will do my best to this as soon as possible after new game updates are released, but private bot instances will need to update from the GitHub repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2kai2kai2%2Feu4img","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2kai2kai2%2Feu4img","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2kai2kai2%2Feu4img/lists"}