Looks like it could be the mesh objects (Shapes) you're using as part of the rigging - MD5 rigs generally can't contain non-bone objects, which includes meshes and empties. Disable/remove those then try again. Basically you should only be exporting the character mesh and the Armature composed of bones. So long as you have the Armature modifier and other bits set up you should then be able to export without issue.
To answer you other point about assimp using MD5, it's because its a purely text based format, making it super useful for teaching game development - everything is easily readable/accessible.
What do you mean by Armature modifier, can you explain what settings I should have?
The only options I see are: MD5 Name, Exports: Mesh & Animation/Mesh/Animation and Scale.
Also if I have different things selected, I get different errors, what am I supposed to have selected?
Removing the custom shapes for the bones presents me the following:
The same error as before with the bones selected in rest position and in pose position.
With just the mesh selected:
line 647, in save_md5 material = Material(obj.data.materials[0].name ) # call the shader name by the material's name
IndexError: bpy_prop_collection[index]: index 0 out of range, size 0
location: <unknown location>:-1
Do you have a tutorial as to how my settings should look like? Beyond making a mesh and a simple animation I have no idea what I'm doing.