홈 › 모딩 정보 › 맵 팩의 구조
01장

맵 팩의 구조

.oamap zip, oamap.yaml 매니페스트, 패커가 쓰는 맵 인덱스, 그리고 맵의 크기와 지형지물로 게임에 맞는지 정하는 방식.

패키지

.oamap은 팩 폴더를 zip으로 묶은 것으로, oamap.yaml이 최상위나 최상위에 있는 유일한 폴더 안에 있습니다(Finder의 ‘압축’으로 만들면 이렇게 됩니다). 아카이브 규칙은 모드 패키지와 같습니다. 무압축 저장 또는 deflate 압축 항목만 쓰고, 링크, 장치 이름, 절대 경로, .. 경로는 쓸 수 없으며, 대소문자만 다른 두 이름도 안 되고, 압축을 풀었을 때 최대 4 GiB입니다.

my-maps.oamap플레이어가 다운로드하거나 여는 파일├─ oamap.yaml필수 매니페스트: ID, 이름, 버전, 제작자, packaging, 맵 인덱스├─ Ridge.tnt · Ridge.ota맵 하나: 지형(.tnt)과 설정(.ota)├─ Long Lakes.tnt · Long Lakes.ota또 다른 맵. 팩 하나에 맵 1~256개└─ README그 밖의 파일은 함께 담기지만 무시됩니다

매니페스트

엄격한 YAML입니다. 문서 하나, 최상위 매핑 하나이며 앵커와 블록 스칼라는 쓸 수 없습니다. ID는 1~32바이트의 소문자 케밥 케이스이며, 팩이 설치되는 폴더 이름이 됩니다. 표준에 없는 키는 거부됩니다.

oamap: 1
id: my-maps                  # 케밥 케이스, 1~32바이트. 설치 폴더 이름
name: My Maps
version: "1.0"             # 자유 텍스트, 순서를 따지지 않음
description: Two maps for four and ten players
author: {name: A. Mapper}
packaging: {revision: 1, date: 2026-10-18, packager: A. Mapper}
requires: {engine: ">= 0.8.0"}   # 엔진 범위는 따옴표로 감싸세요. 따옴표 없는 >는 블록 스칼라를 시작하므로 거부됩니다
# maps: 항목은 oa-tool pack이 대신 작성합니다(아래 인덱스)

인덱스

oa-tool pack은 폴더에 있는 맵 중 Network 스키마가 있는 맵마다 maps 항목을 경로의 바이트 순서대로 작성합니다. 폴더에서 직접 항목을 적어 맵의 이름, 설명, 인원을 정할 수도 있으며, 나머지는 항상 계산됩니다.

키규칙
stem확장자를 뺀 맵 파일 이름. 폴더에 없는 이름이면 오류입니다.
name, description폴더에 적은 항목에서 정하거나 맵에서 가져옵니다. 패키징된 항목과 같은 규칙을 따릅니다.
players맵이 의도한 인원, 2~10명.
size, preview, files폴더에서 정하더라도 항상 패커가 계산합니다.

맵이 게임에 맞는 조건

게임에 맵이 지정한 타일셋, 지형지물, 유닛이 있으면 그 맵은 게임에 맞습니다. 콘텐츠 라이브러리는 모든 팩을 기본 게임과 모든 모드에 대해 검사하고 그 판정을 기록합니다. 모드 페이지의 “플레이 가능한 맵” 수와 맵의 모드 목록이 여기서 나옵니다.

확장팩이 필요한 팩은 requiredExpansions에 밝힙니다. 기본 게임만으로는 맞지 않는 맵도 계속 표시되며, 게임이 왜 불러올 수 없는지 알려 줍니다.

설치 위치

파일 이름이 아니라 매니페스트의 ID에 따라 Documents/Open Annihilation/Maps/에 설치됩니다. 같은 버전의 새 리비전은 폴더를 교체하고, 다른 버전은 나란히 설치될 수 있습니다. 무엇이든 쓰기 전에 모든 것을 먼저 검사합니다.