미션 기능 패키지는 플레이어가 완료하여 경험에서 보상과 진행도를 얻을 수 있는 미션을 생성하는 상자 밖 기능을 제공합니다.모든 미션에는 ID, 카테고리 및 플레이어가 미션을 완료하기 위해 완료해야 하는 작업 목록이 있어야 합니다.그러나 작업 목록은 비어있을 수 있으며, 미션의 보상을 즉시 수령할 수 있습니다.
패키지의 사용자 지정 옵션을 사용하여 모든 임무를 사용자 지정하여 독특한 게임 요구 사항을 충족할 수 있습니다. 예를 들어:
- 새로운 플레이어를 경험에 탑승시키고 D1 유지율을 향상시키는 미션을 생성하는 중입니다.
- 중기 또는 장기 목표와 진행 감각을 추가하여 D7과 D30 유지율 타겟팅을 수행하고
- 게임에서 다양한 시스템을 표면화하고 플레이어가 상호 작용하도록 보상하여 참여도를 높입니다.

패키지 가져오기
크리에이터 스토어는 Roblox와 Roblox 커뮤니티가 제작한 모든 자산을 찾을 수 있는 도구 상자의 탭 으로, 모델, 이미지, 메쉬, 오디오, 플러그인, 비디오 및 폰트 자산을 포함하여 프로젝트 내에서 사용할 수 있는 모든 자산을 찾을 수 있습니다.크리에이터 스토어를 사용하여 기능 패키지를 포함하여 개방형 경험에 직접 하나 이상의 자산을 추가할 수 있습니다!
모든 기능 패키지는 적절하게 작동하려면 코어 기능 패키지가 필요합니다.코어 및 미션 기능 패키지 자산이 인벤토리에 있으면 코어 및 미션 기능 패키지 자산을 플랫폼의 모든 프로젝트에서 재사용할 수 있습니다.
인벤토리에서 경험으로 패키지를 가져오려면:
다음 구성 요소의 코어 및 미션 링크를 클릭하여 Studio 내에서 인벤토리에 인벤토리에 추가 링크를 추가하고
도구 모음에서 보기 탭을 선택합니다.
클릭하십시오 도구 상자 . 도구 상자 창이 표시됩니다.
도구 상자 창에서 인벤토리 탭을 클릭하십시오. 내 모델 정렬이 표시됩니다.
클릭하십시오 기능 패키지 핵심 타일, 그리고 미션 기능 패키지 타일.두 패키지 폴더가 모두 탐색기 창에 표시됩니다.
패키지 폴더를 ReplicatedStorage 로 드래그합니다.
미션 정의
각 완료 가능한 미션에는 미션, 구성 옵션 및 선택적 표시 메타데이터를 완료하기 위해 완료해야 하는 작업 세트가 포함되어 있으며, 모두 동일한 폴더에서 스크립트에서 내보낸 유형으로 정의될 수 있습니다.
필수 필드
다음 필드는 각 임무에 필수입니다.
이름 | 유형 | 설명 |
---|---|---|
missionId | string | 주요 미션 테이블 키. 모든 미션은 고유한 문자열로 식별됩니다. |
categoryId | string | 미션은 카테고리에 속해야 하며 UI에서 카테고리별로 그룹화됩니다. |
tasks | table | 플레이어가 미션을 완료하기 위해 완료해야 하는 작업 목록. |
조건 잠금 해제
기본적으로 미션은 플레이어에게 자동으로 잠금 해제되며 정확히 한 번만 완료할 수 있습니다.그러나 다음 선택적 구성 옵션을 사용하여 이 동작을 변경할 수 있습니다.
이름 | 유형 | 설명 |
---|---|---|
prerequisites | table | 미션을 잠금 해제하기 전에 완료해야 하는 다른 미션 ID 목록. |
manualOnly | bool | 미션의 자동 잠금 해제를 비활성화합니다.대신, 미션을 잠금 해제하기 위해 함수를 호출해야 합니다.다른 잠금 조건도 여전히 충족해야 합니다. |
availableAfterUtc | bool | 미션은 UTC의 지정된 시간 전에 잠금 해제할 수 없습니다. |
availableBeforeUtc | bool | 미션은 UTC의 지정된 시간 이후에 잠금 해제할 수 없습니다. 이 시간 전에 잠금 해제되지만 완료되지 않으면 미션이 실패합니다. |
repeatable | bool | 미션은 완료된 후 다시 잠금 해제됩니다. |
repeatLimit | number | 미션이 반복 가능한 경우, 이보다 많은 횟수로 반복할 수 없습니다. |
repeatCooldownSeconds | number | 미션이 반복 가능한 경우, 잠금이 해제되기 전에 지연이 발생합니다. |
expireSeconds | number | 미션이 잠금 해제되고 지정된 시간 내에 완료되지 않으면 대신 실패합니다. |
expireCountOffline | bool | 미션에 expireSeconds 및 expireCountOffline 가 설정되어 있고 플레이어가 실제로 경험에 없을 경우 시간은 미션 만료에 포함됩니다. |
메타데이터
미션에는 미션 사용자 인터페이스에 표시되는 방법을 지정하는 메타데이터가 있습니다.다음 선택적 필드를 사용하여 메타데이터를 사용자 지정할 수 있습니다.
이름 | 유형 | 설명 |
---|---|---|
displayName | string | 사용자 인터페이스에서 미션을 표시할 이름입니다. missionId 대신. |
description | string | 미션에 대한 추가 정보나 컨텍스트를 제공하는 더 긴 텍스트 블록. |
visibleAfterComplete | bool | 설정을 true로 설정하면 미션이 완료되었지만 완료로 표시되었음에도 불구하고 미션 목록에 표시됩니다. |
visibleAfterFailed | bool | 설정을 true로 설정하면 미션이 실패했지만 실패로 표시되었음에도 불구하고 미션 목록에 표시됩니다. |
visibleBeforeUnlocked | bool | 참여 여부가 참으로 설정되면 미션이 표시되지만 완료할 수 있게 되기 전에 목록에 잠겨 있습니다. |
invisibleWhileActive | bool | 진실로 설정되면 미션은 활동적으로 진행되는 동안에도 보이지 않습니다. |
rewards | table | 보상 표시 정보의 목록.
|
작업 정의
각 미션에는 0개 이상의 작업이 있을 수 있습니다.미션에 작업이 없으면 잠금이 해제된 즉시 획득할 수 있습니다; 미션에 하나 이상의 작업이 있으면 작업이 완료되면 플레이어가 미션과 관련된 모든 보상을 수집할 수 있습니다.각 태스크에는 taskId 가 있으며, 특정 임무와 관련된 태스크의 키입니다.
태스크는 두 가지 유형으로 들어옵니다:
- 시간 제한 태스크 - 시간의 다른 시점에서 태스크를 시작하고 중지할 수 있습니다.작업의 타이머가 실행되는 동안 일정 시간이 지나면 작업이 완료됩니다.
- 작업 수 계산 - 작업의 진행률을 추가하거나 설정할 수 있습니다. 진행률이 설정된 값에 도달하면 작업이 완료됩니다.
두 작업 유형 모두 다음 필드를 공유합니다:
이름 | 유형 | 설명 |
---|---|---|
taskType | string | 태스크 유형이 카운트인지 타이밍인지 지정합니다. |
counter | object | (옵션) 이 태스크가 추적하는 카운터.카운터는 숫자 또는 타이머에 대한 플레이어 특정 영구 저장소입니다.여러 태스크가 단일 수정 제안추적할 수 있습니다; 예를 들어, 하나 이상의 태스크가 플레이어가 수집한 코인 수를 추적하면, 모두 동일한 "코인" 수정 제안공유할 수 있습니다.이러한 작업은 0부터 새로 수집된 코인을 독립적으로 추적하거나 카운터 값(이미 수집된 모든 코인)에서 계속 계산할 수 있습니다.
|
metadata | object | (선택사항) UI에서 태스크가 표시되는 방법에 대한 정보.
|
callToAction | object | (옵션) 콜백 함수를 트리거하는 버튼.
|
작업 필드 계산
작업 수는 필수 값이 있습니다. 작업 진행률이 이 금액에 도달하면 작업이 완료됩니다.
이름 | 유형 | 설명 |
---|---|---|
goalCount | number | (선택사항) 태스크를 완료하는 데 필요한 진행률. |
시간 작업 필드
시간 작업에는 소비되는 대상 시간이 있으며, 시작되고 중지됩니다. 대상 시간이 충족되면 작업이 완료됩니다.
이름 | 유형 | 설명 |
---|---|---|
goalSeconds | number | 작업을 완료하기 위해 지나가야 하는 초 수입니다. |
startImmediately | bool | 태스크가 잠금 해제된 후에만 시간 계산을 시작하는 대신 즉시 시간 계산을 시작해야 하는 경우. |
includesOfflineTime | bool | 플레이어가 경험에 활발하지 않은 동안 소요된 시간을 작업에 포함해야 하는 경우. |
카테고리 구성
카테고리는 미션에 대한 카테고리가 사용될 기본값을 가지고 있기 때문에 명시적으로 정의할 필요가 없습니다.그러나, 이러한 값을 ReplicatedStorage.Missions.Configs.Categories에 구성하여 카테고리에 추가 효과를 추가할 수 있습니다.카테고리는 고유한 CategoryIds에 의해 식별되며, 미션 구성에 참조된 것과 동일합니다.
이름 | 유형 | 설명 |
---|---|---|
repeatDelaySeconds | number | (선택사항) 설정되면 카테고리의 모든 미션이 지정된 시간이 지나면 재설정되고, 잠금 해제, 완료 및 보상을 다시 수령할 수 있습니다.반복 가능한 미션과는 달리 지정된 범주 반복 내에서 반복할 수 있습니다. |
서버 논리 통합
서버가 미션 기능 팩과 상호작용하는 방법을 보여주는 ReplicatedStorage.Missions.Server.Examples.MissionsExample 를 살펴보세요.
주로 미션 기능 패키지를 경험에 끌어들인 후 네 가지를 연결해야 합니다.
미션 구성에서 미션 정의.
경험에 논리를 추가하여 작업 진행률 또는 작업에 연결된 카운터를 업데이트합니다.
읽기 파일 README-- 점프 작업으로 미션 점프 진행률 증가Missions.addProgressToTask(player, "Jumping", "Jumps", 1)-- 타임인배틀 작업으로 미션 배틀타임에 타이머를 시작하여Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- 타임인배틀 작업으로 미션 배틀타임 타이머 중지Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- 점프 카운터와 연결된 모든 작업의 진행률이 증가합니다CounterSystem.addCounter(player, "Jumps", 1)-- 타임인배틀 타이머 수정 제안연결된 모든 예약된 태스크에서 타이머를 시작합니다CounterSystem.startTimer(player, "TimeInBattle")-- TimeInBattle 타이머 수정 제안연결된 모든 예약된 태스크의 타이머를 중지합니다CounterSystem.stopTimer(player, "TimeInBattle")미션 완료 처리기 및 옵션으로 잠금 해제 또는 실패 처리기를 설정합니다.완료 처리기를 사용하여 경험의 미션에서 보상을 수여합니다.
읽기 파일 READMElocal function completeHandler(player: Player, missionId: Types.MissionId)print(`{player} completed mission {missionId}`)-- 플레이어에게 보상을 수여합니다.endMissions.setCompletionHandler(missionId, completeHandler)자동으로 잠금 해제되지 않은 미션을 잠금 해제합니다. 미션 기능 패키지 논리는 미션이 완료되기 전에 모든 미션 요구 사항이 충족되고 보상이 컬렉터블합니다.
읽기 파일 READMEMissions.unlockMission(player, "Manual")
상수 구성
코어 기능 패키지의 상수는 두 곳에서 살아갑니다:
공유 상수는 ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants에 살고 있습니다.
이 경우 패키지별 상수, 즉 미션 기능 패키지가 ReplicatedStorage.Missions.Configs.Constants 살고 있습니다.
또한, 번역에 대한 문자열을 하나의 위치로 분리할 수 있습니다: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.
UI 구성 요소 사용자 지정
색상, 글꼴 및 투명도와 같은 패키지 개체를 수정하여 미션 UI의 시각적 표현을 조정할 수 있습니다.예를 들어, ReplicatedStorage.Missions.Configs.Constants에서 작업 진행률을 미션 자체에 직접 표시하도록 SingleTaskMode를 활성화할 수 있습니다. 단일 작업만 있는 미션의 경우.
또한, 경험에 이미 통합할 기존 UI가 미션 기능 패키지와 있는 경우 클라이언트 은 서버에서 플레이어의 미션에 대한 정보를 가져오는 데 필요한 모든 기능을 포함합니다.