Referência da API Lua
Referência completa de métodos para a API de scripts Lua. Todos os métodos são chamados via a sintaxe context.table:method().
Métodos Global (marcados como GLOBAL) vêm do Magmacore, a biblioteca core compartilhada. Aplicam-se a scripts do FreeMinecraftModels e a outros consumidores de ScriptInstance do MagmaCore. Os poderes de chefe do EliteMobs reutilizam o mesmo sandbox Lua, mas expõem tabelas de contexto e nomes de método específicos de chefe; os scripts de NPC do EliteMobs rodam no mesmo runtime MagmaCore e recebem o contexto compartilhado completo, mais a tabela context.npc exclusiva de NPC. Veja as seções do EliteMobs abaixo e Scripts de NPC para essas variantes.
Métodos EliteMobs (marcados como ELITEMOBS) são específicos dos scripts de poder de chefes e dos scripts de NPC do EliteMobs.
Métodos FMM (marcados como FMM) são específicos dos scripts de item e prop do FreeMinecraftModels.
Quando um método exige um enum do Bukkit (Sound, Particle, Material, etc.), consulte os Javadocs do Spigot para ver os valores válidos. Nomes de enum são passados como strings em maiúsculas (ex.: "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").
Entity Table GLOBAL
Campos base presentes em todas as tabelas de entidade — jogadores, mobs, props, qualquer coisa.
Propriedades
| Field | Type | Description |
|---|---|---|
uuid | string | UUID da entidade |
entity_type | string | Tipo da entidade (em minúsculas) |
is_valid | bool | Entidade ainda existe no mundo |
is_dead | bool | Entidade está morta |
is_player | bool | É um jogador |
is_hostile | bool | É um Monstro |
is_passive | bool | É um Animal |
current_location | location | Posição da entidade (x, y, z, yaw, pitch, world) |
world | string | Nome do mundo |
Enriquecedores específicos de plugin podem adicionar campos extras de nível superior quando o plugin relevante está instalado. Veja as seções de ponte (bridge) abaixo para os campos do EliteMobs e do FreeMinecraftModels.
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
teleport(location) | location table | nil | Teletransporta a entidade |
remove() | — | nil | Remove a entidade do mundo |
set_silent(enabled) | bool | nil | Define silencioso |
set_invulnerable(enabled) | bool | nil | Define invulnerável |
set_gravity(enabled) | bool | nil | Define gravidade |
set_glowing(enabled) | bool | nil | Define brilho de contorno |
Bridge: entity.elite
Adicionado pelo enriquecedor de entidade do EliteMobs quando o EliteMobs está instalado. O enriquecedor adiciona estas flags de nível superior:
| Field | Type | Description |
|---|---|---|
is_elite | bool | É uma entidade do EliteMobs |
is_custom_boss | bool | É um chefe personalizado do EliteMobs |
is_significant_boss | bool | Chefe personalizado com multiplicador de vida acima de 1 (encontro projetado) |
entity.elite só está presente quando is_elite for true.
| Field | Type | Description |
|---|---|---|
level | int | Nível do mob elite |
name | string | Nome de exibição da elite |
health | double | Vida atual |
max_health | double | Vida máxima |
is_custom_boss | bool | É um chefe personalizado (também disponível no nível superior) |
health_multiplier | double | Multiplicador de vida definido na config |
damage_multiplier | double | Multiplicador de dano definido na config |
remove() | method | Remove a entidade elite |
Bridge: entity.model
Adicionado pelo enriquecedor de entidade do FreeMinecraftModels quando o FMM está instalado. O enriquecedor adiciona estas flags de nível superior:
| Field | Type | Description |
|---|---|---|
is_modeled | bool | Possui um modelo FMM |
is_prop | bool | É um prop FMM |
entity.model só está presente quando is_modeled for true.
| Field | Type | Description |
|---|---|---|
model_id | string | Nome do blueprint do modelo |
is_dynamic | bool | Se é uma FMM DynamicEntity (true) ou um prop estático (false) |
play_animation(name, blend?, loop?) | method | Toca uma animação. blend padrão false, loop padrão false |
stop_animations() | method | Para todas as animações |
remove() | method | Remove a entidade modelada |
Bridge: permissões do jogador
Adicionado pelo enriquecedor de entidade do FreeMinecraftModels quando o FMM está instalado. Estes campos aparecem apenas em tabelas de entidade de jogador:
| Field / Method | Args | Returns | Description |
|---|---|---|---|
has_permission(node) | string | bool | Se o jogador tem o nó de permissão dado |
is_op | — | bool | Se o jogador é um operador do servidor |
Living Entity Table GLOBAL
Estende a Entity Table. Aplicado a todas as entidades vivas (mobs e jogadores).
Propriedades
| Field | Type | Description |
|---|---|---|
health | double | Vida atual |
maximum_health | double | Vida máxima |
name | string | Nome de exibição da entidade |
is_alive | bool | Entidade não está morta |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
damage(amount) | double | nil | Causa dano à entidade |
push(x, y, z) | double, double, double | nil | Adiciona um vetor de velocidade |
set_facing(x, y, z) | double, double, double | nil | Define a direção do olhar |
add_potion_effect(type, duration, amplifier) | string (PotionEffectType), int, int | nil | Aplica efeito de poção pelo nome |
remove_potion_effect(type) | string (PotionEffectType) | nil | Remove efeito de poção pelo nome |
get_scale() | — | number | Escala atual da entidade (padrão 1.0 em servidores sem o atributo generic.scale) |
set_scale(value) | double | nil | Define a escala da entidade via o atributo generic.scale (sem efeito em servidores anteriores ao 1.20.5) |
context.player GLOBAL
Tabela de entidade de jogador. Herda todos os campos de Entity e Living Entity.
Propriedades
| Field | Type | Description |
|---|---|---|
game_mode | string | survival, creative, adventure, spectator |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
send_message(text) | string | nil | Envia mensagem no chat. Suporta códigos de cor |
get_held_item() | — | table or nil | Retorna campos type, amount, display_name, ou nil se a mão estiver vazia. type é um nome de Material do Bukkit em maiúsculas |
consume_held_item(amount?) | int (default 1) | nil | Reduz a pilha do item segurado em amount |
has_item(material, amount?) | string (Material), int (default 1) | bool | Verifica o inventário pelo material |
get_target_entity(range?) | num (default 50) | entity or nil | Raycast para a entidade que o jogador está olhando |
get_eye_location() | — | location | Posição dos olhos do jogador |
get_look_direction() | — | vector | Vetor de direção unitário |
send_block_change(x, y, z, material, ticks?) | int, int, int, string (Material), int (optional) | bool | Envia bloco falso. Reseta automaticamente após ticks, se fornecido |
reset_block(x, y, z) | int, int, int | bool | Reseta bloco falso para o bloco real |
sleep(x, y, z) | num, num, num | nil | Animação de sono em cama na localização |
wake_up() | — | nil | Acorda do sono |
show_boss_bar(text, color?, progress, ticks?) | string, string (BarColor, default WHITE), num, int (optional) | nil | Exibe barra de chefe. Oculta automaticamente após ticks. Suporta códigos de cor |
hide_boss_bar() | — | nil | Remove a barra de chefe |
show_action_bar(text, ticks?) | string, int (optional) | nil | Mostra a action bar. Repete se ticks for maior que 0. Suporta códigos de cor |
show_title(title, subtitle?, fadeIn, stay, fadeOut) | string, string (default empty), int, int, int | nil | Mostra tela de título. Suporta códigos de cor |
context.world GLOBAL
Operações de mundo para scripts do FreeMinecraftModels e outros runtimes de ScriptInstance apoiados pelo Magmacore. Os poderes de chefe do EliteMobs partem desta mesma tabela base e acrescentam por cima as adições e sobreposições de context.world do EliteMobs listadas abaixo.
Os métodos de context.world vêm em duas formas intercambiáveis: estilo coordenadas (x, y, z) e estilo tabela de localização (as variantes *_at_location). Ambas as formas estão disponíveis nas superfícies genéricas, e os poderes de chefe do EliteMobs mantêm os métodos base compartilhados enquanto adicionam helpers de tabela de localização específicos de chefe.
Propriedades
| Field | Type | Description |
|---|---|---|
name | string | Nome do mundo |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
get_block_at(x, y, z) | int, int, int | string | Nome do Material (em minúsculas). Retorna "air" se o chunk não estiver carregado |
set_block_at(x, y, z, material) | int, int, int, string (Material) | bool | Enfileira a colocação do bloco se o material for válido; chunks não carregados são ignorados |
get_highest_block_y(x, z) | int, int | int | Y do bloco mais alto que não seja ar |
spawn_particle(particle, x, y, z, count?, dx?, dy?, dz?, speed?) | string (Particle), num, num, num, int?=1, num?=0, num?=0, num?=0, num?=0 | nil | Spawna efeito de partículas |
play_sound(sound, x, y, z, volume?, pitch?) | string (Sound), num, num, num, float?=1, float?=1 | nil | Toca som |
strike_lightning(x, y, z) | num, num, num | nil | Atinge raio |
get_time() | — | int | Tempo do mundo em ticks |
set_time(ticks) | long | nil | Define o tempo do mundo |
get_nearby_entities(x, y, z, radius) | num, num, num, num | table | Array de tabelas de entidade |
get_nearby_players(x, y, z, radius) | num, num, num, num | table | Array de tabelas de entidade de jogador |
spawn_entity(type, x, y, z) | string (EntityType), num, num, num | entity or nil | Spawna entidade vanilla; retorna nil se o tipo de entidade for inválido |
raycast(fx, fy, fz, dx, dy, dz, max?) | num, num, num, num, num, num, num?=50 | table | Retorna campos hit_entity, hit_location, hit_block |
place_temporary_block(x, y, z, material, ticks?, require_air?) | int, int, int, string (Material), int?=0, bool?=false | bool | Enfileira a substituição de bloco que reverte automaticamente após ticks. Retorna false se o material for inválido ou o chunk não estiver carregado |
drop_item(x, y, z, material, amount?) | num, num, num, string (Material), int?=1 | entity or nil | Solta entidade de item naturalmente na localização; retorna nil se o material for inválido |
spawn_firework(x, y, z, colors, type?, power?) | num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1 | nil | Spawna fogos de artifício |
strike_lightning_at_location(loc) | location | nil | Atinge raio |
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (Sound), float?=1, float?=1 | nil | Toca som |
spawn_particle_at_location(loc, particle, count?, dx?, dy?, dz?, speed?) | location, string (Particle), int?=1, num?=0, num?=0, num?=0, num?=0 | nil | Spawna efeito de partículas |
get_block_at_location(loc) | location | string | Nome do Material (em minúsculas). Retorna "air" se o chunk não estiver carregado |
set_block_at_location(loc, material) | location, string (Material) | bool | Enfileira a colocação do bloco se o material for válido; chunks não carregados são ignorados |
place_temporary_block_at_location(loc, material, ticks?, require_air?) | location, string (Material), int?=0, bool?=false | bool | Enfileira a substituição de bloco que reverte automaticamente após ticks. Retorna false se o material for inválido ou o chunk não estiver carregado |
get_highest_block_y_at_location(loc) | location | int or nil | Y do bloco mais alto que não seja ar |
em helpers GLOBAL
Construtores auxiliares globais expostos na tabela em em todos os runtimes Lua do MagmaCore.
Construtores
| Method | Args | Returns | Description |
|---|---|---|---|
em.create_location(x, y, z, world?, yaw?, pitch?) | num, num, num, string?, num?, num? | location | Tabela de localização com x, y, z, opcionalmente world, yaw, pitch, e um método in-place add(dx, dy, dz) |
em.create_vector(x, y, z) | num, num, num | vector | Tabela de vetor com x, y, z |
Construtores de Zona
Os construtores de zona retornam tabelas simples de definição de zona. Esferas, domos, cilindros e cuboides incluem :set_center(location). Cones e zonas de raio incluem :set_origin(location) e :set_destination(location).
| Method | Args | Returns | Description |
|---|---|---|---|
em.zone.create_sphere_zone(radius) | num | zone | { kind = "sphere", radius = ... } |
em.zone.create_dome_zone(radius) | num | zone | { kind = "dome", radius = ... } |
em.zone.create_cylinder_zone(radius, height) | num, num | zone | { kind = "cylinder", radius = ..., height = ... } |
em.zone.create_cuboid_zone(x, y, z) | num, num, num | zone | Meias-extensões do cuboide |
em.zone.create_cone_zone(length, radius) | num, num | zone | Definição de cone com setters de origem/destino |
em.zone.create_static_ray_zone(length, thickness) | num, num | zone | Definição de raio estático |
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration) | num, num, num | zone | Definição de raio rotativo |
em.zone.create_translating_ray_zone(length, point_radius, animation_duration) | num, num, num | zone | Definição de raio com translação |
em.location GLOBAL
Helpers de consulta de localização expostos na tabela global em. Apoiados pelo LocationQueryRegistry e pelo serviço LocationOwnership do Magmacore, que reúne resultados de provedores registrados (regiões de dungeon/world-package do EliteMobs, WorldGuard, GriefPrevention, etc.). Todas as funções aceitam uma tabela de localização ({x, y, z, world}) e retornam valores padrão seguros se a localização for inválida.
| Method | Args | Returns | Description |
|---|---|---|---|
em.location.is_in_dungeon(loc) | location | bool | Se a localização está dentro de alguma região de dungeon registrada |
em.location.is_protected(loc) | location | bool | Se algum provedor reporta a localização como protegida (WorldGuard, GriefPrevention, regiões EM, etc.) |
em.location.owned_by(loc, namespace) | location, string | bool | Se o namespace dado possui a localização (ex.: "EliteMobs") |
em.location.owners(loc) | location | table | Array de strings de namespace que reivindicam a posse desta localização |
em.location.kinds_at(loc) | location | table | Array de tags de tipo nesta localização (ex.: "elitemobs", "world_package", "open_world_dungeon", categoria de tamanho de dungeon) |
em.location.has_kind(loc, kind) | location, string | bool | Se a localização tem a tag de tipo dada |
context.boss ELITEMOBS
Tabela de entidade de chefe para scripts de poder Lua do EliteMobs. Herda todos os métodos da EliteMobs Living Entity. As propriedades são atualizadas via getters dedicados.
Propriedades
| Field | Type | Description |
|---|---|---|
name | string | Nome de exibição do chefe |
uuid | string | UUID da entidade elite |
health | double | Vida atual (snapshot) |
maximum_health | double | Vida máxima (snapshot) |
current_location | location | Posição do chefe (snapshot) |
level | int | Nível do chefe |
damager_count | int | Número de jogadores que causaram dano a este chefe |
is_in_combat | bool | Chefe está em combate |
exists | bool | Entidade do chefe existe |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
is_alive() | — | bool | Se a entidade do chefe está viva (verificação ao vivo) |
get_health() | — | double | Vida atual (ao vivo) |
get_maximum_health() | — | double | Vida máxima (ao vivo) |
get_location() | — | location | Posição atual (ao vivo) |
restore_health(amount) | double | nil | Cura o chefe |
despawn() | — | nil | Remove a entidade do chefe |
get_damager_count() | — | int | Contagem de causadores de dano ao vivo |
add_tag(tag, ticks?) | string, int?=0 | nil | Adiciona tag, removida automaticamente após ticks se definido |
remove_tag(tag) | string | nil | Remove tag |
has_tag(tag) | string | bool | Verifica tag |
reset_custom_name() | — | nil | Reseta o nome para o padrão da config |
play_sound_at_self(sound, volume?, pitch?) | string (chave de som do Minecraft, ex. "entity.wither.spawn"), float?=1, float?=1 | nil | Toca som no chefe |
play_sound_at_entity(sound, volume?, pitch?) | string (chave de som do Minecraft, ex. "entity.wither.spawn"), float?=1, float?=1 | nil | Toca som no chefe (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) or table, int?=1 | nil | Spawna partículas no chefe |
play_model_animation(name) | string | nil | Toca animação do modelo FMM (requer modelo FMM) |
has_mount() | - | bool | Se este chefe está montado em uma entidade de montaria |
get_mount() | - | entity or nil | Referência da entidade de montaria atual, marcada com is_mount = true |
set_mount(entity) | entity table | bool | Faz o chefe montar na entidade dada |
clear_mount() | - | bool | Faz o chefe sair do veículo atual |
dismount() | - | bool | Alias para clear_mount() |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding até a localização |
send_message(text, range?) | string, double?=20 | nil | Envia mensagem para jogadores próximos. Suporta códigos de cor |
get_nearby_players(range) | double | table | Array de tabelas de jogador dentro do alcance |
get_target_player() | — | player or nil | Alvo atual do mob, se for um jogador |
get_nearby_players_in_zone(zone) | zone table | table | Jogadores dentro do formato da zona |
get_ender_dragon_phase() | — | string or nil | Nome da EnderDragon.Phase |
set_ender_dragon_phase(phase) | string (EnderDragon.Phase) | nil | Define a fase do ender dragon |
summon_reinforcement(file, zone?, level?) | string, zone or nil, int?=0 | entity or nil | Spawna chefe de reforço |
summon_projectile(type, origin, dest, speed?, options?) | string (EntityType), location, location, double?=1, table | entity or nil | Spawna projétil rastreado; retorna nil se o tipo ou as localizações forem inválidos |
Opções de summon_projectile
| Option | Type | Default | Description |
|---|---|---|---|
custom_damage | number | — | Sobrescreve o dano do projétil |
detonation_power | string | — | Nível de potência explosiva |
yield | number | — | Yield (potência) do fireball |
incendiary | bool | true | Fireball ateia fogo |
gravity | bool | — | Habilita gravidade |
glowing | bool | false | Define brilho de contorno |
invulnerable | bool | false | Define invulnerável |
persistent | bool | true | Define persistente |
duration | int | 0 | Remove automaticamente após ticks |
effect | string | — | EntityEffect a tocar no spawn |
spawn_at_origin | bool | false | Spawna na origem em vez de lançar do chefe |
direction_only | bool | false | Define a direção sem velocidade (fireballs) |
track | bool | true | Registra como projétil de elite |
on_land | function | — | Callback ao pousar o projétil: function(location, entity) |
max_ticks | int | 6000 | Ticks máximos antes do callback de pouso forçado |
Métodos de Zona/Partícula
| Method | Args | Returns | Description |
|---|---|---|---|
spawn_particles_in_zone(zone, particle, ...) | zone, particle spec, coverage?=1.0 | nil | Preenche a zona com partículas |
spawn_particles_in_zone_border(zone, particle, ...) | zone, particle spec, coverage?=1.0 | nil | Contorna a zona com partículas |
get_particles_from_self_toward_zone(zone, particle, speed?) | zone, string, double?=0.1 | table | Partículas direcionais do chefe em direção à zona |
get_particles_toward_self(zone, particle, speed?) | zone, string, double?=0.1 | table | Partículas direcionais da zona em direção ao chefe |
spawn_particles_with_vector(particles) | table | nil | Spawna array de partículas direcionais |
Suporte a Poderes Especiais
| Method | Args | Returns | Description |
|---|---|---|---|
start_tracking_fireball_system(speed?) | double?=0.5 | nil | Inicia a IA de fireball rastreado |
handle_spirit_walk_damage(cause) | string (DamageCause) | nil | Trata dano de spirit walk por causa |
shield_wall_is_active() | — | bool | Se o shield wall está ativo |
initialize_shield_wall(charges?) | int?=1 | nil | Ativa o shield wall |
shield_wall_absorb_damage(player, damage) | entity table, double | bool | Tenta absorver dano |
deactivate_shield_wall() | — | nil | Desativa o shield wall |
start_zombie_necronomicon(target, file) | entity table, string | nil | Inicia necronomicon no alvo |
context.npc ELITEMOBS NPC
Tabela de NPC para scripts Lua de NPC do EliteMobs. Os scripts de NPC ficam em plugins/EliteMobs/npc_scripts/ e são anexados através de uma lista scripts: na config do NPC. Os scripts de NPC rodam no mesmo runtime MagmaCore que todas as outras superfícies e recebem o contexto compartilhado completo — context.world, context.zones, context.scheduler, context.cooldowns, context.log, context.event, context.player, context.state — mais a tabela context.npc exclusiva de NPC documentada aqui.
Propriedades
| Field | Type | Description |
|---|---|---|
name | string | Nome de exibição do NPC |
filename | string | Nome do arquivo de config do NPC |
uuid | string | UUID do NPC em tempo de execução |
activation_radius | double | Raio de ativação configurado |
current_location | location | Localização (snapshot) quando a entidade do NPC existe |
entity_type | string | Tipo de entidade do Bukkit quando a entidade do NPC existe |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
is_valid() | - | bool | Se a entidade de suporte do NPC ainda é válida |
get_location() | - | location | Localização atual do NPC, ou fallback de spawn |
get_eye_location() | - | location | Localização atual dos olhos, ou fallback de spawn |
get_activation_radius() | - | double | Raio de ativação configurado atual |
get_nearby_players(radius) | double | table | Tabelas de jogador perto do NPC |
face_direction_or_location(target) | vector or location | nil | Encara uma direção ou olha para uma localização |
say_greeting(player?) | player, UUID, name, or nil | nil | Envia uma saudação configurada. Por padrão, usa o jogador que disparou o evento quando disponível |
say_dialog(player?) | player, UUID, name, or nil | nil | Envia o diálogo configurado. Por padrão, usa o jogador que disparou o evento quando disponível |
say_farewell(player?) | player, UUID, name, or nil | nil | Envia o texto de despedida configurado. Por padrão, usa o jogador que disparou o evento quando disponível |
play_model_animation(name) | string | nil | Toca uma animação de modelo customizado, se disponível; sem efeito de forma segura caso contrário |
Hooks específicos de NPC incluem on_spawn, on_remove, on_game_tick, on_npc_interact, on_npc_proximity_enter e on_npc_proximity_leave. Veja Scripts de NPC do EliteMobs para o fluxo completo e os detalhes de cooldown.
EliteMobs Living Entity Table ELITEMOBS
Tabelas de entidade criadas dentro de scripts de poder do EliteMobs (a partir de context.boss, dados de evento, callbacks de zona e consultas de mundo) usam uma tabela de entidade viva estendida, com métodos adicionais além da Living Entity global. context.boss herda todos esses.
Propriedades
| Field | Type | Description |
|---|---|---|
name | string | Nome de exibição da entidade |
uuid | string | UUID da entidade |
entity_type | string | Nome do tipo da entidade |
is_player | bool | É um jogador |
is_monster | bool | É um Monstro |
is_elite | bool | É uma entidade do EliteMobs |
is_valid | bool | Entidade ainda existe |
is_mount | bool | True quando esta tabela de entidade representa uma montaria de chefe |
health | double | Vida atual (snapshot) |
maximum_health | double | Vida máxima (snapshot) |
current_location | location | Posição da entidade (snapshot) |
game_mode | string | Modo de jogo (em MAIÚSCULAS no EliteMobs: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR) |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
is_alive() | — | bool | Se a entidade está viva (verificação ao vivo) |
is_ai_enabled() | — | bool | Se a IA está habilitada |
is_frozen() | — | bool | Se o chefe está congelado (apenas CustomBossEntity) |
is_on_ground() | — | bool | Se a entidade está no chão |
is_healing() | — | bool | Se a elite está se curando |
get_location() | — | location | Posição atual (ao vivo) |
get_eye_location() | — | location | Posição dos olhos (ao vivo) |
get_height() | — | double | Altura da entidade |
get_health() | — | double | Vida atual (ao vivo) |
get_maximum_health() | — | double | Vida máxima (ao vivo) |
get_velocity() | — | vector | Vetor de velocidade atual |
deal_damage(amount) | double | nil | Causa dano genérico |
deal_custom_damage(amount) | double | nil | Causa dano de ataque customizado do chefe do poder |
deal_damage_from_boss(amount) | double | nil | Causa dano atribuído à entidade do chefe do poder |
restore_health(amount) | double | nil | Cura a entidade (usa a cura do EliteMobs se for elite) |
play_sound_at_entity(sound, volume?, pitch?) | string (chave de som do Minecraft, ex. "entity.ender_dragon.growl"), float?=1, float?=1 | nil | Toca som na entidade |
play_sound_at_self(sound, volume?, pitch?) | string (chave de som do Minecraft, ex. "entity.ender_dragon.growl"), float?=1, float?=1 | nil | Toca som na entidade (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) or table, int?=1 | nil | Spawna partículas na entidade |
spawn_particles_at_location(loc, particle, count?) | location, particle spec, int?=1 | nil | Spawna partículas na localização |
teleport_to_location(location) | location | nil | Teletransporta a entidade |
set_velocity_vector(vector) | vector | nil | Define a velocidade |
set_gravity(enabled) | bool | nil | Define gravidade |
apply_push_vector(vector, additive?, delay?) | vector, bool?=false, int?=1 | nil | Aplica velocidade após atraso. additive soma à velocidade existente |
push_relative_to(location, force?, extraX?, extraY?, extraZ?) | location, double?=1, double?=0, double?=0, double?=0 | nil | Empurra a entidade para longe da localização |
set_custom_name(name) | string | nil | Define o nome de exibição customizado. Suporta códigos de cor |
reset_custom_name() | — | nil | Reseta o nome para o padrão do EliteMobs |
set_custom_name_visible(visible) | bool | nil | Alterna a visibilidade do nome |
set_ai_enabled(enabled, duration?) | bool, int?=0 | nil | Define estado da IA. Reverte automaticamente após duration ticks |
set_awareness_enabled(enabled, duration?) | bool, int?=0 | nil | Define a percepção do mob. Reverte automaticamente após duration ticks |
face_direction_or_location(target) | vector or location | nil | Encara uma direção ou olha para uma localização |
play_model_animation(name) | string | nil | Toca animação do modelo FMM (requer modelo FMM) |
is_inside_vehicle() | - | bool | Se a entidade está montada em outra entidade |
has_vehicle() | - | bool | Se a entidade tem um veículo |
get_vehicle() | - | entity or nil | Referência da entidade de veículo atual |
set_vehicle(entity) | entity table | bool | Faz esta entidade montar no veículo dado |
leave_vehicle() | - | bool | Faz esta entidade sair do veículo atual |
has_passengers() | - | bool | Se esta entidade tem passageiros |
get_passenger_count() | - | int | Número de passageiros |
get_passengers() | - | table | Array de referências de entidade dos passageiros |
add_passenger(entity) | entity table | bool | Adiciona um passageiro a esta entidade |
remove_passenger(entity) | entity table | bool | Remove um passageiro desta entidade |
eject_passengers() | - | bool | Ejeta todos os passageiros |
set_scale(scale, duration?) | double, int?=0 | nil | Define a escala da entidade. Reverte para 1.0 automaticamente após duration ticks |
set_invulnerable(enabled, duration?) | bool, int?=0 | nil | Define invulnerável. Reverte automaticamente após duration ticks |
set_healing(enabled) | bool | nil | Define o estado de cura da elite |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding até a localização (apenas CustomBossEntity) |
add_tag(tag, ticks?) | string, int?=0 | nil | Adiciona tag, removida automaticamente após ticks |
remove_tag(tag) | string | nil | Remove tag |
has_tag(tag) | string | bool | Verifica tag |
overlaps_box_at_location(center, halfX?, halfY?, halfZ?) | location, double?=0.5, double?=halfX, double?=halfX | bool | Se a bounding box da entidade sobrepõe uma caixa na localização |
remove_elite() | — | nil | Remove via pipeline de remoção do EliteMobs |
apply_potion_effect(type, duration, amplifier?) | string (PotionEffectType), int, int?=0 | nil | Aplica efeito de poção |
set_equipment(slot, material, options?) | string (EquipmentSlot), string (Material), table | nil | Define o item do slot de equipamento |
set_fire_ticks(ticks) | int | nil | Define os ticks de fogo |
add_visual_freeze_ticks(ticks?) | int?=1 | nil | Adiciona ticks visuais de congelamento |
place_temporary_block(material, ticks?, requireAir?) | string (Material), int?=0, bool?=false | nil | Coloca bloco temporário na localização da entidade |
Opções de set_equipment
| Option | Type | Default | Description |
|---|---|---|---|
unbreakable | bool | false | Torna o item inquebrável |
enchantments | table | — | Array de tabelas {type = "ENCHANT_NAME", level = 1} |
Métodos de Jogador no EliteMobs
Jogadores em scripts do EliteMobs têm todos os métodos da entidade viva do EliteMobs mais:
| Method | Args | Returns | Description |
|---|---|---|---|
send_message(text) | string | nil | Envia mensagem no chat. Suporta códigos de cor |
show_action_bar(text) | string | nil | Mostra texto na action bar. Suporta códigos de cor |
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?) | string, string?="", int?=10, int?=40, int?=10 | nil | Mostra tela de título. Suporta códigos de cor |
show_boss_bar(title, color?, style?, duration?) | string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40 | nil | Mostra barra de chefe. Oculta automaticamente após duration ticks. Suporta códigos de cor |
run_command(command) | string | nil | Executa comando como jogador |
Tabela de Referência de Entidade do EliteMobs
Entidades não-vivas (projéteis, blocos caindo, fogos de artifício) retornadas pelos métodos de spawn do EliteMobs recebem uma tabela leve de referência:
| Field / Method | Args | Returns | Description |
|---|---|---|---|
name | — | string | Nome da entidade |
uuid | — | string | UUID da entidade |
entity_type | — | string | Nome do tipo da entidade |
is_player | — | bool | Sempre false |
is_elite | — | bool | Sempre false |
is_valid() | — | bool | Se a entidade ainda é válida (verificação ao vivo) |
current_location | — | location | Posição (snapshot) |
get_location() | — | location | Posição atual (ao vivo) |
get_velocity() | — | vector | Vetor de velocidade atual |
is_on_ground() | — | bool | Se a entidade está no chão |
teleport_to_location(location) | location | nil | Teletransporta a entidade |
set_velocity_vector(vector) | vector | nil | Define a velocidade |
set_direction_vector(vector) | vector | nil | Define a direção (somente fireballs) |
set_yield(amount) | double | nil | Define o yield do fireball |
set_gravity(enabled) | bool | nil | Define gravidade |
detonate() | — | nil | Detona fogos de artifício |
remove() | — | nil | Remove a entidade |
unregister(reason?) | string?=OTHER | nil | Cancela o registro do rastreador de entidades do EliteMobs |
context.players ELITEMOBS
Tabela de consulta de jogadores disponível em scripts de poder do EliteMobs. Fornece métodos auxiliares para encontrar jogadores em relação ao chefe.
| Method | Args | Returns | Description |
|---|---|---|---|
current_target() | — | player or nil | Ator do evento, se for jogador, ou o alvo atual do mob do chefe, se for jogador |
nearby_players(radius) | double | table | Array de tabelas de jogador dentro do raio do chefe |
all_players_in_world() | — | table | Array de todas as tabelas de jogador no mundo do chefe |
context.entities ELITEMOBS
Tabela de consulta de entidades disponível em scripts de poder do EliteMobs. Fornece métodos auxiliares para encontrar entidades em relação ao chefe. Todas as consultas excluem o próprio chefe.
| Method | Args | Returns | Description |
|---|---|---|---|
get_nearby_entities(radius, filter?) | double, string?="living" | table | Entidades dentro do raio. "all"/"entities" retorna todas as entidades (incluindo não-vivas); qualquer outro valor retorna entidades vivas filtradas por categoria: "player(s)", "elite(s)", "mob(s)", ou padrão = todas as vivas |
get_entities_in_box(center, halfX, halfY, halfZ, filter?) | location, double, double, double, string?="living" | table | Entidades vivas dentro de uma caixa alinhada aos eixos (mesmos valores de filtro acima; apenas modos diferentes de all) |
get_all_entities(filter?) | string?="living" | table | Todas as entidades vivas no mundo do chefe (mesmos valores de filtro) |
get_direct_target_entity() | — | entity or nil | Entidade alvo direta do evento disparado |
get_boss_spawn_location() | — | location | Localização original de spawn do chefe |
context.vectors ELITEMOBS
Utilitários de matemática vetorial disponíveis em scripts de poder do EliteMobs.
| Method | Args | Returns | Description |
|---|---|---|---|
get_vector_between_locations(from, to, options?) | location, location, table | vector | Vetor da origem ao destino. As opções podem modificar o resultado |
rotate_vector(vector, pitch?, yaw?) | vector, double?=0, double?=0 | vector | Rotaciona o vetor por pitch e yaw (graus) |
normalize_vector(vector) | vector | vector | Normaliza para comprimento unitário |
context.state GLOBAL
Uma tabela Lua comum que persiste por toda a vida útil da instância do script. Use-a para armazenar flags, contadores, IDs de tarefa, estados de toggle e qualquer dado que você precise compartilhar entre hooks. context.state é a tabela persistente de propriedade do script; a maioria das outras tabelas de contexto é reconstruída ou recriada de forma preguiçosa conforme necessário. O FMM faz cache de context.prop por prop por desempenho, mas seus campos ao vivo, como current_location, ainda são atualizados na leitura.
context.state.counter = (context.state.counter or 0) + 1
context.cooldowns GLOBAL
Gerenciamento de cooldowns. Cooldowns locais são por instância de script; cooldowns globais são compartilhados entre todos os scripts da mesma entidade/dono. Se nenhuma chave for fornecida, o padrão é o nome do arquivo do script.
| Method | Args | Returns | Description |
|---|---|---|---|
local_ready(key?) | string (optional) | bool | Se o cooldown local expirou |
local_remaining(key?) | string (optional) | int | Ticks restantes no cooldown local (0 se pronto) |
check_local(key?, duration) | string (optional), int | bool | Se pronto, inicia o cooldown e retorna true; caso contrário, false |
set_local(duration, key?) | long, string (optional) | nil | Define cooldown local por duration ticks |
global_ready() | — | bool | Se o cooldown global expirou |
set_global(duration) | long | nil | Define o cooldown global por duration ticks |
Em scripts de poder do EliteMobs, cooldowns locais são compartilhados entre todos os poderes na mesma entidade-chefe, e cooldowns globais usam o sistema embutido de cooldown de poderes do chefe.
Os scripts de NPC do EliteMobs usam a ordem de cooldown compartilhada check_local(key?, duration); veja Scripts de NPC.
context.scheduler GLOBAL
Agendamento de tarefas. Todas as tarefas são canceladas automaticamente quando o script é desligado.
Variante Global (Magmacore)
Scripts do FreeMinecraftModels e scripts de NPC do EliteMobs usam esta variante compartilhada. Os nomes ao estilo EliteMobs abaixo são aliases no mesmo scheduler, portanto qualquer estilo de nomenclatura é válido nas superfícies genéricas.
| Method | Args | Returns | Description |
|---|---|---|---|
run_later(ticks, callback) | int, function | int | Executa callback após ticks. Retorna ID da tarefa |
run_repeating(delay, interval, callback) | int, int, function | int | Executa callback a cada interval ticks após o atraso inicial. Retorna ID da tarefa |
cancel(taskId) | int | nil | Cancela uma tarefa agendada |
Variante EliteMobs
| Method | Args | Returns | Description |
|---|---|---|---|
run_after(ticks, callback) | int, function | int | Executa callback após ticks. Retorna ID da tarefa |
run_every(ticks, callback) | int, function | int | Executa callback a cada N ticks. Retorna ID da tarefa |
cancel_task(taskId) | int | nil | Cancela uma tarefa agendada |
context.log GLOBAL
Utilitários de log para depuração de scripts.
Variante Global (Magmacore / FMM)
| Method | Args | Returns | Description |
|---|---|---|---|
info(message) | string | nil | Registra mensagem informativa |
warn(message) | string | nil | Registra mensagem de aviso |
error(message) | string | nil | Registra mensagem de erro/aviso |
Variante EliteMobs
| Method | Args | Returns | Description |
|---|---|---|---|
info(message) | string | nil | Registra mensagem informativa |
warn(message) | string | nil | Registra mensagem de aviso |
debug(message) | string | nil | Registra mensagem de debug (aparece como info com prefixo de debug) |
context.zones GLOBAL
Criação e monitoramento de zonas para scripts do FreeMinecraftModels e outros runtimes de ScriptInstance apoiados pelo Magmacore. Os poderes de chefe do EliteMobs usam a variante context.zones do EliteMobs abaixo.
Variante Global (Magmacore)
| Method | Args | Returns | Description |
|---|---|---|---|
create_sphere(x, y, z, radius) | num, num, num, num | int | Cria zona esférica, retorna handle |
create_cylinder(x, y, z, radius, height) | num, num, num, num, num | int | Cria zona cilíndrica, retorna handle |
create_cuboid(x, y, z, xSize, ySize, zSize) | num, num, num, num, num, num | int | Cria zona cuboide, retorna handle |
watch(handle, on_enter?, on_leave?) | int, function?, function? | bool | Habilita o rastreamento da zona. Argumentos de função habilitam on_zone_enter / on_zone_leave; os corpos das funções não são invocados diretamente. Os hooks de zona recebem context.player / context.event.player para o jogador que cruzou a fronteira |
unwatch(handle) | int | nil | Para de rastrear a zona |
Variante EliteMobs
| Method | Args | Returns | Description |
|---|---|---|---|
get_entities_in_zone(zone, options?) | zone table, table | table | Obtém entidades dentro da zona. Opções: filter, mode |
get_locations_in_zone(zone, options?) | zone table, table | table | Obtém localizações dentro da zona. Opções: coverage, mode |
zone_contains(zone, location, mode?) | zone table, location, string?="full" | bool | Se a localização está dentro da zona ("full" ou "border") |
watch_zone(zone, callbacks, options?) | zone table, table, table? | nil | Observa a zona em busca de entrada/saída. Callbacks: {on_enter = fn, on_leave = fn}. As opções suportam filter e mode |
context.event GLOBAL
Tabela de dados de evento para o hook que disparou a execução atual do script. Presente durante hooks orientados a evento e durante hooks genéricos do MagmaCore de entrada/saída de zona que fornecem um ator jogador; não presente durante on_game_tick, callbacks agendados ou hooks de ciclo de vida sem jogador.
Variante Global (Magmacore)
| Field / Method | Type | Description |
|---|---|---|
is_cancelled | bool | Estado de cancelamento no momento em que o contexto foi construído; não é atualizado após cancel() / uncancel() |
cancel() | method | Cancela o evento quando o evento subjacente do Bukkit é cancelável |
uncancel() | method | Descancela o evento quando o evento subjacente do Bukkit é cancelável |
player | entity table | Jogador envolvido no evento (se houver) |
Hooks genéricos de zona populam player, mas não são apoiados por um evento cancelável do Bukkit, portanto cancel() e uncancel() não estão presentes ali.
Para a tabela de evento do EliteMobs (que fornece quantidades de dano, causas de dano, etc.), veja EliteMobs Event Table.
context.script ELITEMOBS
Ponte para o sistema Elite Script do EliteMobs. Permite que poderes Lua usem os sistemas de alvo, zona e vetores relativos baseados em YAML via tabelas Lua com os mesmos nomes de campo das configs YAML de Elite Script.
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
target(spec) | table | target handle | Cria um handle de alvo a partir de uma tabela de spec de alvo Elite Script |
zone(spec) | table | zone handle | Cria um handle de zona a partir de uma tabela de spec de zona Elite Script |
relative_vector(spec, location?, zone?) | table, location, zone handle | vector handle | Cria um vetor relativo a partir de uma spec de vetor Elite Script |
damage(target, amount?, multiplier?) | target handle, double?=0, double?=1 | nil | Causa dano a todas as entidades no alvo |
push(target, vector, additive?) | target handle, vector or vector handle, bool?=false | nil | Empurra as entidades-alvo com velocidade |
set_facing(target, vector) | target handle, vector or vector handle | nil | Define a direção encarada pelas entidades-alvo |
spawn_particles(target, particles) | target handle, table or string | nil | Spawna partículas nas localizações do alvo |
Target Handle
Retornado por context.script:target(spec). A tabela de spec usa as mesmas chaves das configs YAML de target do Elite Script (ex.: {targetType = "NEARBY_PLAYERS", range = 20}).
| Method | Args | Returns | Description |
|---|---|---|---|
entities() | — | table | Array de tabelas de entidade no alvo |
locations() | — | table | Array de tabelas de localização no alvo |
first_entity() | — | entity or nil | Primeira entidade no alvo |
first_location() | — | location or nil | Primeira localização no alvo |
Zone Handle
Retornado por context.script:zone(spec). A tabela de spec usa as mesmas chaves das configs YAML de zona do Elite Script (ex.: {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).
| Method | Args | Returns | Description |
|---|---|---|---|
full_target(coverage?) | number | target handle | Handle de alvo para localizações no interior da zona |
border_target(coverage?) | number | target handle | Handle de alvo para localizações na borda da zona |
full_locations(coverage?) | number | table | Array de localizações no interior |
border_locations(coverage?) | number | table | Array de localizações na borda |
full_entities() | — | table | Entidades dentro da zona |
border_entities() | — | table | Entidades na borda da zona |
contains(location, mode?) | location, string?="full" | bool | Se a localização está na zona |
watch(callbacks, mode?) | table, string?="full" | int | Observa entrada/saída. Retorna ID da tarefa |
Vector Handle
Retornado por context.script:relative_vector(spec). A tabela de spec usa as mesmas chaves das configs YAML de vetor relativo do Elite Script.
| Method | Args | Returns | Description |
|---|---|---|---|
resolve() | — | vector | Calcula o vetor para o contexto atual |
context.world (EliteMobs) ELITEMOBS
Tabela world específica de chefe para scripts de poder do EliteMobs. Os poderes de chefe começam com a tabela world genérica do MagmaCore, portanto helpers de coordenadas como get_block_at(...), set_block_at(...) e spawn_particle(...) permanecem disponíveis. Os métodos abaixo são adições do EliteMobs ou sobreposições específicas de chefe, principalmente formas de tabela de localização e helpers de chefe.
Consultas de Bloco
| Method | Args | Returns | Description |
|---|---|---|---|
get_block_type_at_location(loc) | location | string or nil | Nome do Material |
get_highest_block_y_at_location(loc) | location | int or nil | Y do bloco mais alto |
get_blast_resistance_at_location(loc) | location | double | Valor de resistência à explosão |
is_air_at_location(loc) | location | bool | Bloco é ar |
is_passable_at_location(loc) | location | bool | Bloco é atravessável |
is_passthrough_at_location(loc) | location | bool | Bloco não é sólido |
is_on_floor_at_location(loc) | location | bool | Ar com bloco sólido embaixo |
is_standing_on_material(loc, material) | location, string (Material) | bool | Bloco abaixo corresponde ao material |
Manipulação de Blocos
| Method | Args | Returns | Description |
|---|---|---|---|
set_block_at_location(loc, material, requireAir?) | location, string (Material), bool?=false | nil | Coloca bloco. Se requireAir for true, substitui apenas ar |
place_temporary_block_at_location(loc, material, ticks?, requireAir?) | location, string, int?=0, bool?=false | nil | Coloca bloco, remove automaticamente após ticks. Se requireAir for true, substitui apenas ar |
Spawn
| Method | Args | Returns | Description |
|---|---|---|---|
spawn_boss_at_location(file, loc?, level?) | string, location?=boss loc, int?=boss level | entity or nil | Spawna chefe customizado |
spawn_custom_boss_at_location(file, loc, options?) | string, location, table | entity or nil | Spawna chefe com opções (level, silent, add_as_reinforcement, velocity) |
spawn_entity_at_location(type, loc, options?) | string (EntityType), location, table | entity or nil | Spawna entidade vanilla com opções (velocity, duration, effect, on_land, max_ticks) |
spawn_falling_block_at_location(loc, material, options?) | location, string (Material), table | entity or nil | Spawna bloco caindo (drop_item, hurt_entities, velocity, on_land) |
spawn_reinforcement_at_location(file, loc, level?, velocity?) | string, location, int?=0, vector | entity or nil | Spawna reforço vinculado ao chefe |
spawn_fireworks_at_location(loc, config) | location, table | entity or nil | Spawna fogos de artifício |
spawn_splash_potion_at_location(loc, config) | location, table | entity or nil | Spawna poção de splash |
Efeitos e Utilidades
| Method | Args | Returns | Description |
|---|---|---|---|
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (chave de som do Minecraft, ex. "entity.blaze.shoot"), float?=1, float?=1 | nil | Toca som |
spawn_particle_at_location(loc, particle, count?) | location, string (Particle) or table, int?=1 | nil | Spawna partículas |
strike_lightning_at_location(loc) | location | nil | Atinge raio (ignora a proteção do EM) |
run_empowered_lightning_task_at_location(loc) | location | nil | Efeito de raio empoderado |
generate_fake_explosion(locations, center?) | table of locations, location | nil | Explosão visual sem dano |
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?) | location, vector, bool?=false | fake projectile or nil | Spawna projétil visual de pepita de ouro |
run_fake_gold_nugget_damage(projectiles) | table | nil | Roda verificação de dano em projéteis falsos |
set_world_time(time) or (loc, time) | long, or location + long | nil | Define o tempo do mundo |
set_world_weather(weather, duration?) or (loc, weather, duration?) | string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000 | nil | Define o clima |
run_console_command(command) | string | nil | Executa comando de console |
generate_player_loot(times?) | int?=1 | nil | Roda esta quantidade de sorteios de loot de jogador para os causadores de dano |
drop_bonus_coins(multiplier?) | double?=2 | nil | Solta moedas bônus no chefe |
context.settings (EliteMobs)
| Method | Args | Returns | Description |
|---|---|---|---|
warning_visual_effects_enabled() | — | bool | Se os efeitos visuais de aviso estão habilitados na config |
EliteMobs Event Table
A tabela context.event é passada para hooks de dano e spawn. Os campos variam por tipo de evento.
| Field / Method | Type | Present When | Description |
|---|---|---|---|
damage_amount | double | Eventos de dano | Quantidade de dano bruta |
damage_cause | string | Eventos de dano | Nome da DamageCause |
damager | entity table | Eventos de dano por entidade | Entidade que causou o dano |
projectile | entity table | Eventos de dano por projétil | Projétil que causou o dano |
spawn_reason | string | Evento de spawn | Nome da razão do spawn |
entity | entity table | Eventos de morte/zona | Entidade relevante |
cancel_event() | method | A maioria dos eventos | Cancela o evento |
set_damage_amount(amount) | method (double) | Eventos de dano | Sobrescreve a quantidade de dano |
multiply_damage_amount(multiplier) | method (double) | Eventos de dano | Multiplica o dano atual |
context.item FMM
Acessado em scripts de item do FMM. Resolve o item scriptado específico a partir dos slots equipados pelo jogador via tag PDC.
Os métodos de leitura inspecionam o item correspondente atualmente equipado quando chamados. Os métodos de escrita enfileiram sua mutação na thread principal do Bukkit e retornam nil.
Propriedades
| Field | Type | Description |
|---|---|---|
id | string | Identificador do script do item |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
material() | — | string | Nome do Material |
get_amount() | — | int | Tamanho da pilha |
set_amount(n) | int | nil | Enfileira a definição do tamanho da pilha |
consume(n?) | int?=1 | nil | Enfileira decremento em n, remove se chegar a zero |
get_uses() | — | int | Contador de usos armazenado no PDC |
set_uses(n) | int | nil | Enfileira a definição do contador de usos no PDC |
get_durability() | — | table or nil | Retorna campos current e max, ou nil se não houver barra de durabilidade |
get_durability_percentage() | — | number or nil | Fração restante de 0.0--1.0, ou nil |
use_durability(amount, can_break?) | int, bool?=false | nil | Enfileira a redução da durabilidade por um valor fixo. Quando false, limita a 1 restante |
use_durability_percentage(fraction, can_break?) | number, bool?=false | nil | Enfileira a redução da durabilidade por uma fração do máximo (0.0--1.0) |
get_name() | — | string or nil | Nome de exibição |
set_name(s) | string | nil | Enfileira a definição do nome de exibição. Suporta códigos de cor |
get_lore() | — | table | Array de strings de lore |
set_lore(table) | table | nil | Enfileira a definição do lore a partir de um array de strings |
context.prop FMM
Acessado em scripts de prop do FMM. Herda todos os campos de Entity do armor stand de suporte.
Propriedades
| Field | Type | Description |
|---|---|---|
model_id | string | Nome do blueprint do modelo |
current_location | location | Posição atual do prop |
Métodos
| Method | Args | Returns | Description |
|---|---|---|---|
play_animation(name, blend?, loop?) | string, bool?=true, bool?=true | bool | Toca animação nomeada |
stop_animation() | — | nil | Para todas as animações atuais |
hurt_visual() | — | nil | Flash com tom vermelho, sem dano |
pickup() | — | nil | Enfileira a remoção do prop e o drop do item de colocação |
has_mount_points() | — | bool | Se o prop tem ossos de mount point |
mount(player) | entity table | bool | Enfileira a verificação de montagem; true significa que as referências básicas eram válidas |
dismount(player) | entity table | bool | Enfileira a verificação de desmontagem; true significa que as referências básicas eram válidas |
get_passengers() | — | table | Array de tabelas de entidade dos jogadores montados |
spawn_elitemobs_boss(file, x, y, z) | string, num, num, num | entity or nil | Spawna chefe do EliteMobs (requer EliteMobs) |
open_inventory(player, title, rows?) | entity table, string, int?=3 | bool | Enfileira a abertura do inventário de baú persistente (linhas limitadas de 1--6). O título suporta códigos de cor |
place_book(player) | entity table | bool | Enfileira o armazenamento do livro escrito/escrevível segurado pelo jogador no prop |
read_book(player) | entity table | bool | Enfileira a abertura do livro armazenado para leitura |
take_book(player) | entity table | bool | Enfileira a devolução do livro armazenado ao jogador |
has_book() | — | bool | Se há um livro armazenado |
drop_inventory() | — | bool | Enfileira o drop de todos os itens armazenados e limpa o armazenamento |
drop_book() | — | bool | Enfileira o drop do livro armazenado e limpa o armazenamento |
is_viewing_inventory(player) | entity table | bool | Se o jogador tem o inventário deste prop aberto |
set_persistent_data(key, value) | string, string | bool | Armazena string no PDC do prop |
get_persistent_data(key) | string | string or nil | Recupera string do PDC do prop |
Color Codes
Todos os métodos marcados como suportando códigos de cor usam o ChatColorConverter do Magmacore. Esses formatos podem ser misturados livremente em qualquer string:
Códigos legados
Use & seguido por um caractere de cor/formato:
| Code | Color | Code | Format |
|---|---|---|---|
&0 | Preto | &l | Negrito |
&1 | Azul Escuro | &m | |
&2 | Verde Escuro | &n | Sublinhado |
&3 | Azul-petróleo Escuro | &o | Itálico |
&4 | Vermelho Escuro | &r | Reset |
&5 | Roxo Escuro | ||
&6 | Dourado | ||
&7 | Cinza | ||
&8 | Cinza Escuro | ||
&9 | Azul | ||
&a | Verde | ||
&b | Aqua | ||
&c | Vermelho | ||
&d | Roxo Claro | ||
&e | Amarelo | ||
&f | Branco |
Cores hex
Cor RGB exata usando hex de 6 dígitos:
&#FF5500 -- prefixo de e-comercial
<#FF5500> -- sintaxe de tag
Gradientes
Interpola suavemente entre duas ou mais cores ao longo do texto:
<gradient:#FF0000:#0000FF>Este texto vai do vermelho ao azul</gradient>
<g:#FF0000:#00FF00:#0000FF>Gradiente de três cores</g>
A forma curta g funciona de forma idêntica a gradient. Você pode encadear quantas paradas de cor quiser.
Arco-íris
Cicla pelo espectro completo de matiz em saturação máxima. Um argumento numérico opcional desloca o matiz inicial (deslocamento de fase):
<rainbow>Texto arco-íris completo</rainbow>
<r:0.5>Arco-íris com matiz inicial deslocado</r>
Tipos Comuns
location
{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }
vector
{ x = number, y = number, z = number }
entity table
Qualquer tabela com um campo uuid. Tabelas de jogador e entidade do contexto funcionam diretamente:
context.player -- tabela de entidade válida
context.world:get_nearby_entities(x,y,z,r) -- retorna array de tabelas de entidade
Próximos Passos
- Motor de Scripts: Como o motor funciona — sandbox, agendamento, cooldowns, zonas
- EliteMobs: Primeiros Passos | Scripts de NPC | Hooks & Ciclo de Vida | Chefe & Entidades | Mundo & Ambiente | Zonas & Alvos | Exemplos
- FreeMinecraftModels: Primeiros Passos | API de Prop & Item | Exemplos