> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-StateMachine トランザクションアクション

検証/消費/入手の各トランザクションアクションの仕様






## Acquire Action

入手アクション

### Gs2StateMachine:StartStateMachineByUserId

ユーザーIDを指定してステートマシンを開始<br>

最新のマスターバージョンを使用して、指定したユーザーの新しいステートマシンインスタンスを開始します。引数はJSONとして渡され、ステートマシン変数にパースされます。オプションのTTL（分単位）を設定できます。省略した場合、ステートマシンは約10年間有効です。

**数量指定可能なアクション：いいえ**

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| args | string |  | | "{}" |  ~ 4096文字 | ステートマシンに渡す引数 |
| ttl | int |  | |  | 1 ~ 525600 | 有効期間(分) |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2StateMachine:StartStateMachineByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "args": "[string]ステートマシンに渡す引数",
        "ttl": "[int]有効期間(分)",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2StateMachine:StartStateMachineByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  args: "[string]ステートマシンに渡す引数"
  ttl: "[int]有効期間(分)"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("stateMachine").acquire.start_state_machine_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    args="[string]ステートマシンに渡す引数",
    ttl="[int]有効期間(分)",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---



