Zum Hauptinhalt springen

Lua-API-Referenz

Vollständige Methodenreferenz für die Lua-Scripting-API. Alle Methoden werden über die Syntax context.table:method() aufgerufen.

Globale Methoden (markiert mit GLOBAL) stammen aus Magmacore, der gemeinsamen Kernbibliothek. Sie gelten für FreeMinecraftModels-Skripte und andere MagmaCore-ScriptInstance-Consumer. EliteMobs Boss-Powers verwenden dieselbe Lua-Sandbox erneut, stellen aber boss-spezifische Kontexttabellen und Methodennamen bereit; EliteMobs-NPC-Skripte laufen auf derselben MagmaCore-Runtime und erhalten den vollständigen gemeinsamen Kontext plus die nur für NPCs verfügbare context.npc-Tabelle. Siehe die EliteMobs-Abschnitte weiter unten und NPC-Skripte für diese Varianten.

EliteMobs-Methoden (markiert mit ELITEMOBS) sind spezifisch für EliteMobs Boss-Power-Skripte und NPC-Skripte.

FMM-Methoden (markiert mit FMM) sind spezifisch für FreeMinecraftModels Item- und Prop-Skripte.

Wenn eine Methode ein Bukkit-Enum benötigt (Sound, Particle, Material usw.), siehe die Spigot-Javadocs für gültige Werte. Enum-Namen werden als Großbuchstaben-Strings übergeben (z. B. "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").


Entity Table GLOBAL

Basisfelder, die auf allen Entity-Tabellen vorhanden sind — Spieler, Mobs, Props, alles.

Eigenschaften

FieldTypeDescription
uuidstringEntity-UUID
entity_typestringEntity-Typ (kleingeschrieben)
is_validboolEntity existiert noch in der Welt
is_deadboolEntity ist tot
is_playerboolIst ein Spieler
is_hostileboolIst ein Monster
is_passiveboolIst ein Tier
current_locationlocationEntity-Position (x, y, z, yaw, pitch, world)
worldstringWeltname

Plugin-spezifische Enricher können zusätzliche Felder auf oberster Ebene hinzufügen, wenn das jeweilige Plugin installiert ist. Siehe die Bridge-Abschnitte weiter unten für EliteMobs- und FreeMinecraftModels-Felder.

Methoden

MethodArgsReturnsDescription
teleport(location)location tablenilEntity teleportieren
remove()nilEntity aus der Welt entfernen
set_silent(enabled)boolnilStummschaltung setzen
set_invulnerable(enabled)boolnilUnverwundbarkeit setzen
set_gravity(enabled)boolnilSchwerkraft setzen
set_glowing(enabled)boolnilLeuchten setzen

Bridge: entity.elite

Wird vom Entity-Enricher von EliteMobs hinzugefügt, wenn EliteMobs installiert ist. Der Enricher fügt diese Flags auf oberster Ebene hinzu:

FieldTypeDescription
is_eliteboolIst eine EliteMobs-Entity
is_custom_bossboolIst ein EliteMobs Custom Boss
is_significant_bossboolCustom Boss mit Gesundheitsmultiplikator über 1 (bewusst gestaltete Begegnung)

entity.elite ist nur vorhanden, wenn is_elite true ist.

FieldTypeDescription
levelintLevel des Elite-Mobs
namestringAnzeigename des Elites
healthdoubleAktuelle Gesundheit
max_healthdoubleMaximale Gesundheit
is_custom_bossboolIst ein Custom Boss (auch auf der obersten Ebene verfügbar)
health_multiplierdoubleKonfigurationsdefinierter Gesundheitsmultiplikator
damage_multiplierdoubleKonfigurationsdefinierter Schadensmultiplikator
remove()methodDie Elite-Entity entfernen

Bridge: entity.model

Wird vom Entity-Enricher von FreeMinecraftModels hinzugefügt, wenn FMM installiert ist. Der Enricher fügt diese Flags auf oberster Ebene hinzu:

FieldTypeDescription
is_modeledboolHat ein FMM-Modell
is_propboolIst ein FMM-Prop

entity.model ist nur vorhanden, wenn is_modeled true ist.

FieldTypeDescription
model_idstringName des Modell-Blueprints
is_dynamicboolOb dies eine FMM DynamicEntity (true) oder ein statisches Prop (false) ist
play_animation(name, blend?, loop?)methodAnimation abspielen. blend ist standardmäßig false, loop ist standardmäßig false
stop_animations()methodAlle Animationen stoppen
remove()methodDie modellierte Entity entfernen

Bridge: Spielerberechtigungen

Wird vom Entity-Enricher von FreeMinecraftModels hinzugefügt, wenn FMM installiert ist. Diese Felder erscheinen nur auf Spieler-Entity-Tabellen:

Field / MethodArgsReturnsDescription
has_permission(node)stringboolOb der Spieler den angegebenen Berechtigungsknoten besitzt
is_opboolOb der Spieler ein Server-Operator ist

Living Entity Table GLOBAL

Erweitert Entity Table. Wird auf alle lebenden Entities (Mobs und Spieler) angewendet.

Eigenschaften

FieldTypeDescription
healthdoubleAktuelle Gesundheit
maximum_healthdoubleMaximale Gesundheit
namestringAnzeigename der Entity
is_aliveboolEntity ist nicht tot

Methoden

MethodArgsReturnsDescription
damage(amount)doublenilSchaden an Entity zufügen
push(x, y, z)double, double, doublenilGeschwindigkeitsvektor hinzufügen
set_facing(x, y, z)double, double, doublenilBlickrichtung setzen
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilTrankeffekt anhand des Namens anwenden
remove_potion_effect(type)string (PotionEffectType)nilTrankeffekt anhand des Namens entfernen
get_scale()numberAktuelle Entity-Skalierung (Standard 1.0 auf Servern ohne generic.scale-Attribut)
set_scale(value)doublenilEntity-Skalierung über generic.scale-Attribut setzen (No-op auf Servern vor 1.20.5)

context.player GLOBAL

Spieler-Entity-Tabelle. Erbt alle Felder von Entity und Living Entity.

Eigenschaften

FieldTypeDescription
game_modestringsurvival, creative, adventure, spectator

Methoden

MethodArgsReturnsDescription
send_message(text)stringnilChatnachricht senden. Unterstützt Farbcodes
get_held_item()table or nilGibt die Felder type, amount, display_name zurück, oder nil bei leerer Hand. type ist ein Bukkit-Material-Name in Großbuchstaben
consume_held_item(amount?)int (default 1)nilStack des gehaltenen Items um amount reduzieren
has_item(material, amount?)string (Material), int (default 1)boolInventar auf Material prüfen
get_target_entity(range?)num (default 50)entity or nilRaycast nach der Entity, die der Spieler anvisiert
get_eye_location()locationAugenposition des Spielers
get_look_direction()vectorEinheitsrichtungsvektor
send_block_change(x, y, z, material, ticks?)int, int, int, string (Material), int (optional)boolFake-Block senden. Setzt sich nach ticks automatisch zurück, falls angegeben
reset_block(x, y, z)int, int, intboolFake-Block auf den echten zurücksetzen
sleep(x, y, z)num, num, numnilBett-Schlafanimation an Position
wake_up()nilAus dem Schlaf wecken
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, default WHITE), num, int (optional)nilBossleiste anzeigen. Wird nach ticks automatisch ausgeblendet. Unterstützt Farbcodes
hide_boss_bar()nilBossleiste entfernen
show_action_bar(text, ticks?)string, int (optional)nilAction Bar anzeigen. Wiederholt sich, wenn ticks größer als 0. Unterstützt Farbcodes
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (default empty), int, int, intnilTitelbildschirm anzeigen. Unterstützt Farbcodes

context.world GLOBAL

Weltoperationen für FreeMinecraftModels-Skripte und andere von Magmacore gestützte ScriptInstance-Runtimes. EliteMobs Boss-Powers gehen von derselben Basistabelle aus und ergänzen die unten aufgeführten EliteMobs-context.world-Erweiterungen und -Überschreibungen.

context.world-Methoden gibt es in zwei austauschbaren Formen: Koordinaten-Stil (x, y, z) und Location-Tabellen-Stil (die *_at_location-Varianten). Beide Formen sind auf den generischen Oberflächen verfügbar, und EliteMobs Boss-Powers behalten die gemeinsamen Basismethoden bei und fügen boss-spezifische Location-Tabellen-Helfer hinzu.

Eigenschaften

FieldTypeDescription
namestringWeltname

Methoden

MethodArgsReturnsDescription
get_block_at(x, y, z)int, int, intstringMaterial-Name (kleingeschrieben). Gibt "air" zurück, wenn der Chunk nicht geladen ist
set_block_at(x, y, z, material)int, int, int, string (Material)boolBlockplatzierung einreihen, wenn das Material gültig ist; nicht geladene Chunks werden übersprungen
get_highest_block_y(x, z)int, intintY des höchsten Nicht-Luft-Blocks
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?=0nilPartikeleffekt spawnen
play_sound(sound, x, y, z, volume?, pitch?)string (Sound), num, num, num, float?=1, float?=1nilSound abspielen
strike_lightning(x, y, z)num, num, numnilBlitz einschlagen lassen
get_time()intWeltzeit in Ticks
set_time(ticks)longnilWeltzeit setzen
get_nearby_entities(x, y, z, radius)num, num, num, numtableArray von Entity-Tabellen
get_nearby_players(x, y, z, radius)num, num, num, numtableArray von Spieler-Entity-Tabellen
spawn_entity(type, x, y, z)string (EntityType), num, num, numentity or nilVanilla-Entity spawnen; gibt nil zurück, wenn der Entity-Typ ungültig ist
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableGibt die Felder hit_entity, hit_location, hit_block zurück
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolBlockersetzung einreihen, die sich nach ticks automatisch zurücksetzt. Gibt false zurück, wenn das Material ungültig oder der Chunk nicht geladen ist
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entity or nilItem-Entity natürlich an Position droppen; gibt nil zurück, wenn das Material ungültig ist
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilFeuerwerk spawnen
strike_lightning_at_location(loc)locationnilBlitz einschlagen lassen
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilSound abspielen
spawn_particle_at_location(loc, particle, count?, dx?, dy?, dz?, speed?)location, string (Particle), int?=1, num?=0, num?=0, num?=0, num?=0nilPartikeleffekt spawnen
get_block_at_location(loc)locationstringMaterial-Name (kleingeschrieben). Gibt "air" zurück, wenn der Chunk nicht geladen ist
set_block_at_location(loc, material)location, string (Material)boolBlockplatzierung einreihen, wenn das Material gültig ist; nicht geladene Chunks werden übersprungen
place_temporary_block_at_location(loc, material, ticks?, require_air?)location, string (Material), int?=0, bool?=falseboolBlockersetzung einreihen, die sich nach ticks automatisch zurücksetzt. Gibt false zurück, wenn das Material ungültig oder der Chunk nicht geladen ist
get_highest_block_y_at_location(loc)locationint or nilY des höchsten Nicht-Luft-Blocks

em-Helfer GLOBAL

Globale Helfer-Konstruktoren, die auf der em-Tabelle in allen MagmaCore-Lua-Runtimes bereitgestellt werden.

Konstruktoren

MethodArgsReturnsDescription
em.create_location(x, y, z, world?, yaw?, pitch?)num, num, num, string?, num?, num?locationLocation-Tabelle mit x, y, z, optional world, yaw, pitch und einer In-Place-Methode add(dx, dy, dz)
em.create_vector(x, y, z)num, num, numvectorVektor-Tabelle mit x, y, z

Zonen-Builder

Zonen-Builder geben einfache Zonen-Definitions-Tabellen zurück. Kugeln, Kuppeln, Zylinder und Quader enthalten :set_center(location). Kegel und Strahlzonen enthalten :set_origin(location) und :set_destination(location).

MethodArgsReturnsDescription
em.zone.create_sphere_zone(radius)numzone{ kind = "sphere", radius = ... }
em.zone.create_dome_zone(radius)numzone{ kind = "dome", radius = ... }
em.zone.create_cylinder_zone(radius, height)num, numzone{ kind = "cylinder", radius = ..., height = ... }
em.zone.create_cuboid_zone(x, y, z)num, num, numzoneQuader-Halbausdehnungen
em.zone.create_cone_zone(length, radius)num, numzoneKegel-Definition mit Origin-/Destination-Settern
em.zone.create_static_ray_zone(length, thickness)num, numzoneStatische Strahl-Definition
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration)num, num, numzoneRotierende Strahl-Definition
em.zone.create_translating_ray_zone(length, point_radius, animation_duration)num, num, numzoneVerschiebende Strahl-Definition

em.location GLOBAL

Hilfsfunktionen für Standortabfragen, die auf der globalen em-Tabelle bereitgestellt werden. Gestützt durch Magmacores LocationQueryRegistry und den LocationOwnership-Service, der Ergebnisse von registrierten Providern sammelt (EliteMobs-Dungeon/World-Package-Regionen, WorldGuard, GriefPrevention usw.). Alle Funktionen akzeptieren eine Location-Tabelle ({x, y, z, world}) und liefern sichere Standardwerte zurück, wenn die Location ungültig ist.

MethodArgsReturnsDescription
em.location.is_in_dungeon(loc)locationboolOb sich die Location innerhalb einer registrierten Dungeon-Region befindet
em.location.is_protected(loc)locationboolOb ein Provider die Location als geschützt meldet (WorldGuard, GriefPrevention, EM-Regionen usw.)
em.location.owned_by(loc, namespace)location, stringboolOb der angegebene Namespace die Location besitzt (z. B. "EliteMobs")
em.location.owners(loc)locationtableArray von Namespace-Strings, die den Besitz dieser Location beanspruchen
em.location.kinds_at(loc)locationtableArray von Kind-Tags an dieser Location (z. B. "elitemobs", "world_package", "open_world_dungeon", Dungeon-Größenkategorie)
em.location.has_kind(loc, kind)location, stringboolOb die Location das angegebene Kind-Tag besitzt

context.boss ELITEMOBS

Boss-Entity-Tabelle für EliteMobs Lua-Power-Skripte. Erbt alle Methoden der EliteMobs Living Entity. Eigenschaften werden über dedizierte Getter aktualisiert.

Eigenschaften

FieldTypeDescription
namestringAnzeigename des Bosses
uuidstringUUID der Elite-Entity
healthdoubleAktuelle Gesundheit (Snapshot)
maximum_healthdoubleMaximale Gesundheit (Snapshot)
current_locationlocationBoss-Position (Snapshot)
levelintBoss-Level
damager_countintAnzahl der Spieler, die diesem Boss Schaden zugefügt haben
is_in_combatboolBoss ist im Kampf
existsboolBoss-Entity existiert

Methoden

MethodArgsReturnsDescription
is_alive()boolOb die Boss-Entity am Leben ist (Live-Prüfung)
get_health()doubleAktuelle Gesundheit (live)
get_maximum_health()doubleMaximale Gesundheit (live)
get_location()locationAktuelle Position (live)
restore_health(amount)doublenilDen Boss heilen
despawn()nilBoss-Entity entfernen
get_damager_count()intLive-Zähler der Schadensverursacher
add_tag(tag, ticks?)string, int?=0nilTag hinzufügen, automatisch nach ticks entfernen, falls gesetzt
remove_tag(tag)stringnilTag entfernen
has_tag(tag)stringboolTag prüfen
reset_custom_name()nilNamen auf Konfigurationsstandard zurücksetzen
play_sound_at_self(sound, volume?, pitch?)string (Minecraft-Sound-Schlüssel, z. B. "entity.wither.spawn"), float?=1, float?=1nilSound am Boss abspielen
play_sound_at_entity(sound, volume?, pitch?)string (Minecraft-Sound-Schlüssel, z. B. "entity.wither.spawn"), float?=1, float?=1nilSound am Boss abspielen (Alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilPartikel am Boss spawnen
play_model_animation(name)stringnilFMM-Modellanimation abspielen (erfordert FMM-Modell)
has_mount()-boolOb dieser Boss auf einer Reit-Entity reitet
get_mount()-entity or nilAktuelle Referenz auf die Reit-Entity, markiert mit is_mount = true
set_mount(entity)entity tableboolLässt den Boss auf der angegebenen Entity reiten
clear_mount()-boolLässt den Boss sein aktuelles Reittier verlassen
dismount()-boolAlias für clear_mount()
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPfad zur Location finden
send_message(text, range?)string, double?=20nilNachricht an Spieler in der Nähe senden. Unterstützt Farbcodes
get_nearby_players(range)doubletableArray von Spieler-Tabellen innerhalb der Reichweite
get_target_player()player or nilAktuelles Mob-Ziel, falls es ein Spieler ist
get_nearby_players_in_zone(zone)zone tabletableSpieler innerhalb der Zonenform
get_ender_dragon_phase()string or nilEnderDragon.Phase-Name
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilEnderDragon-Phase setzen
summon_reinforcement(file, zone?, level?)string, zone or nil, int?=0entity or nilVerstärkungs-Boss spawnen
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentity or nilVerfolgtes Projektil spawnen; gibt nil zurück, wenn der Typ oder die Locations ungültig sind

summon_projectile-Optionen

OptionTypeDefaultDescription
custom_damagenumberProjektil-Schaden überschreiben
detonation_powerstringExplosionsstufe
yieldnumberFireball-Stärke
incendiarybooltrueFireball entzündet
gravityboolSchwerkraft aktivieren
glowingboolfalseLeuchten setzen
invulnerableboolfalseUnverwundbarkeit setzen
persistentbooltruePersistenz setzen
durationint0Nach Ticks automatisch entfernen
effectstringEntityEffect, der beim Spawn abgespielt wird
spawn_at_originboolfalseAm Ursprung spawnen, statt vom Boss aus zu starten
direction_onlyboolfalseRichtung ohne Geschwindigkeit setzen (Fireballs)
trackbooltrueAls Elite-Projektil registrieren
on_landfunctionCallback, wenn das Projektil landet: function(location, entity)
max_ticksint6000Maximale Ticks vor erzwungenem Land-Callback

Zonen-/Partikelmethoden

MethodArgsReturnsDescription
spawn_particles_in_zone(zone, particle, ...)zone, particle spec, coverage?=1.0nilZone mit Partikeln füllen
spawn_particles_in_zone_border(zone, particle, ...)zone, particle spec, coverage?=1.0nilZone mit Partikeln umrahmen
get_particles_from_self_toward_zone(zone, particle, speed?)zone, string, double?=0.1tableGerichtete Partikel vom Boss zur Zone
get_particles_toward_self(zone, particle, speed?)zone, string, double?=0.1tableGerichtete Partikel von der Zone zum Boss
spawn_particles_with_vector(particles)tablenilGerichtetes Partikel-Array spawnen

Unterstützung für Spezial-Powers

MethodArgsReturnsDescription
start_tracking_fireball_system(speed?)double?=0.5nilVerfolgungs-Fireball-KI starten
handle_spirit_walk_damage(cause)string (DamageCause)nilSpirit-Walk-Schaden nach Ursache verarbeiten
shield_wall_is_active()boolOb die Schildwand aktiv ist
initialize_shield_wall(charges?)int?=1nilSchildwand aktivieren
shield_wall_absorb_damage(player, damage)entity table, doubleboolVersuch, Schaden zu absorbieren
deactivate_shield_wall()nilSchildwand deaktivieren
start_zombie_necronomicon(target, file)entity table, stringnilNecronomicon auf Ziel starten

context.npc ELITEMOBS NPC

NPC-Tabelle für EliteMobs-NPC-Lua-Skripte. NPC-Skripte liegen in plugins/EliteMobs/npc_scripts/ und werden über eine scripts:-Liste in einer NPC-Konfiguration angehängt. NPC-Skripte laufen auf derselben MagmaCore-Runtime wie jede andere Oberfläche und erhalten den vollständigen gemeinsamen Kontext — context.world, context.zones, context.scheduler, context.cooldowns, context.log, context.event, context.player, context.state — plus die nur für NPCs verfügbare context.npc-Tabelle, die hier dokumentiert ist.

Eigenschaften

FieldTypeDescription
namestringAnzeigename des NPCs
filenamestringDateiname der NPC-Konfiguration
uuidstringLaufzeit-NPC-UUID
activation_radiusdoubleKonfigurierter Aktivierungsradius
current_locationlocationSnapshot-Location, wenn die NPC-Entity existiert
entity_typestringBukkit-Entity-Typ, wenn die NPC-Entity existiert

Methoden

MethodArgsReturnsDescription
is_valid()-boolOb die zugrundeliegende NPC-Entity noch gültig ist
get_location()-locationAktuelle NPC-Location oder Spawn-Fallback
get_eye_location()-locationAktuelle Augenposition oder Spawn-Fallback
get_activation_radius()-doubleAktuell konfigurierter Aktivierungsradius
get_nearby_players(radius)doubletableSpieler-Tabellen in der Nähe des NPCs
face_direction_or_location(target)vector or locationnilEiner Richtung zuwenden oder zu einer Location schauen
say_greeting(player?)player, UUID, name, or nilnilEine konfigurierte Begrüßung senden. Standardmäßig an den auslösenden Spieler, falls verfügbar
say_dialog(player?)player, UUID, name, or nilnilKonfigurierten Dialog senden. Standardmäßig an den auslösenden Spieler, falls verfügbar
say_farewell(player?)player, UUID, name, or nilnilKonfigurierten Abschiedstext senden. Standardmäßig an den auslösenden Spieler, falls verfügbar
play_model_animation(name)stringnilEine benutzerdefinierte Modellanimation abspielen, falls verfügbar; andernfalls sicherer No-op

Zu den NPC-spezifischen Hooks gehören on_spawn, on_remove, on_game_tick, on_npc_interact, on_npc_proximity_enter und on_npc_proximity_leave. Siehe EliteMobs-NPC-Skripte für den vollständigen Workflow und Cooldown-Details.


EliteMobs Living Entity Table ELITEMOBS

Entity-Tabellen, die innerhalb von EliteMobs-Power-Skripten erstellt werden (aus context.boss, Event-Daten, Zonen-Callbacks und Weltabfragen), verwenden eine erweiterte Living-Entity-Tabelle mit zusätzlichen Methoden über die globale Living Entity hinaus. context.boss erbt all diese.

Eigenschaften

FieldTypeDescription
namestringAnzeigename der Entity
uuidstringEntity-UUID
entity_typestringEntity-Typ-Name
is_playerboolIst ein Spieler
is_monsterboolIst ein Monster
is_eliteboolIst eine EliteMobs-Entity
is_validboolEntity existiert noch
is_mountboolTrue, wenn diese Entity-Tabelle ein Boss-Reittier darstellt
healthdoubleAktuelle Gesundheit (Snapshot)
maximum_healthdoubleMaximale Gesundheit (Snapshot)
current_locationlocationEntity-Position (Snapshot)
game_modestringSpielmodus (in EliteMobs in Großbuchstaben: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR)

Methoden

MethodArgsReturnsDescription
is_alive()boolOb die Entity am Leben ist (Live-Prüfung)
is_ai_enabled()boolOb die KI aktiviert ist
is_frozen()boolOb der Boss eingefroren ist (nur CustomBossEntity)
is_on_ground()boolOb die Entity auf dem Boden steht
is_healing()boolOb sich der Elite heilt
get_location()locationAktuelle Position (live)
get_eye_location()locationAugenposition (live)
get_height()doubleEntity-Höhe
get_health()doubleAktuelle Gesundheit (live)
get_maximum_health()doubleMaximale Gesundheit (live)
get_velocity()vectorAktueller Geschwindigkeitsvektor
deal_damage(amount)doublenilGenerischen Schaden zufügen
deal_custom_damage(amount)doublenilCustom-Boss-Angriffsschaden vom Boss der Power zufügen
deal_damage_from_boss(amount)doublenilSchaden zufügen, der der Boss-Entity der Power zugeschrieben wird
restore_health(amount)doublenilEntity heilen (verwendet EliteMobs-Heilung, falls Elite)
play_sound_at_entity(sound, volume?, pitch?)string (Minecraft-Sound-Schlüssel, z. B. "entity.ender_dragon.growl"), float?=1, float?=1nilSound an Entity abspielen
play_sound_at_self(sound, volume?, pitch?)string (Minecraft-Sound-Schlüssel, z. B. "entity.ender_dragon.growl"), float?=1, float?=1nilSound an Entity abspielen (Alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilPartikel an Entity spawnen
spawn_particles_at_location(loc, particle, count?)location, particle spec, int?=1nilPartikel an Location spawnen
teleport_to_location(location)locationnilEntity teleportieren
set_velocity_vector(vector)vectornilGeschwindigkeit setzen
set_gravity(enabled)boolnilSchwerkraft setzen
apply_push_vector(vector, additive?, delay?)vector, bool?=false, int?=1nilGeschwindigkeit nach Verzögerung anwenden. additive addiert zur bestehenden Geschwindigkeit
push_relative_to(location, force?, extraX?, extraY?, extraZ?)location, double?=1, double?=0, double?=0, double?=0nilEntity von Location wegstoßen
set_custom_name(name)stringnilBenutzerdefinierten Anzeigenamen setzen. Unterstützt Farbcodes
reset_custom_name()nilNamen auf EliteMobs-Standard zurücksetzen
set_custom_name_visible(visible)boolnilNamenssichtbarkeit umschalten
set_ai_enabled(enabled, duration?)bool, int?=0nilKI-Status setzen. Setzt sich nach duration-Ticks automatisch zurück
set_awareness_enabled(enabled, duration?)bool, int?=0nilMob-Wachsamkeit setzen. Setzt sich nach duration-Ticks automatisch zurück
face_direction_or_location(target)vector or locationnilEiner Richtung zuwenden oder zu einer Location schauen
play_model_animation(name)stringnilFMM-Modellanimation abspielen (erfordert FMM-Modell)
is_inside_vehicle()-boolOb die Entity auf einer anderen Entity reitet
has_vehicle()-boolOb die Entity ein Reittier hat
get_vehicle()-entity or nilAktuelle Referenz auf die Reittier-Entity
set_vehicle(entity)entity tableboolLässt diese Entity auf dem angegebenen Reittier reiten
leave_vehicle()-boolLässt diese Entity ihr aktuelles Reittier verlassen
has_passengers()-boolOb diese Entity Passagiere hat
get_passenger_count()-intAnzahl der Passagiere
get_passengers()-tableArray von Passagier-Entity-Referenzen
add_passenger(entity)entity tableboolFügt dieser Entity einen Passagier hinzu
remove_passenger(entity)entity tableboolEntfernt einen Passagier von dieser Entity
eject_passengers()-boolWirft alle Passagiere ab
set_scale(scale, duration?)double, int?=0nilEntity-Skalierung setzen. Setzt sich nach duration-Ticks automatisch auf 1.0 zurück
set_invulnerable(enabled, duration?)bool, int?=0nilUnverwundbarkeit setzen. Setzt sich nach duration-Ticks automatisch zurück
set_healing(enabled)boolnilElite-Heilungsstatus setzen
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPfad zur Location finden (nur CustomBossEntity)
add_tag(tag, ticks?)string, int?=0nilTag hinzufügen, automatisch nach ticks entfernen
remove_tag(tag)stringnilTag entfernen
has_tag(tag)stringboolTag prüfen
overlaps_box_at_location(center, halfX?, halfY?, halfZ?)location, double?=0.5, double?=halfX, double?=halfXboolOb die Bounding Box der Entity eine Box an der Location überlappt
remove_elite()nilÜber die EliteMobs-Entfernungspipeline entfernen
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilTrankeffekt anwenden
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilItem im Ausrüstungs-Slot setzen
set_fire_ticks(ticks)intnilBrand-Ticks setzen
add_visual_freeze_ticks(ticks?)int?=1nilVisuelle Freeze-Ticks hinzufügen
place_temporary_block(material, ticks?, requireAir?)string (Material), int?=0, bool?=falsenilTemporären Block an Entity-Position platzieren

set_equipment-Optionen

OptionTypeDefaultDescription
unbreakableboolfalseItem unzerbrechlich machen
enchantmentstableArray von {type = "ENCHANT_NAME", level = 1}-Tabellen

EliteMobs-Spielermethoden

Spieler in EliteMobs-Skripten haben alle EliteMobs-Living-Entity-Methoden plus:

MethodArgsReturnsDescription
send_message(text)stringnilChatnachricht senden. Unterstützt Farbcodes
show_action_bar(text)stringnilAction-Bar-Text anzeigen. Unterstützt Farbcodes
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?)string, string?="", int?=10, int?=40, int?=10nilTitelbildschirm anzeigen. Unterstützt Farbcodes
show_boss_bar(title, color?, style?, duration?)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilBossleiste anzeigen. Wird nach duration-Ticks automatisch ausgeblendet. Unterstützt Farbcodes
run_command(command)stringnilBefehl als Spieler ausführen

EliteMobs Entity Reference Table

Nicht-lebende Entities (Projektile, fallende Blöcke, Feuerwerke), die von EliteMobs-Spawn-Methoden zurückgegeben werden, erhalten eine schlanke Referenztabelle:

Field / MethodArgsReturnsDescription
namestringEntity-Name
uuidstringEntity-UUID
entity_typestringEntity-Typ-Name
is_playerboolImmer false
is_eliteboolImmer false
is_valid()boolOb die Entity noch gültig ist (Live-Prüfung)
current_locationlocationPosition (Snapshot)
get_location()locationAktuelle Position (live)
get_velocity()vectorAktueller Geschwindigkeitsvektor
is_on_ground()boolOb die Entity auf dem Boden steht
teleport_to_location(location)locationnilEntity teleportieren
set_velocity_vector(vector)vectornilGeschwindigkeit setzen
set_direction_vector(vector)vectornilRichtung setzen (nur Fireballs)
set_yield(amount)doublenilFireball-Stärke setzen
set_gravity(enabled)boolnilSchwerkraft setzen
detonate()nilFeuerwerk zünden
remove()nilEntity entfernen
unregister(reason?)string?=OTHERnilAus EliteMobs-Entity-Tracker abmelden

context.players ELITEMOBS

Spieler-Abfrage-Tabelle, die in EliteMobs-Power-Skripten verfügbar ist. Stellt Hilfsmethoden bereit, um Spieler relativ zum Boss zu finden.

MethodArgsReturnsDescription
current_target()player or nilEvent-Akteur, wenn Spieler, oder aktuelles Mob-Ziel des Bosses, wenn Spieler
nearby_players(radius)doubletableArray von Spieler-Tabellen innerhalb des Radius um den Boss
all_players_in_world()tableArray aller Spieler-Tabellen in der Welt des Bosses

context.entities ELITEMOBS

Entity-Abfrage-Tabelle, die in EliteMobs-Power-Skripten verfügbar ist. Stellt Hilfsmethoden bereit, um Entities relativ zum Boss zu finden. Alle Abfragen schließen den Boss selbst aus.

MethodArgsReturnsDescription
get_nearby_entities(radius, filter?)double, string?="living"tableEntities innerhalb des Radius. "all"/"entities" gibt jede Entity zurück (einschließlich nicht-lebender); jeder andere Wert gibt lebende Entities zurück, gefiltert nach Kategorie: "player(s)", "elite(s)", "mob(s)", oder Standard = alle lebenden
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableLebende Entities innerhalb einer achsenausgerichteten Box (dieselben Filterwerte wie oben; nur Nicht-all-Modi)
get_all_entities(filter?)string?="living"tableAlle lebenden Entities in der Welt des Bosses (dieselben Filterwerte)
get_direct_target_entity()entity or nilDirekte Ziel-Entity aus dem auslösenden Event
get_boss_spawn_location()locationDie ursprüngliche Spawn-Location des Bosses

context.vectors ELITEMOBS

Vektor-Mathematik-Werkzeuge, die in EliteMobs-Power-Skripten verfügbar sind.

MethodArgsReturnsDescription
get_vector_between_locations(from, to, options?)location, location, tablevectorVektor von Quelle zu Ziel. Optionen können das Ergebnis modifizieren
rotate_vector(vector, pitch?, yaw?)vector, double?=0, double?=0vectorVektor um Pitch und Yaw (Grad) drehen
normalize_vector(vector)vectorvectorAuf Einheitslänge normalisieren

context.state GLOBAL

Eine einfache Lua-Tabelle, die während der gesamten Lebensdauer der Skript-Instanz erhalten bleibt. Verwende sie, um Flags, Zähler, Task-IDs, Toggle-Zustände und beliebige Daten zu speichern, die du zwischen Hooks teilen möchtest. context.state ist die skripteigene persistente Tabelle; die meisten anderen Kontexttabellen werden bei Bedarf neu aufgebaut oder verzögert neu erstellt. FMM cacht context.prop pro Prop aus Performance-Gründen, aber dessen Live-Felder wie current_location werden beim Lesen weiterhin aktualisiert.

context.state.counter = (context.state.counter or 0) + 1

context.cooldowns GLOBAL

Cooldown-Verwaltung. Lokale Cooldowns gelten pro Skript-Instanz; globale Cooldowns werden über alle Skripte auf derselben Entity/demselben Besitzer geteilt. Wird kein Schlüssel angegeben, wird standardmäßig der Skriptdateiname verwendet.

MethodArgsReturnsDescription
local_ready(key?)string (optional)boolOb der lokale Cooldown abgelaufen ist
local_remaining(key?)string (optional)intVerbleibende Ticks im lokalen Cooldown (0, wenn bereit)
check_local(key?, duration)string (optional), intboolFalls bereit, startet den Cooldown und gibt true zurück; andernfalls false
set_local(duration, key?)long, string (optional)nilLokalen Cooldown für duration-Ticks setzen
global_ready()boolOb der globale Cooldown abgelaufen ist
set_global(duration)longnilGlobalen Cooldown für duration-Ticks setzen

In EliteMobs-Power-Skripten werden lokale Cooldowns über alle Powers auf derselben Boss-Entity geteilt, und globale Cooldowns verwenden das eingebaute Power-Cooldown-System des Bosses.

EliteMobs-NPC-Skripte verwenden die gemeinsame Cooldown-Reihenfolge check_local(key?, duration); siehe NPC-Skripte.


context.scheduler GLOBAL

Task-Scheduling. Alle Tasks werden automatisch abgebrochen, wenn das Skript beendet wird.

Globale (Magmacore) Variante

FreeMinecraftModels-Skripte und EliteMobs-NPC-Skripte verwenden diese gemeinsame Variante. Die EliteMobs-Namen weiter unten sind Aliase auf demselben Scheduler, sodass beide Benennungsstile auf den generischen Oberflächen gültig sind.

MethodArgsReturnsDescription
run_later(ticks, callback)int, functionintCallback nach ticks ausführen. Gibt Task-ID zurück
run_repeating(delay, interval, callback)int, int, functionintCallback alle interval-Ticks nach initialer Verzögerung ausführen. Gibt Task-ID zurück
cancel(taskId)intnilEinen geplanten Task abbrechen

EliteMobs-Variante

MethodArgsReturnsDescription
run_after(ticks, callback)int, functionintCallback nach ticks ausführen. Gibt Task-ID zurück
run_every(ticks, callback)int, functionintCallback alle N Ticks ausführen. Gibt Task-ID zurück
cancel_task(taskId)intnilEinen geplanten Task abbrechen

context.log GLOBAL

Logging-Werkzeuge zum Debuggen von Skripten.

Globale (Magmacore / FMM) Variante

MethodArgsReturnsDescription
info(message)stringnilInfo-Meldung loggen
warn(message)stringnilWarnmeldung loggen
error(message)stringnilFehler-/Warnmeldung loggen

EliteMobs-Variante

MethodArgsReturnsDescription
info(message)stringnilInfo-Meldung loggen
warn(message)stringnilWarnmeldung loggen
debug(message)stringnilDebug-Meldung loggen (erscheint als Info mit Debug-Präfix)

context.zones GLOBAL

Zonen-Erstellung und Überwachung für FreeMinecraftModels-Skripte und andere von Magmacore gestützte ScriptInstance-Runtimes. EliteMobs Boss-Powers verwenden die EliteMobs-context.zones-Variante weiter unten.

Globale (Magmacore) Variante

MethodArgsReturnsDescription
create_sphere(x, y, z, radius)num, num, num, numintKugelzone erstellen, gibt Handle zurück
create_cylinder(x, y, z, radius, height)num, num, num, num, numintZylinderzone erstellen, gibt Handle zurück
create_cuboid(x, y, z, xSize, ySize, zSize)num, num, num, num, num, numintQuaderzone erstellen, gibt Handle zurück
watch(handle, on_enter?, on_leave?)int, function?, function?boolZonen-Tracking aktivieren. Funktions-Argumente aktivieren on_zone_enter / on_zone_leave; die Funktionskörper werden nicht direkt aufgerufen. Zonen-Hooks erhalten context.player / context.event.player für den Spieler, der die Grenze überschritten hat
unwatch(handle)intnilZonen-Tracking beenden

EliteMobs-Variante

MethodArgsReturnsDescription
get_entities_in_zone(zone, options?)zone table, tabletableEntities innerhalb der Zone holen. Optionen: filter, mode
get_locations_in_zone(zone, options?)zone table, tabletableLocations innerhalb der Zone holen. Optionen: coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolOb die Location in der Zone ist ("full" oder "border")
watch_zone(zone, callbacks, options?)zone table, table, table?nilZone auf Enter/Leave überwachen. Callbacks: {on_enter = fn, on_leave = fn}. Optionen unterstützen filter und mode

context.event GLOBAL

Event-Daten-Tabelle für den Hook, der die aktuelle Skript-Ausführung ausgelöst hat. Vorhanden während ereignisgesteuerter Hooks und generischer MagmaCore-Zonen-Enter-/Leave-Hooks, die einen Spieler-Akteur bereitstellen; nicht vorhanden während on_game_tick, geplanter Callbacks oder Lifecycle-Hooks ohne Spieler.

Globale (Magmacore) Variante

Field / MethodTypeDescription
is_cancelledboolAbbruchstatus zum Zeitpunkt des Kontextaufbaus; wird nach cancel() / uncancel() nicht aktualisiert
cancel()methodDas Event abbrechen, wenn das zugrundeliegende Bukkit-Event abbrechbar ist
uncancel()methodDen Abbruch des Events aufheben, wenn das zugrundeliegende Bukkit-Event abbrechbar ist
playerentity tableAm Event beteiligter Spieler (falls vorhanden)

Generische Zonen-Hooks befüllen player, werden aber nicht von einem abbrechbaren Bukkit-Event gestützt, sodass cancel() und uncancel() dort nicht vorhanden sind.

Zur EliteMobs-Event-Tabelle (die Schadensbeträge, Schadensursachen usw. liefert) siehe EliteMobs Event Table.


context.script ELITEMOBS

Brücke zum EliteMobs Elite-Script-System. Ermöglicht Lua-Powers, die YAML-basierten Targeting-, Zonen- und Relative-Vektor-Systeme über Lua-Tabellen mit denselben Feldnamen wie Elite-Script-YAML-Konfigurationen zu nutzen.

Methoden

MethodArgsReturnsDescription
target(spec)tabletarget handleErstellt ein Target-Handle aus einer Elite-Script-Target-Spec-Tabelle
zone(spec)tablezone handleErstellt ein Zone-Handle aus einer Elite-Script-Zone-Spec-Tabelle
relative_vector(spec, location?, zone?)table, location, zone handlevector handleErstellt einen relativen Vektor aus einer Elite-Script-Vektor-Spec
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilAllen Entities im Target Schaden zufügen
push(target, vector, additive?)target handle, vector or vector handle, bool?=falsenilTarget-Entities mit Geschwindigkeit stoßen
set_facing(target, vector)target handle, vector or vector handlenilBlickrichtung der Target-Entities setzen
spawn_particles(target, particles)target handle, table or stringnilPartikel an Target-Locations spawnen

Target Handle

Wird von context.script:target(spec) zurückgegeben. Die Spec-Tabelle verwendet dieselben Schlüssel wie Elite-Script-YAML-Target-Konfigurationen (z. B. {targetType = "NEARBY_PLAYERS", range = 20}).

MethodArgsReturnsDescription
entities()tableArray von Entity-Tabellen am Target
locations()tableArray von Location-Tabellen am Target
first_entity()entity or nilErste Entity am Target
first_location()location or nilErste Location am Target

Zone Handle

Wird von context.script:zone(spec) zurückgegeben. Die Spec-Tabelle verwendet dieselben Schlüssel wie Elite-Script-YAML-Zone-Konfigurationen (z. B. {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).

MethodArgsReturnsDescription
full_target(coverage?)numbertarget handleTarget-Handle für innere Zonen-Locations
border_target(coverage?)numbertarget handleTarget-Handle für Zonen-Rand-Locations
full_locations(coverage?)numbertableArray innerer Locations
border_locations(coverage?)numbertableArray von Rand-Locations
full_entities()tableEntities innerhalb der Zone
border_entities()tableEntities am Zonenrand
contains(location, mode?)location, string?="full"boolOb die Location in der Zone ist
watch(callbacks, mode?)table, string?="full"intAuf Enter/Leave überwachen. Gibt Task-ID zurück

Vector Handle

Wird von context.script:relative_vector(spec) zurückgegeben. Die Spec-Tabelle verwendet dieselben Schlüssel wie Elite-Script-YAML-Relative-Vektor-Konfigurationen.

MethodArgsReturnsDescription
resolve()vectorVektor für den aktuellen Kontext berechnen

context.world (EliteMobs) ELITEMOBS

Boss-spezifische Welt-Tabelle für EliteMobs-Power-Skripte. Boss-Powers beginnen mit der generischen MagmaCore-Welt-Tabelle, sodass Koordinaten-Helfer wie get_block_at(...), set_block_at(...) und spawn_particle(...) weiterhin verfügbar bleiben. Die folgenden Methoden sind EliteMobs-Ergänzungen oder boss-spezifische Überschreibungen, hauptsächlich Location-Tabellen-Formen und Boss-Helfer.

Block-Abfragen

MethodArgsReturnsDescription
get_block_type_at_location(loc)locationstring or nilMaterial-Name
get_highest_block_y_at_location(loc)locationint or nilHöchstes Block-Y
get_blast_resistance_at_location(loc)locationdoubleSprengresistenzwert
is_air_at_location(loc)locationboolBlock ist Luft
is_passable_at_location(loc)locationboolBlock ist durchquerbar
is_passthrough_at_location(loc)locationboolBlock ist nicht solide
is_on_floor_at_location(loc)locationboolLuft mit solidem Block darunter
is_standing_on_material(loc, material)location, string (Material)boolBlock darunter entspricht dem Material

Blockmanipulation

MethodArgsReturnsDescription
set_block_at_location(loc, material, requireAir?)location, string (Material), bool?=falsenilBlock platzieren. Wenn requireAir true ist, wird nur Luft ersetzt
place_temporary_block_at_location(loc, material, ticks?, requireAir?)location, string, int?=0, bool?=falsenilBlock platzieren, nach ticks automatisch entfernen. Wenn requireAir true ist, wird nur Luft ersetzt

Spawning

MethodArgsReturnsDescription
spawn_boss_at_location(file, loc?, level?)string, location?=boss loc, int?=boss levelentity or nilCustom Boss spawnen
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity or nilBoss mit Optionen spawnen (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentity or nilVanilla-Entity mit Optionen spawnen (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentity or nilFallenden Block spawnen (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity or nilVerstärkung spawnen, die an den Boss gebunden ist
spawn_fireworks_at_location(loc, config)location, tableentity or nilFeuerwerk spawnen
spawn_splash_potion_at_location(loc, config)location, tableentity or nilWurftrank spawnen

Effekte und Hilfsfunktionen

MethodArgsReturnsDescription
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Minecraft-Sound-Schlüssel, z. B. "entity.blaze.shoot"), float?=1, float?=1nilSound abspielen
spawn_particle_at_location(loc, particle, count?)location, string (Particle) or table, int?=1nilPartikel spawnen
strike_lightning_at_location(loc)locationnilBlitz einschlagen lassen (umgeht EM-Schutz)
run_empowered_lightning_task_at_location(loc)locationnilVerstärkter Blitzeffekt
generate_fake_explosion(locations, center?)table of locations, locationnilVisuelle Explosion ohne Schaden
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefake projectile or nilVisuelles Goldklumpen-Projektil spawnen
run_fake_gold_nugget_damage(projectiles)tablenilSchadensprüfung auf Fake-Projektile ausführen
set_world_time(time) or (loc, time)long, or location + longnilWeltzeit setzen
set_world_weather(weather, duration?) or (loc, weather, duration?)string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000nilWetter setzen
run_console_command(command)stringnilKonsolenbefehl ausführen
generate_player_loot(times?)int?=1nilSo viele Spieler-Loot-Würfe für Schadensverursacher ausführen
drop_bonus_coins(multiplier?)double?=2nilBonus-Münzen am Boss droppen

context.settings (EliteMobs)

MethodArgsReturnsDescription
warning_visual_effects_enabled()boolOb Warn-VFX in der Konfiguration aktiviert sind

EliteMobs Event Table

Die context.event-Tabelle wird an Schadens- und Spawn-Hooks übergeben. Felder variieren je nach Event-Typ.

Field / MethodTypePresent WhenDescription
damage_amountdoubleSchadensereignisseRoher Schadensbetrag
damage_causestringSchadensereignisseDamageCause-Name
damagerentity tableSchaden-durch-Entity-EreignisseEntity, die den Schaden zugefügt hat
projectileentity tableProjektil-SchadensereignisseProjektil, das den Schaden zugefügt hat
spawn_reasonstringSpawn-EreignisName des Spawn-Grunds
entityentity tableTodes-/Zonen-EreignisseRelevante Entity
cancel_event()methodDie meisten EreignisseEvent abbrechen
set_damage_amount(amount)method (double)SchadensereignisseSchadensbetrag überschreiben
multiply_damage_amount(multiplier)method (double)SchadensereignisseAktuellen Schaden multiplizieren

context.item FMM

In FMM-Item-Skripten zugänglich. Löst das jeweilige skriptgesteuerte Item aus den ausgerüsteten Slots des Spielers per PDC-Tag auf.

Lesemethoden untersuchen das aktuell ausgerüstete passende Item, wenn sie aufgerufen werden. Schreibmethoden reihen ihre Mutation in den Bukkit-Haupt-Thread ein und geben nil zurück.

Eigenschaften

FieldTypeDescription
idstringSkript-Identifier des Items

Methoden

MethodArgsReturnsDescription
material()stringMaterial-Name
get_amount()intStack-Größe
set_amount(n)intnilSetzen der Stack-Größe einreihen
consume(n?)int?=1nilVerringern um n einreihen, bei null entfernen
get_uses()intPDC-gespeicherter Verwendungszähler
set_uses(n)intnilSetzen des PDC-Verwendungszählers einreihen
get_durability()table or nilGibt die Felder current und max zurück, oder nil, wenn keine Haltbarkeitsleiste vorhanden ist
get_durability_percentage()number or nil0.0--1.0 verbleibender Anteil, oder nil
use_durability(amount, can_break?)int, bool?=falsenilVerringern der Haltbarkeit um pauschalen Betrag einreihen. Wenn false, wird auf 1 verbleibend begrenzt
use_durability_percentage(fraction, can_break?)number, bool?=falsenilVerringern der Haltbarkeit um Bruchteil von max einreihen (0.0--1.0)
get_name()string or nilAnzeigename
set_name(s)stringnilSetzen des Anzeigenamens einreihen. Unterstützt Farbcodes
get_lore()tableArray von Lore-Strings
set_lore(table)tablenilSetzen der Lore aus einem Array von Strings einreihen

context.prop FMM

In FMM-Prop-Skripten zugänglich. Erbt alle Entity-Felder vom zugrundeliegenden Armor Stand.

Eigenschaften

FieldTypeDescription
model_idstringName des Blueprint-Modells
current_locationlocationAktuelle Position des Props

Methoden

MethodArgsReturnsDescription
play_animation(name, blend?, loop?)string, bool?=true, bool?=trueboolBenannte Animation abspielen
stop_animation()nilAlle aktuellen Animationen stoppen
hurt_visual()nilRoter Tönungsblitz, kein Schaden
pickup()nilEntfernen des Props und Droppen des Platzierungsitems einreihen
has_mount_points()boolOb das Prop Mount-Point-Knochen besitzt
mount(player)entity tableboolMount-Prüfung einreihen; true bedeutet, dass die grundlegenden Referenzen gültig waren
dismount(player)entity tableboolDismount-Prüfung einreihen; true bedeutet, dass die grundlegenden Referenzen gültig waren
get_passengers()tableArray von Entity-Tabellen aufgesessener Spieler
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity or nilEliteMobs-Boss spawnen (erfordert EliteMobs)
open_inventory(player, title, rows?)entity table, string, int?=3boolÖffnen eines persistenten Truheninventars einreihen (Reihen auf 1--6 begrenzt). Titel unterstützt Farbcodes
place_book(player)entity tableboolSpeichern des vom Spieler gehaltenen geschriebenen/beschreibbaren Buches im Prop einreihen
read_book(player)entity tableboolÖffnen des gespeicherten Buches zum Lesen einreihen
take_book(player)entity tableboolZurückgeben des gespeicherten Buches an den Spieler einreihen
has_book()boolOb ein Buch gespeichert ist
drop_inventory()boolDroppen aller gespeicherten Items und Leeren des Speichers einreihen
drop_book()boolDroppen des gespeicherten Buches und Leeren des Speichers einreihen
is_viewing_inventory(player)entity tableboolOb der Spieler das Inventar dieses Props offen hat
set_persistent_data(key, value)string, stringboolString im PDC des Props speichern
get_persistent_data(key)stringstring or nilString aus dem PDC des Props abrufen

Color Codes

Alle Methoden, die als Unterstützer von Farbcodes markiert sind, verwenden den ChatColorConverter von Magmacore. Diese Formate können in beliebigen Strings frei gemischt werden:

Legacy-Codes

Verwende & gefolgt von einem Farb-/Format-Zeichen:

CodeColorCodeFormat
&0Schwarz&lFett
&1Dunkelblau&mDurchgestrichen
&2Dunkelgrün&nUnterstrichen
&3Dunkles Türkis&oKursiv
&4Dunkelrot&rZurücksetzen
&5Dunkelviolett
&6Gold
&7Grau
&8Dunkelgrau
&9Blau
&aGrün
&bTürkis
&cRot
&dHelllila
&eGelb
&fWeiß

Hex-Farben

Exakte RGB-Farbe mit 6-stelligem Hex-Code:

&#FF5500          -- Ampersand-Präfix
<#FF5500> -- Tag-Syntax

Verläufe

Interpoliert weich zwischen zwei oder mehr Farben über den Text hinweg:

<gradient:#FF0000:#0000FF>This text fades red to blue</gradient>
<g:#FF0000:#00FF00:#0000FF>Three-color gradient</g>

Die Kurzform g funktioniert identisch zu gradient. Du kannst beliebig viele Farbstopps verketten.

Regenbogen

Durchläuft das gesamte Farbtonspektrum bei voller Sättigung. Ein optionales numerisches Argument verschiebt den Start-Farbton (Phasenversatz):

<rainbow>Full rainbow text</rainbow>
<r:0.5>Rainbow with a shifted starting hue</r>

Common Types

location

{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }

vector

{ x = number, y = number, z = number }

entity table

Jede Tabelle mit einem uuid-Feld. Spieler- und Entity-Tabellen aus dem Kontext funktionieren direkt:

context.player                              -- gültige Entity-Tabelle
context.world:get_nearby_entities(x,y,z,r) -- gibt Array von Entity-Tabellen zurück

Nächste Schritte