I just started using metamask today and accidentally sent 500 dollars worth of crypto to the contract address instead of the ETH address (yes I'm a moron). Is there anyway for me to get my crypto back or is it lost forever? Thanks for your time. Here is the contract address: 0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39
It depends on whether the contract supports such functionality. Some staking contracts have such functionality but mostly contracts don't support it.
The contract has lots of strange code so I'm unable to tell you right now whether it's possible. In general the chances for such functionality to exist are very low.