# Rengi Forge: 2D Level Revise

> Rengi Forge: 2D Level Revise is a paid API for AI agents from rengi.dev, paid per call via x402, $0.3/call, status unknown (last checked 2026-10-22).

Revises a 2D game map by applying zone-targeted tile placement rules (scatter, cluster, stamp, along-border, anchor) while leaving untouched zones intact.

## Facts

- Endpoint: POST https://rengi.dev/v1/level-design/revise-2d?utm_source=zero.xyz
- Price: $0.3/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/rengi-forge-2d-level-revise-6c81ff58
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zUGXMLmP_k8y85_UWlu9L

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability rengi-forge-2d-level-revise-6c81ff58 -d '<json body>'
```

Example prompt: In my 2D dungeon map, update zone 'forest_01' to scatter trees at 0.6 density using tiles tagged 'tree', and stamp a single castle building named 'castle_keep' in zone 'castle_courtyard' — leave all other zones untouched.

## When to prefer this

Choose this endpoint when you need precise, zone-scoped tile placement in an existing 2D map using structured rules (scatter, cluster, stamp, along-border, anchor) and must guarantee that untouched zones remain unchanged. Prefer it over full-level regeneration when iterating on specific areas of a level design without disturbing the rest of the map.

## Known failure modes

- Invalid zoneId — zone not found in the level
- Rule parameters out of range (e.g. density >1, radius >40, count >60)
- Too many rules per zone (max 12 per zone)
- Unknown tile names or tags not found in the asset library
- Malformed edits array or missing required rule fields
- Payment not received or insufficient USDC balance (x402)

## How this service works

Level design: Change a 2D map by instruction or zone edits; untouched zones keep their tiles. Full schema: https://rengi.dev/v1/level-design/schema

## Output

Returns the revised 2D level data with the specified zone edits applied — tile placements from scatter, cluster, along, stamp, and anchor rules are merged into the map while all untouched zones remain unchanged. The full output schema is available at https://rengi.dev/v1/level-design/schema.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "edits": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "zoneId",
     "rules"
    ],
    "properties": {
     "rules": {
      "type": "array",
      "items": {
       "anyOf": [
        {
         "type": "object",
         "required": [
          "kind",
          "density"
         ],
         "properties": {
          "kind": {
           "type": "string",
           "const": "scatter"
          },
          "tags": {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          "names": {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          "density": {
           "type": "number",
           "maximum": 1,
           "minimum": 0
          }
         },
         "additionalProperties": false
        },
        {
         "type": "object",
         "required": [
          "kind"
         ],
         "properties": {
          "kind": {
           "type": "string",
           "const": "along"
          },
          "tags": {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          "inset": {
           "type": "integer",
           "default": 0,
           "maximum": 10,
           "minimum": 0
          },
          "names": {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          "spacing": {
           "type": "integer",
           "default": 1,
           "maximum": 20,
           "minimum": 1
          }
         },
         "additionalProperties": false
        },
        {
         "type": "object",
         "required": [
          "kind",
          "count",
          "radius"
         ],
         "properties": {
          "kind": {
           "type": "string",
           "const": "cluster"
          },
          "tags": {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          "count": {
           "type": "integer",
           "maximum": 60,
           "minimum": 1
          },
          "names": {
           "type": "array",
           "items": {
            "type": "string"
           }
          },
          "radius": {
           "type": "number",
           "maximum": 40,
           "exclusiveMinimum": 0
          },
          "clusters": {
           "type": "integer",
          
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/rengi-forge-2d-level-revise-6c81ff58/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from rengi.dev](https://www.zero.xyz/host/rengi.dev/llms.txt)
