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

# GS2-Experience 마스터 데이터 레퍼런스

마스터 데이터 포맷과 임포트할 각종 모델의 레퍼런스




## 마스터 데이터 포맷


**JSON**
```json
{
  "version": "2019-01-11",
  "experienceModels": [
    {
      "name": "[string]경험치 모델 이름",
      "metadata": "[string?]메타데이터",
      "defaultExperience": "[long]경험치 초기값",
      "defaultRankCap": "[long]랭크 캡 초기값",
      "maxRankCap": "[long]랭크 캡의 최댓값",
      "rankThreshold": {
        "metadata": "[string?]메타데이터",
        "values": [
          "[long]랭크업 경험치 임계값"
        ]
      },
      "acquireActionRates": [
        {
          "name": "[string]보상 가산 테이블 이름",
          "mode": "[string]보상 가산 테이블의 종류",
          "rates": [
            "[double]가산량(배율)"
          ],
          "bigRates": [
            "[string]가산량(배율)"
          ]
        }
      ]
    }
  ]
}
```


|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| version | string | | ✓ | 2019-01-11 | | 마스터 데이터 포맷 버전 |
| experienceModels | [List&lt;ExperienceModel&gt;](#experiencemodel) |  |  |  |  ~ 100 items | 경험치 모델<br>경험치와 랭크 시스템의 규칙을 정의합니다. 랭크업에 필요한 경험치의 임계값, 기본 랭크 캡, 최대 랭크 캡을 설정합니다. 랭크 캡은 스테이터스가 도달할 수 있는 최대 랭크를 제한하며, 스테이터스별로 최대 랭크 캡까지 인상할 수 있습니다(예: 한계돌파). 옵션으로 현재 랭크에 따라 보상 배율을 조정하는 입수 액션 레이트 테이블을 포함할 수 있습니다. |

## 모델

### ExperienceModel

경험치 모델<br>

경험치와 랭크 시스템의 규칙을 정의합니다. 랭크업에 필요한 경험치의 임계값, 기본 랭크 캡, 최대 랭크 캡을 설정합니다. 랭크 캡은 스테이터스가 도달할 수 있는 최대 랭크를 제한하며, 스테이터스별로 최대 랭크 캡까지 인상할 수 있습니다(예: 한계돌파). 옵션으로 현재 랭크에 따라 보상 배율을 조정하는 입수 액션 레이트 테이블을 포함할 수 있습니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| experienceModelId | string |  | ※ |  |  ~ 1024자 | 경험치 모델GRN<br>※ 서버가 자동으로 설정 |
| name | string |  | ✓ |  |  ~ 128자 | 경험치 모델 이름<br>경험치 모델 고유 이름. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| metadata | string |  |  |  |  ~ 2048자 | 메타데이터<br>메타데이터에는 임의의 값을 설정할 수 있습니다.<br>이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. |
| defaultExperience | long |  |  | 0 | 0 ~ 9223372036854775805 | 경험치 초기값<br>신규 생성된 스테이터스에 할당되는 경험치입니다. 일반적으로 플레이어가 진행의 처음부터 시작하도록 0으로 설정됩니다. 초기 랭크는 이 값으로부터 랭크업 임계값 테이블을 사용하여 결정됩니다. |
| defaultRankCap | long |  | ✓ |  | 0 ~ 9223372036854775805 | 랭크 캡 초기값<br>신규 생성된 스테이터스가 도달할 수 있는 기본 최대 랭크입니다. 이 랭크의 임계값을 초과한 경험치는 폐기되거나 오버플로 스크립트가 트리거됩니다. 랭크 캡은 한계돌파 등의 조작을 통해 스테이터스별로 maxRankCap까지 인상할 수 있습니다. |
| maxRankCap | long |  | ✓ |  | 0 ~ 9223372036854775805 | 랭크 캡의 최댓값<br>랭크 캡의 절대적인 상한입니다. 랭크 캡 증가 조작(한계돌파 등)을 수행하더라도 랭크 캡은 이 값을 초과할 수 없습니다. defaultRankCap 이상의 값이어야 합니다. |
| rankThreshold | [Threshold](#threshold) |  | ✓ |  |  | 랭크업 임계값<br>각 랭크에 필요한 누적 경험치를 정의하는 임계값 테이블을 참조합니다. 임계값의 엔트리 수가 도달 가능한 최대 랭크를 결정하며, 각 엔트리의 값은 다음 랭크에 도달하는 데 필요한 경험치를 지정합니다. |
| acquireActionRates | [List&lt;AcquireActionRate&gt;](#acquireactionrate) |  |  |  | 0 ~ 100 items | 보상 가산 테이블 목록<br>스테이터스의 랭크를 참조로 사용할 때 보상량을 조정하는 랭크 기반 배율 테이블을 정의합니다. 각 테이블은 랭크와 배율을 매핑하여, 동일한 액션에서도 더 높은 랭크의 캐릭터가 더 많은 보상을 받는 구조를 구현할 수 있습니다. |

---

### Threshold

랭크업 임계값<br>

랭크업 임계값은 경험치로부터 랭크(레벨)를 결정하는 데 필요한 수열입니다.<br>
[10, 20]이라는 값을 설정한 경우, 경험치 값이 0~9 사이면 랭크1, 10~19 사이면 랭크2, 경험치 값이 20이면 랭크3이 되며, 그 이상 경험치를 획득할 수 없게 됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| metadata | string |  |  |  |  ~ 2048자 | 메타데이터<br>메타데이터에는 임의의 값을 설정할 수 있습니다.<br>이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. |
| values | List&lt;long&gt; |  | ✓ |  | 1 ~ 10000 items | 랭크업 경험치 임계값 목록<br>랭크 진행을 정의하는 누적 경험치의 순서가 있는 배열입니다. 항목 수가 도달 가능한 최대 랭크를 결정합니다. 예를 들어 [10, 20]인 경우, 경험치 0~9에서 랭크1, 10~19에서 랭크2, 20 이상에서 랭크3(그 이상의 경험치 획득은 불가)이 됩니다. |

---

### AcquireActionRate

보상 가산 테이블<br>

상태의 현재 랭크에 따라 보상량을 조정하는 랭크 기반 배율 테이블을 정의합니다. 테이블의 각 항목은 랭크에 대응하며, 입수량에 적용되는 배율을 지정합니다. 표준적인 배정밀도 부동소수점 값과, 대규모 계산용 대수 문자열 표현을 모두 지원합니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| name | string |  | ✓ |  |  ~ 128자 | 보상 가산 테이블 이름<br>이 보상 가산 테이블의 고유 식별자입니다. 특정 입수 액션에 적용할 배율 테이블을 지정할 때 참조됩니다. |
| mode | 문자열 열거형<br>enum {<br>"double",<br>"big"<br>}<br> |  |  | "double" |  | 보상 가산 테이블의 종류<br>배율 값의 수치 정밀도를 선택합니다. 표준적인 부동소수점 수(2^48까지)에는 "double"을, 대규모 계산이 필요한 경우에는 1024자리까지의 문자열 표현을 지원하는 "big"을 사용합니다.double: 2^48 미만의 부동소수점 수 / big: 문자열 표기로 1024자리 미만의 부동소수점 수 /  |
| rates | List&lt;double&gt; | {mode} == "double" | ✓※ |  | 1 ~ 10000 items | 랭크별 가산량(배율)<br>랭크를 인덱스로 하는 배율 값의 배열입니다. i번째 엔트리는 스테이터스가 랭크 i일 때 적용되는 보상 배율을 정의합니다. mode가 "double"로 설정된 경우에 사용됩니다.<br>※ mode이(가) "double" 이면 필수 |
| bigRates | List&lt;string&gt; | {mode} == "big" | ✓※ |  | 1 ~ 10000 items | 랭크별 가산량(배율)<br>랭크를 인덱스로 하는 문자열 표현 배율 값의 배열입니다. i번째 엔트리는 스테이터스가 랭크 i일 때 적용되는 보상 배율을 정의합니다. 대수치 정밀도가 필요한 계산에서 mode가 "big"으로 설정된 경우에 사용됩니다.<br>※ mode이(가) "big" 이면 필수 |

---



