Fabric 모드와 Forge 모드 함께 쓰기
Poly 모드 로더를 쓰면 Fabric 모드와 Forge 모드를 한 마인크래프트 게임에서 함께 실행할 수 있습니다. 지원 버전은 Minecraft 26.1, 26.1.1, 26.1.2, 26.2입니다. 로더 하나만 설치하고, 두 로더의 모드 jar를 같은 mods/ 폴더에 넣은 뒤 플레이하면 됩니다.
이 문서에서는 어떻게 동작하는지, 무엇을 확인했는지, 아직 무엇이 안 되는지, 어떻게 설치하는지를 차례로 설명합니다.
한눈에 보기
| 질문 | 답 |
|---|---|
| Fabric 모드와 Forge 모드를 한 게임에 넣을 수 있나요? | 네. Minecraft 26.1, 26.1.1, 26.1.2, 26.2에서 됩니다 |
| Fabric Loader나 Forge 설치 프로그램이 따로 필요한가요? | 아니요. Fabric Loader API는 Poly 모드 로더가 직접 제공하고, Forge 파일은 Forge 모드를 넣고 처음 실행할 때 내려받습니다 |
| 모든 모드가 동작하나요? | 보장하지 않습니다. 모드가 로드되고, 시작하고, 월드를 열거나 만들고, 틱을 돌리고, 저장하는 데까지 확인했습니다. 모드마다 기능을 하나하나 써 보지는 않았고, Forge와 함께일 때 실행되지 않는 Fabric 주입 지점도 있습니다(아래) |
| 1.20.1이나 1.21.1 같은 예전 버전도 되나요? | 지원하지 않습니다. 지원 버전과 로더를 보세요 |
동작 방식
- 게임은 로더 하나가 맡습니다. 로더마다 Minecraft 클래스를 직접 정의하려고 하지만, 그럴 수 있는 로더는 하나뿐입니다. Poly 모드 로더에서는 Poly 모드 로더의 게임 클래스로더가 이 일을 맡고, 다른 로더의 모드는 그 위에서 실행됩니다.
- Fabric 모드는 Fabric Loader 없이, Fabric Loader가 실행하는 방식 그대로 실행합니다. Poly 모드 로더가 Fabric Loader API(
FabricLoader.getInstance())를 제공하고, Mixin과 MixinExtras를 Fabric Loader와 같은 순서로 적용하며, class tweaker를 읽고 중첩 jar를 풉니다. - Forge 모드는 Forge 위에서 실행합니다. Poly 모드 로더가 Forge와 FML을 그대로 실행하고, 찾은 Forge 모드를 넘겨 줍니다. Forge 패치는 사용자 PC에서 게임에 적용하며, Poly 모드 로더가 Forge를 배포하지는 않습니다. Minecraft 버전별로 어떤 Forge를 쓰는지는 지원 버전과 로더에 있습니다.
- 두 로더가 만나는 곳: Mixin을 시작하기 전에 Poly 모드 로더가 Fabric mixin을 Forge가 패치한 클래스와 하나씩 맞춰 봅니다. Forge가 옮긴 주입 지점은 따라가서 적용합니다. Forge가 없앤 주입 지점은 실행되지 않고
POLY-COMPAT-138로 보고되며, 모드의 나머지 부분은 그대로 실행됩니다. - 서로의 모드 목록이 보입니다. Forge의
ModList.isLoaded로 Fabric 모드와 Poly 모드를, Fabric의isModLoaded로 Forge 모드를 확인할 수 있습니다.getModContainerById는 Forge 모드만 돌려줍니다. - 크래시가 아니라 시작 전에 판정합니다. 게임 코드가 돌기 전에 모든 모드를 로드할지, 이유와 함께 뺄지 정합니다. Forge가 거부할 Forge 모드는 그 모드만 빠집니다(
POLY-COMPAT-209). FML이었다면 모드 로딩 전체가 멈췄을 상황입니다.
확인한 것
Minecraft 버전마다 Modrinth에서 가장 많이 받은 Fabric·Forge 모드와 그 필수 의존 모드를 모은 호환성 모드 묶음으로 확인했습니다.
| Fabric 모드와 Forge 모드를 함께 넣고 게임 테스트 서버에서 월드 생성, GameTest 통과, 월드 저장 | 결과 |
|---|---|
| 26.2 (Forge 65.1.5) | Forge 모드 39개 중 33개, Fabric 모드 90개와 함께 |
| 26.1 (Forge 62.0.9) | Forge 모드 37개 중 21개 |
| 26.1.2 (Forge 64.1.5) | Forge 모드 35개 중 30개 |
빠진 Forge 모드는 실제 Forge에서도 빠지거나 실행되지 않는 경우뿐입니다. 서버에 넣은 클라이언트 전용 모드, 다른 Forge·Minecraft 버전용으로 만든 모드, Forge 자체의 Mixin이 시작을 멈추는 Mixin 설정이 여기에 해당합니다.
실제 Fabric API를 Forge와 함께 넣었을 때 다음이 동작합니다: Fabric의 블록 파괴 이벤트(파괴 전·후·취소, 서바이벌과 크리에이티브 모두), Fabric 리소스 조건이 맞지 않는 데이터 건너뛰기, 조합 후 남는 아이템. 26.2 클라이언트에서는 Physics Mod(Forge)와 Sodium(Fabric)을 함께 넣어도 블록 파편과 래그돌이 Physics Mod만 넣었을 때처럼 그려집니다.
로더 하나만 넣었을 때의 결과(클라이언트, 전용 서버, 게임 테스트 서버)는 지원 버전과 로더에 있습니다.
아직 안 되는 것
- Forge와 함께일 때 실행되지 않는 Fabric 주입이 있습니다. 26.2 혼합 묶음에서 주입 지점 25곳이 실행되지 않으며(2026-10-23 기준), 각각
POLY-COMPAT-138로 보고됩니다. 주요 항목은 다음과 같습니다.- Fabric API의 유체 수영·익사·보트 처리(
fabric-content-registries-v0의 5곳) - 수면 이벤트의 침대 방향과 점유 상태
ItemStack.useOnwrap, 인챈트 테이블의canBeEnchantedWithLanguage.loadDefaultRedirect, 데이터 생성 2곳- Lithium 3곳, Architectury 스포너 4곳, Balm 작물 1곳
- Fabric API의 유체 수영·익사·보트 처리(
- **Fabric API의
FabricDefaultAttributeRegistry.MODIFY**는 Forge와 함께 동작하지 않습니다. 이 기능이 쓰는 필드의 타입을 Forge가 바꿨기 때문입니다. 호출하면 크래시 대신POLY-COMPAT-214가 납니다. - Fabric용과 Forge용 빌드가 한 jar에 함께 든 모드는 Forge용 빌드로만 실행됩니다(
POLY-COMPAT-139). - Forge의 로딩 경고. 어떤 모드든 Forge에 로딩 경고를 내면, Forge는 경고 화면을 띄우기 전에 기본 이벤트 버스를 끄고 다시 켜지 않습니다. 그 뒤로는 게임 이벤트가 어떤 모드에도 전달되지 않습니다. 실제 Forge도 똑같이 동작하지만, 경고를 내는 모드 하나 때문에 다른 모드가 아무 표시 없이 동작하지 않을 수 있습니다.
- 확인 범위. Fabric 모드와 Forge 모드를 한 게임에서 함께 실행하는 것은 Forge 완전 지원의 완료 기준에 들어 있지 않습니다. 위 결과가 지금까지 확인한 범위입니다. 런처 실행 테스트는 Minecraft Launcher가 게임을 시작하는 방식을 재현한 것이며, 실제 런처로 실행한 기록은 아직 없습니다.
- NeoForge와 Quilt. NeoForge 모드는 기본적으로
Blocked이고, 아직 Fabric 모드와 함께 실행할 수 없습니다(POLY-COMPAT-216). Quilt 모드는 26.2에서만Experimental이며, Forge 모드와 함께 넣는 것은 확인하지 않았습니다. 지원 버전과 로더를 보세요.
설치하고 실행하기
- Minecraft Launcher에서 쓸 버전의 바닐라 Minecraft를 한 번 실행한 뒤, 런처를 닫습니다.
- 다운로드 페이지에서 설치 프로그램을 받아 Poly 모드 로더 <Minecraft 버전> 프로필을 설치합니다. 자세한 순서는 설치 안내에 있습니다.
- 그 Minecraft 버전용 Fabric 모드와 Forge 모드를 런처 폴더의
mods/에 함께 넣습니다.- Fabric API가 필요한 Fabric 모드에는 일반 Fabric API jar를 넣습니다. 위 테스트도 이 jar를 썼습니다.
- Forge 모드는 그 Minecraft 버전에서 Poly 모드 로더가 실행하는 Forge 버전에 맞아야 합니다. 다른 Forge 버전용 모드는 빠집니다(
POLY-COMPAT-209).
- Poly 모드 로더 프로필을 골라 플레이합니다. Forge 모드를 넣고 처음 실행할 때 Forge 파일을 내려받으므로 인터넷 연결이 필요합니다. 예전 설치 프로그램으로 만든 프로필에서 Forge 모드를 쓰려면 다시 설치해야 합니다(
POLY-COMPAT-206). - 타이틀 화면 왼쪽 아래에 로더별로 불러온 모드 수가 나옵니다. Forge가 있으면 Poly 모드 로더의 줄이 Forge 자체 줄 위에 표시됩니다.
빠진 모드가 있으면 logs/latest.log에서 POLY-COMPAT-로 시작하는 코드를 찾아 오류 코드에서 뜻을 확인하세요. 빠진 모드와 이유의 전체 목록은 .poly/startup-report.json의 blockedFiles와 foreignMods에 있습니다.
전용 서버: 같은 설치 프로그램으로 서버도 설치할 수 있습니다(설치 안내). 서버의 mods/에 같은 모드를 넣습니다. 클라이언트 전용 모드는 서버에서 빠집니다(Fabric은 POLY-COMPAT-108, Forge는 POLY-COMPAT-209).
성능 비용
PC 한 대, Minecraft 26.2, 게임 테스트 서버에서 모드 없는 바닐라와 비교해 잰 값입니다. 같은 모드를 Forge나 Fabric Loader 자체 실행기로 돌린 경우와는 비교하지 않았고, Fabric 모드와 Forge 모드를 함께 넣은 경우도 재지 않았습니다.
| 모드 (측정일) | 시작~종료 시간 중앙값 | GC 직후 힙 최댓값 | 서버 틱 p50 |
|---|---|---|---|
| Forge 65.1.5 + Forge 모드 32개 (2026-10-23) | 6.281초 → 22.864초 | 139.2 → 267.3 MiB | 8.13 → 12.49 ms |
| Fabric 모드 97개 (2026-10-22) | 6.025초 → 15.005초 | 141.6 → 182.9 MiB | 7.91 → 4.04 ms |
각 칸은 같은 세션에서 잰 "바닐라 → 그 모드 묶음을 넣은 Poly 모드 로더"입니다.
- Forge 쪽 틱 시간은 측정된 비용으로 기록했습니다. 다만 그 PC는 같은 세션 안에서도 실행마다 약 8ms와 약 12.3ms 두 무리로 갈렸기 때문에, 기계 상태의 영향을 배제할 수 없습니다.
- Fabric 쪽 틱 시간이 짧은 것은 Poly 모드 로더의 개선이 아닙니다. 묶음에 서버 최적화 모드 Lithium이 들어 있고, 그 mixin이 적용됐기 때문입니다.
측정 방법과 다른 측정은 성능에 있습니다.