Broken Remote
2017-01-22
Modding the Binding of Isaac with style
The day when BoI:AB+ got modding support.
BrokenRemote is a remote Lua code injector. This means, you can type some code in the tool, hit a key and the code will be executed in the game instantaneously.
This allows a developer to prototype and create mods much faster than reloading a mod by using the luamod command repeatedly. The tool also provides a vast set of predefined actions that modify the current game state like spawning enemies, pedestal items, pickups, …
It also provides 12 experimental items (4 active, 4 passive, 4 trinkets) that can be used to prototype custom item ideas without the need of putting the items into the game first:
The user interface was pretty simplistic and in the style of Notepad++ or other classic text editors. As you can see, there were buttons to give the player hearts, battery charges and other collectibles as tool buttons and a text editor for the Lua scripts.
The basic idea of the mod was: use luasocket
to connect the actual mod for Binding of Isaac to the editor,
and then send over packages that contain the lua code to be executed.
The mod featured a rich environment for the user, so simple one-shot commands could be executed the same way as uploading a half-done mod.
A simple example for such a mod is a custom card, that, if used, will animate the player with the teleport animation:
local cardId = Isaac.GetCardIdByName("Mod Card 1")
if cardId == -1 then
-- Don't do stuff when the item wasn't found
Game():GetPlayer(0):AnimateSad()
return;
end
-- Register our mod callback for the use with BrokenRemote
function mod:MC_USE_CARD(card)
if card ~= cardId then
return
end
local p = Game():GetPlayer(0)
p:AnimateTeleport(true)
end
The card will only ever do the animation, no actual teleport is performed, but as you can see, creating new items that way is fairly simple.
You can find a download of the project at moddingofisaac.com, the source code is hosted at GitHub: