MLHook: Manialink Hook & Event Inspector

A plugin by XertroV(Trusted developer)

All versions

0.5.2

1 year ago

Download 0.5.2

Requires at least Openplanet 1.26.0

Fix crash while changing maps

  • This patch fixes an issue that may cause MLHook to crash the game while changing maps. This crash appears to effect some people more than others.
  • This may or may not address such crashes in general -- feedback and bug reports on this matter is appreciated.
  • Does not seem to fix an inconsistent crash while changing game modes (it's unknown if this crash is related to MLHook).

0.5.1

1 year ago

Download 0.5.1

Requires at least Openplanet 1.26.0

  • Enable support for hooking Layer Custom Events
  • Support deregistration of ML-time callbacks (via UnregisterMLHooksAndRemoveInjectedML)
  • Add editor UI layers to UI layer browser
  • Make logs more discreet
  • Add logs window that's more verbose
  • Move UI layers browser + event inspector under their own menu in plugins menu
  • Fix some potential crashes (not observed in the wild)

0.5.0

1 year ago

Download 0.5.0

Requires at least Openplanet 1.25.32

  • Add support for Editor.PluginMapType as a ManiaApp
  • Fix injected ML disappearing when the game server changes game mode while the player is in it (thanks @Beu)
  • Add function documentation to help authors of dependent plugins
  • Support registering callbacks to be called during ML execution (MLHook::RegisterPlaygroundMLExecutionPointCallback(cb))

0.4.5

2 years ago

Download 0.4.5

Requires at least Openplanet 1.25.32

Added MLHook::Queue_MessageManialinkPlaygroundServer methods for communicating with the game server via netread/netwrite queues. Allows Angelscript <-> GameMode communication.

0.4.1

2 years ago

Download 0.4.1

Requires at least Openplanet 1.25.15

Fix possible crash conditions around .Triming a zero-length string -- usually while developing plugins -- and add some cautionary measures.

0.4.0

2 years ago

Download 0.4.0

Requires at least Openplanet 1.25.15

  • Add full support for Menu ML.
  • Fix issue where references to shared classes would not be completely removed when unloading a dependent plugin.
  • Add support for non-standard game modes that don't add UI layers to GetApp().Network.ClientManiaAppPlayground.
  • General code polish and refinement.
  • Fix potential crash situation when reloading plugins during development.
  • (For Developers) Menu ML Pages now in UI Layers browser.
  • (For Developers) Add 'Copy ML' button to UI layers in browser.

0.3.3

2 years ago

Download 0.3.3

Requires at least Openplanet 1.25.15

  • don't try to clean up a layer if the current playground is null (fix possible crash)
  • minor refactoring to fix compiler warnings, improve safety, remove T@ &in usage
  • add module names to injected ML pages

0.3.2

2 years ago

Download 0.3.2

Requires at least Openplanet 1.25.15

  • v0.3.2
    • fix null pointer exception in hook router (rare edge case)
    • enable routing all custom events from script handler/playground (e.g., CustomEvent(TMxSM_Race_Record_NewRecord, {"48260"}, Source=PG_SendCE)). To hook these game events:
      • specify the full event name when creating the hook
      • specify isNadeoEvent as true when calling void RegisterMLHook(HookMLEventsByType@ hookObj, const string &in type = "", bool isNadeoEvent = false)
      • layer custom events not supported due to performance impact (there are potentially 100s of these on some frames b/c they're propagated through many ML elements)

0.3.1

2 years ago

Download 0.3.1

Requires at least Openplanet 1.25.15

  • Fix bug with exports not working properly. Unsure of root cause but just changing directories fixed it.

0.3.0

2 years ago

Download 0.3.0

Requires at least Openplanet 1.25.12

  • v0.3.0

    • breaking change WRT hooks (OnEvent) to improve overhead of distributing data -- OnEvent now takes an MLHook::PendingEvent@ event with attrs: .type and .data.
    • performance improvements WRT HookRouter
  • v0.2.0

    • breaking change re ML receiving msgs from MLHook Text[][] now instead of Text[] so more than one string can be sent.
    • breaking change re injected ML: should not be wrapped in <script><!--, --></script> anymore.
    • added exported DebugLogAllHook utility class
    • fix crash due to mismatching preprocessor conditions and changes to the way some events can be accessed

0.1.8

2 years ago

Download 0.1.8

Requires at least Openplanet 1.25.9

  • v0.1.5-0.1.8

    • Add cleanup of injected ML on plugin unload
    • Improve UILayer browser
    • API for getting a feed of data
    • avoid exposing dangerous developer tools to typical users
  • v0.1.4

    • API braking change in prep for supporting multiple injection/communication contexts: playground, menu, editor, etc. Each requires its own monitoring loop, etc.
    • More events gathered now (when they come from PendingEvents there are lots of duplicates, tho)
    • Inspector improvements: menu item, filters
    • Added some safety features, but won't help with all cases b/c some crashes aren't due to stuff we can try{}catch{}
    • Added a RequireVersionApi that will send a notification & block indefinitely if MLHook is of the wrong version (ideally this can be used to avoid issues when MLHook updates)
  • v0.1.3

    • fix injection of ML code so that it is repeated on new playground loads
  • v0.1.1-2

    • mostly regarding consistency of injection and communication

0.1.0

2 years ago

Download 0.1.0

Requires at least Openplanet 1.25.9