본문으로 건너뛰기
버전: Minecraft 26.2

몹 정의

몹 선언​

mod.content().entity("golem_friend", EntityDefinition.builder(ResourceId.of("my_mod", "textures/entity/golem_friend.png"))
.maxHealth(20)
.movementSpeed(0.25)
.panicWhenHurt()
.temptedBy(SPARK) // 이 아이템을 들고 있으면 따라옴
.spawnEgg(CreativeTab.SPAWN_EGGS)
.behavior(new EntityBehavior() { // onServerTick, onInteract
@Override
public InteractionResult onInteract(EntityInteraction interaction) {
if (!interaction.world().isClientSide()) {
interaction.entity().addEffect(GLOWING_HEART, 100, 0);
}
return InteractionResult.SUCCESS;
}
})
.build());
  • 게임의 길찾기 몹에 표준 AI 목표(배회, 플레이어 바라보기, 다치면 도망, 공격, 아이템으로 유인) 중 원하는 것을 골라 붙이는 방식입니다. 직접 만든 목표는 AI 목표와 탑승에서 다룹니다.
  • 모양은 기본적으로 플레이어 모델에 64×64 스킨 텍스처를 입혀 그립니다. 상자 모델을 직접 정의하려면 몹 모델을 참고하세요.
  • 몹은 /summon, 생성 알, world.spawnEntity로 생성합니다.
빌더 메서드뜻
size(width, height)충돌 상자 크기
category(MobCategory)CREATURE, MONSTER, AMBIENT, WATER_CREATURE
maxHealth, movementSpeed속성
noWandering(), panicWhenHurt(), attackPlayers(damage), temptedBy(item)표준 AI 목표 선택
goal(priority, factory), targetGoal(priority, factory)직접 만든 AI 목표
rideable(steerable)탈 수 있게 함(true면 조종도 가능)
noGravity(), notPushable()중력 없음, 밀리지 않음
spawnEgg(CreativeTab)생성 알 아이템(<id>_spawn_egg)
spawnsNaturally(biomes, weight, minGroup, maxGroup)자연 스폰
model(EntityModelDefinition)상자 모델
flying(flyingSpeed), swimming()나는 몹, 헤엄치는 몹. 아래 "이동 방식" 참고
behavior(EntityBehavior)onServerTick, onInteract 콜백
No data fixer registered for <id>

Minecraft 26.2에는 모드 엔티티용 데이터 변환 스키마가 없어서, 시작할 때 이 오류 로그가 한 줄 남습니다. 동작에는 영향이 없습니다.

이동 방식​

몹은 기본적으로 걷고 뛰며, 물에서는 수면으로 떠오릅니다(Movement.WALK). 이동 방식을 바꾸면 길찾기, 이동 제어, 기본 배회 목표가 함께 바뀝니다.

빌더동작
flying(flyingSpeed)공중으로 길을 찾고, 멈추면 그 자리에 떠 있습니다(벌처럼). 낙하 피해가 없으며, 공중 속도는 flyingSpeed로 정합니다(앵무새는 0.4).
swimming()물속으로만 길을 찾고, 어느 방향으로든 헤엄칩니다(돌고래처럼). 물속에서 숨을 쉬고, 물 밖에서는 느리게 기어갑니다. 물에서 스폰하려면 category(MobCategory.WATER_CREATURE)를 함께 지정합니다.
mod.content().entity("minnow", EntityDefinition.builder(ResourceId.of("my_mod", "textures/entity/minnow.png"))
.size(0.5f, 0.4f)
.category(MobCategory.WATER_CREATURE)
.movementSpeed(1.0)
.swimming()
.build());

MobView.navigateTo(x, y, z, speed)도 몹의 이동 방식에 맞게 길을 찾습니다. 나는 몹은 공중의 한 점으로, 헤엄치는 몹은 물속의 한 점으로 이동합니다.

자연 스폰​

EntityDefinition.builder(texture)
.spawnsNaturally(BiomeSelector.ids(ResourceId.minecraft("plains")), 5, 1, 2);
  • 서버가 월드를 만들 때 선택한 바이옴의 스폰 목록에 추가됩니다(로그: [Poly 모드 로더] Added N natural spawn(s)).
  • 스폰 위치 규칙은 같은 분류의 게임 몹을 따릅니다. 생물은 밝은 곳의 #minecraft:animals_spawnable_on 블록 위에, 몬스터는 어두운 곳에, 수중 생물은 물속에 스폰됩니다.
  • 스폰 설정은 WorldView.naturalSpawns(pos, category)로 확인할 수 있습니다.
  • 코드 바이옴에는 BiomeDefinition.builder().spawn(...)으로 추가합니다. 자세한 내용은 월드 생성을 참고하세요.

투사체​

mod.content().projectile("bolt", ProjectileDefinition.builder(SPARK) // 클라이언트에서 그릴 아이템 모양
.damage(2)
.behavior(new ProjectileBehavior() {
@Override
public void onHitEntity(ProjectileHit hit) {
if (hit.entity().orElseThrow() instanceof LivingEntityView living) {
living.addEffect(ResourceId.minecraft("glowing"), 100, 0);
}
}
})
.build());

player.launchProjectile(ResourceId.of("my_mod", "bolt"), 1.5f, 1.0f); // 속도, 부정확도
  • 투사체는 눈덩이처럼 날아가다가 처음 맞은 곳에서 피해를 주고, 행동 콜백(onHitEntity, onHitBlock)을 호출한 뒤 사라집니다.
  • size, gravity, damage를 지정할 수 있습니다.
  • launchProjectile로 minecraft:snowball 같은 게임 투사체도 쏠 수 있습니다.

엔티티 뷰​

타입주요 메서드
EntityViewuuid, type, name, x/y/z, blockPos, world, isAlive, remove, teleport, changeDimension, data(key)
LivingEntityViewhealth, maxHealth, setHealth, hurt(amount), hurt(damageType, amount), addEffect, hasEffect, launchProjectile
MobView길찾기, 시선, 공격 대상. AI 목표와 탑승
PlayerViewsendMessage, give, countItem, mainHandItem, mainHandStack, inventory, openMenu, 발전 과제, hasPermission
EntityView golem = world.spawnEntity(GOLEM, x, y, z);
List<EntityView> near = world.entitiesNear(x, y, z, 5);
entity.changeDimension(ResourceId.minecraft("the_nether"), x, y, z);
Buy me a coffee