FeynRules is a Mathematica-based package which addresses the implementation of particle physics models, which are given in the form of a list of fields, parameters and a Lagrangian, into high-energy physics tools. It calculates the underlying Feynman rules and outputs them to a form appropriate for various programs such as CalcHEP, FeynArts, MadGraph, Sherpa and Whizard. Since the original version, many new features have been added: support for two-component fermions, spin-3/2 and spin-2 fields, superspace notation and calculations, automatic mass diagonalization, completely general FeynArts output, a new universal FeynRules output interface, a new Whizard interface, automatic 1 to 2 decay width calculation, improved speed and efficiency, new guidelines for validation and a new web-based validation package. With this feature set, FeynRules enables models to go from theory to simulation and comparison with experiment quickly, efficiently and accurately.