FastAsyncWorldEdit(FAWE)는 WorldEdit에서 갈라져 나온 마인크래프트: 자바 에디션 월드 편집 플러그인이다. WorldEdit의 선택·명령·API 사용 방식을 유지하면서 청크 단위 배치, 비동기 처리, 압축된 작업 기록과 추가 브러시·마스크·패턴을 제공한다. WorldEdit API에 의존하는 플러그인은 FAWE를 대체 구현으로 사용할 수 있다.[1]

설치

  1. 서버 버전과 플랫폼에 맞는 FAWE JAR을 내려받는다.
  2. 기존 WorldEdit JAR이 있다면 서버를 종료한 상태에서 제거하고 FAWE를 plugins 폴더에 넣는다.
  3. 서버를 시작해 plugins/FastAsyncWorldEdit/config.yml을 생성한다.
  4. 건축 그룹별 최대 변경 블록 수, 실행 취소 기록, 허용 영역과 권한을 설정한다.
  5. 작은 시험 영역에서 선택·붙여넣기·실행 취소와 보호 플러그인 연동을 확인한다.

FAWE는 WorldEdit와 함께 중복 설치하는 부가 플러그인이 아니라 WorldEdit를 대신한다. WorldGuard와 PlotSquared의 보호 영역을 인식할 수 있지만, 우회 권한을 넓게 부여하면 보호 확인이 무력화될 수 있다.[2]

영역 편집

나무 도끼를 선택 도구로 받은 뒤 두 모서리를 지정하고 명령을 실행하는 흐름은 WorldEdit와 같다.

//wand
//pos1
//pos2
//set stone
//replace stone 70%stone,30%andesite
//undo
//redo

//set은 선택 영역 전체를 패턴으로 바꾸고, //replace <마스크> <패턴>은 조건에 맞는 블록만 교체한다. //copy//paste는 플레이어 위치를 기준점으로 사용하므로 복사할 때 서 있던 위치와 방향이 붙여넣기 결과에 영향을 준다. 공기를 제외하려면 붙여넣기 옵션을 사용하거나 복사 전에 마스크를 적용한다.

대형 영역을 복사할 때 //lazycopy는 원본 블록을 즉시 모두 메모리에 담지 않고 붙여넣는 시점에 참조하는 클립보드를 만든다. 따라서 복사 뒤 원본을 바꾸면 그 변경이 붙여넣기 결과에 반영될 수 있다. 고정본이나 장기 보관용 구조물은 일반 클립보드로 복사해 스키매틱 파일로 저장하는 편이 알맞다.[3]

마스크와 패턴

마스크는 바꿀 수 있는 블록의 조건이고 패턴은 새로 놓을 블록의 규칙이다. 단순 블록 이름 외에도 비율 혼합, 기존 상태 참조, 높이·각도·노이즈를 이용한 표현을 조합할 수 있다.

//gmask stone,dirt
//replace stone 80%stone,20%andesite
//gmask

//gmask는 이후 편집 전반에 적용되는 전역 마스크이므로 작업 후 인자 없이 실행해 해제한다. 마스크를 잊은 채 다음 작업을 시작하면 명령이 일부 블록에만 적용되어 오류로 오해하기 쉽다. 복잡한 표현은 작은 선택 영역에서 결과를 먼저 확인한다.

브러시와 도구

브러시는 든 아이템에 작업을 바인딩해 바라보는 지점에 반복 적용한다. 구형·원통형·혼합·높이맵·스플라인·레이어·표면 브러시 등을 이용할 수 있으며, //mask와 함께 쓰면 브러시가 바꿀 대상을 제한할 수 있다.

//brush sphere stone 5
//mask grass_block,dirt
//brush none

첫 줄은 반경 5의 구형 돌 브러시를 현재 아이템에 연결하고, 두 번째 줄은 잔디 블록과 흙만 바꾸도록 제한한다. 작업을 마치면 //brush none으로 바인딩을 해제한다. FastAsyncVoxelSniper, Arceon, GoPaintAdvanced도 브러시나 건축 도구를 제공하므로 같은 아이템과 명령 별칭이 겹치지 않는지 확인할 필요가 있다.

기록과 성능

FAWE는 블록 배치, 청크 배치, 새 월드·지역 생성을 위한 CFI 방식 등 작업에 맞는 처리 경로를 사용한다. 모든 작업이 무조건 서버 성능에 영향을 주지 않는 것은 아니다. 매우 큰 선택, 조명 계산, 청크 생성과 실행 취소 데이터는 CPU·메모리·디스크를 소모한다.

//undo//redo 외에 //inspect, //history rollback으로 편집 기록을 조사하고 복구할 수 있다. //fast는 기록을 우회하므로 결과를 되돌리기 어려워지며, 운영 월드에서 상시 사용하기보다 백업과 명확한 작업 절차가 있을 때 제한적으로 사용한다.[4]

서버 관리자는 config.yml에서 그룹별 변경량·엔티티·타일 엔티티·메모리·반복 횟수 제한과 기록 압축·보관 기간을 조절할 수 있다. 스레드 수나 큐 값을 다른 서버의 예시 그대로 복사하기보다 실제 하드웨어와 동시 사용자 수에 맞춰 관찰해야 한다.

개발자 API

FAWE는 WorldEdit API 호환성을 유지하므로 EditSession과 클립보드 API를 사용하는 플러그인이 함께 동작할 수 있다. 추가 API는 WorldEdit API를 대신하기보다 비동기 작업과 FAWE 고유 기능을 보조한다.[5] 비동기 스레드에서 Bukkit API까지 임의로 호출해도 된다는 뜻은 아니므로 월드 편집 이외의 API는 각 서버 구현의 스레드 규칙을 따라야 한다.

같이 보기

각주

  1. FastAsyncWorldEdit, Modrinth. 2026년 8월 5일 확인.
  2. Download FastAsyncWorldEdit, IntellectualSites. 2026년 8월 5일 확인.
  3. FastAsyncWorldEdit, GitHub. 2026년 8월 5일 확인.
  4. Logging and Rollback, GitHub. 2026년 8월 5일 확인.
  5. FaweAPI, FastAsyncWorldEdit. 2026년 8월 5일 확인.

외부 링크