마인크래프트 강좌/데이터팩 강좌

나만의 마법 부여를 만들어보자 custom enchantment

Potan 2024. 6. 25. 18:19
반응형

마인크래프트 1.21에 마법 부여가 데이터팩에서 정보를 가져오도록 변경되었습니다.

이에 따라 직접 데이터팩에서 사용자 지정 마법 부여를 만들 수 있습니다.

그래도 직접 만들때는 글 마지막에 소개된 생성기를 통해 만드시는 것을 추천드립니다.

 

버전 48 이상의 데이터팩이 필요하며 /reload 명령어로 적용되지 않습니다.

사용자 지정 마법 부여가 적용된 월드는 실험적 기능 경고가 발생합니다.

""가 생략되어 있습니다. json 에서는 숫자를 제외한 모든 단어에 ""가 있어야합니다.

만들기

마법 부여는 두 가지 경로를 통해 생성합니다.

data/<namespace>/enchantment 

data/<namespace>/enchantment_provider

첫번째 경로는 마법부여의 데이터가 저장되고 두번째 경로는 마법 부여 공급원을 설정합니다.

마법부여 공급원은 부록을 확인해주세요

폴더 내에 <이름>.json 폴더를 만들어서 작성하면 됩니다.

 

형식

  • description - 마법 부여의 설명으로 표시될 내용의 채팅 구성요소입니다.
  • exclusive_set - (선택사항)이 마법 부여와 충돌하는(ex:섬손vs행운) 마법 부여들의 정보입니다. (ID, #tag, [ID List] 등 가능)
  • supported_item : 해당 마법 부여가 모루나 /enchant 명령어로 적용될 수 있는 아이템 정보입니다. (ID, #tag, [ID List] 등 가능)
  • primary_items - (선택사항) 마법 부여대에서 해당 마법 부여가 뜨는 아이템 정보입니다. 모조건 supported_item의 부분 집합이여야 하며 기본값은 supported_item과 일치합니다. (ID, #tag, [ID List] 등 가능)
  • weight - 해당 마법 부여가 뜰 확률입니다. (1 ~ 1024의 값이며 확률은 weight / (모든 가능한 마법 부여의 weight 합) * 100% 입니다.)
  • max_level - 해당 마법 부여의 최대 레벨입니다. (1 ~ 255의 값이며 명령어가 아닌 서바이벌에서 가능한 최대 레벨)
  • min_cost - 각 레벨당 필요한 최소 경험치입니다.
    • base : 레벨1 의 최소 요구 경험치입니다.
    • per_level_above_first : 레벨 1 이후로 레벨이 오를때마다 최소 요구 경험치에 추가될 값입니다.
  • max_cost - 각 레벨당 뜰 수 있는 최대 요구 경험치입니다. min_cost와 같은 항목을 넣을 수 있습니다.
  • anvil_cost - 모루를 사용하여 마법 부여를 적용할 때의 필요 경험치입니다. 책에 넣을 땐 절반이 되며 레벨만큼 곱해집니다.
  • slots : 해당 마법 부여가 작동할 수 있는 슬롯 리스트입니다.
    • any, hand, mainhand, offhand, armor, feet, legs, chest, head, body 등을 넣을 수 있습니다.
  • effects : 효과 구성요소들을 넣을 수 있는 항목입니다. 자세한 건 효과 구성요소에 대해 따로 적어놓겠습니다.

 

예시

마법 부여대는 장비만 가능한지 고기 마법 부여는 불가능했습니다.
생성된 마법 부여는 크리에이티브 재료 항목에 있는 마법 부여된 책 목록에 최고 레벨로 들어가있습니다.
enchant 명령어를 사용해 확인할 수 있습니다.

 

효과 구성요소

효과 구성요소는 마법 부여의 기능을 담당하는 부분입니다.

주로 위 사진처럼 effects항목 내에 "<ID>" : [~] ({}는 내용이 없는경우) 형식으로 작성될 수 있으며 여러 ID를 넣는것 역시 가능합니다.

ID들은 값 기반 구성요소, 엔티티 기반 구성요소, 나머지로 구분할 수 있습니다.

레벨 기반 값

레벨 기반 값은 Number Provider 처럼 변수로 제공되는 것으로 밑의 효과들에 들어갑니다. 주로 마법 부여의 레벨에 기반해 조정되는 값들입니다.

다음과 같은 값들을 넣을 수 있습니다.

  1. 상수 - 레벨에 영향 받지 않는 고정된 값입니다. (소수)
  2. linear - 값이 레벨에 따라 선형적으로 변하는 값입니다. (공식 : base + per_level_above_first * (level - 1) )
    • type: minecraft:linear
    • base : 레벨 1 마법 부여일때 값
    • per_level_above_first : 레벨이 오를 때 마다 추가될 값입니다.
  3. levels_squared - 값이 레벨의 제곱에 따라 증가하는 값입니다. (공식 : level^2 + added )
    • type: minecraft:levels_squared
    • added : 레벨의 제곱에 더해질 값입니다.
  4. clamped - 다른 레벨 기반 값을 사용하되 [min, max] 범위 내에서만 나오게 만듭니다.
    • type : minecraft:clamped
    • value : 입력될 레벨 기반 값입니다.
    • min : 출력될 레벨 기반 값의 최소값입니다.
    • max : 출력될 레벨 기반 값의 최대값입니다.
  5. fraction - 2개의 레벨 기반 값으로 분수 계산을 합니다. (numerator / denominator)
    • type : minecraft:fraction
    • numerator : 분수의 분자가 될 레벨 기반 값입니다.
    • denominator : 분수의 분모가 될 레벨 기반 값입니다.
  6. lookup - 각 레벨에 따른 값을 직접 정의합니다.
    • type : mincraft:lookup
    • values : 각 레벨에 따른 레벨 기반 값 리스트입니다. 0번이 1레벨을 의미합니다.
    • fallback : values에 없는 레벨을 넣었을 때 나올 레벨 기반 값입니다.

 

공통

  • effect - 기반입니다. 각 구성요소 첫 문장에 설명이 있습니다.
  • requirements - (선택사항) 해당 효과가 활성화되기 위한 조건(들)입니다. (predicate)

"ID" : [List] 이므로 여러 효과를 넣을 수 있습니다.

 

1. 값 기반 구성요소

value effect

값을 어떻게 수정할지 결정합니다. 여러가지 연산이 가능합니다.

  1. set - value 값으로 설정합니다.
    • type : minecraft:set
    • value - 레벨 기반 값을 넣을 수 있습니다.
  2. add - value 값을 더합니다.
    • type : minecraft:add
    • value - 레벨 기반 값을 넣을 수 있습니다.
  3. multiply - factor 값 만큼 곱합니다. 
    • type : minecraft:multiply
    • factor - 레벨 기반 값을 넣을 수 있습니다.
  4. remove_binomial - 이항 분포를 통해 성공할 때마다 1을 제거합니다.
    • type : minecraft:remove_bionomial
    • chance - 레벨 기반 값을 넣을 수 있으며 0 ~ 1 사이의 값으로  0은 입력값이 그대로 나오며 1은 모든 값이 삭제됩니다.
  5. all_of - 여러개의 효과를 연속적으로 실행합니다.
    • type : minecraft:all_of
    • effects : 실행할 값 효과 리스트입니다.

 

구성요소 ID 리스트

  1. minecraft:armor_effectiveness - 공격 대상의 갑옷 효율성을 결정합니다. 0 ~ 1 사이의 값입니다. 0:효과없음, 1:완전 효과적
  2. minecraft:damage - 공격으로 인한 피해량입니다.
  3. minecraft:damage_protection - 피해 보호 효과입니다. (데미지를 직접 처리하진 않고 데미지를 경감시킴.)
  4. minecraft:smash_damage_per_fallen_block - 철퇴의 낙하 공격때 떨어진 블록 당 추가되는 공격력입니다.
  5. minecraft:knockback - 공격으로 인한 넉백입니다.
  6. minecraft:equipment_drops - 엔티티를 죽였을 때 장비를 떨굴 확률입니다. (0 ~ 1 사이 값), 추가 항목 필요
    • enchanted : attacker 또는 victim - 어떤 엔티티가 해당 마법 부여를 가져야하는지 결정합니다
  7. minecraft:ammo_use - 활이나 석궁을 사용할 때 소모되는 탄약의 양입니다.8
  8. minecraft:projectile_piercing - 발사된 투사체가 관통할 수 있는 엔티티 수 입니다.
  9. minecraft:block_experience - 블록을 부쉈을 때 얻을 수 있는 경험치입니다.
  10. minecraft:repair_with_xp - 경험치를 얻었을 때 경험치 당 수리될 내구도의 양입니다.
  11. minecraft:item_damage - 내구도가 감소할 때 감소될 내구도 양입니다.
  12. minecraft:projectile_count - 발사할 때 생기는 투사체의 개수입니다.
  13. minecraft:trident_return_acceleration - 던진 삼지창이 주인에게 돌아가는 가속력입니다.
  14. minecraft:projectile_spread - 한번에 많은 투사체가 날아갈 때 투사체끼리의 확산 각도입니다.
  15. minecraft:fishing_time_reduction - 낚시때 줄어드는 시간입니다. 많은 값은 총 낚시 시간의 감소를 의미합니다.
  16. minecraft:fishing_luck_bonus - 낚시 전리품 목록에 행운을 추가합니다.
  17. minecraft:mob_experience - 몹을 죽였을 때 나오는 경험치의 양입니다.

예외적으로 조건 없이 레벨 기반 값 하나만을 사용하는 구성요소 ID가 있습니다. 조건 없이 항상 값이 수정됩니다. 이들은 []가 아닌 바로 레벨 기반 값을 넣어줘야 함에 주의해야합니다.

18. minecraft:crossbow_charge_time - 석궁을 장전하는데 걸리는 시간입니다.
19. minecraft:trident_spin_attack_strength - 삼지창의 회전 공격 (날아가는거) 세기입니다. 0 초과의 값이 입력될 경우 투척 공격이 회전 공격으로 변경됩니다.

 

조건에 제공되는 요소 (사실 저도 잘 모르겠습니다)

1 ~ 6번 ID를 사용할 때 조건이 this : 공격받은 엔티티, attacker : 공격중인 엔티티, direct_attacker : 투사체, Enchantment Level, Origin(공격한 엔티티의 위치), Damage source등을 enchaned_damage 로 제공받습니다. (사용가능하다는 의미 같습니다.)

7 ~ 11번 ID를 사용할 때 조건이 Tool : 마법 부여된 아이템, Enchantment Level을 enchanted_item로 제공받습니다.

12 ~ 13번 ID를 사용할 때 조건이 this : 투사체, Enchantment Level, Origin : 투사체의 위치를 enchanted_entity로 제공받습니다.

14 ~ 16번 ID를 사용할 때 조건이 this : 플레이어/공격하는 엔티티, Enchantment Level, Origin : 공격하는 엔티티의 위치를 enchanted_entity 로 제공받습니다.

17번 ID를 사용할 때 조건이 this : 죽은 몹, Enchantment Level, Origin:죽은 몹의 위치 를 enchanted_entity 로 제공받습니다.

 

2. 엔티티 기반 구성요소

entity effect

이 효과는 구성요소 ID에 기반한 엔티티에게 영향을 줍니다.

  1. all_of - 여러 엔티티 효과를 순서대로 실행합니다.
    • type:minecraft:all_of
    • effects: - 실행할 엔티티 효과 리스트입니다.
  2. apply_mob_effect - 포션 효과를 엔티티에게 부여합니다.
    • type:minecraft:apply_mob_effect
    • to_apply - 부여될 포션 효과입니다. (ID, #tag, [List] 가능)
    • min_duration - 포션 효과의 가능한 최소 지속시간입니다. 레벨 기반 값입니다.
    • max_duration - 포션 효과가 가능한 최대 지속시간입니다. 레벨 기반 값입니다.
    • min_amplifier - 포션 효과의 가능한 최소 레벨입니다. 레벨 기반 값입니다.
    • max_amplifier - 포션 효과의 가능한 최대 레벨입니다. 레벨 기반 값입니다.
  3. damage_entity - 엔티티에게 (추가) 데미지를 부여합니다.
    • type:minecraft:damage_entity
    • damage_type - 데미지 타입입니다. (ID)
    • min_damage - 가능한 최소 데미지입니다. 레벨 기반 값입니다.
    • max_damage - 가능한 최대 데미지입니다. 레벨 기반 값입니다.
  4. damage_item - 마법 부여된 아이템의 내구도를 감소시킵니다.
    • type:minecraft:damage_item
    • amount - 감소될 내구도의 양입니다. 레벨 기반 값입니다.
  5. explode - 폭발을 일으킵니다.
    • type:minecraft:explode
    • attribute_to_user - 폭발이 마법 부여된 아이템을 사용하는 엔티티가 일으킨 것으로 할지 여부입니다. (true/false)
    • damage_type - (선택사항) 폭발 데미지의 데미지 타입입니다. 생략할 경우 폭발이 데미지를 입히지 않습니다.
    • immune_blocks - (선택사항) 해당 폭발을 차단하고 부숴지지 않는 블록입니다. (ID, #tag, [List] 가능)
    • knockback_multiplier - (선택사항) 폭발의 넉백 배율입니다. 레벨 기반 값입니다. (기본값 1)
    • offset - (선택사항) 폭발이 발생하는 장소를 [x, y, z] 만큼 이동시킵니다. (기본값 [0,0,0])
    • radius - 폭발의 반경입니다. 레벨 기반 값입니다.
    • create_fire - 폭발이 불을 설치하는 지 여부입니다. (true/false)
    • block_interaction - 폭발이 블록과 어떻게 상호작용하는 지에 대한 ID입니다. 다음 중 한가지를 사용합니다.
      • none (효과 없음), block (ex: 침대 폭발), mob (ex: 크리퍼 폭발), tnt (ex: tnt 폭발), trigger (ex: 돌풍구 폭발)
    • small_particle - 폭발이 방출할 작은 입자입니다.
      • type : 파티클의 ID입니다.
      • ID에 따른 추가 항목들
    • large_particle - 폭발이 방출할 큰 입자입니다.
      • small_particle과 동일
    • sound - 재생될 소리 이벤트의 ID입니다.
  6. ignite - 엔티티를 불타는 상태로 만듭니다.
    • type:minecraft:ignite
    • duration - 불타는 상태가 지속되는 시간(초) 입니다. 레벨 기반 값입니다.
  7. play_sound - 소리를 재생합니다.
    • type:minecraft:play_sound
    • sound - 재생될 소리 이벤트의 ID입니다.
    • volume - 0.00001 ~ 10.0 사이의 값으로 소리의 크기입니다. (Float Provider 사용 (Number Provider와 유사))
    • pitch - 0.00001 ~ 2.0 사이의 값으로 소리의 피치입니다. (Float Provider 사용 (Number Provider와 유사))
  8. replace_block - 블록을 설치합니다.
    • type:minecraft:replace_block
    • block_state - 설치할 블록의 정보입니다. (Block State provider 사용, 마인크래프트 위키나 생성기를 이용해주시기 바랍니다.)
    • offset - (선택사항) 블록이 설치되는 장소를 [x, y, z] 만큼 이동시킵니다. (기본값 [0, 0, 0])
    • trigger_game_event - 해당 블록에서 발생될 게임 이벤트 ID 입니다. (스컬크 센서 작동시키는 이벤트)
    • predicate - (선택사항) 블록이 배치될 장소에 대한 블록 조건 입니다. (마인크래프트 위키나 생성기를 이용해주시기 바랍니다.)
  9. replace_disk - 원반 또는 원기둥 모양으로 블록을 설치합니다.
    • type:minecraft:replace_disk
    • block_state - 설치할 블록의 정보입니다. (Block State provider 사용, 마인크래프트 위키나 생성기를 이용해주시기 바랍니다.)
    • offset - (선택사항) 도형의 중심 좌표를 [x, y, z] 만큼 이동시킵니다. (기본값 [0, 0, 0])
    • radius - 도형의 반지름입니다. 레벨 기반 값입니다.
    • height - 도형의 높이입니다. 레벨 기반 값입니다.
    • trigger_game_event - 해당 블록에서 발생될 게임 이벤트 ID 입니다. (스컬크 센서 작동시키는 이벤트)
    • predicate - (선택사항) 블록이 배치될 장소에 대한 블록 조건 입니다. (마인크래프트 위키나 생성기를 이용해주시기 바랍니다.)
  10.  run_function - 함수를 실행합니다.
    • type:minecraft:run_function
    • function - 실행될 함수의 ID입니다.
  11. set_block_properties - 블록의 상태를 설정합니다.
    • type:minecraft:set_block_properties
    • offset - (선택사항) 설정할 블록의 좌표를 [x, y, z]만큼 이동시킵니다. (기본값 [0, 0, 0])
    • properties - 적용될 블록 상태 입니다.
      • <블록 상태> - "key":"value" 조합들입니다. (예시 : "facing":"east")
    • trigger_game_event - 설정되는 블록에서 발생하는 게임 이벤트입니다. (스컬크 센서 작동시키는 이벤트)
  12. spawn_particles
    • type:minecraft:spawn_particles
    • particle - 소환될 입자 정보입니다.
      • type : 파티클의 ID입니다.
      • ID에 따른 추가 항목들
    • horizontal_position - 입자를 수평적으로 어떻게 소환할지에 대한 정보입니다.
      • type - entity_position (엔티티 위치에서), in_bounding_box (엔티티의 경계 범위 내부에서 랜덤한 위치) 중 하나를 사용합니다.
      • offset -(선택사항) 위치를 주어진 값만큼 이동합니다. (기본값 0)
      • scale - (type이 bounding_box 일때만 사용) (선택사항) 입자가 소환될 엔티티의 경계 범위의 크기 배율입니다. (기본값 1)
    • vertical_position - 입자를 수직적으로 어떻게 소환할지에 대한 정보입니다.
      • horizontal_position과 동일한 항목으로 구성됨
    • horizontal_velocity - 입자의 초기 수평 속도입니다.
      • base - (선택사항) 입자의 기본 속도입니다. (기본값 0, Float Provider 사용)
      • movement_scale - (선택사항) 엔티티의 속도가 입자의 속도에 얼마나 반영될지의 비율입니다. (기본값 1)
    • vertical_velocity - 입자의 초기 수직 속도입니다.
      • horizontal_velocity와 동일한 항목으로 구성됨
  13. summon_entity - 엔티티를 소환합니다.
    • type:minecraft:summon_entity
    • entity - 소환될 엔티티의 타입입니다. (ID, #tag, [List] 가능, 여러 엔티티일 경우 랜덤하게 하나만 소환)
    • join_team - 소환될 엔티티가 마법 부여된 아이템을 가진 엔티티와 같은 팀인지 여부 (true/false)

 

구성요소 ID 리스트

  1. minecraft:hit_block - 엔티티가 블록과 충돌할 때 발동합니다.
    • 조건이 Enchantment Level, this : 블록과 충돌한 엔티티(투사체 가능), Origin - 충돌한 블록의 중심 좌표, Block State - 충돌한 블록의 상태를 hit_block으로 전달받습니다.
  2. minecraft:tick - 매 틱마다 발동합니다.
    • 조건이 Enchantment Level, this : 마법 부여된 아이템의 주인, Origin - 주인의 좌표를 enchanted_entity로 전달받습니다.
  3. minecraft:projectile_spawned - 활이나 석궁에서 투사체가 소환된 뒤에 발동합니다.
    • 조건이 Enchantment Level, this : 소환된 투사체, Origin - 투사체의 좌표를 enchanted_entity로 전달받습니다.
  4. minecraft:post_attack - 공격으로 엔티티가 데미지를 받은 뒤
    • 조건이 Enchantment Level, this : 공격받은 엔티티, attacker - 공격한 엔티티, direct_arracker - 투사체, Origin - 공격받은 엔티티의 좌표, Damage source를 enchanted_damage로 전달받습니다.

 

3. 나머지

  1. minecraft:attributes - 속성 효과 리스트로 리스트에 있는 모든 속성 효과를 엔티티에게 적용합니다.
    • 속성 효과
      • attribute - 속성 수정자를 엔티티에게 적용합니다.
        • type:minecraft:attribute
        • attribute - 수정될 속성의 ID 입니다.
        • amount - 수정될 양입니다. 레벨 기반 값입니다.
        • operation - add_value, add_multiplied_base, add_multiplied_total 중 한가지를 사용합니다.
        • id - 해당 속성 수정자의 식별용 id입니다.
  2. minecraft:location_changed  - 소유자/장비자 좌표의 정수 부분이 변경될 때 위치 기반 효과가 발동합니다.
    • 위치 기반 효과는 엔티티 효과와 속성 효과가 둘다 가능합니다. 또한 이때 all_of 효과는 다른 위치 기반효과들을 전부 받을 수 있습니다.
    • 내부 형식은 기존의 구성요소 ID와 동일하나 effect 에 위치 기반 효과를 받습니다.
    • 조건이 Enchantment Level, this : 움직인 엔티티, Origin - 움직인 엔티티의 위치, Enchantment active status - 이전에 성공한 마법 부여의 조건을 enchanted_location 으로 전달받습니다.
  3. minecraft:damage_immunity - requiremnts가 충족되면 데미지에 면역이 됩니다.
    • 형식
      • effect : {} - 내용 없음
      • requirements - (선택사항) 데미지 면역이 적용될 조건입니다.
    • 조건이 Enchantment Level, this - 공격받은 엔티티(소유자), attacker - 공격한 엔티티, direct_attacker - 투사체, Damage source 등을 enchanted_damage로 전달받습니다.
  4. minecraft:prevent_equipment_drop - 이 구성요소가 존재하면 소유자가 사망할 때 해당 아이템이 떨어지는 것을 막습니다.
    • minecraft:prevent_equipment_drop: {} - 내용 없음
  5. minecraft:prevent_armor_change - 이 구성요소가 존재하면 소유자가 사망할 때 해당 아이템이 떨어지는 것을 막습니다.
    • minecraft:prevent_armor_change: {} - 내용 없음
  6. minecraft:crossbow_charge_sounds - 석궁을 장전할 때 소리를 변경합니다.
    • minecraft:crossbow_change_sounds:[
      { start - (선택사항) 장전 시작할 때 소리 이벤트의 ID입니다,
        mid - (선택사항) 장전 중간의 소리 이벤트의 ID 입니다,
        end - (선택사항) 장전 끝의 소리 이벤트의 ID 입니다 }, - 레벨 1일 때 소리
      {}, - 레벨 2일 때 소리
      ...
      ]
  7. minecraft:trident_sound - 삼지창의 소리를 변경합니다.
    • minecraft:trident_sound:[
        레벨 1때 소리 이벤트의 ID,
        레벨 2때 소리 이벤트의 ID,
        ...
      ]

 

마법 부여 태그

data/<namespace>/tags/enchantment 에 저장됩니다.

단 하단의 특별한 태그들은 minecraft 를 <namespace>로 사용해야 적용됩니다. (실제로 적용되는지 테스트 필요)

기능성 마법 부여 태그

  • curse - 이 태그에 있는 마법 부여는 빨간색 글씨로 설명이 적히며 숫돌로 제거가 불가능합니다.
  • prevents_bee_spawns_when_mining - 이 태그에 있는 마법 부여가 부여된 도구는 벌집, 벌통을 캤을 때 벌이 내부에 있는 상태로 캐집니다.
  • prevents_decorated_pot_shattering - 이 태그에 있는 마법 부여가 부여된 도구는 장식된 도자기를 벽돌로 바꾸지 않습니다.
  • prevents_ice_melting - 이 태그에 있는 마법 부여가 부여된 도구는 얼음을 물로 바꾸지 못하게 합니다.
  • prevents_infested_spawns - 이 태그에 있는 마법 부여가 부여된 도구는 벌레 먹은 블록들을 부쉈을 때 안에 있는 몹의 스폰을 막습니다.
  • smelts_loot - 이 태그에 있는 마법 부여는 전리품이 구워져서 나오게 바꿉니다.

가능성 마법 부여 태그

  • tradeable - 이 태그에 있는 마법 부여는 부여된 책이 주민 거래에서 등장합니다.
  • on_traded_equipment - 이 태그에 있는 마법 부여는 부여된 장비가 주민 거래에서 등장합니다.
  • double_tade_price - 이 태그에 있는 마법 부여는 거래될 때 두 배의 에메랄드 가격을 요구합니다.
  • in_enchanting_table - 이 태그에 있는 마법 부여는 마법 부여대에서 등장할 수 있습니다.
  • on_mob_spawn_equipment - 이 태그에 있는 마법 부여는 랜덤한 몹이 부여된 장비를 입고 등장할 수 있습니다.
  • on_random_loot - 이 태그에 있는 마법 부여는 월드의 상자에서 발견할 수 있습니다.

 

추가적으로 실험 팩 trade_rebalance (거래 재조정) 팩에서는 바이옴에 따른 태그가 추가됩니다.

  • trades/<biome>_common - 낮은 레벨의 주민이 해당 바이옴에서 파는 마법 부여 리스트입니다.
  • trades/<biome>_special - 높은 레벨의 주민이 해당 바이옴에서 파는 마법 부여 리스트입니다.

 

편하게 생성기 사용해서 만들기

https://misode.github.io/enchantment/

 

Generator - Minecraft 1.21

 

misode.github.io

편하게 이 사이트를 통해서 사용자 지정 마법 부여를 만들 수 있습니다.

반응형