All the basic things that you normally have access to in a module (cells, items, beings, etc) are declared in code that runs from doomrl.wad which is still closed source. You can, however, still modify things after they are declared. (This doesn't always work quite as you expect since the declaration functions do some processing. Feel free to ask if something in particular isn't working.) Prototypes stored in global tables indexed by both number id and string id. For example, items are in "items" and beings are in "beings". There's nothing preventing you from printing out the contents of these tables if you need more info. In fact, I've attached a logging library (from my own module "inferno") should help with logging the contents of the tables (although I haven't bothered to make it print in the correct order).
Use this code to print out the contents of e.g. the items tables (replace MY_MODULE_NAME):
require "MY_MODULE_NAME:lib_item"
require "MY_MODULE_NAME:lib_being"
require "MY_MODULE_NAME:lib_log"
MY_MODULE_NAME.log = lib_log.make_log_function("lib_log")
for _, it in ipairs(items) do -- It may take a minute to print all this out.
MY_MODULE_NAME.log(it)
end
Then check log.txt.
To actually modify stuff, just do e.g.
items.pistol.name = "my pistol" -- P.S., this doesn't work great for starting equipment
To create a game with all the basic levels, you want an "episode" type module. Since you say "no new levels", the hooks you care about are OnCreateEpisode which sets up special levels and the over all path of the game, and OnGenerate which creates random levels. If you don't want to do anything special,
you can just call DoomRL.CreateEpisode() and DoomRL.OnGenerate() respectively.
Edit:
Apparently you can't call DoomRL.CreateEpisode, but you can still replicate it pretty closely. See
here