This repository contains the code for Open Toontown, based on the latest version of Disney's Toontown Online (sv1.0.47.38).
After cloning the repository, you will need to clone the resources repository inside the directory where you cloned the source repo.
Secondly, you would have to install and use a specific version of Panda3D, which includes libotp
and libtoontown
. You can use the prebuilt installers for your operating system here:
You can install Panda3D SDK through the 32-bit (x86) or 64-bit (x86_64) installers here:
Panda3D SDK for Windows (Python 3.8, x86_64)
If you install Panda3D outside the default directory (or use the x86 installer), you may have to change the PPYTHON_PATH
file located in the root directory and change it to your install directory.
Installing the provided Panda3D wheel requires Python 3.9, which is not installed on your system by default whatsoever. We recommend installing Python 3.9 through Homebrew (Make sure that the xcode command line tools are installed first xcode-select --install
):
$ brew install [email protected]
(This will symlink Python 3.9 to python3.9
and pip to pip3
).
After installing Python 3.9. You can then install the wheel by using pip:
$ pip install panda3d-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl
If you use Linux, or are interested in building Panda3D yourself, head on over to our Panda3D fork and read the "Building Panda3D" section on the README file there.
To start the server and run the game locally, go to your platform directory (win32
for Windows, darwin
for Mac and linux
for Linux), and make sure you start the following scripts in order:
OTP Server -> UberDOG (UD) Server -> AI (District) Server -> Game Client
Be sure to wait till the servers have finished booting before starting the next. If done correctly, you should be able to make your toon and play the game! There is no support for Magic Words (commands) yet, but it is currently in the works!
Submitting issues and Pull Requests are encouraged and welcome.
How you commit changes is your choice, but please include what you did and a basic description so that we know exactly what was modified. Here are some examples:
minigames: Fix crash when entering the trolley
racing: Fix possible race condition when two racers tied
golf: Refix wonky physics once and for all (hopefully)