February 27, 2012

RoM Lua extension

This project was started a half year ago to extend the Runes of Magic Lua Interface (API).

What is it?  It is a RoM extension which removes lua restrictions (such as disabled "io" module) and allows to load an external modules.

How it works?  It based on RomLog DLL and intercepts (and extends) the internal lua engine. It merges the features of internal API (macro & addons), micromacro memory functions and direct network protocol manipulations.

Base core allows to use:
  • Lua modules such as package, os, io
  • lua stdlib
  • micromacro API portions, such as memory*, findPatternInProcess, micromacro scripts, such as addresses.lua, etc.
  • network protocol functions, which allows to intercept, modify and send the rom packets.
It's enough to create many things and tricks.

Is it useful?  Yes, now I can:
  • read any unit information (npc/player), such as mob HP, player ID, guild, titles, etc.
  • read a names of player tombs (so i can view, who died at dungeon)
  • instance reset (all or specific), except "progress" instances, such as HoS, ZS and DS
  • item shop bag unlock, so i can put any items to it, not "Item Shop Item" only
  • elevate a "local" rights, which allows to use some test commands (e.g. setobjectid, setweaponobjectid, speed, czoneid, gm_config, etc.)
  • change house owner to view treasures at chests and housemaids of other people (sorry, druffbaum and sallena :D)
  • read equip properties of another players at your target, copy it to your equip (ofc, this copy is virtual only, just to view or compare)
  • use teleport, swim or any other features of romeo, but implemented inside client, so you can bind hotkey to it using keybinder addon
  • read and modify client databases (for example, you can disable anti-wall skill protection)
  • make tier faster using special functions, which allows to make T7 manastone in ~2 minutes (time depends from your ping)
  • gather items at big distance (around 200-250 instead of standard 50), it allows to complete minigames in 2-3 minutes, because you can stay and gather all around instead of run to each treasure
  • and ofc, use an external lua files to store some big databases (yGather, KillStats, etc.) at separate files using table.save and loadstring functions
Ofc, some of these tricks can be done with different programs, such as ROMeo, micromacro or patchers, but I hate external programs, because they too annoying, especially with fullscreen games. And external programs cannot use all power written above.

Where I can download it?!  It's still private project, but you can create your own based on these ideas :)

But I know another tricks :P  You can share it with us


  1. Anonymous9/3/12 21:02

    So with all this you can become ''GM'' on any server? (xorRoM included?)

  2. hmm...just ran across this, looks interesting. Once you have added romlog to your client.exe import table, how do you then reference other lua modules like io etc?

  3. This comment has been removed by the author.

  4. Anonymous10/6/12 19:25

    "What is it? It is a RoM extension which removes lua restrictions (such as disabled "io" module) and allows to load an external modules." would be the only thing I would like to know how it works ... any hints/guides? :)