The two snapshot shapes off the recorded map: a pin on it, and a minimap icon category. Each is what :info() copies out of a live object. What optional means is on the catalogue.
for _, marker in ipairs(hafen.map():marker():list()) do
local snapshot = marker:info()
hafen.log():write((snapshot.name or "?") .. " [" .. snapshot.type .. "]")
end
From marker:info(). The live reads are marker:name(), :type(), :segmentTile() and the rest. marker:position() is the place to store, not the seg + tc below.
| Field | Type | Notes |
|---|---|---|
name |
string |
Marker label. Optional. |
type |
string |
"player", a user pin, or "system", a server or quest pin. |
seg |
string |
Segment id, a 64-bit decimal string. Client-local, never stored. |
tc |
{x, y} |
Segment tile coordinate. Client-local, never stored. |
color |
colour | Player markers only. Optional. |
onmap |
boolean |
Player markers only. The live pair is marker:onMap(flag). |
icon |
string |
System markers only. Optional. |
x, y |
number |
Session-local world position. Present only while the marker is in your current segment. |
dist |
number |
Distance from the player. Present with x, y. |
From category:info(). nil while the registry carries no setting for that resource, the absence category:exists() reads as false. The registry grows as the character meets new icon types, so a handle can start answering later. { name = string, res = string, show = bool, notify = bool }: res the identity, name the icon tooltip, show and notify the minimap-draw and spawn-notify flags.
Marker objects, and the Position one travels as.