> 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]타임 오프셋 토큰",
})
```


---



