Skip to content
This repository has been archived by the owner on Feb 3, 2024. It is now read-only.

PlatinumTeam/MarbleBlast-Prod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MarbleBlast-Prod

Production PHP scripts used for the Marble Blast Platinum / Platinum Quest backend. Presented in (mostly) unabridged form here, for reference purposes.

Structure

  • leader/ Marble Blast Platinum Online (legacy) scripts, at least the ones still in use in 2021. (~2012-2017)
  • leader/admin Marble Blast Platinum Online Administration website, including all the various legacy admin tools that generally don't work anymore. (~2012-2021)
  • leader/MP_Master Marble Blast Multiplayer Master Server source, this just juggles game servers into the database. (~2012-2021)
  • pq/demo PlatinumQuest Demo statistics tracking scripts. (~2017)
  • pq/leader/admin PlatinumQuest Online admin scripts, only one was ever created because I got too good at using CLI through PhpStorm. (~2017-2021)
  • pq/api PlatinumQuest Online public API, interfaced with by the game via stats.cs. (~2017-2021)
  • pq/cli PlatinumQuest Online CLI scripts used via aforementioned PhpStorm. These are mostly single-shot and will never work or need to be run again. (~2017-2021)
  • pq/web PlatinumQuest Online Administrator tools, namely the Ratings Editor. (~2017-2021)
  • pq/ratings PlatinumQuest Online Ratings Viewer webpage (publicly accessible). (~2017-2021)
  • pq/stats PlatinumQuest Online statistics and Leaderboards webpages (publicly accessible). (~2017-2021)
  • schema.sql MySQL schema dump from Feb 2021.

History

Most of the scripts in leader/ were written between 2012 and 2014, leading up to the release of Marble Blast Platinum 1.50 and its new Leaderboards system on marbleblast.com. I was 15 years old at the time, and the code quality should make that pretty clear. Half or more of those scripts are no longer available online, due to their features being removed (challenges, super challenges, old chat systems, etc). I may publish them some day, but it's unlikely.

Webchat is included here, in leader/socketserver.php and related files, exactly as how it was on the live site. For posterity reasons, I'm leaving this old disclaimer here: It just seemed too fragile and terrible to ever release to the world, at least while it's still running. If Webchat ever goes down for good, let me know and I'll post the source here. As of Feb 2024, the website is officially toast, so I'm publishing it here :)

The pq/ scripts were written between 2016 and 2021, and are actually using json and php objects like someone knew what they were doing, at least somewhat. All of these are available online right now, though I'm not sure what changes, if any, have been made since 2021.

Running

These scripts were almost always Developed In Production and as such, were never intended to be used in any other environments. Due to this, they are incredibly strongly tied to the specific server running the entire marbleblast.com website, and will almost certainly never work in another environment (the closest I ever got was running a duplicate copy on my local machine, back in like 2013). Additionally, there's an entire installation of Joomla! that is not included here (for GPL reasons), without which the entire system will not work.

There's a MySQL schema dump in schema.sql with all of the relevant tables spread across 3 databases (prod_platinum, prod_pq, prod_joomla). I don't recommend looking too closely at it, your brain may never recover from seeing prod_platinum.friends.

Security

The codebase was written and has been mildly glanced over by someone who was Okay At PHP Security back in 2018. I actually found a couple bugs just doing that (the bugs have been patched out in this release, enjoy guessing where they were!), and there are likely more hiding in here somewhere. If you find any, I would request you inform RandomityGuy and not abuse them to pop the site, pretty please? Just submit a fake world record score using the API like normal (which is apparently not part of the security model LOL) and get your honorary banned title.

I attempted to scrub all of the tokens. If that ends up not being the case, feel free to post funny messages from the Bot account you should probably tell someone to revoke the keys :)

License

MIT License, in case you are crazy enough to want to use this anywhere near your code.

About

PHP scripts from marbleblast.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages