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

# GS2-Formation 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양





## Consume Action

소비 액션

### Gs2Formation:SubMoldCapacityByUserId

사용자 ID를 지정하여 용량 크기 감산<br>

지정된 사용자의 폼 저장 영역(몰드)의 용량을 감산합니다. 용량은 0 미만으로 내려가지 않습니다.

**수량 지정 가능한 액션: 예**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| moldModelName | string |  | ✓|  |  ~ 128자 | 폼 저장 영역 모델의 이름<br>폼 저장 영역 모델 고유의 이름입니다. 영숫자 및 -(하이픈), _(언더스코어), .(마침표)로 지정합니다. |
| capacity | int |  | ✓|  | 0 ~ 2147483646 | 현재 캐파시티<br>이 저장 영역에서 이 플레이어가 현재 이용할 수 있는 폼 저장 슬롯 수입니다. 초기값은 저장 영역 모델의 initialMaxCapacity로 설정되며, 캐파시티 증가 조작을 통해 maxCapacity까지 확장할 수 있습니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Formation:SubMoldCapacityByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "moldModelName": "[string]폼 저장 영역 모델의 이름",
        "capacity": "[int]현재 캐파시티",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Formation:SubMoldCapacityByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  moldModelName: "[string]폼 저장 영역 모델의 이름"
  capacity: "[int]현재 캐파시티"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("formation").consume.sub_mold_capacity_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    moldModelName="[string]폼 저장 영역 모델의 이름",
    capacity="[int]현재 캐파시티",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Acquire Action

입수 액션

### Gs2Formation:AddMoldCapacityByUserId

사용자 ID를 지정하여 용량 크기 가산<br>

지정된 사용자의 폼 저장 영역(몰드)의 용량을 가산합니다.<br>
용량은 몰드 모델에 정의된 maxCapacity를 초과할 수 없습니다.

**수량 지정 가능한 액션: 예**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| moldModelName | string |  | ✓|  |  ~ 128자 | 폼 저장 영역 모델의 이름<br>폼 저장 영역 모델 고유의 이름입니다. 영숫자 및 -(하이픈), _(언더스코어), .(마침표)로 지정합니다. |
| capacity | int |  | ✓|  | 0 ~ 2147483646 | 현재 캐파시티<br>이 저장 영역에서 이 플레이어가 현재 이용할 수 있는 폼 저장 슬롯 수입니다. 초기값은 저장 영역 모델의 initialMaxCapacity로 설정되며, 캐파시티 증가 조작을 통해 maxCapacity까지 확장할 수 있습니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Formation:AddMoldCapacityByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "moldModelName": "[string]폼 저장 영역 모델의 이름",
        "capacity": "[int]현재 캐파시티",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Formation:AddMoldCapacityByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  moldModelName: "[string]폼 저장 영역 모델의 이름"
  capacity: "[int]현재 캐파시티"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("formation").acquire.add_mold_capacity_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    moldModelName="[string]폼 저장 영역 모델의 이름",
    capacity="[int]현재 캐파시티",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Formation:SetMoldCapacityByUserId

사용자 ID를 지정하여 용량 크기 설정<br>

지정된 사용자의 폼 저장 영역(몰드)의 용량을 지정한 값으로 직접 설정합니다.<br>
갱신 전의 몰드를 'old'로, 갱신 후의 몰드와 함께 반환합니다.<br>
용량은 몰드 모델에 정의된 maxCapacity로 상한이 제한됩니다.

**수량 지정 가능한 액션: 예**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| moldModelName | string |  | ✓|  |  ~ 128자 | 폼 저장 영역 모델의 이름<br>폼 저장 영역 모델 고유의 이름입니다. 영숫자 및 -(하이픈), _(언더스코어), .(마침표)로 지정합니다. |
| capacity | int |  | ✓|  | 0 ~ 2147483646 | 현재 캐파시티<br>이 저장 영역에서 이 플레이어가 현재 이용할 수 있는 폼 저장 슬롯 수입니다. 초기값은 저장 영역 모델의 initialMaxCapacity로 설정되며, 캐파시티 증가 조작을 통해 maxCapacity까지 확장할 수 있습니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Formation:SetMoldCapacityByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "moldModelName": "[string]폼 저장 영역 모델의 이름",
        "capacity": "[int]현재 캐파시티",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Formation:SetMoldCapacityByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  moldModelName: "[string]폼 저장 영역 모델의 이름"
  capacity: "[int]현재 캐파시티"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("formation").acquire.set_mold_capacity_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    moldModelName="[string]폼 저장 영역 모델의 이름",
    capacity="[int]현재 캐파시티",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Formation:AcquireActionsToFormProperties

사용자 ID를 지정하여 폼의 프로퍼티에 획득 액션을 적용<br>

폼의 슬롯 프로퍼티에 획득 액션을 적용하고, 실행할 트랜잭션을 시작합니다.<br>
폼의 슬롯에 아이템이나 리소스를 부여하기 위해 사용되며, 커스터마이즈용 선택적 설정 파라미터를 이용할 수 있습니다.<br>
트랜잭션을 반환합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| moldModelName | string |  | ✓|  |  ~ 128자 | 폼 저장 영역 모델 이름 |
| index | int |  | ✓|  | 0 ~ 2147483646 | 폼의 인덱스<br>저장 영역 내에서 이 폼이 차지하는 저장 슬롯을 식별하는 0부터 시작하는 인덱스입니다. 최대 인덱스는 저장 영역의 현재 캐파시티에 의해 제한됩니다. 예를 들어 인덱스 0을 「파티 1」, 인덱스 1을 「파티 2」와 같은 식으로 사용할 수 있습니다. |
| acquireAction | AcquireAction |  | ✓|  |  | 폼의 프로퍼티에 적용할 획득 액션 |
| config | List&lt;Config&gt; |  | | [] | 0 ~ 1000 items | 획득 액션에 적용하는 설정 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Formation:AcquireActionsToFormProperties",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "moldModelName": "[string]폼 저장 영역 모델 이름",
        "index": "[int]폼의 인덱스",
        "acquireAction": {
            "action": "[string]입수 액션에서 실행할 액션의 종류",
            "request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
        },
        "config": [
            {
                "key": "[string]이름",
                "value": "[string]값"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Formation:AcquireActionsToFormProperties
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  moldModelName: "[string]폼 저장 영역 모델 이름"
  index: "[int]폼의 인덱스"
  acquireAction: 
    action: "[string]입수 액션에서 실행할 액션의 종류"
    request: "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
  config: 
    - key: "[string]이름"
      value: "[string]값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("formation").acquire.acquire_actions_to_form_properties({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    moldModelName="[string]폼 저장 영역 모델 이름",
    index="[int]폼의 인덱스",
    acquireAction={
        action="[string]입수 액션에서 실행할 액션의 종류",
        request="[string]액션 실행 시 사용되는 요청의 JSON 문자열"
    },
    config={
        {
            key="[string]이름",
            value="[string]값"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Formation:SetFormByUserId

사용자 ID를 지정하여 폼 설정<br>

지정된 사용자의 폼의 슬롯 값을 업데이트합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| moldModelName | string |  | ✓|  |  ~ 128자 | 폼 저장 영역 모델 이름 |
| index | int |  | ✓|  | 0 ~ 2147483646 | 폼의 인덱스<br>저장 영역 내에서 이 폼이 차지하는 저장 슬롯을 식별하는 0부터 시작하는 인덱스입니다. 최대 인덱스는 저장 영역의 현재 캐파시티에 의해 제한됩니다. 예를 들어 인덱스 0을 「파티 1」, 인덱스 1을 「파티 2」와 같은 식으로 사용할 수 있습니다. |
| slots | List&lt;Slot&gt; |  | ✓|  | 1 ~ 10 items | 슬롯 목록 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Formation:SetFormByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "moldModelName": "[string]폼 저장 영역 모델 이름",
        "index": "[int]폼의 인덱스",
        "slots": [
            {
                "name": "[string]슬롯 모델명",
                "propertyId": "[string]프로퍼티 ID",
                "metadata": "[string]메타데이터"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Formation:SetFormByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  moldModelName: "[string]폼 저장 영역 모델 이름"
  index: "[int]폼의 인덱스"
  slots: 
    - name: "[string]슬롯 모델명"
      propertyId: "[string]프로퍼티 ID"
      metadata: "[string]메타데이터"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("formation").acquire.set_form_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    moldModelName="[string]폼 저장 영역 모델 이름",
    index="[int]폼의 인덱스",
    slots={
        {
            name="[string]슬롯 모델명",
            propertyId="[string]프로퍼티 ID",
            metadata="[string]메타데이터"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Formation:AcquireActionsToPropertyFormProperties

프로퍼티 폼의 프로퍼티에 획득 액션을 적용<br>

프로퍼티 폼의 프로퍼티에 획득 액션을 적용하고 트랜잭션을 시작합니다.<br>
프로퍼티 폼의 슬롯 값으로 설정되는 아이템이나 리소스를 부여하기 위해 사용됩니다.<br>
획득 액션은 트랜잭션으로 실행되며, 그 결과 아이템이 폼의 슬롯 프로퍼티에 적용됩니다.<br>
획득 액션의 동작을 커스터마이즈하기 위한 설정값을 전달할 수 있습니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| propertyFormModelName | string |  | ✓|  |  ~ 128자 | 프로퍼티 폼 모델 이름 |
| propertyId | string |  | ✓|  |  ~ 1024자 | 프로퍼티 ID<br>이 프로퍼티 폼 인스턴스를 고유하게 식별하는 개발자 정의 식별자입니다. 일반적으로 이 폼이 설정하는 소유 리소스(예: GS2-Inventory의 아이템 세트)의 GRN을 설정합니다. 특정 장비에 스킬을 설정하는 등의 용도로 사용됩니다. |
| acquireAction | AcquireAction |  | ✓|  |  | 프로퍼티 폼의 프로퍼티에 적용할 획득 액션 |
| config | List&lt;Config&gt; |  | | [] | 0 ~ 1000 items | 획득 액션에 적용하는 설정 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Formation:AcquireActionsToPropertyFormProperties",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "propertyFormModelName": "[string]프로퍼티 폼 모델 이름",
        "propertyId": "[string]프로퍼티 ID",
        "acquireAction": {
            "action": "[string]입수 액션에서 실행할 액션의 종류",
            "request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
        },
        "config": [
            {
                "key": "[string]이름",
                "value": "[string]값"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Formation:AcquireActionsToPropertyFormProperties
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  propertyFormModelName: "[string]프로퍼티 폼 모델 이름"
  propertyId: "[string]프로퍼티 ID"
  acquireAction: 
    action: "[string]입수 액션에서 실행할 액션의 종류"
    request: "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
  config: 
    - key: "[string]이름"
      value: "[string]값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("formation").acquire.acquire_actions_to_property_form_properties({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    propertyFormModelName="[string]프로퍼티 폼 모델 이름",
    propertyId="[string]프로퍼티 ID",
    acquireAction={
        action="[string]입수 액션에서 실행할 액션의 종류",
        request="[string]액션 실행 시 사용되는 요청의 JSON 문자열"
    },
    config={
        {
            key="[string]이름",
            value="[string]값"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---



