Appearance
Events ​
Every inbound GameserverMessage* is subscribable. Specialized decoders still add richer nested views when they exist.
lua
local Engine = require("sdk.engine")
print(Engine.help("Wait"))
print(Engine.help("Talk"))
Engine.on("Wait", function(ev)
print(ev.wait_time)
end)
Engine.on("Talk", function(ev)
print(ev.speaker, ev.text, ev.mode)
-- ev.position is a nested Coordinate (x / y / z)
end)
local all = Engine.onAny(function(ev)
print(ev.name, ev.fields)
end)
-- Later:
-- Engine.off(id)Named scalars land on ev and ev.fields. Nested msg / rep stay as a small table (kind, offset, nested type) until a decoder expands them. Login/session events redact hex. Presence is (1 << hasbit).
192 inbound types:
| Packet | RTTI | How |
|---|---|---|
CreatureLight | GameserverMessageCreatureLight | Engine.on("CreatureLight", fn) |
WeaponProficiencyNotification | GameserverMessageWeaponProficiencyNotification | Engine.on("WeaponProficiencyNotification", fn) |
CreateInContainer | GameserverMessageCreateInContainer | Engine.on("CreateInContainer", fn) |
StoreError | GameserverMessageStoreError | Engine.on("StoreError", fn) |
HirelingNameChange | GameserverMessageHirelingNameChange | Engine.on("HirelingNameChange", fn) |
MultiUseDelay | GameserverMessageMultiUseDelay | Engine.on("MultiUseDelay", fn) |
CloseChannel | GameserverMessageCloseChannel | Engine.on("CloseChannel", fn) |
CyclopediaHouseActionResult | GameserverMessageCyclopediaHouseActionResult | Engine.on("CyclopediaHouseActionResult", fn) |
QuestLine | GameserverMessageQuestLine | Engine.on("QuestLine", fn) |
PrivateChannel | GameserverMessagePrivateChannel | Engine.on("PrivateChannel", fn) |
RestingAreaState | GameserverMessageRestingAreaState | Engine.on("RestingAreaState", fn) |
QuestLog | GameserverMessageQuestLog | Engine.on("QuestLog", fn) |
SetStoreButtonDeeplink | GameserverMessageSetStoreButtonDeeplink | Engine.on("SetStoreButtonDeeplink", fn) |
SetInventory | GameserverMessageSetInventory | Engine.on("SetInventory", fn) |
ShapedPerkReshapeOffers | GameserverMessageShapedPerkReshapeOffers | Engine.on("ShapedPerkReshapeOffers", fn) |
RemoveGraphicalEffect | GameserverMessageRemoveGraphicalEffect | Engine.on("RemoveGraphicalEffect", fn) |
CloseTrade | GameserverMessageCloseTrade | Engine.on("CloseTrade", fn) |
OfferDescription | GameserverMessageOfferDescription | Engine.on("OfferDescription", fn) |
CreatureMarks | GameserverMessageCreatureMarks | Engine.on("CreatureMarks", fn) |
BossTracking | GameserverMessageBossTracking | Engine.on("BossTracking", fn) |
SpecialContainersAvailable | GameserverMessageSpecialContainersAvailable | Engine.on("SpecialContainersAvailable", fn) |
ImpactTracking | GameserverMessageImpactTracking | Engine.on("ImpactTracking", fn) |
PreyPrices | GameserverMessagePreyPrices | Engine.on("PreyPrices", fn) |
SnapBack | GameserverMessageSnapBack | Engine.on("SnapBack", fn) |
SessionDumpStart | GameserverMessageSessionDumpStart | Engine.on("SessionDumpStart", fn) |
PartyHuntAnalyser | GameserverMessagePartyHuntAnalyser | Engine.on("PartyHuntAnalyser", fn) |
FriendSystemData | GameserverMessageFriendSystemData | Engine.on("FriendSystemData", fn) |
SoulSealsDialog | GameserverMessageSoulSealsDialog | Engine.on("SoulSealsDialog", fn) |
EditGuildMessage | GameserverMessageEditGuildMessage | Engine.on("EditGuildMessage", fn) |
XpChanged | GameserverMessageXpChanged | Engine.on("XpChanged", fn) |
BugReportsAllowed | GameserverMessageBugReportsAllowed | Engine.on("BugReportsAllowed", fn) |
ItemWasted | GameserverMessageItemWasted | Engine.on("ItemWasted", fn) |
Wait | GameserverMessageWait | Engine.on("Wait", fn) |
CloseDepotSearch | GameserverMessageCloseDepotSearch | Engine.on("CloseDepotSearch", fn) |
InspectionList | GameserverMessageInspectionList | Engine.on("InspectionList", fn) |
Container | GameserverMessageContainer | Engine.on("Container", fn) |
PlayerDataBasic | GameserverMessagePlayerDataBasic | Engine.on("PlayerDataBasic", fn) |
PassiveAbilityData | GameserverMessagePassiveAbilityData | Engine.on("PassiveAbilityData", fn) |
TeamFinderTeamMember | GameserverMessageTeamFinderTeamMember | Engine.on("TeamFinderTeamMember", fn) |
CreatureSpeed | GameserverMessageCreatureSpeed | Engine.on("CreatureSpeed", fn) |
CloseImbuingDialog | GameserverMessageCloseImbuingDialog | Engine.on("CloseImbuingDialog", fn) |
MonsterCyclopediaNewDetails | GameserverMessageMonsterCyclopediaNewDetails | Engine.on("MonsterCyclopediaNewDetails", fn) |
CreatureOutfit | GameserverMessageCreatureOutfit | Engine.on("CreatureOutfit", fn) |
ExaltationHistory | GameserverMessageExaltationHistory | Engine.on("ExaltationHistory", fn) |
CreatureType | GameserverMessageCreatureType | Engine.on("CreatureType", fn) |
Stash | GameserverMessageStash | Engine.on("Stash", fn) |
CloseContainer | GameserverMessageCloseContainer | Engine.on("CloseContainer", fn) |
DailyRewardHistory | GameserverMessageDailyRewardHistory | Engine.on("DailyRewardHistory", fn) |
CounterOffer | GameserverMessageCounterOffer | Engine.on("CounterOffer", fn) |
Highscores | GameserverMessageHighscores | Engine.on("Highscores", fn) |
UnlockedSpells | GameserverMessageUnlockedSpells | Engine.on("UnlockedSpells", fn) |
LoginSuccess | GameserverMessageLoginSuccess | Engine.on("LoginSuccess", fn) |
WeaponProficiency | GameserverMessageWeaponProficiency | Engine.on("WeaponProficiency", fn) |
Talk | GameserverMessageTalk | Engine.on("Talk", fn) |
ChangeOnMap | GameserverMessageChangeOnMap | Engine.on("ChangeOnMap", fn) |
BottomRow | GameserverMessageBottomRow | Engine.on("BottomRow", fn) |
ReadyForSecondaryConnection | GameserverMessageReadyForSecondaryConnection | Engine.on("ReadyForSecondaryConnection", fn) |
MarketBrowse | GameserverMessageMarketBrowse | Engine.on("MarketBrowse", fn) |
BossDifficultySelection | GameserverMessageBossDifficultySelection | Engine.on("BossDifficultySelection", fn) |
AmbientLight | GameserverMessageAmbientLight | Engine.on("AmbientLight", fn) |
CreatureUnpass | GameserverMessageCreatureUnpass | Engine.on("CreatureUnpass", fn) |
Stop | GameserverMessageStop | Engine.on("Stop", fn) |
ConfigureCreaturePodium | GameserverMessageConfigureCreaturePodium | Engine.on("ConfigureCreaturePodium", fn) |
CreatureSkull | GameserverMessageCreatureSkull | Engine.on("CreatureSkull", fn) |
LoginWait | GameserverMessageLoginWait | Engine.on("LoginWait", fn) |
ClientCheck | GameserverMessageClientCheck | Engine.on("ClientCheck", fn) |
UpdateManagedContainers | GameserverMessageUpdateManagedContainers | Engine.on("UpdateManagedContainers", fn) |
TeamFinderTeamLeader | GameserverMessageTeamFinderTeamLeader | Engine.on("TeamFinderTeamLeader", fn) |
MonsterCyclopediaBonusEffects | GameserverMessageMonsterCyclopediaBonusEffects | Engine.on("MonsterCyclopediaBonusEffects", fn) |
DepotSearchDetailList | GameserverMessageDepotSearchDetailList | Engine.on("DepotSearchDetailList", fn) |
CyclopediaStaticHouseData | GameserverMessageCyclopediaStaticHouseData | Engine.on("CyclopediaStaticHouseData", fn) |
PreyData | GameserverMessagePreyData | Engine.on("PreyData", fn) |
ShowMultiOfflineTrainingDialog | GameserverMessageShowMultiOfflineTrainingDialog | Engine.on("ShowMultiOfflineTrainingDialog", fn) |
ExaltationDialogRefresh | GameserverMessageExaltationDialogRefresh | Engine.on("ExaltationDialogRefresh", fn) |
Blessings | GameserverMessageBlessings | Engine.on("Blessings", fn) |
ResourceBalance | GameserverMessageResourceBalance | Engine.on("ResourceBalance", fn) |
Bosstiary | GameserverMessageBosstiary | Engine.on("Bosstiary", fn) |
MoveCreature | GameserverMessageMoveCreature | Engine.on("MoveCreature", fn) |
BuddyGroupData | GameserverMessageBuddyGroupData | Engine.on("BuddyGroupData", fn) |
PlayerDataCurrent | GameserverMessagePlayerDataCurrent | Engine.on("PlayerDataCurrent", fn) |
TrackQuestFlags | GameserverMessageTrackQuestFlags | Engine.on("TrackQuestFlags", fn) |
TopRow | GameserverMessageTopRow | Engine.on("TopRow", fn) |
ItemLooted | GameserverMessageItemLooted | Engine.on("ItemLooted", fn) |
FullMap | GameserverMessageFullMap | Engine.on("FullMap", fn) |
PremiumTrigger | GameserverMessagePremiumTrigger | Engine.on("PremiumTrigger", fn) |
CloseRewardWall | GameserverMessageCloseRewardWall | Engine.on("CloseRewardWall", fn) |
ImbuingDialogRefresh | GameserverMessageImbuingDialogRefresh | Engine.on("ImbuingDialogRefresh", fn) |
BottomFloor | GameserverMessageBottomFloor | Engine.on("BottomFloor", fn) |
PreyTimeLeft | GameserverMessagePreyTimeLeft | Engine.on("PreyTimeLeft", fn) |
MarketLeave | GameserverMessageMarketLeave | Engine.on("MarketLeave", fn) |
ImbuementDurations | GameserverMessageImbuementDurations | Engine.on("ImbuementDurations", fn) |
PingBack | GameserverMessagePingBack | Engine.on("PingBack", fn) |
SkillWheel | GameserverMessageSkillWheel | Engine.on("SkillWheel", fn) |
CreatureUpdate | GameserverMessageCreatureUpdate | Engine.on("CreatureUpdate", fn) |
ShowGameNews | GameserverMessageShowGameNews | Engine.on("ShowGameNews", fn) |
ChangeInContainer | GameserverMessageChangeInContainer | Engine.on("ChangeInContainer", fn) |
GemAtelierGemRevealed | GameserverMessageGemAtelierGemRevealed | Engine.on("GemAtelierGemRevealed", fn) |
CyclopediaCurrentHouseData | GameserverMessageCyclopediaCurrentHouseData | Engine.on("CyclopediaCurrentHouseData", fn) |
UpdateExivaOptions | GameserverMessageUpdateExivaOptions | Engine.on("UpdateExivaOptions", fn) |
MonsterCyclopedia | GameserverMessageMonsterCyclopedia | Engine.on("MonsterCyclopedia", fn) |
NPCOffer | GameserverMessageNPCOffer | Engine.on("NPCOffer", fn) |
DailyRewardCollectionState | GameserverMessageDailyRewardCollectionState | Engine.on("DailyRewardCollectionState", fn) |
OpenRewardWall | GameserverMessageOpenRewardWall | Engine.on("OpenRewardWall", fn) |
ExaltationBaseData | GameserverMessageExaltationBaseData | Engine.on("ExaltationBaseData", fn) |
InspectionState | GameserverMessageInspectionState | Engine.on("InspectionState", fn) |
LoginError | GameserverMessageLoginError | Engine.on("LoginError", fn) |
Dead | GameserverMessageDead | Engine.on("Dead", fn) |
MonsterCyclopediaMonsters | GameserverMessageMonsterCyclopediaMonsters | Engine.on("MonsterCyclopediaMonsters", fn) |
CreatureData | GameserverMessageCreatureData | Engine.on("CreatureData", fn) |
GameEvent | GameserverMessageGameEvent | Engine.on("GameEvent", fn) |
CreditBalance | GameserverMessageCreditBalance | Engine.on("CreditBalance", fn) |
DeleteInContainer | GameserverMessageDeleteInContainer | Engine.on("DeleteInContainer", fn) |
PlayerSkills | GameserverMessagePlayerSkills | Engine.on("PlayerSkills", fn) |
BestiaryTracker | GameserverMessageBestiaryTracker | Engine.on("BestiaryTracker", fn) |
TextForReport | GameserverMessageTextForReport | Engine.on("TextForReport", fn) |
CreatureHealth | GameserverMessageCreatureHealth | Engine.on("CreatureHealth", fn) |
DailyRewardBasic | GameserverMessageDailyRewardBasic | Engine.on("DailyRewardBasic", fn) |
Unknown | GameserverMessageUnknown | Engine.on("Unknown", fn) |
ExaltationResult | GameserverMessageExaltationResult | Engine.on("ExaltationResult", fn) |
ShowMessageDialog | GameserverMessageShowMessageDialog | Engine.on("ShowMessageDialog", fn) |
StoreSuccess | GameserverMessageStoreSuccess | Engine.on("StoreSuccess", fn) |
RequestPurchaseData | GameserverMessageRequestPurchaseData | Engine.on("RequestPurchaseData", fn) |
TopFloor | GameserverMessageTopFloor | Engine.on("TopFloor", fn) |
SetTactics | GameserverMessageSetTactics | Engine.on("SetTactics", fn) |
PlayerState | GameserverMessagePlayerState | Engine.on("PlayerState", fn) |
CloseNPCTrade | GameserverMessageCloseNPCTrade | Engine.on("CloseNPCTrade", fn) |
PendingStateEntered | GameserverMessagePendingStateEntered | Engine.on("PendingStateEntered", fn) |
Message | GameserverMessageMessage | Engine.on("Message", fn) |
DeleteInventory | GameserverMessageDeleteInventory | Engine.on("DeleteInventory", fn) |
BuddyStatusChange | GameserverMessageBuddyStatusChange | Engine.on("BuddyStatusChange", fn) |
Taskboard | GameserverMessageTaskboard | Engine.on("Taskboard", fn) |
TransactionDetails | GameserverMessageTransactionDetails | Engine.on("TransactionDetails", fn) |
SoundTrigger | GameserverMessageSoundTrigger | Engine.on("SoundTrigger", fn) |
DepotSearchResult | GameserverMessageDepotSearchResult | Engine.on("DepotSearchResult", fn) |
RightColumn | GameserverMessageRightColumn | Engine.on("RightColumn", fn) |
CreateOnMap | GameserverMessageCreateOnMap | Engine.on("CreateOnMap", fn) |
DeleteOnMap | GameserverMessageDeleteOnMap | Engine.on("DeleteOnMap", fn) |
BosstiaryHighlight | GameserverMessageBosstiaryHighlight | Engine.on("BosstiaryHighlight", fn) |
UpdateTarget | GameserverMessageUpdateTarget | Engine.on("UpdateTarget", fn) |
Channels | GameserverMessageChannels | Engine.on("Channels", fn) |
FieldData | GameserverMessageFieldData | Engine.on("FieldData", fn) |
BlessingsDialog | GameserverMessageBlessingsDialog | Engine.on("BlessingsDialog", fn) |
ObjectInfo | GameserverMessageObjectInfo | Engine.on("ObjectInfo", fn) |
ChannelEvent | GameserverMessageChannelEvent | Engine.on("ChannelEvent", fn) |
CyclopediaMapData | GameserverMessageCyclopediaMapData | Engine.on("CyclopediaMapData", fn) |
OutfitMemorial | GameserverMessageOutfitMemorial | Engine.on("OutfitMemorial", fn) |
SpellGroupDelay | GameserverMessageSpellGroupDelay | Engine.on("SpellGroupDelay", fn) |
StoreCategories | GameserverMessageStoreCategories | Engine.on("StoreCategories", fn) |
KillTracking | GameserverMessageKillTracking | Engine.on("KillTracking", fn) |
LoginAdvice | GameserverMessageLoginAdvice | Engine.on("LoginAdvice", fn) |
NpcTalkParters | GameserverMessageNpcTalkParters | Engine.on("NpcTalkParters", fn) |
TransactionHistory | GameserverMessageTransactionHistory | Engine.on("TransactionHistory", fn) |
SwitchPreset | GameserverMessageSwitchPreset | Engine.on("SwitchPreset", fn) |
MetaData | GameserverMessageMetaData | Engine.on("MetaData", fn) |
CreatureParty | GameserverMessageCreatureParty | Engine.on("CreatureParty", fn) |
CyclopediaCharacterInfo | GameserverMessageCyclopediaCharacterInfo | Engine.on("CyclopediaCharacterInfo", fn) |
LeftColumn | GameserverMessageLeftColumn | Engine.on("LeftColumn", fn) |
UnjustifiedPoints | GameserverMessageUnjustifiedPoints | Engine.on("UnjustifiedPoints", fn) |
Ping | GameserverMessagePing | Engine.on("Ping", fn) |
StoreButtonIndicators | GameserverMessageStoreButtonIndicators | Engine.on("StoreButtonIndicators", fn) |
UpdatingShopBalance | GameserverMessageUpdatingShopBalance | Engine.on("UpdatingShopBalance", fn) |
ShowModalDialog | GameserverMessageShowModalDialog | Engine.on("ShowModalDialog", fn) |
EditText | GameserverMessageEditText | Engine.on("EditText", fn) |
StoreOffers | GameserverMessageStoreOffers | Engine.on("StoreOffers", fn) |
TutorialHint | GameserverMessageTutorialHint | Engine.on("TutorialHint", fn) |
MarketStatistics | GameserverMessageMarketStatistics | Engine.on("MarketStatistics", fn) |
BuddyData | GameserverMessageBuddyData | Engine.on("BuddyData", fn) |
MonsterCyclopediaRace | GameserverMessageMonsterCyclopediaRace | Engine.on("MonsterCyclopediaRace", fn) |
EditList | GameserverMessageEditList | Engine.on("EditList", fn) |
MarketEnter | GameserverMessageMarketEnter | Engine.on("MarketEnter", fn) |
PvpSituations | GameserverMessagePvpSituations | Engine.on("PvpSituations", fn) |
CloseExaltationDialog | GameserverMessageCloseExaltationDialog | Engine.on("CloseExaltationDialog", fn) |
OwnOffer | GameserverMessageOwnOffer | Engine.on("OwnOffer", fn) |
SessionEndInformation | GameserverMessageSessionEndInformation | Engine.on("SessionEndInformation", fn) |
VocationSpecificPlayerData | GameserverMessageVocationSpecificPlayerData | Engine.on("VocationSpecificPlayerData", fn) |
GraphicalEffects | GameserverMessageGraphicalEffects | Engine.on("GraphicalEffects", fn) |
BossSlots | GameserverMessageBossSlots | Engine.on("BossSlots", fn) |
PlayerGoods | GameserverMessagePlayerGoods | Engine.on("PlayerGoods", fn) |
BosstiaryStaticData | GameserverMessageBosstiaryStaticData | Engine.on("BosstiaryStaticData", fn) |
LoginChallenge | GameserverMessageLoginChallenge | Engine.on("LoginChallenge", fn) |
TibiaTime | GameserverMessageTibiaTime | Engine.on("TibiaTime", fn) |
OpenOwnChannel | GameserverMessageOpenOwnChannel | Engine.on("OpenOwnChannel", fn) |
SpellDataModification | GameserverMessageSpellDataModification | Engine.on("SpellDataModification", fn) |
Outfit | GameserverMessageOutfit | Engine.on("Outfit", fn) |
SpellDelay | GameserverMessageSpellDelay | Engine.on("SpellDelay", fn) |
OpenChannel | GameserverMessageOpenChannel | Engine.on("OpenChannel", fn) |
MarketDetail | GameserverMessageMarketDetail | Engine.on("MarketDetail", fn) |
PlayerInventory | GameserverMessagePlayerInventory | Engine.on("PlayerInventory", fn) |
WorldEntered | GameserverMessageWorldEntered | Engine.on("WorldEntered", fn) |
ExivaSuppressed | GameserverMessageExivaSuppressed | Engine.on("ExivaSuppressed", fn) |
CharacterTradeConfiguration | GameserverMessageCharacterTradeConfiguration | Engine.on("CharacterTradeConfiguration", fn) |
GameserverStream | GameserverStream | Engine.on("GameserverStream", fn) |