[category] | Events [section] | [title] | DestroyMapleCostumeEvent [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Events/DestroyMapleCostumeEvent [text] | CostumeManagerComponent가 삭제될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * CostumeManagerComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **DestroyMapleCostumeEvent()** 기본값으로 De
[category] | Events [section] | [title] | RigidbodyClimbableAttachStartEvent [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Events/RigidbodyClimbableAttachStartEvent [text] | Avatar가 사다리, 로프를 타기 전에 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Entity AttachedEntity** Avatar가 탈 사다리, 로프 엔티티입니다. #
[category] | Events [section] | [title] | RigidbodyClimbableDetachEndEvent [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Events/RigidbodyClimbableDetachEndEvent [text] | Avatar가 사다리, 로프에서 떨어진 후에 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **RigidbodyClimbableDetachEndEvent()** 기본값으로 Rigid
[category] | Events [section] | [title] | UserDisconnectEvent [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Events/UserDisconnectEvent [text] | 유저의 네트워크 접속이 불안정하여 끊겼을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * UserService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **string DisconnectMapName** 유저의 접속이 끊겼던 맵의 이름입니다. - **stri
[category] | Events [section] | [title] | UserReconnectEvent [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Events/UserReconnectEvent [text] | 유저가 재접속되었을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * UserService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **string ProfileCode** 유저의 프로필 코드입니다. - **string ReconnectMapName** 유
[category] | Logics [section] | [title] | MaplePreferencesLogic [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Logics/MaplePreferencesLogic [text] | 메이플스토리의 설정 값이나 변수 값을 프로퍼티로 제공합니다. # Properties - **string DeathSound [Sync]** 죽을 때 재생되는 소리입니다. - **string JumpSound [Sync]** 점프할 때 재생되는 소리입니다. - **string WeaponBowSound [Sync]** Bow 타입의 사운드 이펙트와 연결된 무기로 근접 공격할 때 재생되는 소리입니다. - **string WeaponCaneSound [Sync]** Cane 타입의 사운드 이펙트와 연결된 무기로 근접 공격할
[category] | Misc [section] | [title] | InstanceRoom [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Misc/InstanceRoom [text] | 인스턴스 룸 관련 기능을 제공합니다. # Properties - **string InstanceKey [ReadOnly]** 인스턴스 룸 식별자입니다. # Methods - **int32 GetUserCount()** 인스턴스 룸에 속한 유저 수를 반환합니다. - **boolean IsValid()** 인스턴스 룸이 유효한지 여부를 반환합니다. - **boolean MoveUser(string userId, string mapName = nil) [Yield]** userId에 해당하는 유저를 이 인스턴스 룸으로 이
[category] | Services [section] | [title] | EntryService [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Services/EntryService [text] | 엔트리 관련 기능을 제공합니다. # Methods - **string GetDataSetIdByName(string name)** DataSet 이름으로 DataSet Id를 찾아 반환합니다. - **string GetMaterialIdByName(string name)** Material 이름으로 Material Id를 찾아 반환합니다. - **string GetModelIdByName(string name)** Model 이름으로 Modle Id를 찾아 반환합니다. ##### inherited from Service
[category] | Services [section] | [title] | MaterialService [url] | https://maplestoryworlds-creators.nexon.com/ko/apiReference/Services/MaterialService [text] | 머티리얼 프로퍼티를 제어하는 기능을 제공합니다. # Methods - **void ChangeMaterialProperty(string entryId, Dictionary<string, any> changeProperty) [ClientOnly]** entryId에 해당하는 머티리얼의 프로퍼티를 변경합니다. changeProperty의 key는 프로퍼티 이름, value는 프로퍼티 값입니다. ##### inherited from Service: - **EventHandlerBase ConnectEvent(string key,
[category] | Guides [section] | [title] | 기본 제작 가이드 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=19 [text] | 기본 제작 가이드는 메이플스토리 월드 메이커의 인터페이스부터 고급 스크립트 기법까지 기초 개념을 탄탄히 익힐 수 있도록 상세한 설명을 제공합니다. 메이플스토리 월드의 상세 기능 하나하나를 알아보고 싶을 때 기본 제작 가이드를 찾아보세요. 기본 제작 가이드 분류는 아래와 같습니다. *** $$childList $$
[category] | Guides [section] | 기본 제작 가이드 > UI [title] | 엔티티에 이름표 붙이기 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=29 [text] | # 학습 과정 소개 사물을 구분하는 효과적인 방법은 이름을 붙이는 것입니다. 이름표를 이용해 오브젝트와 NPC를 구분하거나, 유저를 구분할 수 있습니다. NameTagComponent 사용 방법과 활용 예시를 소개합니다. # 이름표 붙이기 엔티티를 선택하고 **NameTagComponent**를 추가합니다. 프로퍼티 값을 변경해 원하는 이름표를 만듭니다. 이 일어나는 타이밍을 제어해야 할 때가 있습니다. TimerService를 활용해 쉽고 효율적으로 액션이 일어나는 타이밍을 제어할 수 있습니다. TimerService가 제공하는 기능과 활용법을 알아보겠습니다. # TimerService 소개 **TimerService**는 원하는 순간에 어떤 액션을 실행하도록 예약하는 편의 기능을 제공합니다. Timer Service를 사용하지 않고 몬스터가 사
[category] | Guides [section] | 기본 제작 가이드 > 시작하기 > 메이커 사용 [title] | 캐릭터 초기 속성 편집 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=48 [text] | # 학습 과정 소개 동시에 출발해 목표 지점까지 오르는 게임을 시작할 때 누군가는 한 번에 4칸을 오르고, 다른 누구는 2칸을 오른다면 함께 게임을 즐길 수 없을 것입니다. 게임을 처음 시작할 때 만큼은 동일한 환경에서 시작하는 게 중요합니다. 모델 프로퍼티를 이용해 속성을 편집하는 방법을 알아봅니다. # 플레이어 기본 속성 변경 **Player** 모델에서 기본 속성을 변경할 수 있습니다. 1. **Workspace - BaseEnvironment - NativeModel - Player**를 선택합니다. 2. **Playe
[category] | Guides [section] | [title] | 응용 제작 가이드 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=51 [text] | 응용 제작 가이드에서는 간단한 게임을 만드는 상세한 방법이나, 게임에 들어가는 기믹이나 시스템 구현 예제를 만나볼 수 있습니다. 응용 제작 가이드에서 제공하는 만들기 예제를 통해 여러 Component나 Service의 실제 활용 사례를 직접 실습하며 실력을 키워보세요. *** $$childList $$
[category] | Guides [section] | 기본 제작 가이드 > 시작하기 > 개념 이해 [title] | 맵 레이어 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=53 [text] | # 학습 과정 소개 맵 레이어를 사용해 더욱 입체적으로 게임 화면을 디자인할 수 있습니다. 맵 레이어 창 구성을 살펴보고 활용하는 방법을 알아봅니다. 레이어 순서를 이해하고 레이어를 크리에이터의 게임에 맞게 활용할 수 있습니다. # 맵 레이어 위치 맵 레이어 창은 기본 패널 설정 기준, 중앙 하단에 위치합니다. 작업 편의를 위해 탭을 닫은 후 다시 불러올 때는 **Panels - Map Layer**을 선택해 불러올 수 있습니다. | 메이커 화면 기본 위치 | Panels - Map Layer | | ------------ |
[category] | Guides [section] | 기본 제작 가이드 > 시작하기 > 개념 이해 [title] | Entity, Component, Property [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=54 [text] | # 학습 과정 소개 Entity와 Component 그리고 Property에 대해서 개념을 이해합니다. # Entity 엔티티는 메이플스토리 월드 내에서 존재하는 객체입니다. 아래의 그림에서 Entity는 어떤 것들일까요?  빨간색을 칠한 부분이 Entity입니다. 그뿐만 아니라 보이지는 않지만 돌아가고 있는
[category] | Guides [section] | 기본 제작 가이드 > 시작하기 > 개념 이해 [title] | 모델 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=55 [text] | # 학습 과정 소개 자주 사용했던 모델의 개념을 정확히 이해합니다. # 원하는 Entity 만들기 원하는 엔티티를 만들려면, 엔티티에 컴포넌트를 추가하고 프로퍼티를 수정해야 합니다. 다음과 같은 나무를 만들어봅시다.  엔티티를 만들고 컴포넌트를 추가하고 프로퍼티를 알맞게 수정했습니다. 완성이군요! 이렇게 여러 개의 나무를 모아서 숲을
[category] | Guides [section] | 기본 제작 가이드 > 시작하기 > 스크립트 이해 [title] | 스크립트 에디터 오리엔테이션 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=56 [text] | # 학습 과정 소개 메이플스토리 월드에서는 스크립트 에디터를 사용해 크리에이터가 원하는 컴포넌트나 로직을 만들 수 있습니다. 스크립트 문법은 **Lua Script**를 사용하며 다양한 **API**를 지원합니다. 월드를 만들다 보면, 메이플스토리 월드에서 제공하는 스크립트나 다른 크리에이터가 작성한 스크립트를 수정해야 할 일이 생깁니다. 스크립트를 수정하기 위해서라도 스크립트 에디터 기본 사용법을 익혀두는 것이 좋습니다. 이번 과정에서는 간단하게 스크립트로 로그를 출력하는 방법을 알아보고, 스크립트 에디터의 다양한 편의 기능도
[category] | Guides [section] | 기본 제작 가이드 > 시작하기 > 메이커 사용 [title] | 컴포넌트 추가와 삭제 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=58 [text] | # 학습 과정 소개 엔티티에 정체성을 불어넣는 방법은 컴포넌트를 이용하는 것입니다. 컴포넌트와 프로퍼티 에디터 창 이용 방법을 알아보겠습니다. # 컴포넌트 구분 컴포넌트는 엔티티의 정체성을 결정하는 역할을 합니다. 컴포넌트는 크리에이터가 제작한 모델에서 몇 가지 컴포넌트를 추가하거나, 삭제해 겉모습은 같지만 다르게 동작하는 엔티티를 제작할 수 있습니다. 프로퍼티 에디터 창에서 컴포넌트는 **Map, UI, Player, Etc** 4가지 항목으로 분류하고 있습니다.각 항목에 맞는 컴포넌트가 들어 있으며, 컴포넌트의 특징은 아이콘으
[category] | Guides [section] | 기본 제작 가이드 > 객체 제어 > 이동 [title] | 텔레포트 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=59 [text] | # 학습 과정 소개 특정 시간마다 캐릭터를 다른 맵으로 이동시키는 기능을 만들어 보면서 `TeleportService`의 `TeleportToEntityPath` 함수 사용법을 알아봅시다. ##### 참고 API Reference [TeleportService](/apiReference/Services/TeleportService) # 이동할 맵 만들기 먼저 캐릭터가 이동할 맵을 만듭니다. 1. **Window - Map List** 창을 엽니다.  [실행 제어](/docs?postId=210) [Event System](/docs?postId=73) [Entity Event System](/docs?postId=176) # 예제
[category] | Guides [section] | 기본 제작 가이드 > 지형과 이동 > 지형 [title] | 맵 생성과 관리 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=61 [text] | # 학습 과정 소개 다양한 맵은 월드를 탐험하는 유저들에게 다채로운 재미를 선사합니다. 이번 과정에서는 맵 생성과 관리 방법을 알아봅시다. # 맵 관리 방법 맵 관리 방법에는 2가지가 있습니다. * **Hierarchy - maps** 하위 엔트리의 콘텍스트 메뉴를 통해 관리 * **Window - Map List** 창에서 관리 # 새 맵 만들기 | Hierarchy | Map List | | ----------- | ------- | | **Hierarchy - maps**의 콘텍스트 메뉴에서 **Create New Map
[category] | Guides [section] | 기본 제작 가이드 > UI [title] | UI 제작하기 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=64 [text] | # 학습 과정 소개 메이플스토리 월드 메이커에서는 UI를 편집할 수 있는 **UI 에디터**를 제공합니다. UI 에디터를 활용해 캐릭터의 이름이나 스탯 창, 채팅 창 등을 구현할 수 있습니다. 또한 게임의 생동감을 살리는 연출도 만들 수 있습니다. UI 에디터의 기본 기능인 **이미지**와 **텍스트**를 사용해 화면 상단에 환영 메시지 UI를 만들어 봅시다. ![22](https://mod-file.dn.nexoncdn.co.kr/bbs/16607859751670dad1471dc514cef891e7f484d61bf20.png "2
[category] | Guides [section] | 기본 제작 가이드 > 게임 로직/시스템 > 아이템 [title] | 아이템 생성 및 삭제 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=66 [text] | # 학습 과정 소개 이번 과정에서는 아이템 생성과 삭제 기능을 알아봅니다. 제작할 예제는 다음과 같습니다. * 맵에 놓인 아이템을 먹을 때마다 인벤토리에 랜덤한 아이템이 생성 * 아이템을 먹으면, 5초 뒤 아이템이 놓여있던 자리에 다시 생성 * 맵에 놓인 다른 아이템을 먹을 때마다 인벤토리에 있는 모든 아이템 삭제 # 아이템 테이블 만들기 먼저 개별 아이템을 만들어 봅시다. 개별 아이템은 아이템 테이블에서 정의할 수 있습니다. 아이템 테이블은 **DataSet**으로 만듭니다. **Workspace - MyDesk**에서 콘텍스
[category] | Guides [section] | 기본 제작 가이드 > 데이터 > DB [title] | Data DB 저장 및 불러오기 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=68 [text] | # 학습 과정 소개 게임 중 변경된 데이터 값을 GlobalDataStorage에 저장하고 불러오는 방법에 대해 알아봅니다. # Data 생성 및 불러오기 GlobalDataStorage는 데이터의 저장과 불러오기를 할 수 있는 "보관소"라 할 수 있습니다. 우리는 데이터베이스에서 데이터를 저장하거나 불러올 일이 있을 때 이 "보관소"를 이용하면 됩니다. GlobalDataStorage는 `_DataStorageService:GetGlobalDataStorage`를 통해 생성하거나 불러오기가 가능합니다. GetGlobalData
[category] | Guides [section] | 기본 제작 가이드 > 데이터 > 데이터셋 [title] | 데이터 편집 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=69 [text] | # 학습 과정 소개 데이터 셋을 이용해 데이터를 추가하거나 수정할 수 있습니다. 이번 가이드에서는 데이터의 생성 및 편집 방법, 스크립트로 데이터를 불러오는 방법에 대해 알아봅니다. # 데이터 셋 생성 및 데이터 에디터 열기 1. **Workspace - MyDesk**의 콘텍스트 메뉴에서 **Create DataSet**을 클릭합니다. 2. 생성된 데이터를 더블클릭하여 데이터 에디터를 엽니다. ![2](https://mod-file.dn.nexoncdn.co.kr/bbs/16354715533571c67244b3c0e4ba688a
[category] | Guides [section] | 기본 제작 가이드 > 연출 > 이펙트 [title] | 스킬 이펙트를 뿌려보자! [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=70 [text] | # 학습 과정 소개 메이플스토리 월드에서는 메이플스토리에서 사용되었던 수많은 이펙트 리소스들을 제공하고 있습니다. 그리고 우리는 이러한 이펙트들을 적절한 시점과 위치에 호출해 줌으로써 한층 더 멋진 연출을 구사할 수 있습니다. 이번 과정에서는 특정 키를 누를 때마다 스킬 이펙트가 노출되는 예제를 진행해봄으로써 스크립트를 통해 이펙트를 호출하는 방법에 대해 알아보도록 합니다. ![7](https://mod-file.dn.nexoncdn.co.kr/bbs/1657073589665cedf2671ce1f46b1966a5a7b8ce7817
[category] | Guides [section] | 기본 제작 가이드 > 지형과 이동 > 지형 [title] | 발판 만들기 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=71 [text] | # 학습 과정 소개 여러 오브젝트를 사용해 발판을 만들어 게임의 보는 재미를 풍성하게 만들어봅시다. **FootholdComponent**와 **CustomFootholdComponent** 개념과 발판 편집 방법을 소개합니다. # Foothold 모델로 발판 만들기 **Foothold** 모델을 이용해 발판을 만드는 방법입니다. 타일이 아닌 **Foothold** 모델을 이용해 다채로운 길을 만들 수 있습니다. 1. **Preset List** 패널에서 **Foothold**를 선택합니다. 2. 원하는 모델을 선택해 **Sce
[category] | Guides [section] | 기본 제작 가이드 > 연출 > 카메라 [title] | 플레이어 카메라 제어 [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=72 [text] | # 학습 과정 소개 게임의 메인 카메라는 항상 플레이어를 따라다닙니다. 메인 카메라를 제어하는 camera 컴포넌트는 MapleStoryPlayer 모델이 가지고 있으며 이 모델의 프로퍼티 에디터나 스크립트를 이용해 주요 값을 수정할 수 있습니다. 이번 과정에서는 Camera 컴포넌트를 프로퍼티 에디터를 통해 수정해보며 전반적인 기능을 알아보는 시간을 가져보도록 하겠습니다. # Camera 컴포넌트 접근 Workspace에서 DefaultPlayer 모델을 선택합니다. ![1](https://mod-file.dn.nexoncdn.c
[category] | Guides [section] | 기본 제작 가이드 > 게임 로직/시스템 > 이벤트 [title] | Event System [url] | https://maplestoryworlds-creators.nexon.com/ko/docs?postId=73 [text] | # 학습 과정 소개 크리에이터는 로직을 여러 가지 방법으로 작성할 수 있습니다. 그 방법 중 하나는 **이벤트**를 활용하는 것입니다. 이번 시간에는 메이플스토리 월드의 이벤트 시스템과 여러 이벤트를 다루는 방법을 살펴봅니다. # 이벤트 기반의 로직 구성 로직을 작성하다 보면 **특정 타이밍에 해야 할 일**이 생깁니다. 그럴 때는 **행위가 일어난 주체**가 무엇을 할 것인지 결정해야 합니다. 예를 들어, 월드에서 캐릭터가 공격받았을 때 아래와 같이 구현한다고 가정해 봅시다. 1. **캐릭터의 HP를 감소시키고** 2.