Make thread wait until another thread has changed a variable. How?

Yes, it will block the thread. If you want to do other work while one thread is waiting, there are two approaches: 1. Multiple threads, when one is waiting, another starts working. 2. Event loop, when thread is “waiting” it picks another task to work on in the meantime. Both are not easy to implement, so I would first check if unreal doesn’t have a ready to use solution. But, if you want to learn, then implementing this will teach you a lot about multithreading.