Skip to content

brainboxdotcc/ssod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fa940be · Feb 7, 2025
Jun 3, 2024
Dec 13, 2023
Jun 24, 2024
Dec 16, 2024
Mar 20, 2024
Jun 26, 2024
Feb 7, 2025
Jan 30, 2024
Jun 5, 2024
Mar 11, 2024
Feb 14, 2024
Nov 12, 2024
Aug 28, 2024
Aug 28, 2024
Jan 17, 2024
Dec 13, 2023
Dec 29, 2023
Aug 28, 2024
Nov 12, 2024
Feb 8, 2024
Jul 5, 2024
Aug 8, 2024
Aug 25, 2024

Repository files navigation

Artwork

The Seven Spells Of Destruction is a multiplayer open world role playing game played through Discord. It is based on the 2.0 version of this game, which was a web based game played through the web.

This game has quite a long history.

Timeline of the game's development

  • 1993: This game was created by me at age 13 as a 1480 paragraph novel, similar in inspiration to "Fighting Fantasy" books by Steve Jackson and Ian Livingstone.
  • 1996: The game book was typed up into inter-word on BBC Master 128 Computer
  • 2000: The game book content was transcribed into Microsoft Word 98
  • 2001: Word 98 content converted to a web based game, completely single player. C++ backend.
  • 2003: Multiplayer features added to the game. ssod.org doman name registered. Peak player count in 2005 was 1500 concurrent players.
  • 2014: Start of development of a 3D single player Seven Spells game in Unreal Engine 4
  • 2020: Unreal Engine 4 game abandoned due to lack of resources to adapt the content to a fully open 3D world.
  • 2023: New parser/engine created for the 2004 game content to run via Discord through a bot.

Navigating the codebase

Compilation

First run php artisan app:upload-sprites from the admin web root to upload all sprite emojis to the application emojis section in the discord developer panel, and generate include/gen/emoji.h. This is required to compile the bot and is unique to the application ID.

Next:

mkdir build
cd build
cmake ..
make -j${NPROC}

Configuring the bot

Create a config.json in the directory above the build directory.

NOTE: It is EXTREMELY IMPORTANT to create secure IV/key values for the encryption. This is used to encrypt the state content sent to the user, and if an insecure configuration is placed into the config file here, it may allow selfbots and malicious users to tamper with game state. Keep these values secure and keep them secret as your token, for your the protection of the bot!

{
	"token": "token goes here", 
	"log": "log path goes here",
	"shards": 1,
	"js_thread_pool_size": 32,
	"database": {
		"host": "localhost",
		"username": "mysql username",
		"password": "mysql password",
		"database": "mysql database",
		"port": 3306
	},
	"encryption": {
		"iv": "16 character AES256 IV",
		"key": "32 character AES256 symmetric key"
	},
	"botlists": {
		"top.gg": {
			"token": "top.gg bot list token"
		},
		"other compatible bot list": {
			"token": "their token..."
		}
	}
}

Software Dependencies

  • D++ v10.0.30 or later
    • D++ must be built with -DDPP_CORO=ON
  • libcrypto/libssl
  • libmysqlclient 8.x
  • zlib
  • g++ 14.1 or later
  • cmake
  • fmtlib
  • PCRE
  • spdlog
  • screen
  • sentry-native

Starting the bot

cd ssod
screen -dmS ssod ./run.sh