Hi Firlefanz,

There will be some kind of trade off in terms of performance. It depends on how often you access the properties and how. If you read them more than you write, then you may want to move the memory moving code to the write access method.

With regards to your question about moving individual items or the whole record... moving the whole record would achieve the same thing, but I would say that the chances of some kind of trainer locating the data are increased. The reason being, the values will always be in the same order in the block, so pattern matching may turn up the block. If you move each item, then they will move around each other in memory making pattern matching on unchanged values harder.

There are a lot of options to make it very difficult for trainers, but there will be some kind of performance hit. The level of that hit depends on how much protection you want.