# Commands + Random facts ! Commands are entered inside habbo as if you were speaking! Don't enter them on the console. ! Commands are case-insensitive, arguments are not. ! Arguments are split by a comma. To insert a comma, escape it with a backslash \, ! Actually, everything special can be escaped with a backslash. Except for the backslash itself. To get a backslash use :terminal, read along for more information. ! The commands are filtered out client side, so make sure you whisper them at all times. Preferably to an object or into void, so no-one will see it. ! Whispering to yourself causes the command to be executed twice. ! Commands only work for you, if others try to run a command while you run the app, it won't work, and thus it won't be filtered out. ! If a command doesn't exist it will also not be filtered out, an error message will appear. ! One line smileys like :-) are no commands, that's because commands are always bigger than 3 characters. ! For more random facts, push your luck and try out some stuff. Once you're inside the program you'll notice there's no fancy interface like all other applications have. That's because I chose to be original and extend the commands you type in habbo. Such as :chooser for HC users. It took some time to code all of it and to make sure you can do anything you could do with a normal, in VB6 written, scripting application. If you ask me, my ways give you a lot more control of your code than when you have to enter your text in a txtbox control. A few problems I had to tackle while coding commands: - Make sure you can avoid the bobba filter; - Allow the usage of characters habbo doesn't support; - A way to enter unlimited length of data. I'll give some quick explanations about the solutions I came up with. To avoid the bobba filter (client side) and make sure you could pass characters other than habbo allowed, I came up with a Hexadecimal based solution. Habbo doesn't filter out Hexadecimal values, so I kind of exploited this. (not as in taking down or hacking something.) A simple testing command is ':notice'. You pass it a parameter and a message should popup with your text on it. Like this: :notice Hello World! Note that the message is client side but is fun for testing purposes. But what if you wanted to show 'fuck'? :notice fuck would be filtered. So you pick some characters, like the 'f' and the 'u', and get their Hex value. 66 and 75. Enclose a value with pointy brackets like these <>. So it would become :notice <66><75>ck And voila it works. Note that others will still see you say ':notice <66><75>ck'. If you want a multiline notice, you use the carriage return to make a new line. Which's Hex value is D, or 0D. So if you type: :notice Hello<0D>World! You'll get a multiline message, AWSUM!!!!!111!!~!1 Now moving on to the part, you'll learn about longer texts. Say you want to pass a huge string to the :notice command for display. Here you use variables, which you can use for storing text. Variables are controlled by the following commands: :set_var , :rem_var :app_var , :get_vars An id must always be a digit ranging from 0 till 30. (To save memory resources.) It works like this: :set_var 0, Hello To access this var 0 you type :notice var_0 and you'll get a message saying 'Hello'. Now we append [space]World to it. :app_var 0, <20>World! :notice var_0 Great, it works! That's how you make BIG texts. Just remember that variables only work in commands. You can't just say 'var_0', it'll show up like 'var_0'. And now for the final solution to all of your problems. The special :terminal argument. If you enter :notice :terminal The console (MSDOS Box) will prompt you for a hexadecimal input seperated by spaces. You can enter an unlimited length of characters. Keep in mind that while the terminal waits for your input, habbo is frozen. No data will be sent from client to server and vice versa. It looks somewhat like a mass task. But don't worry, there's a command for that. So, convert your text to hex before you type the :terminal argument. It doesn't matter where you use it, as long as it has got an argument of it's own. :set_var 0, :terminal works fine, but :set_var :terminal, :terminal works fine too. The :terminal argument is case-insensitive aswell. For a list of all commands, check later documentation.