Gameplay Endpoints

Player-facing REST API endpoints for game state management, progression, and interactions.

Base URL

All endpoints are under: /wp-json/orbemorder/v1/

Authentication

Most endpoints require authentication with read capability (standard WordPress user).


Area Data

GET/POST /area/

Retrieve all game data for a specific area.

Method: POST
Permission: Authenticated users

Request:

{
  "area": "level-1"
}

Response:

{
  "success": true,
  "data": {
    "posts": [...], // All objects in this area
    "meta": {...}   // Area metadata
  }
}

Player State

POST /coordinates/

Save player's current position.

Permission: Authenticated users

Request:

{
  "area": "level-1",
  "top": 2500,
  "left": 3000
}

Response:

{
  "success": true,
  "data": "success"
}

POST /add-explore-points/

Update player's stat points (health, mana, power, money, points).

Permission: Authenticated users

Request:

{
  "type": "health",
  "value": 25,
  "add": true  // true to add, false to subtract
}

Response:

{
  "success": true,
  "data": "success"
}

POST /resetexplore/

Reset player's game progress.

Permission: Authenticated users

Request:

{}

Response:

{
  "success": true,
  "data": "success"
}

Inventory System

POST /save-storage-item/

Add item to player's inventory.

Permission: Authenticated users

Request:

{
  "item": "health-potion",
  "type": "items" // or "weapons", "gear"
}

Response:

{
  "success": true,
  "data": "success"
}

POST /equip-explore-item/

Equip an item or weapon.

Permission: Authenticated users

Request:

{
  "item": "laser-sword",
  "type": "weapons",
  "slot": 0
}

Response:

{
  "success": true,
  "data": "success"
}

POST /get-item-description/

Retrieve item details for display.

Permission: Authenticated users

Request:

{
  "item": "ancient-artifact"
}

Response:

{
  "success": true,
  "data": {
    "description": "...",
    "stats": {...}
  }
}

POST /save-drag/

Save draggable item drop position.

Permission: Authenticated users

Request:

{
  "item": "movable-crate",
  "top": 2200,
  "left": 2800
}

Response:

{
  "success": true,
  "data": "success"
}

POST /save-materialized-item/

Mark item as materialized/revealed.

Permission: Authenticated users

Request:

{
  "item": "hidden-weapon"
}

Response:

{
  "success": true,
  "data": "success"
}

Mission System

POST /mission/

Complete a mission and trigger progression.

Permission: Authenticated users

Request:

{
  "mission": "defeat-boss"
}

Response:

{
  "success": true,
  "data": "success"
}

Character System

POST /add-character/

Add crew mate to player's roster.

Permission: Authenticated users

Request:

{
  "character": "tech-specialist"
}

Response:

{
  "success": true,
  "data": "success"
}

POST /addspell/

Unlock ability/magic for player.

Permission: Authenticated users

Request:

{
  "spell": "teleportation"
}

Response:

{
  "success": true,
  "data": "success"
}

POST /enable-ability/

Enable special ability.

Permission: Authenticated users

Request:

{
  "ability": "hazard"
}

Response:

{
  "success": true,
  "data": "success"
}

Enemy System

POST /enemy/

Update enemy state (damage, defeat).

Permission: Authenticated users

Request:

{
  "enemy": "boss-dragon",
  "health": 250,
  "defeated": false
}

Response:

{
  "success": true,
  "data": "success"
}

Cutscene System

POST /set-previous-cutscene-area/

Track last cutscene viewed for continuity.

Permission: Authenticated users

Request:

{
  "cutscene": "intro-scene"
}

Response:

{
  "success": true,
  "data": "success"
}

Settings

POST /save-settings/

Save player preferences.

Permission: Authenticated users

Request:

{
  "setting": "volume",
  "value": 75
}

Response:

{
  "success": true,
  "data": "success"
}

Authentication

POST /google-oauth-callback/

Verify Google Sign-In token.

Permission: Public (no authentication required)

Request:

{
  "credential": "google-id-token"
}

Response:

{
  "success": true,
  "data": {
    "user_id": 123,
    "token": "..."
  }
}

Error Responses

All endpoints return consistent error format:

{
  "success": false,
  "data": "Error message"
}

Common errors: