In progress This article can be expanded
Please help Robot Battle Wiki by editing it.

This article is for general Robot Battle FAQs.

I've never programmed before! What do I do?

Firstly, don't panic! Robot Battle is a really good way to start programming, so relax and learn.

One of the first things you should do is read the tutorial featured in the Robot Battle help documents. To find these, open Robot Battle, click Help, then Game Tutorial. This tutorial is very helpful, and should get the ball rolling with your own robots.

Next, register on the Robot Battle forum, called the Registry. On there you will find many experienced players who are very willing to help you.

Ask for help - if you don't understand something, go to the registry and ask!

Lastly - try things! Once you have a basic working robot, try things - add stuff to it. If you are happy with it, then build another, slightly different one and make them fight in Robot Battle! The more you do it; the easier it gets!

Have fun!

Why isn't my robot working?

Broadly speaking, your robot isn't working for one of two reasons: either the design is not correctly implemented, or it is correctly implemented but that design isn't behaving as expected. Incorrect implementation is by far the more common reason.

To solve this, try breaking down the overall function into simpler and simpler pieces, and implement and test them individually. If a piece is so simple that it can't be broken down any further, read the documentation very carefully to try to understand why the command is not behaving as expected.

If you still can't figure out why it's not working, you can always ask on the Registry. The more specific you can be, the more likely you'll get a helpful answer. Try to provide a simplified test case that demonstrates the unexpected behavior.

Why does my bot gets stuck on walls?

When your bot gets stuck on a wall, call the inspector window (Ctrl+I), and examine the system variable _cldwall, if the variable is set to 0 (false) then, probably, the problem is that clipmoves is set to true (note that clipmoves is set to true by default). Clipmoves limits the distance a robot attempts to move during calls to the ahead and back commands. In a straight line, it will never collide with a wall since the distance is automatically "clipped" to prevent wall collisions. To put your routine, that handles the wall collisions, to work change the clipmoves to:

clipmoves (_false)

but it's better to put the clipmoves to true because you don't need to worry with the walls and because each time you hit the wall your bot loses 1 of energy. (Note that for some complex movements you need to use the clipmoves set to false).

If the variable is set to 1 (true) then, probably, the problem is with your routine(s) that handle(s) the wall collisions.

What are the best editors for making Robots?

This is really a matter of preference. Some may find that using a simple text editor is sufficient, but others find that highlighted syntax is very helpful and so they may use something a little more advanced. Many of the players on the Registry have expressed their preferences for various reasons, and so, here are a few that have popped up in discussions. The second link for these entries are the syntax files for RSL.

Edit Plus Home Page Syntax
Crimson Editor Home Page Syntax
UltraEdit32 Home Page Syntax
NoteTab Pro Home Page Syntax (Note: This file has not been tested with the current version.)
SciTE Home Page No known syntax file, but has custom syntax highlighting available.
Ardus Home Page An editor designed for Robot Battle. Includes built in Keyword help.
ConTEXT Home Page Syntax (You'll have to go to Tools -> Set Highlighter -> Customize Types to unassociate .prg files from the Foxpro highlighter.)
Notepad ++ Home Page Syntax
Vim Home Page Syntax

If you find that any of the links are broken and have the correct links, please, by all means fix it. Also, if you know of any other editors worth noting here, then add them.

What is Vanilla?

Vanilla is a proposed 2.0 version of Robot Battle. It is not based on the current codebase and is not developed by Lunkwill Labs. It was conceived between 1998 and 1999. Since 2002 it has been in "slow development"[1] by Silicon. To see the proposed features and to make suggestions yourself, visit the Vanilla Forum.

How do I use Sliding?

See Blocking_101#Sliding.

Is it possible to encrypt my bot?

Yes, but this feature was removed from the RB official release because the RB is open source, which makes it very easy to someone with the right knowledge to build a decoder. For the moment nobody knows of any decoder, and if someone programs a decoder it will be strongly disapproved by the community of players.

To encrypt your bot you can use the unofficial updated version by Mark Duller ( download ) of the original version. Or you can use a command-line scrambler. It's based on the original scrambling code re-written by Joseph Fowler (aka sorcerer), then re-written again by Jamie Kawabata.

To use, either type on a command prompt: scramb [file1.prg] [file2.prg] ... (without the square brackets) or simply drag the file you want to scramble onto the exe.

The Duller's scrambler have the option to keep (encrypt) your comments and an option to add a message to the encrypted file. Technically the Fowler-Kawabata's scrambler is slightly better because it will allow you to scramble "non-regular" characters.

The encrypted bot uses the extension DST.

I've found a bug, what do I do?

First, make sure that what you have is really a bug. Double check that there is not an error in your code or that your expectations of what should be happing are correct. If necessary, ask at the registry.

If you are sure you have a bug you can post it on The Robot Battle Bugs Database. You have to sign up for an account to use the database.

I have a feature suggestion, what do I do?

First, post your suggestion in the suggestions Forum on the registry. Once there is pretty good consensus on the feature, you can add it to the Bugs Database.

Please note that the final say on if a feature makes it in to Robot Battle is down to Brad Shick.

What is a Concept Robot?

A concept robot is a robot that explores an unusual or new concept, design or strategy. Normally Concept robots are not designed to compete but demonstrate. However, this isn't always the case.

The term concept bot was "coined" by sorcerer in an attempt to describe his Drone bot. Other concept bots are the Target Locator by Sparr, the CukyMonster by ospector, the BistroMath by sorcerer, the Conjurer by Jamie, the Cleric by Silicon (Cleric is a spin on Jamie's Conjurer) and Mr.Fox's PingMap example. (PingMap was never publically released.)

What is a Dancing Robot?

A dancing robot is a non-combat robot designed to be visually appealing. To achieve some effects the players use load lists and make their own styles. In this robot type the synchronization is a concept very important, since the final visual orchestration depends on it. See the List of Dancing Robots for some examples.