Skip to main content

A fan-made Python library for Doki Doki Literature Club!, providing DDLC-style character dialogs, choice menus, and typewriter effects. Only support Windows system.

Project description

dokibox

A fan-made Python library for Doki Doki Literature Club, implementing various in-game prompt boxes using tkinter.

⚠️ Credit & IP Guidelines

dokibox is a fan derivative work based on Doki Doki Literature Club (DDLC) and is not officially affiliated with Team Salvato. The original game can be downloaded here or from the Steam store page.

Any user creating derivative works with this library must strictly follow the official IP guidelines.

Special thanks to Joseph from Team Salvato for his support and responses via email!

Installation

Install from PyPI:

pip install dokibox

Import

import dokibox

ynbox — Yes/No Dialog

image
dokibox.ynbox(msg="Delete?", tooltip=False)  bool
Parameter Type Default Description
msg str "" Message text
tooltip bool False Tooltip text
btn_texts tuple None Confirm button prompt. When set to None, dokibox will automatically detect the system language. To modify, please pass in a tuple, replacing "Yes" with the first parameter and "No" with the second parameter. English is used by default when the language is unknown.

Return value: clicking "Yes" returns True; clicking "No" or pressing Esc returns False.

if dokibox.ynbox("Delete?"):
    print("User clicked Yes")

msgbox — Message Box

image
dokibox.msgbox(msg="Operation successful!", tooltip=False)  True
Parameter Type Default Description
msg str "" Message text
tooltip bool False Tooltip text

Single OK button. Closes on click, Enter, or Esc; returns True.

dokibox.msgbox("Saved successfully!")

choicebox — Multiple Choice Dialog

image
dokibox.choicebox(msg="", choices=None, tooltip=False, force=None)  str | None
Parameter Type Default Description
msg str "" Prompt text; hidden when empty
choices list None List of choices
tooltip bool False Tooltip text
force int None Force-select an index (0-based); cursor moves to the center of that choice

Return value: the selected text content; Esc returns None.

char = dokibox.choicebox("Choose a character", ["Sayori", "Yuri", "Natsuki"], force=1)
print(char)  # "Yuri"

dialogbox — Bottom Dialog Box

image
dokibox.dialogbox(msg="", w=None, h=220, name=None, typewriter=True, speed=50, bold=False)
Parameter Type Default Description
msg str "" Message text
w int None Width (default 60% of screen width)
h int 220 Height
name str None Character name tag (white rounded label protruding above the dialog)
typewriter bool True Typewriter mode
chardelay int 50 Typewriter interval per character (ms)
bold bool False Bold black stroke on text
overflow_mode string wrap Has three parameters: wrap, overflow, and hide. wrap enables automatic line wrapping, overflow causes content to overflow the screen, and hide hides the content that goes off-screen.

In typewriter mode:

  • Text appears character by character
  • First click → reveals full text instantly
  • Second click → closes
dokibox.dialogbox("You're actually Administrator, right?", name="Monika")
dokibox.dialogbox("Slower...", speed=80, bold=True)
dokibox.dialogbox("All at once", typewriter=False)

Finally

This project is licensed under the MIT license. When using it, please strictly comply with Team Salvato's relevant fan work IP creation guidelines.

Sayori is my favorite!🎀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dokibox-1.0.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dokibox-1.0.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file dokibox-1.0.0.tar.gz.

File metadata

  • Download URL: dokibox-1.0.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for dokibox-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fcf9caa77a31229d03053377211d244c782e2eaa6a23a300fe43413a826ce8e8
MD5 ba3eb07edf44ba8bad0ceca55d75d960
BLAKE2b-256 c131118f5d3037e48b7a48172e4455e0972702323958a1961962c570b9579379

See more details on using hashes here.

File details

Details for the file dokibox-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dokibox-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for dokibox-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49234d6c0bfae165fd5de40a90f646130867a7caa825e973d7661a4c98c7cb3e
MD5 af01ace236692f9c363b50d9f0f50b6a
BLAKE2b-256 3bf180eac5379438f02d9932c933a20beb4526485a386474872c5204f4b5b023

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page