API Reference 가이드라인

메이플스토리 월드의 API 레퍼런스는 월드 제작에 필요한 다양한 API와 로그 메시지에 관한 정보를 제공합니다.

# [Components](/apiReference/Components)

월드를 제작할 때 엔티티에 추가해 사용하는 기능 단위입니다. 프로퍼티, 함수를 갖고 있습니다.

# [Events](/apiReference/Events)

월드의 다양한 API에서 발생하는 이벤트입니다. 프로퍼티를 갖고 있습니다. 이벤트가 발생하는 공간 정보를 제공합니다.

# [Services](/apiReference/Services)

월드에서 시스템 제작과 관련된 핵심 기능을 제공합니다. 프로퍼티, 함수를 갖고 있습니다.

# [Logics](/apiReference/Logics)

월드를 제작할 때 필요한 게임 로직입니다. 프로퍼티, 함수를 갖고 있습니다.

# [Misc](/apiReference/Misc)

월드에서만 사용하는 고유한 타입을 의미합니다. 프로퍼티, 생성자, 함수를 갖고 있습니다.

# [Enums](/apiReference/Enums)

서로 연결된 값의 집합입니다. 프로퍼티, 생성자, 함수를 갖고 있습니다.

# [Lua](/apiReference/Lua)

메이플스토리 월드는 루아 을 기본으로 사용합니다. 일부는 루아 5.3과 상이할 수 있습니다. 자세한 정보가 필요할 경우 루아 공식 홈페이지를 참고하길 바랍니다.

# [LogMessages](/apiReference/LogMessages)

Log Messages는 메시지 종류에 따라 세 가지로 구분됩니다. Error Messages의 설명은 메이커와 동일하지 않으며, 해당 메시지가 발생하는 상황에 관해 설명합니다.

  * Info Level: 정보성 메시지입니다. LIA 접두사로 구분합니다.
  * Warning Level: 스크립트가 동작은 하지만 문제가 있는 경우 나타나는 메시지입니다. 권장하는 형태로 구현하지 않았을 수 있습니다. 혹은 의도대로 동작하지 않고 다른 동작을 할 수 있습니다. LWA 접두사로 구분합니다.
  * Error Level: 정상 동작이 불가능한 경우이거나, 의도대로 동작하지 않아 결과를 얻을 수 없는 경우 나타나는 메시지입니다. LEA 접두사로 구분합니다.



# API 형식 소개

API 레퍼런스는 가장 위에 API 관련 설명을 제공합니다. 아래에는 프로퍼티, 함수, 예제를 제공합니다. [png](168508510418542bad84ac7f247c2b6980d0cbc4af62e)

  1. API 이름: API의 이름입니다.
  2. API 설명: 해당 API를 아우르는 전체적인 특성을 설명합니다.
  3. Properties: API의 프로퍼티에 대해 자세히 확인할 수 있습니다. 상속받은 프로퍼티가 있는 경우 inherited from 000아래에서 확인할 수 있습니다.
  4. Functions: API의 함수를 각각 설명합니다. 상속받은 API가 있는 경우 inherited from 000 아래에서 확인할 수 있습니다.
  5. Examples: API를 활용할 수 있는 다양한 예제 코드를 제공합니다.



#### API별 구성

API별로 상세 설명은 아래와 같은 형식으로 설명합니다. [png](16728151575216bd83694db81410585178263086d0cce)   
타입 이름(인자 타입 인자 이름)   


  * 타입: 프로퍼티, 함수, 이벤트에 따라 필요한 리턴 타입입니다. 리턴 타입의 관련 문서가 있다면 해당 문서로 연결되어 있습니다.
  * 이름: API의 프로퍼티, 함수, 이벤트 이름입니다.
  * 인자 타입: 인자가 사용하는 특정 타입입니다. 타입에 맞는 형식으로 인자 이름을 작성해야 합니다.
  * 인자 이름: API를 사용하기 위해 필요한 파라미터입니다. 생략 가능한 파라미터와 가변 파라미터 정보를 제공합니다. 기본 파라미터와 "=nil"이 병기되어 있다면 생략할 수 있는 파라미터입니다. 
    * 생략 가능한 인자 이름 표기 예시: CollisionGroup=nil
    * 가변 인자 이름 표기 예시: any... args



#### 배지 색상

동기화 정보 배지

  * (Sync): 일반적으로 서버에서 클라이언트로 값이 동기화되는 API를 의미합니다.



실행공간 제어 관련 배지

  * (ReadOnly): 값이 읽기 전용이라 덮어쓸 수 없는 API를 의미합니다.
  * (ControlOnly): 조작 권한을 가진 환경 전용 함수입니다. 그 환경에서만 호출됩니다.
  * (MakerOnly): 메이커에서만 사용할 수 있습니다.
  * (ReleaseOnly): 출시된 월드에서만 사용할 수 있습니다.
  * (ServerOnly) : 서버 전용 함수입니다. 서버에서만 호출됩니다.
  * (ClientOnly) : 클라이언트 전용 함수입니다. 클라이언트에서만 호출됩니다.
  * (Server): 서버에서 실행되는 함수입니다. 클라이언트에서 호출 시, 서버에 요청해 호출합니다.
  * (Client): 클라이언트에서 실행되는 함수입니다. 서버에서 호출 시, 클라이언트들에게 전달해 호출합니다.



프로퍼티 관련 배지

  * (HideFromInspector): 메이커의 프로퍼티 창에 노출되지 않는 프로퍼티를 의미합니다. 스크립트 에디터에서 접근할 수 있습니다.



함수 관련 배지

  * (Yield): 수행하는 동안 스크립트 실행을 중단하는 API를 의미합니다.
  * (Static): 전역으로 접근할 수 있는 API를 의미합니다.



스크립트 관련 배지

  * (ScriptOverridable): 재정의할 수 있는 함수를 의미합니다.



타입 관련 배지

  * (Abstract): 자체적으로 Component 생성이 불가능한 추상화된 API를 의미합니다.



API 상태 관련 배지

  * (Deprecated): 더는 사용하지 않는 API입니다.
  * (Preview): 크리에이터에게 선공개된 API입니다. 추후 정식 배포될 API와 다를 수 있습니다.



API Event 관련 배지

  * (Space;Server): 이벤트가 발생한 공간을 의미합니다. Server에서 이벤트가 발생합니다.
  * (Space;Client): 이벤트가 발생한 공간을 의미합니다. Client에서 이벤트가 발생합니다.
  * (Space;Editor): 이벤트가 발생한 공간을 의미합니다. Editor에서 이벤트가 발생합니다.
  * (Space; All): 이벤트가 발생한 공간을 의미합니다. Server, Client에서 이벤트가 발생합니다.