Multiple, randomly selected textures for a single model?

It’s late/early so forgive me if this is obvious. I have two problems of similar but different origins.

  1. I have a single plane. I’d like to break this plane into tiles of X by X and for each “tile” place a randomly selected texture out of a pool I create at that location, scaled if necessary. This plane has bare minimum polygons and is serving as a large floor tile. I’d like to more or less treat it like your standard 2D tiled game level; with 4 different types of grass textures to apply simply for cosmetic effect.

1.5 : Bonus points if I can make a tile’s texture/material parameter change based on input from another blueprint; say “water spilled” and now the material is “wet” there or needs to be made darker or what have you. Any of these individually would be fine.

Ultimately I want this to be low cost in regard to performance. So if I could also check if something is covering up a floor tile (like a “wall”) and not place a texture there?

  1. I have walls I’m building in Blender out of cubes (with deleted faces) of various scales. What would it take to easily use the same textures on all of these?

IE a 2x2x2 cube would have (tired pls) say, 12 textures while a 1x1x1 would have 6. Could I do this with an L shaped mesh?

Again. Performance is important. I’ve discovered that Hierarchical Instanced Static Meshes aren’t the greatest due to popping in and out a lot. And I’m not sure that the planes (assuming I had 10 X 10 or w/e) could be assigned different textures at all.

My textures will be as small as I can reasonably make them. I aim to keep most of my plane empty with only a small % chance of a texture being spawned in the first place (letting the material and base color sell the effect). I’m pretty sure this isn’t even necessary for performance as I’m sure they’re only kept in memory once.

Anyway if you have any ideas please let me know D: 5:36am. Goodnight all.