Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

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

Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
alAG9uW - [REL/DEV] Havana - A Habbo Hotel server for v31+ [Java] - RaGEZONE Forums


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 Classic Habbo 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 >= 17
  • MariaDB server
  • At minimum 4 GB of RAM (to be safe)

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 - [REL/DEV] Havana - A Habbo Hotel server for v31+ [Java] - RaGEZONE Forums


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


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


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


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 >= 17 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 this browser 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 8 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

Figure/Group Imaging Installation

Follow the install steps for Minerva:



In your 'settings' table for Havana, set "site.imaging.path" to whatever Minerva is listening on:

Code:
http://localhost:5000

Fixing in-client group badges

In external_texts.txt (yes, external texts) make sure that group_logo_url_template is set to the following

Code:
group_logo_url_template=%site_url%/habbo-imaging/badge-fill/%imagerdata%.gif

Where %site_url% you should replace with your actual website url.

Now throughout your website and client, all images should work correctly.

-

Now you're successfully hosting an imaging service that is completely independent of Habbo!

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.
 

Attachments

You must be registered for see attachments list
Last edited:
Joined
Jun 14, 2007
Messages
42
Reaction score
13
You are a legend for sharing this, Quackster! In my opinion the most important project to came out of this community in years. Can't wait to try it out later today.

Oldschool is back with a vengeance :8:
 
Experienced Elementalist
Joined
Feb 21, 2012
Messages
284
Reaction score
25
This so awesome, thank you for such release. Btw, I have a question, is it possible to run the jar files in a separate machine? Web(server1), Jar files(server2)?
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
This so awesome, thank you for such release. Btw, I have a question, is it possible to run the jar files in a separate machine? Web(server1), Jar files(server2)?

Yes it's definitely possible, but please setup a firewall rule so that the rcon port only accepts connections from the server that the website is hosted.
 
Banned
Banned
Joined
Aug 10, 2010
Messages
159
Reaction score
33
Thank you very much, a great old school release.
But, Do you have any guide on how to install the files?
I tried here but no success on how to use this mariadb
 
Joined
Jun 14, 2007
Messages
42
Reaction score
13
Played and enjoyed it for hours today. It was easy to set up following the instructions above.

There are a few things that don't work perfect here (on my end) yet:

1. Most room ads link to external sites and the urls needed to be manually changed in the database. This was no problem since most actually come with Havana. All except for three. The first three billboards are not included in any way, and link to some dead links on alex-dev.org, so those have to be disabled for the time being.

2. I haven't been able to make the ingame "Change clothes" button link to anywhere other than classichabbo.com, despite replacing lots of entries in external_variables.

3. I haven't been able to make group badges work yet. It tries to fetch them from images.classichabbo.com when you click on your character ingame when a group badge is favorited.

4. The Kitchen furniture line does not seem to work in the catalogue, nothing happens when you click on it. It does not even seem to try to load anything.

5. In general a lot still seems to be "hardcoded" to classichabbo.com stuff. Another example is that when you view user home pages, it does not use the images Havana actually ships with, but uses classichabbo.com's CDN. The user avatar on the CMS is another example of this.

6. The Theatredome public room does not work.
 
Initiate Mage
Joined
Oct 17, 2021
Messages
48
Reaction score
7
quackster you are a legend I really appreciate you uploading this this is one of the best versions of habbo I hope to continue seeing more of your stuff you are the best



how can i install it with xampp?
or what version of xampp do I need, could someone do a tutorial?
 
Experienced Elementalist
Joined
May 30, 2013
Messages
288
Reaction score
242
Great stuff @Quackster. Best release to date, in all of MMO history. Next year will be the year of oldskool resurgence, world scale!

- - - Updated - - -

is it possible to run the jar files in a separate machine? Web(server1), Jar files(server2)?

Use containers instead. No need to waste money unnecessarily.

- - - Updated - - -

There are a few things that don't work perfect here (on my end) yet:

1. ...
...
Please create bug reports upstream for people to work on those issues.

- - - Updated - - -

how can i install it with xampp?
or what version of xampp do I need, could someone do a tutorial?
There is no need for. It runs as a seperate app.

At most you might want to run Apache or NGINX in front of Havana-Web as reverse proxy for privilege separation.
 
Last edited:
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
In future I'm going to reimplement the joystick and therefore recode the game system for Havana.

Some updates

- Fixed the dead URL links for the room ads
- Added Snowstorm to be enabled by default
- Removed the Kitchen 2010 customs (Kitchen page now loads correctly)
- Removed the hardcoded links to the Habbo URL imaging paths in the template files
- Using original Theatredrome CCT to enable it to load

Updated havana_www.zip with /c_images/billboards/ folder and also added hh_room_theater_carneval.cct



Most of it has been database changes.

Download:

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


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


Played and enjoyed it for hours today. It was easy to set up following the instructions above.

There are a few things that don't work perfect here (on my end) yet:

1. Most room ads link to external sites and the urls needed to be manually changed in the database. This was no problem since most actually come with Havana. All except for three. The first three billboards are not included in any way, and link to some dead links on alex-dev.org, so those have to be disabled for the time being.

2. I haven't been able to make the ingame "Change clothes" button link to anywhere other than classichabbo.com, despite replacing lots of entries in external_variables.

3. I haven't been able to make group badges work yet. It tries to fetch them from images.classichabbo.com when you click on your character ingame when a group badge is favorited.

4. The Kitchen furniture line does not seem to work in the catalogue, nothing happens when you click on it. It does not even seem to try to load anything.

5. In general a lot still seems to be "hardcoded" to classichabbo.com stuff. Another example is that when you view user home pages, it does not use the images Havana actually ships with, but uses classichabbo.com's CDN. The user avatar on the CMS is another example of this.

6. The Theatredome public room does not work.

The links for the badge rendering are in the external_texts.txt file.

Group badge rendering "isn't working" because it points to localhost, so host habbo-imaging on a different server and edit the imaging path URL and static content images URL in the "settings" table. I should note this literally isn't my problem, you just haven't set it up correctly, ideally you should host havana_www.zip on a separate server running PHP.

I urge you to peek at /habbo-imaging/ and also and also the PHP script for group badge rendering.
 

Attachments

You must be registered for see attachments list
Joined
Jun 14, 2007
Messages
42
Reaction score
13
Great you fixed those issues so fast, Quackster. Of course my settings database entries are not still set on localhost, but perhaps i need to inspect the files a little more to get group badges working.

Avatara looks hella useful. Now i also understand why avatarimage.php is like that. Will be using it for sure!

Furthermore, to Hoshiko: Do you mean basically opening an "issue" on the Havana github? Because i have found some more things, but i don't want to keep littering this release thread.
 
Initiate Mage
Joined
Oct 17, 2021
Messages
48
Reaction score
7
I have no idea how to install it xD I have never used mariadb,Could you please make a tutorial on how to install the hotel with all the steps please? a simple video showing the steps
 
Joined
Jun 14, 2007
Messages
42
Reaction score
13
I have no idea how to install it xD I have never used mariadb,Could you please make a tutorial on how to install the hotel with all the steps please? a simple video showing the steps
The way i did it:
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.


I hope this can be of use to you or anyone else that can't get this to work. Keep in mind these are basically the original instructions from the OP, made very newb-friendly :wink:
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
The way i did it:
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.


I hope this can be of use to you or anyone else that can't get this to work. Keep in mind these are basically the original instructions from the OP, made very newb-friendly :wink:

Technically you can still use XAMPP by making the Havana-Web server listen on a port other than 80 such as 81 and then create an Apache vHost entry that is proxied through to it, it would also allow you to serve the habbo-imaging PHP files.

I do this for classichabbo.com, because fun fact, h4bbo.net is hosted off the same server.

Code:
<VirtualHost *:80>
 ProxyPreserveHost On
 ServerName classichabbo.com
 ProxyPass / http://127.0.0.1:81/
 ProxyPassReverse / http://127.0.0.1:81/

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
 
Joined
Jun 14, 2007
Messages
42
Reaction score
13
The links for the badge rendering are in the external_texts.txt file.
Man i have read this MANY times today, but only now i realize it says external TEXTS instead of variables, lol. My brain automatically changed it in my mind or something. After hosting the php/imaging stuff seperately, it now actually renders the group badges. The only problem is they are totally black, hmm. Somehow it doesn't colorize them. Now trying to debug the included badge script. I am running the latest XAMPP out of the box, with the GD extension enabled.

In the meantime, it does work fine using an ancient version of XAMPP. Looks like some deprecation thing in that badge script? But that's just an assumption.

That external_texts file really turned out to be the key to a lot of issues i was having. In my noobness i never suspected that file to contain anything other than texts for use in the client. Adjusting that file fixes a lot of issues i was complaining about earlier today. Group badges work, clicking on stuff in the client correctly links to the CMS (Like the "Change clothes" button).
 
Last edited:
Banned
Banned
Joined
Aug 10, 2010
Messages
159
Reaction score
33
I get the following error when trying to run the command 'java -jar Havana-Web.jar'
I have the latest version of java

 
Joined
Jun 14, 2007
Messages
42
Reaction score
13
I get the following error when trying to run the command 'java -jar Havana-Web.jar'
I have the latest version of java

Your Java literally tells you that it is older than the JDK that the Havana webserver has been compiled with.
This could mean one of two things:

1. You only have an older version of the JDK
2. You have both an older version of the JDK and a newer version, but your windows environment variables* are linked to the older version.

* This is what lets Windows know where to look when you use the command "java" in this case.

If situation 2 is the case, you can do it the elegant way and modify the path to Java in your Java windows environment variable. You can easily google how to do this. You can also do it the quick and dirty way for now, and instead of using the command "java -jar Havana-Web.jar", do something like "c:\Program Files\Java\javaversion\bin\Java -jar Havana-Web.jar". So instead of the command "Java" just directly point to bin/java.exe in your Java directory.
 
Last edited:
Initiate Mage
Joined
Oct 17, 2021
Messages
48
Reaction score
7
I have downloaded xampp 8.1.6 / PHP 8.1.6 because that is the latest version of xampp, and put the tools and www folder in many ways in the htdocs and it doesn't work :/ I have also put them in folders outside the htdocs and I still have the same problem that it doesn't access to the cms



I don't know what I'm doing wrong xD is not at all similar to installing plus, comet or arcturus x.x
 
Joined
Jun 14, 2007
Messages
42
Reaction score
13
I have downloaded xampp 8.1.6 / PHP 8.1.6 because that is the latest version of xampp, and put the tools and www folder in many ways in the htdocs and it doesn't work :/ I have also put them in folders outside the htdocs and I still have the same problem that it doesn't access to the cms



I don't know what I'm doing wrong xD is not at all similar to installing plus, comet or arcturus x.x
I suggest to keep it simple for yourself and let the Havana webserver serve all web files for you for now. You can worry about Apache (The web server included with XAMPP) later when you want to do the finishing touch on your server and get group badges (both ingame and in the CMS) and the Avatar System (In the CMS) working (Because those need PHP!) Quackster has provided instructions on how to combine both using Virtual Hosts, but that is pretty advanced stuff. So i urge you to stop thinking about the PHP stuff before you get the rest working.

Try to lay aside what you are used to for now, and follow the steps in that little tutorial i wrote on the previous page. I am sure you will get it working!
 
Last edited:
Banned
Banned
Joined
Aug 10, 2010
Messages
159
Reaction score
33
Your Java literally tells you that it is older than the JDK that the Havana webserver has been compiled with.
This could mean one of two things:

1. You only have an older version of the JDK
2. You have both an older version of the JDK and a newer version, but your windows environment variables* are linked to the older version.

* This is what lets Windows know where to look when you use the command "java" in this case.

If situation 2 is the case, you can do it the elegant way and modify the path to Java in your Java windows environment variable. You can easily google how to do this. You can also do it the quick and dirty way for now, and instead of using the command "java -jar Havana-Web.jar", do something like "c:\Program Files\Java\javaversion\bin\Java -jar Havana-Web.jar". So instead of the command "Java" just directly point to bin/java.exe in your Java directory.

Thanks, I saw that there really was more than one version of java on my computer, I uninstalled it and did a new installation and it was ok.
updated:
I managed to make it run but now when I enter localhost, the images just don't appear ;/

 
Last edited:
Back
Top