openra-rl

Play Command & Conquer Red Alert RTS — build bases, train armies, and defeat AI opponents using 48 MCP tools.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "openra-rl" with this command: npx skills add yxc20089/openra-rl

OpenRA-RL: Play Command & Conquer Red Alert

You are an AI agent playing Command & Conquer: Red Alert, a classic real-time strategy (RTS) game. You control one faction (Allied or Soviet) and must build a base, gather resources, train an army, and destroy the enemy.

The game runs in a Docker container. You interact through MCP tools that let you observe the battlefield, issue orders, and advance game time.

Quick Start

1. Install

pip install openra-rl

2. Start the game server

openra-rl server start

This pulls the Docker image and starts the game server on port 8000. Verify with openra-rl server status.

3. Configure MCP

Add to your OpenClaw config (~/.openclaw/openclaw.json):

{
  "mcpServers": {
    "openra-rl": {
      "command": "openra-rl",
      "args": ["mcp-server"]
    }
  }
}

4. Play

Tell your agent: "Start a game of Red Alert and try to win."

The agent will use the MCP tools listed below to observe and command.


How the Game Works

  • Real-time: The game runs continuously at ~25 ticks/second. Call advance(ticks) to let time pass.
  • Fog of war: You can only see areas near your units/buildings. Scout to find the enemy.
  • Resources: Harvest ore to earn credits. Credits buy buildings and units.
  • Power: Buildings need power. Build Power Plants (powr) to stay powered. Low power slows production.
  • Tech tree: Advanced buildings require prerequisites (e.g., War Factory needs Ore Refinery).

MCP Tools Reference

Observation (read the battlefield)

ToolPurpose
get_game_stateFull snapshot: economy, units, buildings, enemies, production, military stats
get_economyCash, ore, power balance, harvester count
get_unitsYour units with position, health, type, stance, speed, attack range
get_buildingsYour buildings with production queues, power, can_produce list
get_enemiesVisible enemy units and buildings (fog-of-war limited)
get_productionCurrent build queue + what you can build right now
get_map_infoMap name, dimensions
get_exploration_status% explored, quadrant breakdown, whether enemy base found

Knowledge (learn the game)

ToolPurpose
lookup_unit(unit_type)Stats for a unit (e.g., lookup_unit("e1") → Rifle Infantry)
lookup_building(building_type)Stats for a building (e.g., lookup_building("weap") → War Factory)
lookup_tech_tree(faction)Full build order for "allied" or "soviet"
lookup_faction(faction)All units and buildings for a faction
get_faction_briefing()Comprehensive stats dump for YOUR faction
get_map_analysis()Resource patches, water, terrain, strategic notes
batch_lookup(queries)Multiple lookups in one call

Game Control

ToolPurpose
advance(ticks)Critical — advances the game by N ticks. Nothing happens without this. Use 25 ticks ≈ 1 second, 250 ticks ≈ 10 seconds.

Movement & Combat

ToolPurpose
move_units(unit_ids, target_x, target_y)Move units to a position
attack_move(unit_ids, target_x, target_y)Move and engage enemies along the way
attack_target(unit_ids, target_actor_id)Focus-fire a specific enemy
stop_units(unit_ids)Halt movement and attacks
guard_target(unit_ids, target_actor_id)Guard a unit or building
set_stance(unit_ids, stance)Set to "holdfire", "returnfire", "defend", or "attackanything"
harvest(unit_id, cell_x, cell_y)Send harvester to ore field

Production

ToolPurpose
build_unit(unit_type, count)Train units (e.g., build_unit("e1", 5) → 5 Rifle Infantry)
build_structure(building_type)Start constructing a building (needs manual placement)
build_and_place(building_type, cell_x, cell_y)Build + auto-place when done (preferred)
place_building(building_type, cell_x, cell_y)Place a completed building
cancel_production(item_type)Cancel queued production
get_valid_placements(building_type)Get valid locations to place a building

Building Management

ToolPurpose
deploy_unit(unit_id)Deploy MCV into Construction Yard
sell_building(building_id)Sell for partial refund
repair_building(building_id)Toggle auto-repair
set_rally_point(building_id, cell_x, cell_y)New units go here
power_down(building_id)Toggle power to save electricity
set_primary(building_id)Set as primary production building

Unit Groups

ToolPurpose
assign_group(group_name, unit_ids)Create a named group
add_to_group(group_name, unit_ids)Add units to existing group
get_groups()List all groups
command_group(group_name, command_type, ...)Command entire group

Compound Actions

ToolPurpose
batch(actions)Execute multiple actions in ONE tick (no time advance)
plan(steps)Execute steps sequentially with state refresh between each

Utility

ToolPurpose
surrender()Give up the current game
get_replay_path()Path to the replay file
get_terrain_at(cell_x, cell_y)Terrain type at a cell

Planning Phase (optional)

ToolPurpose
start_planning_phase()Begin pre-game strategy planning
get_opponent_intel()AI opponent profile and counters
end_planning_phase(strategy)Commit strategy and start playing
get_planning_status()Check planning state

How to Play (Strategy Guide)

Step 1: Deploy your MCV

At game start you have a Mobile Construction Vehicle (MCV). Deploy it to create your Construction Yard:

1. Call get_units() to find your MCV (type "mcv")
2. Call deploy_unit(mcv_actor_id)
3. Call advance(50) to let it deploy

Step 2: Build your base

Follow this build order:

OrderBuildingType CodeCostWhy
1Power Plantpowr$300Powers everything
2Barrackstent (Allied) or barr (Soviet)$300Infantry production
3Ore Refineryproc$2000Income + free harvester
4War Factoryweap$2000Vehicle production (requires Refinery)
5More Powerpowr$300Keep power positive

Use build_and_place() — it auto-places when construction finishes:

1. Call get_valid_placements("powr") to find a good spot
2. Call build_and_place("powr", cell_x, cell_y)
3. Call advance(250) to let it build (~10 seconds)
4. Check get_production() to confirm completion
5. Repeat for next building

Important: Your faction may be Allied OR Soviet. Check get_game_state()faction field. Barracks type depends on faction.

Step 3: Train your army

1. Call build_unit("e1", 5) for 5 Rifle Infantry ($100 each)
2. Call advance(100) to let them train
3. Once War Factory is ready: build_unit("3tnk", 3) for Medium Tanks ($800 each)
4. Set rally point near base exit: set_rally_point(barracks_id, x, y)

Key units by faction:

UnitCodeCostRole
Rifle Infantrye1$100Cheap, fast
Rocket Soldiere3$300Anti-armor
Medium Tank3tnk$800Main battle tank
Heavy Tank4tnk$950Soviet heavy armor
Light Tank1tnk$700Fast flanker
Artilleryarty$600Long range
V2 Launcherv2rl$700Soviet long range

Step 4: Scout the map

Send a cheap unit to explore:

1. Train one Rifle Infantry
2. Call attack_move([unit_id], far_x, far_y) toward unexplored areas
3. Call advance(500) to let it travel
4. Call get_enemies() to see what you've found

Step 5: Attack the enemy

Once you have 8-10 combat units:

1. Call get_enemies() to find enemy buildings
2. Call attack_move(all_unit_ids, enemy_base_x, enemy_base_y)
3. Call advance(100), check get_game_state() for battle progress
4. If enemies visible: attack_target(unit_ids, enemy_id) to focus fire
5. Keep producing reinforcements while attacking

Step 6: Macro (ongoing economy)

Throughout the game:

  • Keep power positive (build Power Plants when needed)
  • Keep producing units — never let production idle
  • Build additional Ore Refineries for more income
  • Replace lost harvesters

Game Loop Pattern

A good agent loop looks like this:

1. get_game_state() → read the situation
2. Decide what to do based on:
   - Economy: enough cash? Power positive?
   - Production: anything building? Queue empty?
   - Military: under attack? Ready to attack?
   - Exploration: enemy found yet?
3. Issue orders (build, move, attack)
4. advance(50-250) → let time pass
5. Repeat until game is won or lost

Check get_game_state()done field. When true, result will be "win" or "loss".


Tips

  • Always call advance() after issuing orders. Orders don't execute until game time passes.
  • Use batch() to issue multiple orders in one tick (e.g., build + move + set rally).
  • Check available_production before building — it lists what you CAN build right now.
  • Don't let production idle — keep queuing units. Idle production wastes time.
  • Build near your Construction Yard — buildings must be placed adjacent to existing structures.
  • Power matters — if power goes negative, production slows to a crawl.
  • Use attack_move instead of move when heading toward enemies — units will engage threats.
  • A completed building blocks the queue until placed. Always use build_and_place() to avoid this.

Troubleshooting

ProblemSolution
Server not runningopenra-rl server start (needs Docker)
Can't build anythingDeploy MCV first with deploy_unit()
Building won't placeUse get_valid_placements() for valid spots
No moneyBuild Ore Refinery (proc) for harvesters
Production slowCheck power with get_economy() — build Power Plants
Can't find enemyScout with attack_move to unexplored quadrants

Links

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Ai Competitor Analyzer

提供AI驱动的竞争对手分析,支持批量自动处理,提升企业和专业团队分析效率与专业度。

Registry SourceRecently Updated
General

Ai Data Visualization

提供自动化AI分析与多格式批量处理,显著提升数据可视化效率,节省成本,适用企业和个人用户。

Registry SourceRecently Updated
General

Ai Cost Optimizer

提供基于预算和任务需求的AI模型成本优化方案,计算节省并指导OpenClaw配置与模型切换策略。

Registry SourceRecently Updated