While learning Reaper to develop stuff for Ultraschall.fm, I started to document things for the others in our project, as well as a resource for myself.
The whole thing is far away from being a proper developer-doc, but you may or may not see use in these docs, so I uploaded them.

Some are work in progress and some are far from finished, while others are more updated versions of the docs available in Cocko's Wiki.

All these docs are creative commons cc-by-nc-sa, so feel free to use them, share them and have fun with it.

API-Docs:Reaper Api Docs(improved)
This is my own version of the API-docs of Reaper, where I try to add all the information that's missing, like parameter/retval-descriptions, function-descriptions, etc.
I also added the C++-functions and I structured the index to reflect the individual use-case-areas appearing in the API.
This is work in progress, with about 100 functions fully documented and it's still missing the option to show only the stuff for one programming-language, but maybe it's useful for you already.

Web RC-Api
In this, I tried to document how to program the Web RC. This concentrates on communication between Browser and Reaper(not the WebRC-themes submitted with Reaper!).

Video API
My own version of the API-docs for the video-processor. Not far yet, only very basic.

Fileformats and DatastructuresFileformat Descriptions
This is an ongoing attempt in reverse engineering the file-formats of Reaper. I try to describe the stuff as detailed as possible.

LiceCap.ini-doc
Describes the config-file of Cocko's LiceCap-Screenrecording-tool. Maybe interesting, as it can be run from within Reaper now.
That way, you can set the ini-file first, before starting LiceCap.

Reserved commandids for scripts
This lists all commandids, that are reserved for ReaScripts, separated into the individual sections.
Funfact: About 11997-scripts can be added to each section

Config Variables
The config-variables as used by SNM_GetIntConfigVar(), SNM_SetIntConfigVar(), SNM_GetDoubleConfigVar() and SNM_SetDoubleConfigVar(), as well as the C++-only function get_config_var().
You can set many options, checkboxes and configuration-values with them.
These are fairly complete with only a handful missing(I couldn't trigger them, maybe you can help me with them).

All Config-Variables, that are triggered by actions.
This lists all toggle-actions, who trigger config-variables.
They are documented with values in int/double/string and bitfield.
To know, how to read them, I suggest you to read the Config Variables-docs above.

Render-CFG-Codes
In Projectfiles as well as in the configfile for render-presets, the render-settings are stored using a string.
In this document, I tried to reverse-engineer and document, how these strings work, how they are built and how to make them work.
Includes all formats, except m4a, as this is Mac-only and I don't have a Mac to document them..
With this, you can build your own render-functions/scripts! I already successfully did that
See the render-codes-ini-file below, that feature all code-segments for fps and resolution of video, mp3, flac, opus and ogg.

StateChunk-docsEnvelope StateChunk
This documents envelope-statechunks quite complete. I also included docs for automation-items.
The automation-item-docs feature both, the docs about how to include one automation-item into your own envelope, as well as the automation-item themselves.
Note: the automation-items themselves are only available in RPP-projectfiles and .ReaperAutoItem-files.

MediaItem StateChunk
My attempt at documenting MediaItem-Statechunks, as the docs in Cocko's Wiki is heavily outdated.
Still work in progress, especially all the MIDI stuff is wrong/incomplete and there are entries I haven't found out yet, what they do.

In parts, it's already helpful, anyway

Helpful-Ini-FilesReaper Actions as ini
An ini-file that features all actions with their description from Reaper5.941
cmdid=description

gfx.getkey()-codes
This ini-file features all codes that are returned by gfx.getkey() and their ASCII-representation.
That way, you can display, which key is typed. Good to find out easily, which gfx.getkey-code you need now in your script.

reaper-kb.ini - KEY-codes
This ini-file includes all(!) codes and their representation of all keyboard/midi-shortcuts available in Reaper.
Good for analysing, which codes are used in your kb.ini, if you want to display shortcuts in another way, rather than the actions-window-only.
See Fileformat Descriptions above for a full description of reaper-kb.ini

reaper-kb.ini - factory default KEY-codes
The reaper-kb.ini does not include shortcuts, that are factory-default-settings, only custom shortcuts. So I documented the factory-default-ones out and made a handy ini out of it.
See Fileformat Descriptions above for a full description of reaper-kb.ini and in how to work with factory-default-shortcuts

Render codes
The rendercfg-codes as an ini-file, for many formats like DDP, AIF, MP3, FLAC, Video, OPUS and OGG.
The sections are the file-formats (like [OGG] or [FLAC]).
You can find in all sections a key called Renderstring, in which the renderstring-template is stored.
All changeable parts are replaced by [FormatAlterID].
e.g. for OPUS:

Code:

Renderstring=U2dnTwAA[KBPS][MODE][Complexity]AAAA==

Replace the [KBPS] [MODE] [Complexity] with the values of the corresponding keys in the section OPUS.
e.g.:
KBPS_xxx - where xxx is the bitrate-number
MODE_xxx - where xxx is the mode
Complexity_xxx - where xxx is the complexity-number.

So a renderstring with OPUS, Mode:VBR, Bitrate: 24kbps, Complexity:5 would result in this string:

Code:

U2dnTwAAwEEABQAAAA==

MODE_VBR=A
KBPS_24=wEE
Complexity_5=BQ

The Render-codes for the Audio-CD-rendering. Works like the render-string-codes above, but is limited to AudioCD. Supports LeadInSilence up to 100 seconds.

ToolsDisplay altered config-variables
If you want to use config-variables but don't know, which one is behind the checkbox of your choice, use this. It will display changes to ReaConsole.
Also prepared for string-variables, which are only available in pre-releases of Reaper, yet.

Display altered configfile-entries
This displays changes in classic-ini-files, eg. reaper.ini. Every time an entry is altered, it will be displayed into the ReaConsole.
Supports only standard ini-files
[section]
key=value

Have you considered hosting everything on Github and formatting it with Markdown or one of the other styles that Github can display? It would make files like your Project State Chunk much easier to read, and they're still easy as hell to edit (automatically or by hand).

Yes, I'm working on my own documentation-system, that makes the whole thing much easier to maintain and manage, with a easy to maintain docformat(the API-Docs is already converted into a prototype-version of it).

It will also allow you more ways to convert it into the docformat of your choice, whether it is a wiki, pdf, latex, markdown, whatever.

When that stuff is working, I will put it on GitHub for everyone to add information.

But it's still in development and I wanted to share the information right now, even if it's still far away from good format.

@X-Raym
The easiest way would be probably, search in my config-vars-doc for the text of the inputbox/dropdownlist/checkbox, whose setting you want to know.

I typed the description-texts as exact as possible, so you can find it probably quite easy.
If it isn't there, it is either not accessible or a project-config-variable only, which is probably only available using the C++-only-functions projectconfig_var_addr and projectconfig_var_getoffs but I have not idea how to work with them.

I updated the ReaScript-API-Doc. It now features the programming-language-selection, as you are used in the original one supplied with Reaper.

I also added descriptions for the new 5.9x+-functions...

Means: it is the freshest ReaScript-ApiDoc online currently, until X-Raym updates his

@X-Raym
I use my own docfile for the automatic generation of this API-doc, as I'm not happy with parsing the ReaScript-html. Would it help you for your API-docs? Especially the search-functionality from your docs and the more details from my one(parameters, retvals, "categorial"-tags) would be a great combination...

@mespotine
I recently build my own generator (it parsed the reascript-help.html and make it HTML 5 semantic with interactivity like the search list and the click/copy) so now new versions will be instantly generated, and so my ReaScript API doc could be updated at every REAPER / SWS updates in very little time :P

But indeed your version have nice features too, at some point it may be interested to find a way to add these metadatas (REAPER version etc) inside my version. Maybe by parsing the reaper and sws changelog if new API functions are written in a consistent way.

Function category is nice too but it is less required with changelog. I even stripped the function list from the page, and only kept the one in the sidebar.

The latter, as far as I know, is not available currently, not even with the new get_config_var_string()-function.

But if you need that for writing rendering-scripts....well...just a few more weeks of patience and you'll get what you want, probably (hint hint nudge nudge) ^^

In regards of the docs, I also add proper retval and parameter-descriptions, as they are very much needed. This could be important for your version too.

The changelog isn't a good enough source, as some changes aren't documented or only in the pre-changelogs, that don't necessarily reflect the finished release.
I remember, there was a new function added into the API recently, that wasn't in the changelogs, but don't remember it right now...

It's only possible, when you save the project and read it from the rpp-file itself.
It would be possible, if we could access the ProjectStateChunk(I once filed a FeatureRequest for that), but currently, it isn't possible in any other way, except reading it from the rpp.

I updated the render-code-docs. They include now, how to way to go to generate all render-codes; new additions WavPack, OGG, GIF, LCF AudioCD.. M4A is still missing, as this is Mac-only and I don't have a Mac to document that:

I also made a more complete ini-file of render-codes, that can be put together with the information included.Video render codes
The rendercfg-codes as an ini-file, for many formats like DDP, AIF, MP3, FLAC, Video, OPUS and OGG.
The sections are the file-formats (like [OGG] or [FLAC]).
You can find in all sections a key called Renderstring, in which the renderstring-template is stored.
All changeable parts are replaced by [FormatAlterID].
e.g. for OPUS:

Code:

Renderstring=U2dnTwAA[KBPS][MODE][Complexity]AAAA==

Replace the [KBPS] [MODE] [Complexity] with the values of the corresponding keys in the section OPUS.
e.g.:
KBPS_xxx - where xxx is the bitrate-number
MODE_xxx - where xxx is the mode
Complexity_xxx - where xxx is the complexity-number.

So a renderstring with OPUS, Mode:VBR, Bitrate: 24kbps, Complexity:5 would result in this string:

I updated information about config-variables, including more info in the introduction as well as about the reccfg-config-variable, which sets the recording-format in the current project.

Code:

reccfg
The audioformat for Recording, as set in the Project Settings->Media-dialog
Only includes the format, not the individual format-settings(like bitrate, etc)
Setting them changes the recording-format, though setting some will
not update the Project Settings->Media-dialog properly (Video, GIF, AudioCD)
but will show WAV instead with the additional dialog-boxes for Video, GIF
or AudioCD added.
If you change the audioformat, it will use the last used setting for the "new" format, as set
in this project. Uses the default Reaper-settings for formats in new projects.
It is an integer.
1179012432, Video (ffmpeg/libav encoder)
1195984416, Video (GIF)
1279477280, Video (LCF)
1332176723, OGG Opus
1634297446, AIFF
1684303904, DDP
1718378851, FLAC
1769172768, Audio CD Image(CUE/BIN format)
1836069740, MP3 (encoder by LAME project)
1869047670, OGG Vorbis
2002876005, WAV
2004250731, WavPack lossless compressor

Hi. So, I set defsendflags and it works fine throughout the session, but unless I open preferences and click ok, or apply maybe, it won't persist into the next time I open Reaper. What's that all about? Can it be forced? Have to write to Reaper.ini?