{"id":37523034,"url":"https://github.com/crownicles/crownicles","last_synced_at":"2026-05-04T00:02:11.767Z","repository":{"id":36996234,"uuid":"162726765","full_name":"Crownicles/Crownicles","owner":"Crownicles","description":"A textual adventure game","archived":false,"fork":false,"pushed_at":"2026-05-03T20:02:13.000Z","size":31844,"stargazers_count":257,"open_issues_count":127,"forks_count":65,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-05-03T20:09:20.570Z","etag":null,"topics":["adventurer","bot","bot-discord","chatbot","chatbots","choice","crownicles","discord","discord-adventure","discord-bot","english","french","game","nodejs","player","yarn"],"latest_commit_sha":null,"homepage":"https://crownicles.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Crownicles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"BastLast","website":"https://crownicles.com/donate"}},"created_at":"2018-12-21T15:01:32.000Z","updated_at":"2026-04-27T15:28:07.000Z","dependencies_parsed_at":"2024-03-25T22:27:16.896Z","dependency_job_id":"a823e15e-e7d5-4c9b-a644-9bb7e3afcebe","html_url":"https://github.com/Crownicles/Crownicles","commit_stats":null,"previous_names":["crownicles/crownicles","draftbot-a-discord-adventure/draftbot"],"tags_count":148,"template":false,"template_full_name":null,"purl":"pkg:github/Crownicles/Crownicles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Crownicles%2FCrownicles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Crownicles%2FCrownicles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Crownicles%2FCrownicles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Crownicles%2FCrownicles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Crownicles","download_url":"https://codeload.github.com/Crownicles/Crownicles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Crownicles%2FCrownicles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32589264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["adventurer","bot","bot-discord","chatbot","chatbots","choice","crownicles","discord","discord-adventure","discord-bot","english","french","game","nodejs","player","yarn"],"created_at":"2026-01-16T08:19:53.447Z","updated_at":"2026-05-04T00:02:11.761Z","avatar_url":"https://github.com/Crownicles.png","language":"TypeScript","funding_links":["https://github.com/sponsors/BastLast","https://crownicles.com/donate"],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center;\"\u003e\n\u003cimg src=\"https://crownicles.com/public/ressources/Crownicles_logo_HD.png\" style=\"border-radius: 50%; width: 300px\" alt=\"Couronne Crownicles\"\u003e\n\nCrownicles is a text adventure game. The story takes place in a medieval world, and the player embodies an adventurer who\nwants to win a competition launched by the king, to win the princess' hand. To achieve this, he must travel and earn\npoints by going through a lot of danger, including thieves, wilderness, and scary children. Every few hours, the player\ncan follow their adventure through \"reports\" and interact with a multiple choice system, using reactions below the\nreport. Each choice has multiple issues, which could hurt the character, heal them, or even give them some stuff. During\nthe journey, they earn money, equipments, and points, and can use them to buy potions, items, or effects in the shop,\nfight other players, and ascend the leaderboard.\n\n[![](https://img.shields.io/discord/429765017332613120.svg)](https://discord.gg/5JqrMtZ)\n[![](https://img.shields.io/github/stars/Crownicles/Crownicles.svg?label=Stars\u0026style=social)](https://github.com/Crownicles/Crownicles)\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n# How to play the game?\n\nCrownicles is originally a discord bot and has evolved to become a fully fledged game that you can play either through\ndiscord or through other clients.\n\nYou can start playing by visiting our website: https://crownicles.com\n\n# Create a custom Crownicles instance\n\n_Before creating your own instance, please note that you can add the bot to your server through the link available on\nthe bot's discord_\n\n**If you decide to work on the creation of your own instance of the bot, you are supposed to have a minimum of computer\nskills. Bot support team will prioritize players of the main instance and will only provide very limited assistance. We\nwill fix bugs you report, but we will not teach you how to code a discord bot.**\n\nPlease do not copy and paste the commands we provide in this readme without :\n\n- Understanding the command\n- Replacing the relevant parts with your data\n- Having read the whole document\n\n**Only the code available in the \"release\" tab is considered \"stable\".**\n\n## Dev environment setup\n\n### Requirements\n\nThis list contains all the software programs necessary to run Crownicles. Our start guide will walk you through the\ninstallation process\n\n- Docker desktop\n  - 🐧: https://docs.docker.com/engine/install/\n  - 🪟: https://docs.docker.com/docker-for-windows/install/\n- Webstorm\n  - (or any other IDE, but we recommend Webstorm since our team uses it and we provide configurations for it)\n- Git\n- nvm (not mandatory but highly recommended)\n  - 🪟: https://github.com/coreybutler/nvm-windows\n  - 🐧: https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating\n- Node\n  - (see package.json of any service for the relevant version)\n\n### Start guide\n\nThis guide will help you run Crownicles on your computer. We provide instructions for Linux, MacOS (🐧) and Windows (🪟). If\nnot specified, the command is the same for all OS.\nPlease do not skip any step of this guide; otherwise, the following commands will not work.\n\nTo keep your project well organized, we recommend the following folder structure:\n```\nprojetct_root/\n├── src             # The main source code\n├── keycloak        # Keycloak related configuration \n    ├── mariadb/    \n    ├── data/\n        ├── h2/\n├── database/       # The database\n├── mqtt5/          # Mqtt broker\n```\nTo get started, create a project folder and enter it:\n```sh\nmkdir crownicles\ncd crownicles\n```\n\nClone the main source code:\n```sh\ngit clone https://github.com/Crownicles/Crownicles.git src\n```\n\n\u003e For step 1 and 2, you can either do it manually or use [this script](./launchScripts/firstConfig.sh) to do it (Linux and MacOS only)\n\n1. Install Pnpm\n\n- Follow the provided guide to install pnpm: https://pnpm.io/installation#using-corepack\n\u003e Beware, if you do this at the root of the project, this will create a new package.json file, you can delete this file\n\n2. Setup projects\n\nRun `pnpm i` in each project folder:\n\n```sh\ncd Lib \u0026\u0026 pnpm i\ncd ../Discord \u0026\u0026 pnpm i\ncd ../Core \u0026\u0026 pnpm i\n```\n\n3. Setup database, Keycloak and an MQTT broker\n\n#### Keycloak\n\nFor Keycloak, follow instructions in [README.md](./keycloak/README.md) in the keycloak folder.\n\n#### Database\n\nFor the database, you can use a mariadb container with the following command:\n\n```sh\n# Create the directory\nmkdir -p PROJECT_ROOT/database/mariadb\n\n# Run mariadb database with docker\ndocker run -d --name mariadb -e MARIADB_USER=crownicles -e MARIADB_PASSWORD=secret_password -e MARIADB_ROOT_PASSWORD=super_secret_password -v PROJECT_ROOT/database/mariadb:/var/lib/mysql -p 3306:3306 mariadb:latest\n```\n\n#### MQTT broker\n\nYou can use any MQTT broker, but we recommend using Mosquitto.  \n\nBefore proceeding, please create a `mqtt5/` folder at the project root to store Mosquitto’s data and configuration:\n```sh\nmkdir -p PROJECT_ROOT/mqtt5\n```\nYou can use [this guide](https://github.com/sukesh-ak/setup-mosquitto-with-docker) to install it with docker. Step 1, 2,\n3, and 5 are enough to have a working MQTT broker.\n\nThe following config file can be used:\n\n```\nallow_anonymous true\nlistener 1883\npersistence true\npersistence_file mosquitto.db\npersistence_location /mosquitto/data/\n```\n\nThe only thing important is to allow anonymous connections.\n\n4. Fill config files\n\n```sh\n# Copy files with default values\ncp $CROWNICLES_ROOT/Core/config/config.default.toml $CROWNICLES_ROOT/Core/config/config.toml\ncp $CROWNICLES_ROOT/Discord/config/config.default.toml $CROWNICLES_ROOT/Discord/config/config.toml\n# The Core module also need access to the Keycloak server on the first launch\ntouch $CROWNICLES_ROOT/Core/config/keycloak.toml # 🐧\nNew-Item $CROWNICLES_ROOT/Core/config/keycloak.toml # 🪟\n```\n\nYou can copy and paste the content of the keycloak section from the config.toml file in the Discord folder in the\nkeycloak.toml file.\n\n5. Run projects\n\n```sh\n# First: start the core module\ncd $CROWNICLES_ROOT/Core \u0026\u0026 pnpm start\n# Then: start the discord module\ncd $CROWNICLES_ROOT/Discord \u0026\u0026 pnpm start\n```\n\nYou can set up npm launch scripts to make the start easier.\nFrom now on you should be able to start the bot by running `pnpm start` in the Core and Discord folders while having the\ndatabase and keycloak running.\nStarting order is important, starts with the database container and keycloak, then the Core and finally the Discord\nmodule.\n\n# Docker container\n\nYou can also compile the bot in a docker container. To do so, you can use the following commands **at the root of the project**:\n\n```sh\ndocker build . -f Core/Dockerfile -t crownicles/core\ndocker build . -f Discord/Dockerfile -t crownicles/discord\n```\n\n# License\n\nThis project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) or, at your option, any later version.\n\nFor details, see the [LICENSE](LICENSE) file in this repository.\n\n# Screenshots\n\n![image](https://user-images.githubusercontent.com/56274541/120916573-ad599000-c6aa-11eb-9e6f-ccc804bc63b2.png)\n\n# Links\n\n- [Website](https://crownicles.com)\n- [Discord server _(in French)_](https://discord.gg/5JqrMtZ)\n- [Suggestion board _(in French)_](https://feedback.crownicles.com/)\n- [Player guide](https://guide.crownicles.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrownicles%2Fcrownicles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrownicles%2Fcrownicles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrownicles%2Fcrownicles/lists"}