Watch Tutorial
Game Rules - Free For All
Victory Condition
Player with the highest XP at the end of the match wins.
Gaining XP
Earn experience points by:
- Collecting items scattered around the map
- Defeating other players
- Killing monsters
Character Progression
- Gain 1 skill point per level up to level 20
- Spend points on: Speed, Attack, or Health
Gameplay Rules
- Only one power up can be equipped at a time
- Dash ability only works when near danger (enemies, players, bombs, etc.)
- Unlimited deaths with a respawn delay
- Fixed number of monsters and items spawn on the map
- Kill streaks enable overclocking to boost speed, damage, and enable health regeneration. Each kill prolongs the overclocking.
Game API
Every game tick, Botomy sends your code the current game state (level data). Your code processes this data and returns an array of actions. The game then executes these actions in sequence. Whether you use the in-game editor or an external server, the data format remains the same.
Level Data Format
{
"own_player": {
"position": { "x": 100, "y": 200 },
"health": 100,
... // Other player attributes
},
"enemies": [
{
"id": "Enemy1",
"position": { "x": 400, "y": 300 },
"health": 80,
"type": "ghoul",
... // Other enemy attributes
}
],
"items": [
{
"id": "Coin1",
"position": { "x": 250, "y": 150 },
"type": "coin",
... // Other item attributes
}
],
... // Other game data
}
Actions Format
// Return an array of actions
[
// Movement
{ "move_to": { "x": 400, "y": 300 } },
// Combat
"attack", // Attack nearest enemy
"shield", // Activate shield
... // Other actions
]
In-game JavaScript Editor
Perfect for quick iterations and learning. Write and test your code directly in the game.
Getting Started
// 1. Launch the game
// 2. Press "Script Mode"
// 3. Write your code
// 4. Test and battle!
export default function play(levelData) {
const moves = [];
const { own_player, enemies, items } = levelData;
// Collect nearby coins first
const coin = items.find(item => item.type === "coin");
if (coin) {
moves.push({
move_to: {
x: coin.position.x,
y: coin.position.y
}
});
}
// Use shield if low health
if (own_player.health < 30) {
moves.push("shield");
}
return moves;
}
External API Server
Create a local API server for advanced strategies. Use your favorite editor and tech stack.
Quick Setup (Node.js)
# Get started with our template
git clone https://github.com/botomy/botomy-node-starter
cd botomy-node-starter
npm install
npm start
# Connect in game
1. Press "API Mode"
2. Ensure server runs on port 3000
3. Press "Run"
{
"own_player": {
"position": { "x": 100, "y": 200 },
"health": 100,
... // Other player attributes
},
"enemies": [
{
"id": "Ghoul1",
"position": { "x": 400, "y": 300 },
"health": 80,
... // Other enemy attributes
}
],
... // Other game data
}
[
{"move_to": {"x": 400, "y": 300}},
"attack",
"shield"
]
Available Moves
Basic Moves
Move

{
"move_to":
{ "x": 400, "y": 0 }
}
Move to a specific position
Attack

"attack"
Attack nearest enemy
Shield

"shield"
Activate protective shield
Items
Big Potion

{"use":"big_potion"}
Use a big potion to restore health
Ring

{"use":"ring"}
Use a ring to become cloaked for a short time
Speed Zapper

{"use":"speed_zapper"}
Use a speed zapper to slow down enemies
Special Powerups
Bomb

"special"
When equipped, you can drop bombs
Shockwave

"special"
When equipped, you push enemies away from you
Freeze

"special"
When equipped, you can fire an icicle to freeze enemies
Combine Moves
Shield + Attack

["attack", "shield"]
Use shield and attack together
Dash + Move

[
"dash",
{ "move_to":
{ "x": 400, "y": 0 }
}
]
Combine dash with move to quickly reach a position. Dash only works if you're close to an enemy.
See the complete list of moves and their detailed explanations in our moves documentation.