How would I allow users to place static meshes for building?

I want to attempt to allow users in-game to place static meshes, change the rotation of the mesh, and possibly change the material type and scale.
Can anyone give me any pointers on how to go about this?

Custom Event>Make Transform>Spawn Actor from Class>Set Material (Using return value on Spawn).

That is basically it. Everything else comes from playing with the transform input, the material input, and finding ways to execute the custom event.

Could you set a key to execute the custom event?
Also, how hard would it be to make a grid system for building?

Yeah using keys to call custom events is a pretty standard action. You will probably want some conditional setups such as “if you have block in hand”, then pressing key executes “Event: place block at closest grid point vector to crosshair(or whatever)”.

I am assuming you want some kind of Voxel world? There are a few people working on Voxel projects so you should search for their posts/questions and see what they are up to.

Grids themselves are pretty straight forward. I use a 2D hexagonal grid in my project. Basically you do some math regarding the size of your base object(box, hexagon, etc), and then you get a vector for each grid point and store those vectors in an array. I just need 1 Array for my 2D map, but for 3D you may need an Array for each Z plane. There may be more elegant solutions though, so be sure to do some research.

Thank you very much, you’ve been extremely helpful.