Skip to content

GroupeZ-dev/SatisfactorydleBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Satisfactorydle Bot

Discord bot for Satisfactorydle - a Wordle-style guessing game for Satisfactory items, buildings, recipes, creatures, and milestones.

Features

  • 6 game modes: Classic, Item, Building, Recipe, Creature, Milestone
  • Timed quiz mode (60 seconds to guess an item from hints)
  • Smart autocomplete with dynamic filtering
  • Progressive hint system that unlocks as you guess
  • Detailed comparison grid after each guess
  • Ephemeral responses - only you can see your guesses
  • Per-server language and game mode configuration
  • Multilingual support (English & French)

Requirements

Setup

  1. Clone the repository
  2. Build the project:
    ./gradlew build
  3. Run once to generate the default config.json:
    java -jar target/Satisfactorydle.jar
  4. Edit config.json with your credentials:
    {
      "discord_token": "YOUR_DISCORD_BOT_TOKEN",
      "api_url": "https://satisfactorydle.net",
      "api_token": "YOUR_API_TOKEN",
      "locale": "fr"
    }
  5. Start the bot:
    java -jar target/Satisfactorydle.jar

Commands

Command Description
/sfdle start <mode> Start a daily challenge and see yesterday's answer
/sfdle guess <mode> <entity> Submit a guess with autocomplete suggestions
/sfdle score <mode> View your current progress and game statistics
/sfdle quiz Start a timed quiz - guess the item in 60 seconds
/sfdle config language <locale> Change the bot language (requires Manage Server)
/sfdle config mode <mode> <enabled> Enable/disable a game mode (requires Manage Server)
/sfdle config show Display the current server configuration

Tech Stack

  • Java 21 - Gradle (Kotlin DSL)
  • JDA 5.2.2 - Discord API wrapper
  • Gson - JSON parsing
  • Sarah - SQLite database ORM
  • java.net.http.HttpClient - API communication

Project Structure

src/main/java/fr/maxlego08/satisfactorydle/
├── Main.java                  # Entry point, JDA initialization
├── CommandListener.java       # Slash command & autocomplete handler
├── SatisfactorydleAPI.java    # HTTP client for the Satisfactorydle API
├── MessageManager.java        # i18n message loading
├── Messages.java              # Message accessor
├── ApiException.java          # API error wrapper
├── command/
│   ├── StartCommand.java      # /sfdle start
│   ├── GuessCommand.java      # /sfdle guess
│   ├── ScoreCommand.java      # /sfdle score
│   ├── QuizCommand.java       # /sfdle quiz
│   ├── ConfigCommand.java     # /sfdle config
│   ├── EmbedHelper.java       # Shared embed building utilities
│   └── EntityCache.java       # Cached entity list for autocomplete
├── quiz/
│   ├── QuizManager.java       # Quiz lifecycle (start, hint, timeout)
│   └── QuizSession.java       # Active quiz session state
├── config/
│   ├── Config.java            # config.json loader
│   ├── GameMode.java          # Game mode enum
│   ├── GuildConfig.java       # Per-guild configuration DTO
│   └── GuildConfigManager.java# Guild config CRUD with in-memory cache
└── database/
    └── CreateGuildConfigMigration.java  # SQLite schema migration

License

This project is open source. See the Satisfactorydle website for more information.

About

Discord bot for Satisfactorydle

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages