[REL/DEV] Havana - A Habbo Hotel server for v31+ [Java]

Quackster

a devbest user says what
Aug 22, 2010
1,763
1,234


Information

Originally started as a fork from , this is a server created in Java designed to revive Habbo Hotel v31 from the 2009 era and its inception was in early 2018 as a side project. Havana is the most complete v31+ server to date, this was undertaken by various reverse engineering efforts of the Shockwave client throughout the years to achieve this.

Havana has been an independent project, almost entirely developed by for 4 years straight. This project means a lot to me, and was always going to be released as open-source work. I am a firm believer in open-source and free software for everybody.

Want to see this project live? See where we have been running the hotel for 4+ years straight on Havana.

Sulake used the Adobe/Macromedia Shockwave as its multimedia platform for their game (Habbo Hotel) from 2001-2009. In the last year, Habbo made the move to the Adobe Flash client, and then in 2020 made the switch to the Unity engine, while still maintaining their flash client.

Nowadays, the Shockwave client cannot be played in modern browsers as they have removed NPAPI support due to deprecation, end of life support and therefore must be played on forks of browsers that still have the NPAPI enabled.

The reason why Shockwave emulators exist is for multiple reasons, the first is that Habbo uses a virtual currency called credits which is spent using real money and makes it a pay to win game, our own faithful recreation of Habbo can make credits free for everybody. The second is the fact that modern Habbo still lacks features that were once available to the users that played during the Shockwave-era - and is thus, to be intended to be used for educational purposes only as a preservation effort for an old game.

Download

Source code is available at GitHub .

Download the latest development build from the .

Requirements

To be honest, this server doesn't require much. I'd argue that the MariaDB server is more resource demanding than the emulator itself.

  • JDK >= 11
  • MariaDB server
  • libsodium support (this project uses )

Features

Server

  • Handshake
    • Login via SSO ticket
    • Login via username/password
  • Games
    • Battleball
    • Snowstorm
    • Wobble Squabble
    • Tic Tac Toe (available in Cunningfox Gamehall)
    • Battle Ships (available in Cunningfox Gamehall)
    • Chess (available in Cunningfox Gamehall)
  • Catalogue
    • Main/sub category page support
    • Catalogue pages
    • Catalogue items
    • Purchasing from catalogues
    • Effect previews
    • Pixel rental previews
    • Automatic rotation of collectibles
    • Redemption of vouchers
  • Effects
    • Purchasing effects
    • Effect expiry
    • Configurable effect duration
  • Navigator
    • Recommended rooms
    • List public rooms
    • Room categories
    • Favourite rooms
    • Room search (including filtering with owner:)
  • Rooms
    • Create private rooms
    • Edit private room settings
    • Enter private rooms
    • Private room doorbell
    • Private room ratings (default expiry over 30 days)
    • Enter public rooms
      • Public room furniture
      • Pool ladders (swimming)
      • Pool diving deck (diving)
      • Public room bots (your classics such as Piers the Habbo Kitchen chef!)
      • All Infobus support
    • Show tags on user
  • Items
    • Inventory
    • Item purchasing
    • Sit on chairs
    • Lay on beds
    • Trophies
    • Coin redeeming
    • Dice rolling
    • Wheel of fortune
    • Love randomizer
    • Scoreboard
    • Totem head/leg/planet interaction to gain special totem effects
    • Vending machine interaction
    • Teleporters
    • American idol voting system
    • Rollers
    • Gates
    • One-way gates
    • Photos
    • Song disks
    • Presents
    • Room dimmers
  • Trax Machine
    • Create music
    • Save music
    • Delete music
    • Burn disk
  • Jukebox
    • Play disks
    • Queue multiple disks
  • Camera
    • Take photos
    • Load photos
  • Messenger
    • Status update
    • Send friend request
    • Accept friend request
    • Send instant message
    • Offline messaging
    • Follow friend
    • Invite friends
  • Trading
    • All safe trading features enabled
  • Events
    • Users can host events, is integrated into website
  • Groups
    • Display user favourited group when in-game
  • Achievements
    • American Idol voting
    • Time online
    • Change looks
    • Game played (BattleBall and SnowStorm)
    • Habbo Club membership
    • Happy Hour
    • Consecutive logins
    • Friend referrals
    • Motto
    • Account age
    • Respect earnt
    • Respect given
    • Room entries to private rooms that aren't yours
    • Completing the tutorial
    • Adding tags
    • Trade pass
    • Guides
      Habbo Club
    • Monthly gifts
    • First gift club sofa
    • Exclusive Habbo Club items
    • Exclusive Habbo Club rooms
    • Habbo club clothing options enabled
  • Ecotron
    • Recycle items
    • Ecotron rewards visible in catalogue
    • Ecotron rewards after recycling items
  • Guides
    • Complete tutorial
    • After tutorial, search for guide
    • Guide must be part of the guide group to join
    • Guide badge progression

Website

  • Login
  • Register
  • Community
  • Groups
  • Group discussions
  • User referrals
  • Homes
  • Home customisation
  • Housekeeping
    • News
    • Users
    • Room entry badges
    • Infobus management
    • Ban management

(There's a good chance I missed a lot, the CMS itself is very complete)

Screenshots

webr0nt.png


fk73asU.png


aC5N07j.png


wUff1l6.png


Installation

Install MariaDB server, connect to the database server and import havana.sql (located in /tools/havana.sql).

Download the latest development build from the and rename the files to remove the short build hash version, for convenience.

Install any JDK version that is equal or above >= 11 to run the jar files.

Run both Havana-Server.jar and Havana-Web.jar at least once to generate the necessary configuration files, configure the MySQL attributes to connect to the MariaDB server.

Download the file, and then extract it to /tools/www/ this directory is located where you ran Havana-Web.jar.

(This is the default directory for static content within the Havana-Web project, but the directory where it looks for static images can be configured in the Housekeeping settings).

Open Havana-Web.jar via
Code:
java -jar Havana-Web.jar

Open Havana-Server.jar via
Code:
java -jar Havana-Server.jar

Your server should be up and running and accessible via

I highly recommend to be able to play Adobe Shockwave movies in the present day.

❗ Once registered as an admin, I high recommend running against your database, it will create the Habbo Guides, SnowStorm, BattleBall, Wobble Squabble and Lido Diving gaming groups for the website.

And then make yourself admin by setting your rank to 7 in the users table.

Important for Linux users

Install the font manager, to enable the captcha to work on the website.

Code:
apt-get install font-manager
License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 

Jorian10

New Member
Jan 30, 2022
6
2
Looks great, but for non-dev noob (like myself), this is damn hard to set up. Im giving up after about 20 attempts.
1. Download the latest version of XAMPP
2. Open the XAMPP Control Panel
3. Turn on Apache and MySQL (Mariadb)
4. Go to localhost/phpmyadmin
5. Make a database called Havana or whatever else you like
6. Go to and download the whole thing as a zip file
7. Go to and download the game and web servers there
8. Extract them both to a folder you can remember
9. Open the archive you downloaded in step 6. Extract the "tools" folder there to the folder from step 8
10. In that tools folder, make a new empty folder called "www"
11. Download this
12. Extract everything from step 11 to that empty www folder you created in step 10
12b. Copy figuredata.xml from tools to your Havana folder, else the server will complain later
13. Go to localhost/phpmyadmin and open your Havana database.
14. Import the Havana.sql that is in the tools folder
15. Import the groups.sql that is in the tools folder
16. Go to your XAMPP control panel and turn off the Apache web server. Don't turn off your SQL server
17. Open a command prompt on Windows (cmd)
18. Navigate to your Havana folder
19. Type "java - jar web.jar" (Assuming web.jar is the name of the Havana-web-blabla.jar thing)
20. Open another command prompt and navigate to your Havana folder again
21. Type "java -jar server.jar" (Assuming server.jar is the name of the Havana-Server-blabla.jar thing)
22. Both files will generate settings files for you to edit
23. Edit those files according to your database settings
24. Edit the bindings if you want other people on your server
25. Turn on the web and game servers again via cmd, it should work now.

If you want other users on your server, you should edit some entries in the "settings" table in your database. Since we don't have phpmyadmin anymore (XAMPP's web server is turned off!), i recommend the free program HeidiSQL (Google it) to do that. Also, a lot of stuff in dcr/v31/external_variables.txt is set to "localhost". This also needs to be edited if you want other users to be able to join you. You can also use HeidiSQL to give yourself admin rank. You can do this by changing the rank of your user to 7 in the users table.

@deemster
 

mrGregersen

New Member
Sep 21, 2022
2
0
I even tried doing the above guide - that got me alot further, BUT, the site crashes. I can't register for instance, and it doesn't load any of the pictures at all. plain text site.
Unsure if im just a moron or what the duck.
 

Cryptictoes

New Member
Sep 30, 2022
2
0
1. Download the latest version of XAMPP
2. Open the XAMPP Control Panel
3. Turn on Apache and MySQL (Mariadb)
4. Go to localhost/phpmyadmin
5. Make a database called Havana or whatever else you like
6. Go to and download the whole thing as a zip file
7. Go to and download the game and web servers there
8. Extract them both to a folder you can remember
9. Open the archive you downloaded in step 6. Extract the "tools" folder there to the folder from step 8
10. In that tools folder, make a new empty folder called "www"
11. Download this
12. Extract everything from step 11 to that empty www folder you created in step 10
12b. Copy figuredata.xml from tools to your Havana folder, else the server will complain later
13. Go to localhost/phpmyadmin and open your Havana database.
14. Import the Havana.sql that is in the tools folder
15. Import the groups.sql that is in the tools folder
16. Go to your XAMPP control panel and turn off the Apache web server. Don't turn off your SQL server
17. Open a command prompt on Windows (cmd)
18. Navigate to your Havana folder
19. Type "java - jar web.jar" (Assuming web.jar is the name of the Havana-web-blabla.jar thing)
20. Open another command prompt and navigate to your Havana folder again
21. Type "java -jar server.jar" (Assuming server.jar is the name of the Havana-Server-blabla.jar thing)
22. Both files will generate settings files for you to edit
23. Edit those files according to your database settings
24. Edit the bindings if you want other people on your server
25. Turn on the web and game servers again via cmd, it should work now.

If you want other users on your server, you should edit some entries in the "settings" table in your database. Since we don't have phpmyadmin anymore (XAMPP's web server is turned off!), i recommend the free program HeidiSQL (Google it) to do that. Also, a lot of stuff in dcr/v31/external_variables.txt is set to "localhost". This also needs to be edited if you want other users to be able to join you. You can also use HeidiSQL to give yourself admin rank. You can do this by changing the rank of your user to 7 in the users table.

@deemster
How would I install this to my online retro I'm such a noob lol
 

Antonio285

New Member
Nov 5, 2021
6
0
1. Download the latest version of XAMPP
2. Open the XAMPP Control Panel
3. Turn on Apache and MySQL (Mariadb)
4. Go to localhost/phpmyadmin
5. Make a database called Havana or whatever else you like
6. Go to and download the whole thing as a zip file
7. Go to and download the game and web servers there
8. Extract them both to a folder you can remember
9. Open the archive you downloaded in step 6. Extract the "tools" folder there to the folder from step 8
10. In that tools folder, make a new empty folder called "www"
11. Download this
12. Extract everything from step 11 to that empty www folder you created in step 10
12b. Copy figuredata.xml from tools to your Havana folder, else the server will complain later
13. Go to localhost/phpmyadmin and open your Havana database.
14. Import the Havana.sql that is in the tools folder
15. Import the groups.sql that is in the tools folder
16. Go to your XAMPP control panel and turn off the Apache web server. Don't turn off your SQL server
17. Open a command prompt on Windows (cmd)
18. Navigate to your Havana folder
19. Type "java - jar web.jar" (Assuming web.jar is the name of the Havana-web-blabla.jar thing)
20. Open another command prompt and navigate to your Havana folder again
21. Type "java -jar server.jar" (Assuming server.jar is the name of the Havana-Server-blabla.jar thing)
22. Both files will generate settings files for you to edit
23. Edit those files according to your database settings
24. Edit the bindings if you want other people on your server
25. Turn on the web and game servers again via cmd, it should work now.

If you want other users on your server, you should edit some entries in the "settings" table in your database. Since we don't have phpmyadmin anymore (XAMPP's web server is turned off!), i recommend the free program HeidiSQL (Google it) to do that. Also, a lot of stuff in dcr/v31/external_variables.txt is set to "localhost". This also needs to be edited if you want other users to be able to join you. You can also use HeidiSQL to give yourself admin rank. You can do this by changing the rank of your user to 7 in the users table.

@deemster
Hi,

First of all, I would like to thank you for the noob tutorial (I'm a bit of a noob).

I have followed the steps as you have put them, and I have completed it as you have put it, but when it comes to step 1, it gives me the following error. (If I run the .bat file it gives me another error like everything is wrong)

Could you help me to solve it? An old-school server I would love

Thanks and sorry my bad english.

Toni

UPDATE: When I run .bat show me the image error.
You must be registered for see images attach
 

Attachments

  • D9D4C384-15A8-40DE-A5D8-1138916820EE.jpeg
    D9D4C384-15A8-40DE-A5D8-1138916820EE.jpeg
    92.1 KB · Views: 14
Last edited:

olliedean

ollie.cool
Jan 28, 2013
433
107
Hi,

First of all, I would like to thank you for the noob tutorial (I'm a bit of a noob).

I have followed the steps as you have put them, and I have completed it as you have put it, but when it comes to step 1, it gives me the following error. (If I run the .bat file it gives me another error like everything is wrong)

Could you help me to solve it? An old-school server I would love

Thanks and sorry my bad english.

Toni

UPDATE: When I run .bat show me the image error.
You must be registered for see images attach
downgrade to jdk 11
 

Roper

Ancient Member
Jul 4, 2010
569
216
Can I just say thank you for creating and sharing Havana. This version of Habbo was definitely my most favourite. I have archived this just incase it's ever lost in the future.
 

Users who are viewing this thread

Top