/Timeline

AS2 & AS3 CPPS Emulator, written in Python. (Club Penguin Private Server Emulator)

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Timeline

AS2 & AS3 CPPS Emulator, written in Python. Timeline is built heavily on Twisted and is even-driven.

Timeline docs now live at https://times-0.github.io/

Mandatory account activation

Timeline v7.5+ makes it mandatory to activate your account. New registered penguin get a trial period of 7 days, within which the user must activate their account using the provided email. If not, they won't be able to login after 7 days of register, unless account activated (unlike Disney' policy of deleting your account instead)

Friend list update

Timeline v7.6+ integrates support for Disney's friends list. Make sure you follow this link to set it up in your server - Times-0 > Friends-CP

EPF update

After persistent request, the EPF with no real reason for it's existance is being revived. You asked it, so edit your database by executing the below SQL

ALTER TABLE `penguins` ADD `agent` INT(1) NOT NULL DEFAULT '0' AFTER `cover_icon`, ADD `epf` VARCHAR(50) NOT NULL DEFAULT '0%0' AFTER `agent`;

AS2 + AS3 Cross-compatible Server

Timeline v7.4+ supports AS2+AS3 cross compatible server. What this means for you is that, you run a single server that can accept both AS2 and AS3 clients, both at the same time

Note: There still needs some fix for certain packets that differ from AS2 to AS3, this will be looked into in the near future

Default server is now a cross-compatible AS2+AS3 server.

Server Jumping

Timeline v7.3 or later supports In-game Server Jumping feature. To use this make sure you have setup your client already. You can visit docs for detailed guide on adding Server Jumping feature to the client.

Firebase Integration

Timeline v7.2 or later supports the integrated Firebase, autologin system. To use this, make sure you have compatible client setup already. You can visit docs for detailed guide on how to setup Firebase login system.

This integration is optional, yet recommended. No data loss, or account loss will be experienced during this integration. Any account not using firebase, will be automatically converted upon login

Real-time Message Filter [Perspective API]

Timeline v7.1 or later, supports real-time filtering of messages, based on toxicity in the content of speech. Using the Google's intelligent AI based Perspective API, it's now made possible to have more child-friendly environment.

The Perspective API Key provided by default is just for testing/development/educational purpose. Please don't use the same key for your production server. You must get yourself whitelisted from Google, and get yourself a key for your server.

Visit this Quickstart Guide to Perspective to get yourself a key. Don't worry, you'll mostly get whitelisted within a day. Look into Timeline > Handlers > Messages # Line 76 for more details, on how to effectively use your key.

Important Upgrade Notice (From Timeline v>= 7)

From the version 7 of Timeline, there is a strict implementation, forcing you to follow a database convention, in order to make it easy to upgrade to newer database sturcture without any chaos. All new database, using new database structure should follow the nomenclature: database name should end with line. Example, timeline, waddle-line, waddleupline, and so on.

Everyone who started using v7, and want to migrate data from older version, are requested to use the python script DatabasePort.py to port all your old data into the new database structure.

Note It is recommended to run the script as sudo (on UNIX server). ie, sudo python DatabasePort.py, in-order to have an error free, and smooth experience.

Of all the chaos what do you yet? You get a sweet, charm, more flexible, server, which has on-the air, real-time updation of data. And everyone's favourite CJ Fire v/s Sensei. What more you think could suffice this? Oh yeah, some bugs and filaments are cleaned up too :~)

Oh and, upgrade Twisted module if you haven't already :~D

AS2 and AS3 Cross-Compatibility

The flexibility of Timeline, makes sure it's cross-compatible with both AS2 and AS3 clients.

From the version 6 of Timeline, Timeline can run both AS2 and AS3 Servers at once. One solution for multiple problems. AS2 is integrated into the AS3 Piece of pie, with some tweaks and added extra flavors. No loss of performance, experience, and stability has been made during this compatibility upgrade. It indeed works better than ever before. Timeline v6 is ready for production too.

For convenience, here, we refer both Timeline AS2 and AS3 as Timeline.

For detailed information, visit here

Visit the official test server, where you can see, test and try all features of current version of Timeline, in real time: https://timeline.valid22.pw

Contribution

Timeline is a free, open-source project.

Requirements

Extras

You can use the following to add more features and customization to your CPPS:

  • FindFour AI - An intelligent, human like bot, with whom you can play FindFour matches with.
  • Commands - Comes with Timeline by default. Enables users to use shortcut commands with the chat system.

Note: There maybe many other plugins not listed in the above list, the above are ones officially tested and found to be working and 100% legit

Installation and Usage

Download Timeline, put it in an accessible and readable directory. Navigate to that directory using CMD or Shell or any console client. Run Start.py. The server will start running.

You can edit Start.py to change Handlers module scope, TCP IP/Port endpoints, Logger etc. You can also add new methods!

Make sure you run MySQL and Redis server before starting the server.

Please run DatabasePort.py to create tables in your database. It also auto recreated db for you, you just need a spare databse beforehand. (ie, old dbname as spare db, new db name as the one you want to create)

Installing mysql-python (MySQLdb)

Who hadn't had trouble installing MySQLdb (MySQL-python) package for Python on Windows!

If you are on UNIX environment (ie Ubuntu, Linux, etc), the following should work just fine

sudo pip install MySQL-python

But, the same in Windows, should be a lot messy, so instead try executing the following command instead. Before that, move the command console into the directory in which you have installed Timeline (eg: cd C:\Users\Times\Desktop\Timeline-master

pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl

if that didn't work, try this

pip install MySQL_python-1.2.5-cp27-none-win32.whl

That's it. All the connectors are baked. :~)

Default

  • Default database : timeline
  • Default user : username: test, password: password
  • Default crumbs directory : ./configs/crumbs/

IMPORTANT : By default Timeline uses colored logger, so you must install 'colorlog'. If you wish not to use it and go by classical logger, change the following line

TimelineLogger = InitiateColorLogger()

to

TimelineLogger = InitiateLogger()

Features

Timeline is almost complete, covering support for all features present in native CP and any classical CPPS. Below is an adaptive list briefing such features:

  • Login [AS2, AS3]
  • Server Jumping [AS3]
  • Inventory [AS2, AS3]
  • Purchasing [AS2, AS3]
  • Clothing [AS2, AS3]
  • Moderator [AS2, AS3]
  • Stealth Moderator [AS3] AS2 client natively doesn't support stealth mod, even if Timeline does
  • Mascots [AS2, AS3]
  • Rooms (spawning) [AS2, AS3]
  • Postcards [AS2, AS3]
  • EPF [AS2, AS3]
  • Chatting [AS2, AS3]
  • Stamps [AS2, AS3]
  • Puffles [AS2, AS3]
  • Puffle adoption [AS2, AS3]
  • Puffle digging [AS3] Puffle Digging is AS3 exclusive feature, AS2 client doesn't support it
  • Rainbow puffle quest [AS3] Rainbow puffle is AS2 only, AS2 client doesn't support it
  • Gold puffle quest [AS3] Golden puffle is AS3 only,
  • Golden nuggets [AS3] * AS2 client doesn't support it*
  • Igloo [AS2, AS3]
  • Player actions [AS2, AS3]
  • Player interactions [AS2, AS3]
  • Player movements [AS2, AS3]
  • Player informatics [AS2, AS3]
  • Sound Studio (Music) [AS3] Sound studio is an AS3 exclusive feature, AS2 client doesn't support it
  • Friends [AS2, AS3]
  • Games (Single Player) [AS2, AS3]
  • Find Four (Multiplayer-Table) [AS3]
  • Mancala (Multiplayer-Table) [AS3]
  • TreasureHunt (Multiplayer-Table) [AS2, AS3]
  • Sled Racing (Multiplayer-Waddle) [AS3] todo as2
  • Card Jitsu (Multiplayer-Waddle) [AS3] todo as2
  • Card Jitsu v/s Sensei (Single Player) [AS3] todo as2
  • Card Jitsu Fire (Multiplayer-Waddle) [AS3] todo as2
  • Card Jitsu Fire v/s Sensei [AS3] todo as2
  • Card Jitsu Water (Multiplayer-Waddle) [AS3] todo as2

Support

If you have any issue, found any bug or error or issue, or want to suggest some improvemnt, you are free to open an issue or request a pull request.