We present a versatile new code released for open community use, the nonadiabatic excited state molecular dynamics (NEXMD) package. This software aims to simulate nonadiabatic excited state molecular dynamics using several semiempirical Hamiltonian models. To model such dynamics of a molecular system, the NEXMD uses the fewest-switches surface hopping algorithm, where the probability of transition from one state to another depends on the strength of the derivative nonadiabatic coupling. In addition, there are a number of algorithmic improvements such as empirical decoherence corrections and tracking trivial crossings of electronic states. While the primary intent behind the NEXMD was to simulate nonadiabatic molecular dynamics, the code can also perform geometry optimizations, adiabatic excited state dynamics, and single-point calculations all in vacuum or in a simulated solvent. In this report, first, we lay out the basic theoretical framework underlying the code. Then we present the code's structure and workflow. To demonstrate the functionality of NEXMD in detail, we analyze the photoexcited dynamics of a polyphenylene ethynylene dendrimer (PPE, C30H18) in vacuum and in a continuum solvent. Furthermore, the PPE molecule example serves to highlight the utility of the getexcited.py helper script to form a streamlined workflow. This script, provided with the package, can both set up NEXMD calculations and analyze the results, including, but not limited to, collecting populations, generating an average optical spectrum, and restarting unfinished calculations.