Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

OpenRA-RL

v1.1.0

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

1· 513·0 current·0 all-time
byChuang@yxc20089
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (play Red Alert via MCP tools) matches the declared requirements (docker). However SKILL.md's Quick Start recommends `pip install openra-rl` while the registry install spec lists an 'uv' package that creates an `openra-rl` binary — this mismatch is unexplained and should be clarified.
Instruction Scope
Runtime instructions are scoped to running a Docker-hosted game server, adding an MCP entry to ~/.openclaw/openclaw.json, and using MCP observation/control tools. The instructions do not ask for unrelated files or credentials. They do instruct running container images and binding to port 8000 (expected for a server).
!
Install Mechanism
No code files were provided and the registry lists an 'uv' install (package: openra-rl) that creates a binary, but SKILL.md tells users to `pip install openra-rl`. The install mechanism/source is therefore ambiguous. 'uv' is not a well-known public installer in this context — verify where the package comes from and whether the Docker image it pulls is from a trusted registry.
Credentials
The skill requests no environment variables or credentials, which is proportionate. However it requires the docker binary: controlling Docker (or being able to start containers) implies access to the Docker daemon which can be a powerful privilege — confirm how containers are started (does the tool mount host paths or the docker socket?) before trusting it.
Persistence & Privilege
always is false and the skill does not request persistent/automatic inclusion. The only persistent action it asks the user to perform is editing the OpenClaw config (~/.openclaw/openclaw.json) to register the MCP server — this is expected for an integration.
What to consider before installing
Before installing: (1) Confirm the package source — check the referenced GitHub repo (https://github.com/yxc20089/OpenRA-RL) and the distribution method (is the package on PyPI, or a custom 'uv' repo?). (2) Verify what Docker image will be pulled and its registry; inspect the Dockerfile or image contents if possible. (3) Avoid exposing your Docker socket or mounting sensitive host paths when running the server; run initially in an isolated user or VM. (4) Resolve the install mismatch (pip vs 'uv') — ask the author or check the project README, and prefer installing from a verifiable source. (5) If you’re not comfortable auditing the package and image, run the skill only in a disposable environment (container/VM) to limit risk.

Like a lobster shell, security has layers — review code before you run it.

latestvk97ezddn2rsk4e2gyp8zrmxy5x820xm6

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🎮 Clawdis
OSmacOS · Linux
Binsdocker

Install

uv
Bins: openra-rl
uv tool install openra-rl

SKILL.md

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

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…