[task] | wikipedia [title] | AI 스킬 셋 설치 [category] | Guides [rephrased] | # MCP AI 스킬 셋 설치 본 항목은 메이플스토리 월드(MapleStory Worlds)에서 AI 스킬 셋을 설치하기 위한 사전 준비 사항 및 설치 방법을 다룹니다. ## 사전 준비 AI 스킬 셋을 성공적으로 사용하려면 다음 환경 요건을 충족해야 합니다. 첫째, 크리에이터가 관리하는 월드 프로젝트는 `LocalWorkspace`와 `ExtendedScriptFormat` 기능이 모두 활성화된 상태여야 합니다. 둘째, 크리에이터가 사용할 AI 에이전트가 설치 및 구독된 상태여야 합니다. 지원되는 도구로는 VS Code, [original] | ## 사전 준비 AI 스킬 셋을 사용하려면 몇 가지 사전 준비가 필요합니다. - 크리에이터의 월드가 **LocalWorkspace, ExtendedScriptFormat**을 모두 활성화한 상태여야 합니다. - [VS Code](https://code.visualstudio.com), [Cursor](https://cursor.com), [Claude Code](https://claude.com/product/claude-code) 등 크리에이터가 사용할 AI 에이전트가 **설치, 구독**된 상태여야 합니다. - macOS의 경 [chunk_id] | Guides:1373:0
[task] | knowledge_list [title] | AI ToolKit [category] | Guides [rephrased] | 1. 메이플스토리 월드의 AI ToolKit 기능 활성화 시 간단한 명령을 통해 월드 제작이 가능하며, 사용 전 로컬 워크스페이스 설정과 별도의 AI 에이전트 구독이 필수 조건이다. 2. AI ToolKit의 정상적인 동작을 위해 **로컬 워크스페이스**와 **ExtendedScriptFormat**의 사용이 강제되며, `AI ToolKit Settings` 내 로컬 워크스페이스, MCP 서버, AI 스킬 셋 세 가지 탭의 설정이 모두 완료되어야 한다. 3. AI ToolKit 사용을 위한 월드 생성은 `만들기 - AI와 함께 월드 [original] | 메이플스토리 월드에서 제공하는 AI ToolKit 기능을 활성화하면 간단한 명령을 통해 월드를 제작할 수 있습니다. AI ToolKit을 사용하기 위해서는 사전 준비 단계와 별도의 AI 에이전트 구독이 필요합니다. ## 로컬 워크스페이스 AI ToolKit을 사용하기 위해서는 반드시 **로컬 워크스페이스와 ExtendedScriptFormat**을 사용해야 합니다. 로컬 워크스페이스에 대한 내용은 [LocalWorkspace](docs/?postId=1165) 가이드를 참고하세요. AI ToolKit은 AI ToolKit Se [chunk_id] | Guides:1374:0
[task] | wikipedia [title] | AI ToolKit [category] | Guides [rephrased] | 메이플스토리 월드의 AI ToolKit 기능은 사용자가 간단한 명령어를 입력하여 월드를 제작할 수 있도록 지원하는 도구입니다. 이 기능을 사용하기 위해서는 사전 준비 단계의 완료와 별도의 AI 에이전트 구독이 필수적입니다. AI ToolKit의 정상적인 동작을 위해서는 반드시 **로컬 워크스페이스**와 **ExtendedScriptFormat**을 사용해야 하며, AI ToolKit Settings 내의 로컬 워크스페이스, MCP 서버, AI 스킬 셋 세 가지 탭의 설정이 모두 완료되어야 합니다. 로컬 워크스페이스에 대한 세부 사 [original] | 메이플스토리 월드에서 제공하는 AI ToolKit 기능을 활성화하면 간단한 명령을 통해 월드를 제작할 수 있습니다. AI ToolKit을 사용하기 위해서는 사전 준비 단계와 별도의 AI 에이전트 구독이 필요합니다. ## 로컬 워크스페이스 AI ToolKit을 사용하기 위해서는 반드시 **로컬 워크스페이스와 ExtendedScriptFormat**을 사용해야 합니다. 로컬 워크스페이스에 대한 내용은 [LocalWorkspace](docs/?postId=1165) 가이드를 참고하세요. AI ToolKit은 AI ToolKit Se [chunk_id] | Guides:1374:0
[task] | distill [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | # 유저 제재 관리 월드 인사이트 `PlayerBan`과 `UserService`를 이용해 유저를 특정 기간 또는 영구 제재할 수 있습니다. 월드 인사이트에서 제재된 유저가 플랫폼 탈퇴 후 재가입 시, 이전 제재 이력을 식별하여 제재 상태가 자동으로 승계됩니다. 제재 발동을 위해 **아래 두 작업 모두** 완료해야 합니다. 1. 월드 인사이트에서 제재 유저 등록 2. 해당 월드 스크립트에서 제재 여부 확인 로직 구현 ## 월드 인사이트 제재 등록 제재 대상의 `User Id` 또는 `Profile Code`가 필요합니다. [original] | 월드가 인기가 많아지고, 많은 이들이 플레이를 하다 보면 월드의 규칙을 위반하는 유저가 나타날 수 있습니다. 많은 유저가 즐겁게 월드를 즐길 수 있도록 크리에이터는 그 유저를 적절하게 제재해야 합니다. 메이플스토리 월드에서는 월드 인사이트의 PlayerBan과 UserService의 메소드를 활용해 유저를 특정 기간 혹은 영구 제재할 수 있습니다. [월드 인사이트](https://maplestoryworlds-insight.nexon.com/worlds)를 통해 유저 제재 시, 월드에서 제재된 상태의 유저가 메이플스토리 월드를 탈퇴 [chunk_id] | Guides:1376:0
[task] | extract_knowledge [title] | DataStorage 사용량 제한 활용하기 2 [category] | Guides [rephrased] | # DataStorage 사용량 제한을 위한 변경 감지 저장 (Dirty Check) ## 1. 개념 설명 DataStorage는 데이터 저장 및 조회 시 **Credit**을 소모합니다. 동일한 값으로 반복적인 `Set` 요청을 보낼 경우에도 Credit이 차감되어 사용량 제한에 도달하면 데이터 관리에 실패할 수 있습니다. 이를 방지하기 위해, 저장하려는 신규 데이터와 기존 데이터가 동일한지 비교하여 **값이 실제로 변경된 경우에만** DataStorage로 변경 요청(`SetAndWait`, `SetAsync` 등)을 보내는 [original] | # 학습 과정 소개 DataStorage를 효율적으로 활용하지 않으면 사용량 제한에 도달해 데이터 저장, 조회에 실패해 데이터를 관리에 어려움을 겪을 수 있습니다. DataStorage의 사용량을 효과적으로 관리하는 방법에 대해 알아봅시다. ##### 가이드 * [DataStorage 사용량 제한 알아보기](https://maplestoryworlds-creators.nexon.com/ko/docs/?postId=1044) * [DataStorage 사용량 제한 활용하기](https://maplestoryworlds-creato [chunk_id] | Guides:1372:0
[task] | diverse_qa [title] | AI 스킬 셋 설치 [category] | Guides [rephrased] | 질문: AI 스킬 셋을 사용하려면 크리에이터의 월드에서 어떤 설정이 활성화되어 있어야 하나요? 답변: 크리에이터의 월드가 **LocalWorkspace**와 **ExtendedScriptFormat**을 모두 활성화한 상태여야 합니다. 질문: AI 스킬 셋 사용 시 크리에이터가 준비해야 하는 AI 에이전트 예시로 어떤 것들이 있나요? 답변: [VS Code], [Cursor], [Claude Code] 등이 있으며, 이들은 설치 및 구독된 상태여야 합니다. 질문: macOS에서 메이플스토리 월드 클라이언트를 최초 실행할 때 Ga [original] | ## 사전 준비 AI 스킬 셋을 사용하려면 몇 가지 사전 준비가 필요합니다. - 크리에이터의 월드가 **LocalWorkspace, ExtendedScriptFormat**을 모두 활성화한 상태여야 합니다. - [VS Code](https://code.visualstudio.com), [Cursor](https://cursor.com), [Claude Code](https://claude.com/product/claude-code) 등 크리에이터가 사용할 AI 에이전트가 **설치, 구독**된 상태여야 합니다. - macOS의 경 [chunk_id] | Guides:1373:0
[task] | extract_knowledge [title] | 클라이언트의 TimeScale 조정하기 [category] | Guides [rephrased] | # 클라이언트 TimeScale 조정 ## 개념 설명 `TimeScale`은 월드 내 시간 흐름의 배율을 제어하는 값입니다. 기본값은 `1`이며, 이 값이 변하면 월드 전체의 시간 진행 속도가 그에 따라 가속되거나 감속됩니다. 이 기능은 주로 클라이언트 사이드에서 특정 트리거 영역에 진입했을 때 시각적 효과나 로컬 플레이 경험의 변화를 위해 사용될 수 있습니다. ## API 사용법 클라이언트 TimeScale을 조정하기 위해 다음 컴포넌트와 서비스를 조합하여 사용합니다. 1. **CurrentTime 로직**: `NowTim [original] | 주황색 광선 영역에 닿으면 TimeScale 값이 증가하고, 초록색 광선 영역에서는 TimeScale 값이 감소하게 만들어 봅시다. TimeScale 값 변화에 따라 월드 전체의 시간의 흐름이 달라지는 것을 확인할 수 있습니다. TimeScale의 변화를 확인하기 위해 맵에 엔티티를 추가하고, 머티리얼을 지정해봅시다. 머티리얼 지정 방법은 [머티리얼 응용하기](/docs?postId=1323)를 참고하세요. 1. 맵에 새로운 **SpeedUpLight** 엔티티를 생성하고, **TriggerComponent**를 추가합니다 [chunk_id] | Guides:1370:3
[task] | diverse_qa [title] | 클라이언트의 TimeScale 조정하기 [category] | Guides [rephrased] | 질문: TimeScale 값이 증가하도록 설정된 광선 영역의 색상은 무엇인가요? 답변: TimeScale 값이 증가하도록 설정된 광선 영역은 주황색입니다. 질문: TimeScale 값이 감소하도록 설정된 광선 영역의 색상은 무엇인가요? 답변: TimeScale 값이 감소하도록 설정된 광선 영역은 초록색입니다. 질문: SpeedUpLight 엔티티에 트리거 영역을 생성하기 위해 추가해야 하는 컴포넌트는 무엇인가요? 답변: TriggerComponent를 추가해야 합니다. 질문: CurrentTime 로직에서 NowTimeScal [original] | 주황색 광선 영역에 닿으면 TimeScale 값이 증가하고, 초록색 광선 영역에서는 TimeScale 값이 감소하게 만들어 봅시다. TimeScale 값 변화에 따라 월드 전체의 시간의 흐름이 달라지는 것을 확인할 수 있습니다. TimeScale의 변화를 확인하기 위해 맵에 엔티티를 추가하고, 머티리얼을 지정해봅시다. 머티리얼 지정 방법은 [머티리얼 응용하기](/docs?postId=1323)를 참고하세요. 1. 맵에 새로운 **SpeedUpLight** 엔티티를 생성하고, **TriggerComponent**를 추가합니다 [chunk_id] | Guides:1370:3
[task] | knowledge_list [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | * 메이플스토리 월드에서 유저 제재는 월드 인사이트의 PlayerBan 기능과 mLua 스크립트 내 UserService 메소드의 조합을 통해 특정 기간 또는 영구적으로 집행됩니다. * 월드 인사이트를 통해 등록된 제재는 유저가 플랫폼 탈퇴 후 재가입 시에도 이전 제재 이력이 자동 승계되어 제재 상태가 유지됩니다. * 유저의 월드 입장 제한이 실제로 적용되려면 월드 인사이트에서의 제재 등록과 해당 월드 스크립트 내 제재 여부 확인 로직이라는 두 가지 작업이 모두 완료되어야 합니다. * 월드 인사이트의 PlayerBan [original] | 월드가 인기가 많아지고, 많은 이들이 플레이를 하다 보면 월드의 규칙을 위반하는 유저가 나타날 수 있습니다. 많은 유저가 즐겁게 월드를 즐길 수 있도록 크리에이터는 그 유저를 적절하게 제재해야 합니다. 메이플스토리 월드에서는 월드 인사이트의 PlayerBan과 UserService의 메소드를 활용해 유저를 특정 기간 혹은 영구 제재할 수 있습니다. [월드 인사이트](https://maplestoryworlds-insight.nexon.com/worlds)를 통해 유저 제재 시, 월드에서 제재된 상태의 유저가 메이플스토리 월드를 탈퇴 [chunk_id] | Guides:1376:0
[task] | extract_knowledge [title] | AI 스킬 셋 설치 [category] | Guides [rephrased] | # MCP AI 스킬 셋 설치 ## 1. 개념 설명 MCP AI 스킬 셋은 메이플스토리 월드(Worlds)의 로컬 워크스페이스(LocalWorkspace)에서 AI 에이전트를 통해 스크립트를 작성하거나 관리할 때 사용되는 도구입니다. 이 스킬 셋은 크리에이터의 개발 환경(AI 에이전트)과 메이플스토리 월드 클라이언트 간의 연동을 담당하며, `ExtendedScriptFormat`이 활성화된 프로젝트에서만 정상적으로 동작합니다. ## 2. API 및 환경 요구 사항 MCP AI 스킬 셋을 사용하려면 다음 환경 조건을 충족해야 합니 [original] | ## 사전 준비 AI 스킬 셋을 사용하려면 몇 가지 사전 준비가 필요합니다. - 크리에이터의 월드가 **LocalWorkspace, ExtendedScriptFormat**을 모두 활성화한 상태여야 합니다. - [VS Code](https://code.visualstudio.com), [Cursor](https://cursor.com), [Claude Code](https://claude.com/product/claude-code) 등 크리에이터가 사용할 AI 에이전트가 **설치, 구독**된 상태여야 합니다. - macOS의 경 [chunk_id] | Guides:1373:0
[task] | diverse_qa [title] | AI ToolKit [category] | Guides [rephrased] | 질문: 메이플스토리 월드에서 AI ToolKit 기능을 활성화하면 어떤 장점이 있나요? 답변: AI ToolKit 기능을 활성화하면 간단한 명령을 통해 월드를 제작할 수 있습니다. 질문: AI ToolKit을 사용하기 위해 반드시 사용해야 하는 환경과 형식은 무엇인가요? 답변: AI ToolKit을 사용하기 위해서는 반드시 로컬 워크스페이스와 ExtendedScriptFormat을 사용해야 합니다. 질문: AI ToolKit이 정상적으로 동작하기 위해 AI ToolKit Settings에서 어떤 탭들의 설정을 모두 마쳐야 하나요 [original] | 메이플스토리 월드에서 제공하는 AI ToolKit 기능을 활성화하면 간단한 명령을 통해 월드를 제작할 수 있습니다. AI ToolKit을 사용하기 위해서는 사전 준비 단계와 별도의 AI 에이전트 구독이 필요합니다. ## 로컬 워크스페이스 AI ToolKit을 사용하기 위해서는 반드시 **로컬 워크스페이스와 ExtendedScriptFormat**을 사용해야 합니다. 로컬 워크스페이스에 대한 내용은 [LocalWorkspace](docs/?postId=1165) 가이드를 참고하세요. AI ToolKit은 AI ToolKit Se [chunk_id] | Guides:1374:0
[task] | distill [title] | StateSet 제어하기 [category] | Guides [rephrased] | # StateSet 제어하기 StateSet은 엔티티의 상태 머신을 정의하며, 상태 추가 및 전이 조건 설정이 가능합니다. `StateComponent`의 `StateSetId` 프로퍼티에 StateSet ID를 설정하면 플레이 시점에 로드됩니다. ## StateSet 종류 | 이름 | 설명 | | --- | --- | | StateSet | 크리에이터가 정의하는 기본 StateSet입니다. | | Player Preset | 플레이어 엔티티의 기본 상태 머신입니다. | | ChaseAI Preset | `AIChaseComp [original] | StateSet은 엔티티의 상태를 제어할 때 사용합니다. StateSet Editor를 활용하면 보다 간편하게 상태 머신의 흐름을 시각적으로 구성할 수 있습니다. ##### 참고 가이드 * [타입의 이해](/docs?postId=1038) * [엔티티의 상태 제어하기](/docs?postId=686) ##### 참고 API Reference * [StateComponent](/apiReference/Components/StateComponent) * [StateChangeEvent](/apiReference/Events/State [chunk_id] | Guides:1398:0
[task] | extract_knowledge [title] | AI ToolKit [category] | Guides [rephrased] | # AI ToolKit 설정 및 로컬 워크스페이스 연동 ## 1. 개념 설명 메이플스토리 월드의 AI ToolKit은 자연어 명령을 통해 월드 파일을 생성 및 수정하는 기능을 제공합니다. 이 기능은 클라우드 기반이 아닌, 크리에이터의 로컬 환경에서 실행되는 MCP(Model Context Protocol) 서버와 AI 에이전트를 매개로 동작합니다. 따라서 AI ToolKit을 활용하기 위해서는 **로컬 워크스페이스(Local Workspace)** 와 **ExtendedScriptFormat** 이 반드시 활성화된 상태여야 하며, [original] | 메이플스토리 월드에서 제공하는 AI ToolKit 기능을 활성화하면 간단한 명령을 통해 월드를 제작할 수 있습니다. AI ToolKit을 사용하기 위해서는 사전 준비 단계와 별도의 AI 에이전트 구독이 필요합니다. ## 로컬 워크스페이스 AI ToolKit을 사용하기 위해서는 반드시 **로컬 워크스페이스와 ExtendedScriptFormat**을 사용해야 합니다. 로컬 워크스페이스에 대한 내용은 [LocalWorkspace](docs/?postId=1165) 가이드를 참고하세요. AI ToolKit은 AI ToolKit Se [chunk_id] | Guides:1374:0
[task] | knowledge_list [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | [Guides] 기본 제작 가이드 > 게임 서비스 월드 유저 제재 관리 문서에서 추출한 핵심 사실 목록입니다. 1. 제재 등록 및 해지 작업은 `Action` 필드를 통해 구분되며, `REGISTER`는 제재를 실행하고 `UNREGISTER`는 제재를 해지하는 상태를 의미합니다. 2. 제재 대상 유저의 식별자 타입은 `PlayerIdentifyType` 필드로 지정하며, 계정 고유 식별자를 사용할 경우 `UserId`, 유저의 프로필 코드를 사용할 경우 `ProfileCode` 값 중 하나를 선택하여 입력해야 합니다. 3. `Pl [original] | | Action | PlayerIdentifyType | PlayerIdentifier | ReasonKey | StartTime | EndTime | | --- | --- | --- | --- | --- | --- | | REGISTER | ProfileCode | AAAAA | Default | 2026-04-30T07:00:00Z | 2026-05-30T07:00:00Z | | REGISTER | UserId | BBBBB | Scam | 2026-04-30T07:00:00Z | | * **Action**: 현재 제재 상태를 [chunk_id] | Guides:1376:1
[task] | distill [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | # 게임 서비스 월드 유저 제재 관리 ## 1. CSV 등록/해제 포맷 제재 등록 및 해제는 아래 CSV 포맷을 따릅니다. | 필드 | 설명 | | :--- | :--- | | `Action` | **REGISTER**: 제재, **UNREGISTER**: 제재 해지 | | `PlayerIdentifyType` | **UserId**: 계정 고유 ID, **ProfileCode**: 프로필 코드 (택 1) | | `PlayerIdentifier` | `PlayerIdentifyType`에 따른 실제 식별자 값 | | `Reaso [original] | | Action | PlayerIdentifyType | PlayerIdentifier | ReasonKey | StartTime | EndTime | | --- | --- | --- | --- | --- | --- | | REGISTER | ProfileCode | AAAAA | Default | 2026-04-30T07:00:00Z | 2026-05-30T07:00:00Z | | REGISTER | UserId | BBBBB | Scam | 2026-04-30T07:00:00Z | | * **Action**: 현재 제재 상태를 [chunk_id] | Guides:1376:1
[task] | knowledge_list [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | * `BanGateLogic` 컴포넌트는 `kickDelaySeconds`라는 `number` 타입의 Property를 가지며 기본값은 10입니다. * `ShowBanPopup`은 `[client]` 실행 공간에서 동작하는 `void` 타입의 Method로, `string` 타입의 `message` 매개변수를 받아 `_UIPopup:Open(message, nil, nil)`을 호출하여 팝업 메시지를 표시합니다. * `HandleUserEnterEvent`는 `[server only]` 실행 공간과 `[service Us [original] | 유저가 월드에 입장할 때 제재 여부를 확인하고, 제재 대상이라면 사유 메시지를 팝업으로 표시한 뒤 10초 후 월드에서 추방하는 예제입니다. 1. 새로운 Logic을 생성합니다. 2. 이름을 `BanGateLogic`으로 변경하고, 아래와 같이 작성합니다. ```lua Property: number kickDelaySeconds = 10 Method: [client] void ShowBanPopup(string message) { -- 제재 사유 메시지를 팝업 [chunk_id] | Guides:1376:2
[task] | wikipedia [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | # 메이플스토리 월드 유저 제재 관리 메이플스토리 월드(MapleStory Worlds)에서 크리에이터는 월드 규칙을 위반하는 유저를 적절히 제재함으로써 다른 유저들이 쾌적하게 게임을 즐길 수 있는 환경을 유지할 수 있습니다. 플랫폼은 월드 인사이트(World Insight)의 `PlayerBan` 기능과 `UserService` 메서드를 결합하여 유저를 특정 기간 동안 또는 영구적으로 제재하는 것을 지원합니다. 월드 인사이트를 통해 제재가 등록되면, 해당 유저가 메이플스토리 월드 서비스에서 탈퇴 후 재가입하더라도 플랫폼은 이전 [original] | 월드가 인기가 많아지고, 많은 이들이 플레이를 하다 보면 월드의 규칙을 위반하는 유저가 나타날 수 있습니다. 많은 유저가 즐겁게 월드를 즐길 수 있도록 크리에이터는 그 유저를 적절하게 제재해야 합니다. 메이플스토리 월드에서는 월드 인사이트의 PlayerBan과 UserService의 메소드를 활용해 유저를 특정 기간 혹은 영구 제재할 수 있습니다. [월드 인사이트](https://maplestoryworlds-insight.nexon.com/worlds)를 통해 유저 제재 시, 월드에서 제재된 상태의 유저가 메이플스토리 월드를 탈퇴 [chunk_id] | Guides:1376:0
[task] | extract_knowledge [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | # 유저 제재 관리 (Player Ban) ## 1. 개념 설명 메이플스토리 월드에서는 월드의 규칙을 위반한 유저를 제한하기 위해 제재(Ban) 시스템을 제공합니다. 제재는 **월드 인사이트(World Insight)** 와 **mLua 스크립트** 의 연동을 통해 수행됩니다. 제재 상태는 월드 내에서만 유효하며, 해당 유저가 플랫폼에서 탈퇴 후 재가입하더라도 월드 인사이트가 이전 제재 이력을 식별하여 제재 상태를 자동으로 승계합니다. 유저를 제재하고 월드 입장을 제한하려면 다음 두 가지 조건이 모두 충족되어야 합니다. 1. [original] | 월드가 인기가 많아지고, 많은 이들이 플레이를 하다 보면 월드의 규칙을 위반하는 유저가 나타날 수 있습니다. 많은 유저가 즐겁게 월드를 즐길 수 있도록 크리에이터는 그 유저를 적절하게 제재해야 합니다. 메이플스토리 월드에서는 월드 인사이트의 PlayerBan과 UserService의 메소드를 활용해 유저를 특정 기간 혹은 영구 제재할 수 있습니다. [월드 인사이트](https://maplestoryworlds-insight.nexon.com/worlds)를 통해 유저 제재 시, 월드에서 제재된 상태의 유저가 메이플스토리 월드를 탈퇴 [chunk_id] | Guides:1376:0
[task] | knowledge_list [title] | StateSet 제어하기 [category] | Guides [rephrased] | StateSet은 엔티티의 상태를 제어할 때 사용되며, 상태 추가 및 상태 간 전이 조건 정의 기능을 제공합니다. StateSet Editor를 활용하면 상태 머신의 흐름을 시각적으로 구성하여 보다 간편하게 제작할 수 있습니다. 크리에이터는 StateSet, Player Preset, ChaseAI Preset, WanderAI Preset의 4가지 프리셋 및 기본 StateSet을 활용할 수 있습니다. 기본 StateSet은 크리에이터가 직접 상태를 추가하고 전이 조건을 정의할 수 있는 기본 StateSet입니다. Play [original] | StateSet은 엔티티의 상태를 제어할 때 사용합니다. StateSet Editor를 활용하면 보다 간편하게 상태 머신의 흐름을 시각적으로 구성할 수 있습니다. ##### 참고 가이드 * [타입의 이해](/docs?postId=1038) * [엔티티의 상태 제어하기](/docs?postId=686) ##### 참고 API Reference * [StateComponent](/apiReference/Components/StateComponent) * [StateChangeEvent](/apiReference/Events/State [chunk_id] | Guides:1398:0
[task] | diverse_qa [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | 질문: Action 필드에서 'REGISTER'와 'UNREGISTER'의 각각의 의미는 무엇인가요? 답변: REGISTER는 제재를 등록(시행)하는 상태를 의미하며, UNREGISTER는 제재를 해지(해제)하는 상태를 의미합니다. 질문: PlayerIdentifyType에 입력할 수 있는 값은 무엇이며, 각각 무엇을 나타내나요? 답변: 입력할 수 있는 값은 UserId와 ProfileCode 두 가지입니다. UserId는 계정 고유의 식별자이며, ProfileCode는 유저의 프로필 코드를 나타냅니다. 질문: EndTime 필 [original] | | Action | PlayerIdentifyType | PlayerIdentifier | ReasonKey | StartTime | EndTime | | --- | --- | --- | --- | --- | --- | | REGISTER | ProfileCode | AAAAA | Default | 2026-04-30T07:00:00Z | 2026-05-30T07:00:00Z | | REGISTER | UserId | BBBBB | Scam | 2026-04-30T07:00:00Z | | * **Action**: 현재 제재 상태를 [chunk_id] | Guides:1376:1
[task] | distill [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | # 유저 제재 관리 (Ban Gate) 유저 입장 시 제재 여부를 확인하고, 제재 대상이면 사유 팝업 표시 후 지정 시간(기본 10초) 후 추방합니다. ## 1. `BanGateLogic` 구성 `BanGateLogic` 컴포넌트에서 `UserService`의 `UserEnterEvent`를 처리합니다. ```lua Property: number kickDelaySeconds = 10 Method: [client] void ShowBanPopup(string message) { _UIPopup:Open(message [original] | 유저가 월드에 입장할 때 제재 여부를 확인하고, 제재 대상이라면 사유 메시지를 팝업으로 표시한 뒤 10초 후 월드에서 추방하는 예제입니다. 1. 새로운 Logic을 생성합니다. 2. 이름을 `BanGateLogic`으로 변경하고, 아래와 같이 작성합니다. ```lua Property: number kickDelaySeconds = 10 Method: [client] void ShowBanPopup(string message) { -- 제재 사유 메시지를 팝업 [chunk_id] | Guides:1376:2
[task] | diverse_qa [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | 질문: 메이플스토리 월드에서 유저를 특정 기간 또는 영구적으로 제재하기 위해 활용할 수 있는 두 가지 주요 도구는 무엇인가요? 답변: 월드 인사이트의 PlayerBan 기능과 UserService의 메소드를 활용하여 유저를 제재할 수 있습니다. 질문: 월드 인사이트를 통해 유저를 제재했을 때, 해당 유저가 플랫폼에서 탈퇴 후 재가입한 경우 어떤 처리가 이루어집니까? 답변: 플랫폼에서 유저의 이전 제재 이력을 식별하여 제재 유무를 자동으로 승계합니다. 질문: 유저를 제재하고 월드 입장을 제한하기 위해 완료해야 하는 두 가지 필수 [original] | 월드가 인기가 많아지고, 많은 이들이 플레이를 하다 보면 월드의 규칙을 위반하는 유저가 나타날 수 있습니다. 많은 유저가 즐겁게 월드를 즐길 수 있도록 크리에이터는 그 유저를 적절하게 제재해야 합니다. 메이플스토리 월드에서는 월드 인사이트의 PlayerBan과 UserService의 메소드를 활용해 유저를 특정 기간 혹은 영구 제재할 수 있습니다. [월드 인사이트](https://maplestoryworlds-insight.nexon.com/worlds)를 통해 유저 제재 시, 월드에서 제재된 상태의 유저가 메이플스토리 월드를 탈퇴 [chunk_id] | Guides:1376:0
[task] | distill [title] | StateSet 제어하기 [category] | Guides [rephrased] | ### 상태 노드 생성 및 설정 * **생성**: 캔버스 우클릭 > `Create State Node` 또는 UI의 `[+ Node]` 버튼 클릭. * **시작 노드 지정**: 특정 노드 선택 후 컨텍스트 메뉴 `Set Start Node` 선택. 지정 시 노드 색상이 파란색으로 변경되며, 반드시 하나 이상 지정해야 합니다. ### 상태 노드 이름 규칙 * StateSet 내 **고유한 이름** 필수. * 허용 문자: 대문자 알파벳, 숫자, `_` 조합. * **네이티브 예약어 사용 금지**: `IDLE`, [original] | ### 상태 노드 생성 상태 노드는 두 가지 방법으로 생성할 수 있습니다. 추가한 노드의 상태를 설정창에서 변경할 수 있습니다. * 캔버스에서 마우스 우클릭 - Create State Node 선택 * 좌측 상단의 **[+ Node]** 버튼 클릭 ### 시작 노드 지정 State가 어떤 노드부터 시작할지를 결정하는 **시작 노드**를 반드시 지정해야 합니다. 시작 노드로 정할 노드를 선택하고, 컨텍스트 메뉴에서 Set Start Node를 선택합니다. 시작 노드는 색상이 파란색으로 변경됩니다. ![[object Objec [chunk_id] | Guides:1398:1
[task] | wikipedia [title] | StateSet 제어하기 [category] | Guides [rephrased] | # 게임 로직 StateSet 제어하기 **StateSet**은 메이플스토리 월드에서 엔티티의 상태를 제어하기 위해 사용되는 컴포넌트입니다. StateSet Editor를 활용하면 복잡한 상태 머신의 흐름을 코딩 없이 시각적으로 구성할 수 있어, 게임 로직 설계의 효율성을 높일 수 있습니다. 이 주제를 이해하기 위해 [타입의 이해](/docs?postId=1038) 및 [엔티티의 상태 제어하기](/docs?postId=686) 가이드를 참고하는 것이 좋습니다. 또한 관련 API 문서로는 [StateComponent](/apiRe [original] | StateSet은 엔티티의 상태를 제어할 때 사용합니다. StateSet Editor를 활용하면 보다 간편하게 상태 머신의 흐름을 시각적으로 구성할 수 있습니다. ##### 참고 가이드 * [타입의 이해](/docs?postId=1038) * [엔티티의 상태 제어하기](/docs?postId=686) ##### 참고 API Reference * [StateComponent](/apiReference/Components/StateComponent) * [StateChangeEvent](/apiReference/Events/State [chunk_id] | Guides:1398:0
[task] | diverse_qa [title] | StateSet 제어하기 [category] | Guides [rephrased] | 질문: StateSet의 주요 용도는 무엇인가요? 답변: StateSet은 엔티티의 상태를 제어할 때 사용합니다. 질문: StateSet Editor를 활용하면 어떤 장점이 있나요? 답변: StateSet Editor를 활용하면 보다 간편하게 상태 머신의 흐름을 시각적으로 구성할 수 있습니다. 질문: StateSet에서 정의한 것을 플레이 시점에 로드하기 위해 어떤 컴포넌트의 프로퍼티에 설정해야 하나요? 답변: 크리에이터가 정의한 StateSet을 StateComponent의 StateSetId 프로퍼티 값으로 설정하면, 플레이 [original] | StateSet은 엔티티의 상태를 제어할 때 사용합니다. StateSet Editor를 활용하면 보다 간편하게 상태 머신의 흐름을 시각적으로 구성할 수 있습니다. ##### 참고 가이드 * [타입의 이해](/docs?postId=1038) * [엔티티의 상태 제어하기](/docs?postId=686) ##### 참고 API Reference * [StateComponent](/apiReference/Components/StateComponent) * [StateChangeEvent](/apiReference/Events/State [chunk_id] | Guides:1398:0
[task] | extract_knowledge [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | # 월드 유저 제재 관리 ## 개념 설명 월드 유저 제재는 크리에이터가 특정 유저의 월드 입장을 제한하는 정책입니다. 제재는 월드 인사이트(World Insight)에서 등록되며, 실제 월드 내에서의 집행은 스크립트를 통해 이루어집니다. 월드 인사이트에 제재 정보를 등록하는 것만으로는 유저의 입장이 자동으로 차단되지 않으므로, 크리에이터는 `UserService` API를 사용하여 유저 입장 시점에 제재 여부를 확인하고 처리하는 로직을 구현해야 합니다. 제재 정보는 다음과 같은 속성을 가집니다. * **Action**: [original] | | Action | PlayerIdentifyType | PlayerIdentifier | ReasonKey | StartTime | EndTime | | --- | --- | --- | --- | --- | --- | | REGISTER | ProfileCode | AAAAA | Default | 2026-04-30T07:00:00Z | 2026-05-30T07:00:00Z | | REGISTER | UserId | BBBBB | Scam | 2026-04-30T07:00:00Z | | * **Action**: 현재 제재 상태를 [chunk_id] | Guides:1376:1
[task] | diverse_qa [title] | 월드 유저 제재 관리 [category] | Guides [rephrased] | 질문: 이 문서의 예제 스크립트가 수행하는 주요 기능은 무엇인가요? 답변: 유저가 월드에 입장할 때 제재 여부를 확인하고, 제재 대상이라면 사유 메시지를 팝업으로 표시한 뒤 10초 후 월드에서 추방하는 기능입니다. 질문: `BanGateLogic` 컴포넌트의 `kickDelaySeconds` 프로퍼티의 기본값은 얼마인가요? 답변: 10입니다. 질문: `ShowBanPopup` 메서드에서 팝업을 열기 위해 호출되는 서비스는 무엇인가요? 답변: `_UIPopup` 서비스입니다. 질문: 유저 입장 시 제재 여부를 확인하는 이벤트 핸 [original] | 유저가 월드에 입장할 때 제재 여부를 확인하고, 제재 대상이라면 사유 메시지를 팝업으로 표시한 뒤 10초 후 월드에서 추방하는 예제입니다. 1. 새로운 Logic을 생성합니다. 2. 이름을 `BanGateLogic`으로 변경하고, 아래와 같이 작성합니다. ```lua Property: number kickDelaySeconds = 10 Method: [client] void ShowBanPopup(string message) { -- 제재 사유 메시지를 팝업 [chunk_id] | Guides:1376:2
[task] | diverse_qa [title] | StateSet 제어하기 [category] | Guides [rephrased] | 질문: 상태 노드를 생성하는 두 가지 방법은 무엇인가요? 답변: 상태 노드는 캔버스에서 마우스 우클릭 후 'Create State Node'를 선택하거나, 좌측 상단의 '[+ Node]' 버튼을 클릭하는 두 가지 방법으로 생성할 수 있습니다. 질문: StateSet의 시작 노드를 지정하지 않으면 어떤 문제가 발생합니까? 답변: State가 어떤 노드부터 시작할지를 결정하는 시작 노드를 반드시 지정해야 하므로, 지정하지 않으면 상태 로직이 올바르게 시작되지 않습니다. 질문: 시작 노드로 지정된 노드의 색상은 어떻게 변하나요? 답변 [original] | ### 상태 노드 생성 상태 노드는 두 가지 방법으로 생성할 수 있습니다. 추가한 노드의 상태를 설정창에서 변경할 수 있습니다. * 캔버스에서 마우스 우클릭 - Create State Node 선택 * 좌측 상단의 **[+ Node]** 버튼 클릭 ### 시작 노드 지정 State가 어떤 노드부터 시작할지를 결정하는 **시작 노드**를 반드시 지정해야 합니다. 시작 노드로 정할 노드를 선택하고, 컨텍스트 메뉴에서 Set Start Node를 선택합니다. 시작 노드는 색상이 파란색으로 변경됩니다. ![[object Objec [chunk_id] | Guides:1398:1
[task] | distill [title] | StateSet 제어하기 [category] | Guides [rephrased] | # 게임 로직 StateSet 제어하기 StateSet Editor에서 노드 간 연결(Transition)을 생성하여 상태 전이를 정의합니다. 조건 설정 시 전이 선은 흰색, 미설정 시 노란색으로 표시됩니다. ### 전이 생성 절차 1. 시작 State 선택 후 컨텍스트 메뉴의 **Make Transition** 실행 2. 생성된 선을 드래그하여 도착 노드에 연결 3. 선 선택 후 프로퍼티 창에서 값 및 조건 설정 ### 프로퍼티 | 프로퍼티 | 설명 | | :--- | :--- | | **Previous Node Name** [original] | StateSet Editor에서 노드와 노드를 연결해 전이를 생성할 수 있습니다. 조건이 설정되면 전이를 나타내는 선이 흰색으로 표시되고, 조건이 없는 경우 노란색으로 표시됩니다. 1. 전이를 생성할 **State를 선택 - 컨텍스트 메뉴 - Make Transition**을 선택합니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/178097323776218d2468d24f54f5e9d81e75ee6e01073.png "make transition") 2. 생성된 선을 [chunk_id] | Guides:1398:2
[task] | knowledge_list [title] | StateSet 제어하기 [category] | Guides [rephrased] | 제공된 문서 텍스트만을 기반으로 추출한 핵심 사실 목록입니다. 1. 상태 노드는 캔버스에서 마우스 우클릭 후 `Create State Node`를 선택하거나, 좌측 상단의 `[+ Node]` 버튼을 클릭하는 두 가지 방법으로 생성할 수 있습니다. 2. 생성된 상태 노드의 상태는 설정창에서 변경할 수 있습니다. 3. State의 시작점을 결정하는 시작 노드는 반드시 지정해야 하며, 시작 노드로 정할 노드를 선택한 뒤 컨텍스트 메뉴에서 `Set Start Node`를 선택하여 지정합니다. 4. 시작 노드로 지정된 노드는 색상이 파란색 [original] | ### 상태 노드 생성 상태 노드는 두 가지 방법으로 생성할 수 있습니다. 추가한 노드의 상태를 설정창에서 변경할 수 있습니다. * 캔버스에서 마우스 우클릭 - Create State Node 선택 * 좌측 상단의 **[+ Node]** 버튼 클릭 ### 시작 노드 지정 State가 어떤 노드부터 시작할지를 결정하는 **시작 노드**를 반드시 지정해야 합니다. 시작 노드로 정할 노드를 선택하고, 컨텍스트 메뉴에서 Set Start Node를 선택합니다. 시작 노드는 색상이 파란색으로 변경됩니다. ![[object Objec [chunk_id] | Guides:1398:1