Zum Hauptinhalt springen

Lua API-Referenz

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

Globale Methoden (markiert mit GLOBAL) stammen aus Magmacore, der gemeinsamen Kernbibliothek — sie funktionieren identisch in EliteMobs- und FreeMinecraftModels-Skripten.

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

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

Wenn eine Methode ein Bukkit-Enum erfordert (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-Tabelle GLOBAL

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

Eigenschaften

FeldTypBeschreibung
uuidstringEntity-UUID
entity_typestringEntity-Typ (Kleinbuchstaben)
is_validboolEntity existiert noch in der Welt
is_deadboolEntity ist tot
is_playerboolIst ein Spieler
is_hostileboolIst ein Monster
is_passiveboolIst ein Tier
is_eliteboolIst eine EliteMobs-Entity
is_custom_bossboolIst ein EliteMobs Custom Boss
is_significant_bossboolCustom Boss mit Gesundheitsmultiplikator über 1 (gestaltete Begegnung)
is_modeledboolHat ein FMM-Modell
is_propboolIst ein FMM-Prop
current_locationlocationEntity-Position (x, y, z, yaw, pitch, world)
worldstringWeltname

Methoden

MethodeArgumenteRückgabeBeschreibung
teleport(location)location-TabellenilEntity teleportieren
remove()nilEntity aus der Welt entfernen
set_silent(enabled)boolnilLautlos setzen
set_invulnerable(enabled)boolnilUnverwundbar setzen
set_gravity(enabled)boolnilGravitation setzen
set_glowing(enabled)boolnilLeuchten setzen

Bridge: entity.elite

Nur vorhanden, wenn is_elite wahr ist. Wird über Reflection befüllt — keine EliteMobs-Abhängigkeit erforderlich.

FeldTypBeschreibung
levelintElite-Mob-Level
namestringElite-Anzeigename
healthdoubleAktuelle Gesundheit
max_healthdoubleMaximale Gesundheit
is_custom_bossboolIst ein Custom Boss (auch auf oberster Ebene verfügbar)
health_multiplierdoubleKonfigurationsdefinierter Gesundheitsmultiplikator
damage_multiplierdoubleKonfigurationsdefinierter Schadensmultiplikator
remove()methodDie Elite-Entity entfernen

Bridge: entity.model

Nur vorhanden, wenn is_modeled wahr ist. Wird über Reflection befüllt — keine FMM-Abhängigkeit erforderlich.

FeldTypBeschreibung
model_idstringModell-Blueprint-Name
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

Living-Entity-Tabelle GLOBAL

Erweitert die Entity-Tabelle. Wird auf alle lebenden Entities angewendet (Mobs und Spieler).

Eigenschaften

FeldTypBeschreibung
healthdoubleAktuelle Gesundheit
maximum_healthdoubleMaximale Gesundheit
namestringEntity-Anzeigename
is_aliveboolEntity ist nicht tot

Methoden

MethodeArgumenteRückgabeBeschreibung
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 nach Name anwenden
remove_potion_effect(type)string (PotionEffectType)nilTrankeffekt nach Name entfernen

context.player GLOBAL

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

Eigenschaften

FeldTypBeschreibung
game_modestringsurvival, creative, adventure, spectator

Methoden

MethodeArgumenteRückgabeBeschreibung
send_message(text)stringnilChat-Nachricht senden. Unterstützt Farbcodes
get_held_item()table oder nilGibt type-, amount-, display_name-Felder zurück, oder nil bei leerer Hand
consume_held_item(amount?)int (Standard 1)nilGehaltenen Item-Stapel um Menge reduzieren
has_item(material, amount?)string (Material), int (Standard 1)boolInventar auf Material prüfen
get_target_entity(range?)num (Standard 50)entity oder nilRaycast für Entity, die der Spieler ansieht
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)boolFalschen Block senden. Wird nach Ticks automatisch zurückgesetzt, falls angegeben
reset_block(x, y, z)int, int, intboolFalschen Block auf echten zurücksetzen
sleep(x, y, z)num, num, numnilBett-Schlaf-Animation an Position
wake_up()nilAus dem Schlaf aufwachen
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, Standard 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)nilAktionsleiste anzeigen. Wiederholt sich, wenn Ticks größer als 0. Unterstützt Farbcodes
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (Standard leer), int, int, intnilTitelbildschirm anzeigen. Unterstützt Farbcodes

context.world GLOBAL

Welt-Operationen. In allen Skripttypen verfügbar.

Eigenschaften

FeldTypBeschreibung
namestringWeltname

Methoden

MethodeArgumenteRückgabeBeschreibung
get_block_at(x, y, z)int, int, intstringMaterial-Name (Kleinbuchstaben)
set_block_at(x, y, z, material)int, int, int, string (Material)boolBlock platzieren
get_highest_block_y(x, z)int, intintY-Wert 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 erzeugen
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, numentityVanilla-Entity spawnen
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableGibt hit_entity-, hit_location-, hit_block-Felder zurück
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolBlock platzieren, der sich nach Ticks automatisch zurücksetzt
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entityItem-Entity natürlich an Position fallen lassen
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilFeuerwerk spawnen

context.boss ELITEMOBS

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

Eigenschaften

FeldTypBeschreibung
namestringBoss-Anzeigename
uuidstringElite-Entity-UUID
healthdoubleAktuelle Gesundheit (Momentaufnahme)
maximum_healthdoubleMaximale Gesundheit (Momentaufnahme)
current_locationlocationBoss-Position (Momentaufnahme)
levelintBoss-Level
damager_countintAnzahl der Spieler, die diesen Boss beschädigt haben
is_in_combatboolBoss ist im Kampf
existsboolBoss-Entity existiert

Methoden

MethodeArgumenteRückgabeBeschreibung
is_alive()boolOb die Boss-Entity lebt (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-Schadensverursacher-Anzahl
add_tag(tag, ticks?)string, int?=0nilTag hinzufügen, automatisch entfernen nach Ticks 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 (Sound), float?=1, float?=1nilSound beim Boss abspielen
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilSound beim Boss abspielen (Alias)
spawn_particle_at_self(particle, count?)string (Particle) oder table, int?=1nilPartikel beim Boss erzeugen
play_model_animation(name)stringnilFMM-Modellanimation abspielen (erfordert FMM-Modell)
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPfadfindung zur Position
send_message(text, range?)string, double?=20nilNachricht an nahegelegene Spieler senden. Unterstützt Farbcodes
get_nearby_players(range)doubletableArray von Spieler-Tabellen in Reichweite
get_target_player()player oder nilAktuelles Mob-Ziel, falls es ein Spieler ist
get_nearby_players_in_zone(zone)zone-TabelletableSpieler innerhalb der Zonenform
get_ender_dragon_phase()string oder nilEnderDragon.Phase-Name
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilEnderdrachen-Phase setzen
summon_reinforcement(file, zone?, level?)string, zone oder nil, int?=0entity oder nilVerstärkungs-Boss spawnen
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentityVerfolgtes Projektil spawnen

summon_projectile-Optionen

OptionTypStandardBeschreibung
custom_damagenumberProjektilschaden überschreiben
detonation_powerstringExplosionskraft-Stufe
yieldnumberFeuerball-Yield
incendiarybooltrueFeuerball setzt Feuer
gravityboolGravitation aktivieren
glowingboolfalseLeuchten setzen
invulnerableboolfalseUnverwundbar setzen
persistentbooltruePersistent setzen
durationint0Automatisch entfernen nach Ticks
effectstringEntityEffect, der beim Spawn abgespielt wird
spawn_at_originboolfalseAm Ursprung spawnen statt vom Boss abzufeuern
direction_onlyboolfalseRichtung setzen ohne Geschwindigkeit (Feuerbälle)
trackbooltrueAls Elite-Projektil registrieren
on_landfunctionCallback wenn Projektil landet: function(location, entity)
max_ticksint6000Maximale Ticks vor erzwungenem Landing-Callback

Zonen-/Partikel-Methoden

MethodeArgumenteRückgabeBeschreibung
spawn_particles_in_zone(zone, particle, ...)zone, Partikel-Spezifikation, coverage?=1.0nilZone mit Partikeln füllen
spawn_particles_in_zone_border(zone, particle, ...)zone, Partikel-Spezifikation, coverage?=1.0nilZonen-Umriss mit Partikeln zeichnen
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

Spezielle Power-Unterstützung

MethodeArgumenteRückgabeBeschreibung
start_tracking_fireball_system(speed?)double?=0.5nilTracking-Feuerball-KI starten
handle_spirit_walk_damage(cause)string (DamageCause)nilSpirit-Walk-Schaden nach Ursache behandeln
shield_wall_is_active()boolOb die Schildmauer aktiv ist
initialize_shield_wall(charges?)int?=1nilSchildmauer aktivieren
shield_wall_absorb_damage(player, damage)entity-Tabelle, doubleboolVersuchen, Schaden zu absorbieren
deactivate_shield_wall()nilSchildmauer deaktivieren
start_zombie_necronomicon(target, file)entity-Tabelle, stringnilNecronomicon auf Ziel starten

EliteMobs-Living-Entity-Tabelle ELITEMOBS

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

Eigenschaften

FeldTypBeschreibung
namestringEntity-Anzeigename
uuidstringEntity-UUID
entity_typestringEntity-Typname
is_playerboolIst ein Spieler
is_monsterboolIst ein Monster
is_eliteboolIst eine EliteMobs-Entity
is_validboolEntity existiert noch
healthdoubleAktuelle Gesundheit (Momentaufnahme)
maximum_healthdoubleMaximale Gesundheit (Momentaufnahme)
current_locationlocationEntity-Position (Momentaufnahme)
game_modestringSpielmodus (nur Spieler)

Methoden

MethodeArgumenteRückgabeBeschreibung
is_alive()boolOb die Entity lebt (Live-Prüfung)
is_ai_enabled()boolOb 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 die 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)doublenilBenutzerdefinierten Boss-Angriffsschaden vom Boss der Power zufügen
deal_damage_from_boss(amount)doublenilDem Boss der Power zugeordneten Schaden zufügen
restore_health(amount)doublenilEntity heilen (nutzt EliteMobs-Heilung bei Elite)
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilSound bei Entity abspielen
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilSound bei Entity abspielen (Alias)
spawn_particle_at_self(particle, count?)string (Particle) oder table, int?=1nilPartikel bei Entity erzeugen
spawn_particles_at_location(loc, particle, count?)location, Partikel-Spezifikation, int?=1nilPartikel an Position erzeugen
teleport_to_location(location)locationnilEntity teleportieren
set_velocity_vector(vector)vectornilGeschwindigkeit setzen
set_gravity(enabled)boolnilGravitation 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 Position 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. Wird nach duration Ticks automatisch zurückgesetzt
set_awareness_enabled(enabled, duration?)bool, int?=0nilMob-Aufmerksamkeit setzen. Wird nach duration Ticks automatisch zurückgesetzt
face_direction_or_location(target)vector oder locationnilIn eine Richtung schauen oder auf eine Position blicken
play_model_animation(name)stringnilFMM-Modellanimation abspielen (erfordert FMM-Modell)
set_scale(scale, duration?)double, int?=0nilEntity-Skalierung setzen. Wird nach duration Ticks automatisch auf 1.0 zurückgesetzt
set_invulnerable(enabled, duration?)bool, int?=0nilUnverwundbar setzen. Wird nach duration Ticks automatisch zurückgesetzt
set_healing(enabled)boolnilElite-Heilungsstatus setzen
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPfadfindung zur Position (nur CustomBossEntity)
add_tag(tag, ticks?)string, int?=0nilTag hinzufügen, automatisch entfernen nach Ticks
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 Entity-Bounding-Box eine Box an der Position überlappt
remove_elite()nilÜber EliteMobs-Entfernungspipeline entfernen
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilTrankeffekt anwenden
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilAusrüstungsslot-Item setzen
set_fire_ticks(ticks)intnilFeuer-Ticks setzen
add_visual_freeze_ticks(ticks?)int?=1nilVisuelle Einfrier-Ticks hinzufügen
place_temporary_block(material, ticks?, visual?)string (Material), int?=0, bool?=falsenilTemporären Block an Entity-Position platzieren

set_equipment-Optionen

OptionTypStandardBeschreibung
unbreakableboolfalseItem unzerstörbar machen
enchantmentstableArray von {type = "ENCHANT_NAME", level = 1}-Tabellen

EliteMobs-Spieler-Methoden

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

MethodeArgumenteRückgabeBeschreibung
send_message(text)stringnilChat-Nachricht senden. Unterstützt Farbcodes
show_action_bar(text)stringnilAktionsleistentext 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-Referenztabelle

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

Feld / MethodeArgumenteRückgabeBeschreibung
namestringEntity-Name
uuidstringEntity-UUID
entity_typestringEntity-Typname
is_playerboolImmer false
is_eliteboolImmer false
is_valid()boolOb die Entity noch gültig ist (Live-Prüfung)
current_locationlocationPosition (Momentaufnahme)
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 Feuerbälle)
set_yield(amount)doublenilFeuerball-Yield setzen
set_gravity(enabled)boolnilGravitation setzen
detonate()nilFeuerwerk zünden
remove()nilEntity entfernen
unregister(reason?)string?=OTHERnilAus EliteMobs-Entity-Tracker abmelden

context.players ELITEMOBS

Spieler-Abfragetabelle, verfügbar in EliteMobs-Power-Skripten. Bietet Hilfsmethoden zum Finden von Spielern relativ zum Boss.

MethodeArgumenteRückgabeBeschreibung
current_target()player oder nilEvent-Akteur falls Spieler, oder aktuelles Mob-Ziel des Bosses falls Spieler
nearby_players(radius)doubletableArray von Spieler-Tabellen im Radius des Bosses
all_players_in_world()tableArray aller Spieler-Tabellen in der Welt des Bosses

context.entities ELITEMOBS

Entity-Abfragetabelle, verfügbar in EliteMobs-Power-Skripten. Bietet Hilfsmethoden zum Finden von Entities relativ zum Boss. Alle Abfragen schließen den Boss selbst aus.

MethodeArgumenteRückgabeBeschreibung
get_nearby_entities(radius, filter?)double, string?="living"tableEntities im Radius. Filter: "living", "all", "entities"
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableEntities innerhalb einer achsenausgerichteten Box
get_all_entities(filter?)string?="living"tableAlle Entities in der Welt des Bosses
get_direct_target_entity()entity oder nilDirekte Ziel-Entity aus dem auslösenden Event
get_boss_spawn_location()locationDer ursprüngliche Spawn-Ort des Bosses

context.vectors ELITEMOBS

Vektor-Mathematik-Hilfsfunktionen, verfügbar in EliteMobs-Power-Skripten.

MethodeArgumenteRückgabeBeschreibung
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 rotieren (Grad)
normalize_vector(vector)vectorvectorAuf Einheitslänge normalisieren

context.cooldowns GLOBAL

Cooldown-Verwaltung. Lokale Cooldowns gelten pro Skript-Instanz; globale Cooldowns werden über alle Skripte auf derselben Entität/demselben Besitzer geteilt. Wenn kein Schlüssel angegeben wird, wird standardmäßig der Dateiname des Skripts verwendet.

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

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


context.scheduler GLOBAL

Aufgabenplanung. Alle Aufgaben werden automatisch abgebrochen, wenn das Skript beendet wird.

Global (Magmacore) variant

MethodArgsReturnsDescription
run_later(ticks, callback)int, functionintCallback nach der angegebenen Anzahl von Ticks ausführen. Gibt die Aufgaben-ID zurück
run_repeating(delay, interval, callback)int, int, functionintCallback alle interval Ticks nach einer anfänglichen Verzögerung ausführen. Gibt die Aufgaben-ID zurück
cancel(taskId)intnilEine geplante Aufgabe abbrechen

EliteMobs variant

MethodArgsReturnsDescription
run_after(ticks, callback)int, functionintCallback nach der angegebenen Anzahl von Ticks ausführen. Gibt die Aufgaben-ID zurück
run_every(ticks, callback)int, functionintCallback alle N Ticks ausführen. Gibt die Aufgaben-ID zurück
cancel_task(taskId)intnilEine geplante Aufgabe abbrechen

context.log GLOBAL

Logging-Hilfsfunktionen zum Debuggen von Skripten.

MethodArgsReturnsDescription
info(message)stringnilInfo-Nachricht protokollieren
warn(message)stringnilWarnungsnachricht protokollieren
error(message)stringnilFehler-/Warnungsnachricht protokollieren
debug(message)stringnilDebug-Nachricht protokollieren (erscheint als Info mit Debug-Präfix)

context.zones GLOBAL

Zonen-Erstellung und -Überwachung. In allen Skripttypen verfügbar.

Global (Magmacore) variant

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, functionboolSpieler-Betreten/Verlassen-Ereignisse für Zone verfolgen
unwatch(handle)intnilZonenverfolgung beenden

EliteMobs variant

MethodArgsReturnsDescription
get_entities_in_zone(zone, options?)zone table, tabletableEntitäten innerhalb der Zone abrufen. Optionen: filter, mode
get_locations_in_zone(zone, options?)zone table, tabletablePositionen innerhalb der Zone abrufen. Optionen: coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolOb die Position innerhalb der Zone liegt ("full" oder "border")
watch_zone(zone, callbacks, mode?)zone table, table, string?="full"intZone auf Betreten/Verlassen überwachen. Callbacks: {on_enter = fn, on_leave = fn}

context.event GLOBAL

Ereignisdaten-Tabelle für den Hook, der die aktuelle Skriptausführung ausgelöst hat. Nur während ereignisgesteuerter Hooks vorhanden (nicht bei on_tick).

Global (Magmacore) variant

Field / MethodTypeDescription
is_cancelledboolOb das Ereignis derzeit abgebrochen ist
cancel()methodDas Ereignis abbrechen
uncancel()methodDie Abbruch des Ereignisses rückgängig machen
playerentity tableAm Ereignis beteiligter Spieler (falls vorhanden)

Für die EliteMobs-Ereignistabelle (die Schadensbeträge, Schadensursachen usw. bereitstellt), siehe EliteMobs Event Table.


context.script ELITEMOBS

Brücke zum EliteMobs Elite Script-System. Ermöglicht Lua-Powers die Nutzung der YAML-basierten Targeting-, Zonen- und relativen Vektorsysteme über Lua-Tabellen mit denselben Feldnamen wie Elite Script YAML-Konfigurationen.

Methods

MethodArgsReturnsDescription
target(spec)tabletarget handleEin Target-Handle aus einer Elite Script Target-Spezifikationstabelle erstellen
zone(spec)tablezone handleEin Zonen-Handle aus einer Elite Script Zonen-Spezifikationstabelle erstellen
relative_vector(spec, location?, zone?)table, location, zone handlevector handleEinen relativen Vektor aus einer Elite Script Vektor-Spezifikation erstellen
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilSchaden an allen Entitäten im Ziel verursachen
push(target, vector, additive?)target handle, vector or vector handle, bool?=falsenilZiel-Entitäten mit Geschwindigkeit zurückstoßen
set_facing(target, vector)target handle, vector or vector handlenilBlickrichtung der Ziel-Entitäten setzen
spawn_particles(target, particles)target handle, table or stringnilPartikel an Zielpositionen erzeugen

Target Handle

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

MethodArgsReturnsDescription
entities()tableArray von Entitäts-Tabellen am Ziel
locations()tableArray von Positions-Tabellen am Ziel
first_entity()entity or nilErste Entität am Ziel
first_location()location or nilErste Position am Ziel

Zone Handle

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

MethodArgsReturnsDescription
full_target(coverage?)numbertarget handleTarget-Handle für Positionen im Zoneninneren
border_target(coverage?)numbertarget handleTarget-Handle für Positionen am Zonenrand
full_locations(coverage?)numbertableArray von Positionen im Inneren
border_locations(coverage?)numbertableArray von Positionen am Rand
full_entities()tableEntitäten innerhalb der Zone
border_entities()tableEntitäten am Zonenrand
contains(location, mode?)location, string?="full"boolOb die Position in der Zone liegt
watch(callbacks, mode?)table, string?="full"intAuf Betreten/Verlassen überwachen. Gibt die Aufgaben-ID zurück

Vector Handle

Wird von context.script:relative_vector(spec) zurückgegeben. Die Spezifikationstabelle verwendet dieselben Schlüssel wie Elite Script YAML-Konfigurationen für relative Vektoren.

MethodArgsReturnsDescription
resolve()vectorDen Vektor für den aktuellen Kontext berechnen

context.world (EliteMobs) ELITEMOBS

Erweiterte Welt-Tabelle für EliteMobs-Power-Skripte. Fügt Boss-spezifisches Spawning, Block-Prüfungen und Effekte zur globalen Welt-Tabelle hinzu.

Block-Abfragen

MethodeArgumenteRückgabeBeschreibung
get_block_type_at_location(loc)locationstring oder nilMaterial-Name
get_highest_block_y_at_location(loc)locationint oder nilHöchster Block Y-Wert
get_blast_resistance_at_location(loc)locationdoubleExplosionswiderstandswert
is_air_at_location(loc)locationboolBlock ist Luft
is_passable_at_location(loc)locationboolBlock ist passierbar
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 Material

Block-Manipulation

MethodeArgumenteRückgabeBeschreibung
set_block_at_location(loc, material, visual?)location, string (Material), bool?=falsenilBlock platzieren. visual=true für falschen Block
place_temporary_block_at_location(loc, material, ticks?, visual?)location, string, int?=0, bool?=falsenilBlock platzieren, automatisch nach Ticks entfernen

Spawning

MethodeArgumenteRückgabeBeschreibung
spawn_boss_at_location(file, loc?, level?)string, location?=Boss-Pos., int?=Boss-Levelentity oder nilCustom Boss spawnen
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity oder nilBoss mit Optionen spawnen (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentityVanilla-Entity mit Optionen spawnen (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentityFallenden Block spawnen (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity oder nilAn Boss gebundene Verstärkung spawnen
spawn_fireworks_at_location(loc, config)location, tableentity oder nilFeuerwerk spawnen
spawn_splash_potion_at_location(loc, config)location, tableentity oder nilWurftrank spawnen

Effekte und Hilfsfunktionen

MethodeArgumenteRückgabeBeschreibung
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilSound abspielen
spawn_particle_at_location(loc, particle, count?)location, string (Particle) oder table, int?=1nilPartikel erzeugen
strike_lightning_at_location(loc)locationnilBlitz einschlagen (umgeht EM-Schutz)
run_empowered_lightning_task_at_location(loc)locationnilVerstärkter Blitzeffekt
generate_fake_explosion(locations, center?)Tabelle von Positionen, locationnilVisuelle Explosion ohne Schaden
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefake projectileVisuelles Goldnugget-Projektil spawnen
run_fake_gold_nugget_damage(projectiles)tablenilSchadensprüfung auf falsche Projektile ausführen
set_world_time(time) or (loc, time)long, oder 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(level?)int?=1nilBeute für Schadensverursacher generieren
drop_bonus_coins(multiplier?)double?=2nilBonusmünzen beim Boss fallen lassen

context.settings (EliteMobs)

MethodeArgumenteRückgabeBeschreibung
warning_visual_effects_enabled()boolOb Warnungs-VFX in der Konfiguration aktiviert sind

EliteMobs-Event-Tabelle

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

Feld / MethodeTypVorhanden beiBeschreibung
damage_amountdoubleSchadens-EventsRoher Schadensbetrag
damage_causestringSchadens-EventsDamageCause-Name
damagerentity-TabelleSchaden-durch-Entity-EventsEntity, die den Schaden zugefügt hat
projectileentity-TabelleProjektil-Schadens-EventsProjektil, das den Schaden zugefügt hat
spawn_reasonstringSpawn-EventName des Spawn-Grundes
entityentity-TabelleTod-/Zonen-EventsRelevante Entity
cancel_event()methodDie meisten EventsDas Event abbrechen
set_damage_amount(amount)method (double)Schadens-EventsSchadensbetrag überschreiben
multiply_damage_amount(multiplier)method (double)Schadens-EventsAktuellen Schaden multiplizieren

context.item FMM

Zugriff in FMM-Item-Skripten. Löst das spezifische geskriptete Item aus den ausgerüsteten Slots des Spielers über PDC-Tag auf.

Eigenschaften

FeldTypBeschreibung
idstringSkript-Bezeichner des Items

Methoden

MethodeArgumenteRückgabeBeschreibung
material()stringMaterial-Name
get_amount()intStapelgröße
set_amount(n)intnilStapelgröße setzen
consume(n?)int?=1nilMenge um n verringern, entfernen wenn null
get_uses()intPDC-gespeicherter Nutzungszähler
set_uses(n)intnilPDC-Nutzungszähler setzen
get_durability()table oder nilGibt current- und max-Felder zurück, oder nil ohne Haltbarkeitsleiste
get_durability_percentage()number oder nil0.0--1.0 verbleibender Anteil, oder nil
use_durability(amount, can_break?)int, bool?=falsenilHaltbarkeit um festen Betrag reduzieren. Bei false wird auf 1 verbleibend begrenzt
use_durability_percentage(fraction, can_break?)number, bool?=falsenilHaltbarkeit um Anteil des Maximums reduzieren (0.0--1.0)
get_name()string oder nilAnzeigename
set_name(s)stringnilAnzeigenamen setzen. Unterstützt Farbcodes
get_lore()tableArray von Lore-Strings
set_lore(table)tablenilLore aus String-Array setzen

context.prop FMM

Zugriff in FMM-Prop-Skripten. Erbt alle Entity-Felder vom zugrunde liegenden Armor Stand.

Eigenschaften

FeldTypBeschreibung
model_idstringBlueprint-Modellname
current_locationlocationAktuelle Position des Props

Methoden

MethodeArgumenteRückgabeBeschreibung
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()nilProp entfernen und Platzierungs-Item fallen lassen
has_mount_points()boolOb der Prop Befestigungspunkt-Bones hat
mount(player)entity-TabelleboolSpieler auf ersten verfügbaren Sitz setzen
dismount(player)entity-TabelleboolSpieler absetzen
get_passengers()tableArray von Entity-Tabellen für aufgesessene Spieler
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity oder nilEliteMobs-Boss spawnen (erfordert EliteMobs)
open_inventory(player, title, rows?)entity-Tabelle, string, int?=3boolPersistentes Truheninventar öffnen (1--6 Reihen). Titel unterstützt Farbcodes
place_book(player)entity-TabelleboolGehaltenes beschriebenes Buch des Spielers auf Prop ablegen
read_book(player)entity-TabelleboolGespeichertes Buch zum Lesen öffnen
take_book(player)entity-TabelleboolGespeichertes Buch an Spieler zurückgeben
has_book()boolOb ein Buch gespeichert ist
drop_inventory()boolAlle gespeicherten Items fallen lassen und leeren
drop_book()boolGespeichertes Buch fallen lassen und leeren
is_viewing_inventory(player)entity-TabelleboolOb der Spieler das Inventar dieses Props geöffnet hat
set_persistent_data(key, value)string, stringboolString im PDC des Props speichern
get_persistent_data(key)stringstring oder nilString aus dem PDC des Props abrufen

Farbcodes

Alle Methoden, die als Farbcode-unterstützend markiert sind, verwenden Magmacores ChatColorConverter. Diese Formate können in jedem String frei gemischt werden:

Legacy-Codes

Verwende & gefolgt von einem Farb-/Formatzeichen:

CodeFarbeCodeFormat
&0Schwarz&lFett
&1Dunkelblau&mDurchgestrichen
&2Dunkelgrün&nUnterstrichen
&3Dunkelaqua&oKursiv
&4Dunkelrot&rZurücksetzen
&5Dunkellila
&6Gold
&7Grau
&8Dunkelgrau
&9Blau
&aGrün
&bAqua
&cRot
&dHelllila
&eGelb
&fWeiß

Hex-Farben

Exakte RGB-Farbe mit 6-stelligem Hex:

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

Verläufe

Sanfte Interpolation zwischen zwei oder mehr Farben über den Text:

<gradient:#FF0000:#0000FF>Dieser Text verläuft von Rot zu Blau</gradient>
<g:#FF0000:#00FF00:#0000FF>Dreifarbiger Verlauf</g>

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

Regenbogen

Durchläuft das gesamte Farbspektrum. Optionale Sättigung (0--100):

<rainbow>Voller Regenbogentext</rainbow>
<r:50>Pastell-Regenbogen (50% Sättigung)</r>

Häufige Typen

location

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

vector

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

entity-Tabelle

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