Compare single observed value to simulated distribution I have a distribution of values that I have simulated for a null hypothesis data generating process. I have a single real-world observation that is wayyyy outside the percentiles of this distribution. Can I give a p-value for this single observation not being generated by the same data generating process that gave me the simulated distribution? I'd do something like a Z test, but the simulated distribution isn't quite Normal because it's cut off at 0. Intuitively I feel like I should be able to get a p value by direct comparison to the simulated distribution- because isn't that what other statistical tests do, say 'this is way at the edge of the distribution that would be generated by a certain process'?

It sounds like your simulated distribution is a truncated normal distribution.
If that is the case and you know the distribution parameters, you could use e.g. the ptruncnorm() function from the truncnorm package or ptnorm() from the crch package in R to calculate the p value for your observation. Use 0 and Inf as your lower (left) and upper (right) bounds, respectively.
Please note, however, that the p-value is the probability of obtaining values at least as extreme as the one you have under the assumption that the null hypothesis is true (i.e., that your observation indeed comes from a truncated normal distribution with the parameters that you have specified).
It is not the probability of "this single observation not being generated by the same data generating process that gave me the simulated distribution". In other words, it is not the probability that the null hypothesis is false. See https://en.wikipedia.org/wiki/Misuse_of_p-values.
In this case, the p-value calculation could be considered a Fischerian significance test, in which the p-value simply indicates the unusualness or "surprisingness" of your observation when compared to a chosen distribution. This is not to be confused with a Neyman-Pearson hypothesis test, where you decide in advance to automatically reject the null hypothesis if the test statistic falls outside a pre-specified threshold value α (often set to 0.05). The latter approach can be acceptable in some situations, but it is very important to be clear that the basis for rejecting the null hypothesis is arbitrary. See https://link.springer.com/chapter/10.1007/164_2019_286.
