Pluto is a Monte-Carlo event generator designed for hadronic interactions from Pion production threshold to intermediate energies of a few GeV per nucleon, as well as for studies of heavy ion reactions. The package is entirely based on ROOT, without the need of additional packages, and uses the embedded C++ interpreter of ROOT to control the event production. The generation of events based on a single reaction chain and the storage of the resulting particle objects can be done with a few lines of a ROOT-macro. However, the complete control of the package can be taken over by the steering macro and user-defined models may be added without a recompilation of the framework. Multi-reaction cocktails can be facilitated as well using either mass-dependent or user-defined static branching ratios. The included physics uses resonance production with mass-dependent Breit-Wigner sampling. The calculation of partial and total widths for resonances producing unstable particles is performed recursively in a coupled-channel approach. Here, particular attention is paid to the electromagnetic decays, motivated by the physics program of HADES. The thermal model supports 2-component thermal distributions, longitudinal broadening, radial blast, direct and elliptic flow, and impact-parameter sampled multiplicities. The interface allows angular distribution models (e.g. for the primary meson emission) to be attached by the user as well as descriptions of multi-particle correlations using decay chain templates. The exchange of mass sampling or momentum generation models is also possible. The first feature allows for consistent coupled-channel calculations, needed for a correct description of hadronic interactions. For elementary reactions, angular distribution models for selected channels are already part of the framework, based on parameterizations of existing data. This report gives an overview of the design of the package, the included models and the user interface.