Existem vários tipos de plugins, os dois deles que já estudei o desenvolvimento foram os blocks e os activyt modules, o primeiro seria aprender como instalá-los (existe documentação suficiente para isso), por ser o melhor meio de testar o que você quiser. Os blocks são simples, são apenas extensão da classe block_base, você conseguirá entender muita coisa apenas olhando o código fonte, os activyts modules são mais complexos, possuem vários arquivos, mais existe um modelo que pode te ajudar, ele está disponível para
download em
http://moodle.org/file.php/5/moddata/forum/27/297117/newmodule2.zip, é um modelo padrão de um activyt module. Uma dificuldade que eu encontrei no início foi a visualização do código fonte, existe uma ferramenta que facilita isso, para visualizar qualquer parte do fonte do moodle, você pode acessar
http://xref.moodle.org, ele tem link pra funções, classes, o que facilita a localização do código fonte. Acho que com isso você já consegue começar a quebrar a cabeça aí. Qualquer dúvida, posta aí, seu eu souber respondo.