A full Monte Carlo simulation of sample scattering and the final flight path for direct geometry time-of-flight spectrometers has been developed. This allows the scattering from systems with both realistic and complex scattering geometries as well as realistic scattering functions to be modeled. This simulation, PULSCAT, interfaces with commonly available ray tracing programs, such as VITESS, that simulate the incident beam. Spectra with elastic and inelastic features resulting from scattering from isotropic scattering systems in addition to multiple scattering for amorphous scattering systems can be modeled with PULSCAT. The sample geometry used in the simulation is entered through a GUI interface. Due to the large flexibility in the input parameters for the sample, sample environment equipment can be included in the simulations allowing for scattering from ancillary equipment (such as from a standard orange cryostat) to be modeled. This makes PULSCAT a powerful tool for simulating systems and investigating spurious effects present in collected spectra.