스티브코딩

애드온 만들기

Tynker·bridge로 몹·레시피·보상·상인·타이머·음악 애드온 만들기

도구·명령어2026-10-20 갱신

한눈에 보기

  • 무엇: 스크립트 API 없이 JSON 파일과 함수 파일만으로 애드온(행동 팩·리소스 팩)을 만듭니다. 몹, 제작법(레시피), 아이템 성능, 몹 보상(루트 테이블), 주민 상인 거래, 팀킬 금지, 일정 시간마다 보상, 음악 재생, 시작 화면 로고까지
  • 도구: 마우스로 만드는 Tynker(입문) → 애드온 편집기 bridge.(본 실습) → 살펴보기용 VS Code
  • 누구: Tynker는 초등 고학년~중학생, bridge 실습은 중·고등학생 (제안)
  • 몇 분: 주제 하나당 12차시. 영상은 28분 (제안)
  • 결과물: 내가 만든 .mcaddon 파일, 월드에서 바로 확인하는 새 몹·레시피·상인·타이머
  • 스크립트(JavaScript)로 만드는 애드온은 ‘웹소켓·스크립트 API’ 페이지에서 다룹니다
마인크래프트 애드온 제작툴 「bridge」 셋팅 방법! #애드온제작튜토리얼
마인크래프트 애드온 제작툴 「bridge」 셋팅 방법! #애드온제작튜토리얼

애드온의 구조: 행동 팩과 리소스 팩

  • 애드온은 행동 팩(BP, Behavior Pack) = 게임 규칙·행동, 리소스 팩(RP, Resource Pack) = 모양·소리 두 가지로 되어 있습니다
  • 팩마다 manifest.json(이름·설명·버전·고유 번호)과 pack_icon.png가 있습니다
  • bridge로 만든 ‘abc’ 프로젝트의 폴더(화면에서 옮김):
abc BP (행동 팩)                 abc RP (리소스 팩)
├─ blocks/  test.json             ├─ sounds/
├─ components/                    ├─ texts/  en_US.lang, languages.json
├─ entities/                      ├─ textures/
├─ functions/                     │    ├─ blocks/
├─ loot_tables/                   │    ├─ flipbook_textures.json
├─ manifest.json                  │    ├─ item_texture.json
└─ pack_icon.png                  │    └─ terrain_texture.json
                                  ├─ biomes_client.json, blocks.json, sounds.json
                                  ├─ manifest.json
                                  └─ pack_icon.png
  • 실습에 따라 items/(아이템), trading/(거래), spawn_rules/ 폴더가 더 생깁니다
  • 파일 이름과 경로가 곧 연결입니다. 예: 좀비 보상은 꼭 loot_tables/entities/zombie.json
com.mojang의 development_behavior_packs에 자동으로 들어간 abc BP, 왼쪽은 리소스 팩 폴더 (04:22)
com.mojang의 development_behavior_packs에 자동으로 들어간 abc BP, 왼쪽은 리소스 팩 폴더 (04:22)

manifest.json 읽어 보기

  • bridge가 만들어 준 행동 팩 manifest(2024년 영상 ‘철검, 공격력 +255’ 화면에서 옮김, 고유 번호는 줄임):
{
  "format_version": 2,
  "metadata": {
    "authors": ["bridge."],
    "generated_with": { "bridge": ["2.7.42"], "dash": ["0.11.7"] }
  },
  "header": {
    "name": "pack.name",
    "description": "pack.description",
    "min_engine_version": [1, 21, 0],
    "uuid": "b574128d-…",
    "version": [1, 0, 0]
  },
  "modules": [
    { "type": "data", "uuid": "c00bf718-…", "version": [1, 0, 0] }
  ],
  "dependencies": [
    { "uuid": "93758d16-…", "version": [1, 0, 0] }
  ]
}
  • min_engine_version: 이 팩이 돌아가는 가장 낮은 게임 버전. uuid: 팩마다 다른 고유 번호(직접 지어내지 않고 bridge가 만듦)
  • modules의 "type": "data" 가 행동 팩이라는 뜻(리소스 팩은 "resources"), dependencies 는 함께 쓰는 짝 팩(리소스 팩)을 가리킵니다(2026-10 공식 문서 「Introduction to Behavior Packs」 기준)
bridge가 만든 manifest.json (00:31)
bridge가 만든 manifest.json (00:31)

리소스 팩 맛보기: 시작 화면 로고 바꾸기

  • ① 텍스트크래프트(textcraft.net)에서 글자(영어)를 넣고 글꼴·크기·모양을 골라 로고 그림을 내려받기
  • ② 공유된 로고 폴더(textures, manifest.json, pack_icon.png, sounds.json)에서 textures/ui 의 로고 그림(자막 ‘타이틀 png’ = 바닐라 리소스 팩의 textures/ui/title.png, Mojang bedrock-samples 기준)을 지우고 내 그림으로 바꿔 넣기
  • ③ 폴더를 ZIP 파일로 압축 → 확장자 .zip 을 .mcpack 으로 바꾸기(경고창은 ‘예’)
  • ④ 파일을 마인크래프트로 열기 → 설정 → 글로벌 리소스에서 ‘내 로고’ 활성화
  • 되돌리기: 글로벌 리소스에서 비활성화. 다른 로고로 바꾸려면 설정 → 저장 공간 → 리소스 팩에서 옛 로고 팩을 지우고 다시
  • 시연은 베드락 에디션 1.20.81. 교육용 에디션에도 설정 → 글로벌 리소스 메뉴가 있으나(아래 ‘교육용 에디션에서 실험 기능 켜기’ 영상), 교육용 시작 화면 로고에도 적용되는지는 수업 전에 교사 PC에서 먼저 시험해 보세요.
① 텍스트크래프트에서 로고 만들기 (00:24)
① 텍스트크래프트에서 로고 만들기 (00:24)
③ 압축 파일 확장자를 .mcpack으로 (01:31)
③ 압축 파일 확장자를 .mcpack으로 (01:31)
④ 시작 화면에 바뀐 로고 (02:08)
④ 시작 화면에 바뀐 로고 (02:08)

가장 쉬운 시작: Tynker로 몹 애드온 만들기

  • tynker.com/minecraft → 로그인(설명란: 학생 계정으로) → Create Project → MINECRAFT → 몹(MOB) → Minecraft Win 10 / Pocket Edition 탭에서 판다 고르고 START PROJECT
  • ① 외형(리소스 팩): 붓·물통·지우개로 모델을 돌려 가며 칠하기
  • ② 행동(행동 팩): 이벤트(EVENTS, 상황) 블록에 매크로(MACROS, 일어날 일) 블록을 붙입니다
  • after being damaged → make it 200 % bigger than normal (맞으면 두 배로 커짐)
  • when it's night-time → transform into Bat (밤이 되면 박쥐로)
  • ③ 저장 → Install in Minecraft: PC는 DOWNLOAD NOW, 다른 기기는 tynker.com/get/ 에 코드 입력 → 받은 파일 더블클릭 → 월드 설정에서 리소스 팩·행동 팩 둘 다 활성화
  • 자바 에디션 탭으로는 행동 팩을 못 만드는 것 같다고 함. 교육용 에디션에서도 가져와 쓸 수 있다고 말함(화면엔 없음). 2026-10 Tynker 페이지 기준: Windows 10(베드락)·포켓 에디션용 모드·애드온 도구가 있고, 일부는 무료·추가 콘텐츠는 유료 구독입니다. 교육용 에디션 지원은 페이지에 적혀 있지 않습니다.
① 판다 외형 칠하기 (01:11)
① 판다 외형 칠하기 (01:11)
② 이벤트와 매크로 블록 (02:01)
② 이벤트와 매크로 블록 (02:01)
③ Install in Minecraft 창 (02:15)
③ Install in Minecraft 창 (02:15)
④ 맞으면 커지는 판다 (03:19)
④ 맞으면 커지는 판다 (03:19)

Tynker 응용: 머리 셋 켈베로스 늑대

  • 평소엔 늑대, 맞는 순간 머리 셋 켈베로스로 변해 불덩이를 쏩니다. 길들이면 주인 대신 몬스터를 공격
  • Tynker 몹 편집기에서 늑대(wolf)를 고르고, VARIANT 에서 Wolf / Wolf - Angry 두 모습 중 하나를 편집. 모습은 스킨 편집 화면, 행동은 코드 화면
  • 화면 속 블록(Wolf - Angry):
on start                → act as Wolf
after becoming angry    → shoot Large Fireball
when a friend is angry  → shoot Large Fireball
after being damaged     → move 110 % faster
                          make it 120 % bigger than normal
after being tamed       → attack Monster
                          shoot Large Fireball
  • 수업: 학생이 몹 하나를 골라 ‘이벤트 → 동작’ 표를 먼저 설계하고 블록으로 옮기기 (제안)
맞는 순간 켈베로스로 변신 (00:30)
맞는 순간 켈베로스로 변신 (00:30)
켈베로스 코드 블록 (02:41)
켈베로스 코드 블록 (02:41)

bridge. 설치와 첫 설정

  • 검색창에 ‘bridge minecraft’ → bridge-core.app (‘The IDE for Minecraft Add-Ons’). 웹에서 바로 열 수도 있지만 오른쪽 위 버튼으로 설치 추천(크롬·엣지)
  • 처음 설정 4단계: Install bridge. → bridge. Folder(프로젝트 저장 폴더) → com.mojang Folder(끌어다 놓기, SKIP 가능하지만 연결 추천) → Choose Editor Type
  • 편집 방식: Tree Editor(JSON을 몰라도 클릭으로, 초보 추천) / Raw Text(JSON 직접, 자동 완성·검사). 설정에서 언제든 바꿈
  • com.mojang 경로(설명란 원문):
bridge. 처음 설정: 폴더 고르기 → com.mojang 연결 → 편집 방식 (00:49)
bridge. 처음 설정: 폴더 고르기 → com.mojang 연결 → 편집 방식 (00:49)

bridge. 새 프로젝트 만들기

  • New Project → Behavior Pack·Resource Pack 이 기본 선택(Skin Pack, World Template 추가 가능)
  • Experimental Gameplay: 게임의 실험 기능과 같은 것. 실습들은 켜지 않습니다
  • Project Name(예: abc), Description, Project Prefix(블록·엔티티 이름 앞에 붙는 말, 기본 bridge), Project Author
  • Project Target Version: 애드온이 돌아가는 최소 버전. 교육용에서도 쓰려면 교육용 에디션 버전보다 낮게(2022년 영상은 1.17.0, 2024년 영상의 manifest는 1.21.0)
  • ‘Add pack name/description directly to the manifest’ 를 켜고 CREATE
  • com.mojang을 연결했다면 development_behavior_packs / development_resource_packs 에 ‘abc BP’, ‘abc RP’ 가 자동으로 들어가 게임에서 바로 보입니다
프로젝트 만들기 창: 타겟 버전 1.17.0, manifest 옵션 켜기 (03:04)
프로젝트 만들기 창: 타겟 버전 1.17.0, manifest 옵션 켜기 (03:04)

bridge. 파일 만들기와 문서 보기

  • New File(Create Preset) → Block / Entity / Item / Simple Files(Loot Table, Function, Recipe 등)에서 골라 이름만 넣으면 기본 내용이 채워진 파일이 생깁니다
  • 블록 ‘test’ 를 만들고 minecraft:destroy_time(캐는 데 걸리는 시간)을 넣은 모습(텍스트 방식):
{
  "format_version": "1.16.0",
  "minecraft:block": {
    "description": {
      "identifier": "bridge:test",
      "is_experimental": false
    },
    "components": {
      "minecraft:destroy_time": 5
    }
  }
}
  • 컴포넌트에서 오른쪽 클릭 → View Documentation 으로 그 항목 설명 문서를 엽니다(트리 방식에서 처음엔 0.9를 넣었다가 5로 고침)
  • 값의 뜻을 모르면 JSON을 복사해 GPT에 붙여 넣고 물어보기(‘철검, 공격력 +255’ 영상)
텍스트 방식으로 본 test.json (06:24)
텍스트 방식으로 본 test.json (06:24)

바닐라 팩과 VS Code로 살펴보기

  • 마인크래프트 크리에이터 문서(설명란 링크) 아래 ‘Tools and Vanilla Packs’ 에 Visual Studio Code, Vanilla Behavior Pack, Vanilla Resource Pack 링크가 있습니다
  • 바닐라 팩 = 원래 마인크래프트의 설계 예시. 폴더 구조가 bridge와 같아 그대로 따라 하면 됩니다
  • 바꾸고 싶은 부분만 적으면 그것만 적용됩니다(예: 치킨 파일을 전부 다시 적을 필요 없음)
  • VS Code: 확장에서 ‘minecraft’ 검색(Mojang Studios의 Minecraft Bedrock Edition Debugger 등) → 파일 > 폴더 열기로 바닐라 팩 폴더를 통째로 불러오기
  • 만들 때는 bridge, 살펴볼 때는 VS Code가 편합니다. 영상에서 연 것은 리소스 팩의 entity/chicken.entity.json(외형 정의)
크리에이터 문서의 Tools and Vanilla Packs (00:24)
크리에이터 문서의 Tools and Vanilla Packs (00:24)
VS Code로 연 바닐라 리소스 팩·행동 팩 1.18.10 (02:30)
VS Code로 연 바닐라 리소스 팩·행동 팩 1.18.10 (02:30)

새 제작법(레시피) 만들기

  • 새 프로젝트(testRecipe) → New File → Simple Files → Recipe, 파일 이름 ‘다이아’(dia.json). 실험 기능 필요 없음
  • 모양이 필요 없는 레시피(철괴 + 금괴 → 에메랄드 10개):
{
  "format_version": "1.12",
  "minecraft:recipe_shapeless": {
    "description": { "identifier": "example:iron_gold_to_emeralds" },
    "tags": ["crafting_table"],
    "ingredients": [
      { "item": "minecraft:iron_ingot" },
      { "item": "minecraft:gold_ingot" }
    ],
    "result": { "item": "minecraft:emerald", "count": 10 }
  }
}
  • tags 의 crafting_table = 제작대에서 만듦. 재료를 더 넣거나 count 를 바꿔 봅니다
모양이 필요 없는 레시피 JSON (00:38)
모양이 필요 없는 레시피 JSON (00:38)

모양이 중요한 레시피

  • 3칸 × 3줄 pattern 에 기호를 놓고, key 에서 기호마다 아이템을 정합니다(빈칸은 띄어쓰기)
{
  "format_version": "1.12",
  "minecraft:recipe_shaped": {
    "description": { "identifier": "example:test_totem" },
    "tags": ["crafting_table"],
    "pattern": [
      " D ",
      "DED",
      " S "
    ],
    "key": {
      "D": { "item": "minecraft:diamond" },
      "E": { "item": "minecraft:emerald" },
      "S": { "item": "minecraft:stick" }
    },
    "result": { "item": "minecraft:totem_of_undying", "count": 1 }
  }
}
  • 월드에서 행동 팩을 켜고 제작대에 패턴대로 놓으면 불사의 토템이 나옵니다
  • 토론: ‘밸런스가 안 맞는 조합’을 찾아 고쳐 보기 (제안)
모양이 중요한 레시피 JSON (01:25)
모양이 중요한 레시피 JSON (01:25)
제작대에서 패턴대로 놓아 불사의 토템 (01:52)
제작대에서 패턴대로 놓아 불사의 토템 (01:52)

아이템 성능 바꾸기: 힘의 칼·강한 곡괭이

  • 시연: 철검처럼 생긴 ‘힘의 칼’(공격력 255)은 일반 몹 한 방, 와덴 두 방, 엔더 드래곤 네 방 정도
  • 만들기: New File → Item → Pickaxe(Armor, Axe, Food, Sword 등도 있음) → Image(비우면 기본 그림)·Identifier·Display Name
  • items/powerpickaxe.json 에서 minecraft:digger** 의 돌·금속 블록 speed 를 5 → 255**:
"minecraft:damage": 3,
"minecraft:digger": {
  "use_efficiency": true,
  "destroy_speeds": [
    {
      "block": { "tags": "query.any_tag('stone', 'metal', 'iron_pick_diggable')" },
      "speed": 255
    },
    { "block": "minecraft:ice", "speed": 5 },
    { "block": "minecraft:sandstone", "speed": 5 }
  ]
}
  • 힘의 칼은 같은 방법으로 minecraft:damage 를 255로 둔 것(powersword.json). 원문은 영상 01:20 화면이나 설명란의 예시 애드온(customSpecItem)에서 확인
  • 마인크래프트를 껐다 다시 켜고 행동 팩이 적용됐는지 확인 → 서바이벌 모드에서 채굴 속도 시험
① 아이템 → Pickaxe 프리셋 (00:46)
① 아이템 → Pickaxe 프리셋 (00:46)
② digger 의 speed 를 255로 (01:20)
② digger 의 speed 를 255로 (01:20)

루트 테이블: 몹 보상 바꾸기

  • New File → Simple Files → Loot Table, 폴더 loot_tables/entities/, 이름 zombie → 좀비가 썩은 고기 대신 내가 정한 것을 떨어뜨림
  • 경로가 틀리면 연결되지 않습니다. 쓰는 법은 바닐라 행동 팩의 loot_tables/entities/zombie.json 을 참고
  • pools 안 묶음마다 rolls(몇 번 뽑기) + entries(무엇을):
{
  "pools": [
    {
      "rolls": 1,
      "entries": [ { "type": "item", "name": "apple" } ]
    },
    {
      "rolls": { "max": 3, "min": 1 },
      "entries": [ { "type": "item", "name": "bread" } ]
    }
  ]
}
  • 결과: 사과 1개 + 빵 1~3개. 개수 범위는 rolls 의 min·max 로 정했습니다
① loot_tables/entities/ 에 zombie 만들기 (00:51)
① loot_tables/entities/ 에 zombie 만들기 (00:51)
② 좀비를 잡아 사과·빵 확인 (02:46)
② 좀비를 잡아 사과·빵 확인 (02:46)

루트 테이블: 확률(weight)로 하나 뽑기

  • 한 묶음(rolls: 1) 안에 항목마다 weight 를 주면 비율대로 하나만 떨어집니다
{
  "pools": [
    {
      "rolls": 1,
      "entries": [
        { "type": "item", "name": "apple",        "weight": 50 },
        { "type": "item", "name": "bread",        "weight": 30 },
        { "type": "item", "name": "golden_apple", "weight": 20 }
      ]
    }
  ]
}
  • 사과 50%, 빵 30%, 황금 사과 20%
  • 수학 연계: 여러 번 잡아 나온 횟수를 세어 weight 비율과 비교하기 (제안)
  • 더 많은 방법은 설명란의 참고 문서(루트 테이블 소개(공식 문서))와 스티브코딩 블로그 글
weight 50·30·20을 넣은 zombie.json (03:50)
weight 50·30·20을 넣은 zombie.json (03:50)

새 주민 상인 만들기

  • 새 프로젝트(customTrade) → New File → Entity → 주민(Villager) 템플릿(자막 ‘빌리저 MC’, 정확한 이름은 영상 00:37 화면에서 확인) → 표시 이름 ‘트레이더1’
  • 생기는 파일: entities/trader1.json, trading/economy_trades/trader1_good.json · _better.json · _best.json
  • trader1.json 에는 상인 종류 good·better·best 가 있고, 각각 거래 파일을 가리킵니다:
"good": {
  "minecraft:economy_trade_table": {
    "display_name": "Good trader1",
    "table": "trading/economy_trades/trader1_good.json",
    "new_screen": true
  }
}
  • display_name 을 한글로 바꿀 수 있습니다(완성 화면: ‘친절한 스티브상인’)
  • 스폰될 때 종류는 minecraft:entity_spawned 의 randomize 에서 weight 로 정합니다(기본 5·5·5). good만 나오게 하려면 나머지를 0으로
trader1.json: 식별자 stevecoding:trader1, 종류별 거래 표 (00:52)
trader1.json: 식별자 stevecoding:trader1, 종류별 거래 표 (00:52)

거래 표(trading) 고치기

  • 이 템플릿은 tier가 하나라 경험치와 상관없이 처음부터 모두 판매
{
  "tiers": [
    {
      "groups": [
        {
          "num_to_select": 5,
          "trades": [
            {
              "max_uses": 16,
              "wants": [ { "item": "minecraft:emerald", "quantity": 2 } ],
              "gives": [ { "item": "minecraft:sea_pickle" } ]
            }
          ]
        }
      ]
    }
  ]
}
  • num_to_select: 아래 거래 중 몇 개를 랜덤으로 고를지 / max_uses: 재고 / wants: 내는 것(항목 복사로 추가) / gives: 받는 것
  • gives 안 "choice": [ … ] 는 여러 아이템 중 하나를 랜덤으로 줌(예: yellow_flower, red_flower)
  • 랜덤을 없애려면 num_to_select 수만큼만 거래를 남깁니다
거래 파일 구조 (03:01)
거래 파일 구조 (03:01)
완성: 친절한 스티브상인 (04:55)
완성: 친절한 스티브상인 (04:55)

인챈트된 아이템 거래

  • 에메랄드 5개 → 날카로움 5 다이아몬드 검. 화면에 보인 부분:
{
  "num_to_select": 1,
  "trades": [
    {
      "max_uses": 4,
      "wants": [ { "item": "minecraft:emerald", "quantity": 5 } ],
      "gives": [
        {
          "item": "minecraft:diamond_sword",
          "functions": [
            {
              "function": "specific_enchants",
              "enchants": [ { "id": "sharpness", "level": 5 } ]
            }
          ]
        }
      ]
    }
  ]
}
  • 인챈트를 더 넣으려면 쉼표를 찍고 { "id": …, "level": … } 를 추가. 그 아이템에 맞는 인챈트만 넣습니다(인챈트 이름은 게임에서 /enchant @s 를 치면 나오는 자동 완성 목록으로 확인)
  • 월드 설정에서 행동 팩(customTrade)·리소스 팩 활성화, 실험 기능 필요 없음 → 스폰알로 소환
specific_enchants 로 날카로움 5 (04:13)
specific_enchants 로 날카로움 5 (04:13)

팀킬 금지: player.json 데미지 센서

  • 팀은 태그로 나눕니다. 두 플레이어에게 같은 태그 team1 을 주면 서로 때릴 수 없음(예: /tag 플레이어이름 add team1)
  • 태그 이름은 행동 팩에 적어 둔 이름이어야 합니다. 영상 행동 팩에는 팀 다섯 개, GitHub 최신 player.json(2026-10)에는 team1~team20 이 들어 있음
  • 파일: 행동 팩 entities/player.json → components 의 minecraft:damage_sensor. 화면에 보인 부분:
"minecraft:damage_sensor": {
  "triggers": [
    {
      "on_damage": {
        "filters": {
          "any_of": [
            {
              "all_of": [
                { "test": "has_tag", "value": "team1" },
                { "test": "has_tag", "subject": "other", "value": "team1" }
              ]
            }
            // team2 … 같은 꼴로 이어짐
          ]
        }
      },
      "deals_damage": false
    }
  ]
}
  • 모둠 대항 PvP·협동 게임에서 같은 모둠끼리 공격 못 하게 할 때 (제안)
같은 team1 태그면 때려지지 않음 (00:35)
같은 team1 태그면 때려지지 않음 (00:35)
player.json 의 damage_sensor (00:59)
player.json 의 damage_sensor (00:59)

함수(function)와 tick.json

  • 행동 팩 functions/ 의 .mcfunction 파일 = 커맨드 블록에 넣던 명령을 여러 줄로, 위에서부터 차례로 실행. # 줄은 주석, Ctrl+Space 로 명령 추천
  • functions/tick.json 에 넣은 함수는 1틱마다 실행됩니다(20틱 = 1초):
{
  "values": [
    "goldtimer"
  ]
}
  • 파일 이름이 곧 명령 이름: goldtimer.mcfunction → /function goldtimer. 채팅창에 /function 을 치면 들어 있는 함수(goldtimer, pay)가 보입니다
  • 더 큰 행동 팩은 폴더별로 함수를 나눠 tick에서 통제하며 게임 시나리오를 짭니다
/function 을 치면 보이는 함수 목록 (01:02)
/function 을 치면 보이는 함수 목록 (01:02)

골드 타이머: 1분마다 금괴 주기

  • goldtimer.mcfunction(화면에서 옮김):
#시간 초기값 정하기
scoreboard objectives add goldtimer dummy
scoreboard objectives add goldtimer_s dummy

#타이머 스코어보드값 더하기
scoreboard players add @a goldtimer 1

#타이머 분 표시
scoreboard players add @a[scores={goldtimer=20}] goldtimer_s 1

#일어날 이벤트 정하기
execute @a[scores={goldtimer_s=60}] ~~~ function pay

#타이머 초기화
scoreboard players set @a[scores={goldtimer=20..}] goldtimer 0
scoreboard players set @a[scores={goldtimer_s=60..}] goldtimer_s 0

#타이머 보여주기
titleraw @a actionbar {"rawtext":[{"text":"시간: "},{"score":{"name":"*","objective":"goldtimer_s"}}]}
  • 원리: goldtimer 는 1틱마다 +1 → 20이 되면 goldtimer_s(초) +1 하고 0으로 → 초가 60이면 pay 실행 후 0으로
goldtimer.mcfunction (04:47)
goldtimer.mcfunction (04:47)

pay 함수와 /reload

  • pay.mcfunction:
give @s gold_ingot
execute @s ~~~ say 골드를 받았다!
  • 이어서 title 명령으로 화면 가운데에 ‘골드획득’ 을 띄움(예: title @s title 골드획득, 영상의 원문은 06:14 화면에서 확인)
  • **고친 함수는 ****/reload** 로 바로 반영: “기존 함수 파일들을 다시 불러왔습니다. 새 함수들을 다시 불러오려면 Minecraft를 다시 시작하세요.”
  • 새로 만든 함수 파일은 /reload 로 안 되고, 월드를 나갔다가 다시 들어가야 합니다
  • 바꿔 보기: 보상 아이템·주기(30초 등) 바꾸기, /reload 와 재시작이 필요한 경우 비교하기 (제안)
  • 2022년 영상의 execute @a … ~~~ 명령 은 예전 문법입니다. 지금은 execute as @s at @s run say 골드를 받았다! 처럼 as … at … run 형식을 씁니다(2026-10 공식 문서 기준, ‘명령어 기초’ 페이지 참고)
/reload 뒤 pay 가 반영되어 ‘골드획득’ (06:44)
/reload 뒤 pay 가 반영되어 ‘골드획득’ (06:44)

음악 파일 넣고 NPC로 틀기

  • 음악은 WAV 파일만(MP3 안 됨). bridge로 끌어다 놓고 Save to Project 에서 경로를 리소스 팩 sounds 폴더로(경로에 띄어쓰기 없이)
  • 리소스 팩 sounds/sound_definitions.json(화면, 두 번째 곡은 복사 뒤 이름·경로만 treeandbirds 로 바꿈):
{
  "format_version": "1.14.0",
  "sound_definitions": {
    "exercise": {
      "sounds": [ { "name": "sounds/exercise", "volume": 1 } ],
      "category": "music"
    }
  }
}
  • music 카테고리라 배경 음악처럼 거리와 상관없이 들립니다
  • NPC(이름 ‘쥬크박스’) 고급 설정 → 버튼 모드 ‘재생1’ / ‘재생2’:
/stopsound @a
/execute @initiator ~~~ playsound exercise @a
  • 끝의 @a 를 붙이면 모두가 듣고, 빼면 누른 사람만 듣습니다. 재생2는 playsound treeandbirds
① WAV 저장 경로 정하기 (00:36)
① WAV 저장 경로 정하기 (00:36)
② sound_definitions.json (01:57)
② sound_definitions.json (01:57)
③ NPC 버튼 명령 (04:04)
③ NPC 버튼 명령 (04:04)

내보내기와 적용하기

  • bridge 프로젝트 메뉴(⋮) → Export As: .brproject(bridge 프로젝트) / .mcaddon(행동+리소스 팩) / .mcworld / .mctemplate
  • 받은 .mcaddon 을 더블클릭(또는 마인크래프트로 열기) → 가져오기
  • 월드 설정 → 애드온의 리소스 팩·행동 팩 에서 각각 활성화. com.mojang 을 연결했다면 내보내지 않아도 목록에 이미 있음
  • 실험 기능: 레시피·상인 실습은 필요 없음. 일부 애드온만 필요(아래 교육용 에디션 해결법)
  • 바뀐 것이 안 보이면: 함수는 /reload, 그 밖에는 마인크래프트를 껐다 켜고 팩이 켜져 있는지 확인
bridge 의 Export As → .mcaddon (02:06)
bridge 의 Export As → .mcaddon (02:06)

교육용 에디션에서 실험 기능 켜기

  • 문제: 베드락 에디션 월드 설정에는 실험 항목이 있는데, 교육용 에디션 화면에는 보이지 않아 실험 기능이 필요한 애드온이 안 됨(2023년 영상, 교육용 v1.18.45)
  • 해결: 설명란의 UI Upgrade 애드온(팩 이름 ‘Upgraded UI (Bedrock)’)을 교육용 에디션으로 열기 → 설정 → 글로벌 리소스 에서 활성화 → 메뉴 모양이 바뀜
  • 월드 설정에 생긴 실험 항목: 야생 업데이트, 관람자 모드, 바닐라 실험, 홀리데이 크리에이터 기능, 커스텀 바이옴, 예정된 크리에이터 기능, 게임테스트 프레임워크, Molang 기능 → 필요한 것을 켭니다
  • 월드를 바꾼 뒤 글로벌 리소스에서 비활성화해 UI를 되돌려도 월드 설정은 그대로 남습니다
  • 2026-07 실측: 지금 교육용 에디션 월드 설정에도 실험 기능 메뉴가 없고, 스크립트 API 베타 버전은 불러오지 않았습니다. UI Upgrade 애드온으로 지금 버전에서 실험 메뉴가 다시 나오는지는 시험하지 않았습니다(확인 필요). 그때까지는 실험 기능이 필요 없는 애드온(레시피·상인·루트 테이블·함수)으로 수업하세요.
① 글로벌 리소스에서 Upgraded UI 켜기 (00:50)
① 글로벌 리소스에서 Upgraded UI 켜기 (00:50)
② 월드 설정에 생긴 실험 항목 (01:05)
② 월드 설정에 생긴 실험 항목 (01:05)

수업 팁

  • 차례: 로고(리소스 팩 맛보기) → Tynker 몹(이벤트·매크로) → bridge 설치 → 레시피·아이템 → 루트 테이블 → 상인 → 함수·타이머 → 음악 (제안)
  • 설계 먼저: 레시피는 3×3 격자 그림, 루트 테이블은 ‘아이템·확률’ 표, 상인은 ‘가격·재고’ 표를 종이에 먼저 (제안)
  • 교과 연계: 확률(weight) → 수학, 상인 가격·재고 → 경제, 내가 녹음한 WAV → 음악 (제안)
  • 막힐 때: 파일 경로·이름 확인 → 쉼표·괄호 확인(Raw Text 의 JSON 검사) → 팩이 월드에 켜졌는지 → 다시 시작
  • AI 활용: JSON 값의 뜻을 GPT에 물어보기. AI에게 애드온을 통째로 맡기는 방법은 ‘AI 에이전트와 MCP’ 페이지

관련 영상

관련 공식 자료

함께 보기

출처

  • 유튜브 「마인크래프트 애드온 제작! 이보다 더 쉬운 방법 없습니다.」(2021-07-11)
  • 유튜브 「머리가 세 개!? 켈베로스 만들기!」(2021-07-28)
  • 유튜브 「마인크래프트 애드온 제작툴 「bridge」 셋팅 방법! #애드온제작튜토리얼」(2022-03-13)
  • 유튜브 「일정 시간마다 보상을 주는 커맨드! function으로 구현하기! #애드온제작튜토리얼」(2022-03-24)
  • 유튜브 「애드온 제작을 한다면 꼭 필요한 몇 가지! #애드온제작튜토리얼」(2022-04-04)
  • 유튜브 「나만의 보상을 만들자! 루트테이블 사용 방법 #애드온제작튜토리얼」(2022-04-08)
  • 유튜브 「마크에서 음악 파일 재생하기! #애드온제작튜토리얼」(2022-11-07)
  • 유튜브 「교육용 에디션에 애드온이 적용안된다면 이렇게 하면 됩니다.」(2023-03-02)
  • 유튜브 「나만의 마인크래프트 로고 만들기」(2024-05-30)
  • 유튜브 「새로운 아이템 제작법 만들어보자!」(2024-10-19)
  • 유튜브 「우리 편은 못 때린다. 팀킬 금지」(2024-10-29)
  • 유튜브 「완전히 새로운 주민 상인을 추가해보자.」(2024-12-08)
  • 유튜브 「철검