An implementation and expansion of the "Scroll and Codex" system from Autarch's Axioms 14 for ACKS RPG system.
It produces an Excel file of fantasy books for use in libraries or treasure hoards.
I am a strictly amateur, self-taught programmer, and this was my first python code. Apologies for infelicities of style and algorithm.
If you just want to download and run the program:
-
download the latest release file from git. Unzip it.
-
The first file after the folders will be a shortcut to acks_fpg.exe -- run it. The two Excel files created also have shortcuts directly beneath.
-
You should be able to ignore all other files unless you want to.
-
Note that there are two free-for-use fonts in the "font" folder that you may need to install on your system to see the flavor titles properly. This only needs to be done once.
- rapid generation of books--100 books can be generated in less than 30 seconds; 1000 can be done in under 5 minutes.
- Generate books by value (a fixed gp budget) or by number of volumes.
- A campaign-wide total number of books can be established. Thus, when new collections are generated, there is a chance (proportional to the number of books already discovered) to find another copy of the same book already generated.
- Random title generation;
- Random author name generation;
- Random translator (if application) name generation;
- Random subject generation;
- Random generation of "flavor title"--books in other languages are given "untranslated" titles as well. These use lorem ipsum text generators to create pseudo-Latin, Greek, Akkadian, Elvish, or Dwarvish titles;
- Generation tables in SQLite database;
- GUI interface via PySimpleGUI;
- Creation of Excel spreadsheets for ease of use;
- automatic archive of master list Excel files of generated books;
- quick access to campaign-wide stats on books (number of books created, number of unique volumes, total value of all books).
- each book automatically given a UUID (universally unique Identifier).
From within the software, users can easily edit:
- languages not to be translated into (dead languages in the campaign can be translated, but newer works will not be translated into those dead languages)
- dice formula for additional years to be added to translation volume age
- chance of producing a translation
- chance of female authorship (default 50:50 for male:female) depending on historical milieu being simulated
- chance of a book being discovered that is incomplete
- chance that an author/translator will have a title (e.g., Doctor, Master, Magus, etc.)
- chance that an author/translator will have an epithet (e.g., the Fair, the Great, XIV, etc.)
- minimum age of book(s) generated
- maximum age of book(s) generated
- total number of books in campaign
- Editing SQLite files allows additions or changes to:
- templates for book title generation
- first and last names
- language groups for name generation
- titles and epithets
- tables which generate the library
(Consider SQLiteStudio for easy GUI editing of these files.)
-
Editing .txt files allows addition or change to lorem ipsum elements for foreign languages.
-
Editing .yaml files for settings allows other parameters to be customized.
- Settings Done by icon 54 from Noun Project
- Dismiss Setting by icon 54 from Noun Project
- Reset Settings by icon 54 from Noun Project
- Cog by icon 54 from Noun Project
- Lost file by Viktor Vorobyev from Noun Project
- Archive by Alain W. from Noun Project
- Retry by Alice Design from Noun Project
- Quit by VINZENCE STUDIO from Noun Project
- Empty by Gregor Cresnar from Noun Project
- Coins by kliwir art from Noun Project
- initial public version
- Bug fix on age of book.
- Prevent endless loop if budget is too low despite repeated attempts to generate book, with overshoot enabled
- Check before run to be sure number of books asked is not zero.
- add a few more icons
- included pre-made executable
- tweak .gitignore file
- got rid of unneeded folders
- typos in README.md file
- README.md typos fixed.
- Tried a different way of creating executable to deal with #9
- Restructured folders for further expansion
- turned logging level down to CRITICAL
- updated requirements.txt file
- correct default save location to avoid absolute pathway? Hopefully solves #9.
- popups if file not exist to avoid infinite loop
- check for absent master file when reseting master file to avoid FileNotFound infinite loop.
- give option to create new, blank master file if it is not found. Values in master_books_settings.yaml reset to zero in this case.