Chess game setting Allowed moves relative to given position during play.

…actually i’m trying to make a Chess game , though i need some advice ,So please …please take a look at my process provided below and if possible these are the points i need help with :

1- how to switch chess pieces between Dark turn and Bright turn based on the freedom of starting initially the game with whichever piece you like …??

2- How to Set allowed moves for a given chess piece relative to its current position on the board , i know that could be done with traces by channel , but the piece moves during the game to different places so do i have to line trace or sphere trace by channel all directions on the chess board from the piece’s position and check for the all types of chess pieces if we hit any then script the behavior for it but that would be tedious…

… i mean depending on chess rules there is alot of different situations at once to account for , or is there methods to make this achievable with reasonable amount of blueprint scripting …???.

3- below in pictures you see how i’m doing everything in the construction script of the actor class which is the entire chess board at once with the pieces being set as components and inside i have a function called Click which is responsible for driving the clicking on the chess pieces and it is called inside event graph of player controller …but then i thought why not take more control …
…and make the chess pieces seperate as pawn classes and children of the chess board then i’ll make a knight a pawn and each of the other 3 knights children of it …and so on to inherit functionality from the parent pawn… what do you think is it the right way down the road …???..

Thank you for your support .

below are pictures of all the graphs the ChessBord blueprint have the Construction script (picture_1) and Function called “Click” (picture_2) , then the controller player( picture_3) which only calls the function “Click” by way casting , i’m explaining the construction script with writings (on the picture_1) .

–Note :
i’m assigning one side a dark material “Pieces_Dark " , and the other side bright material " Pieces_Bright” ( this is just a naming convention to differentiate them from the tiles of the chess board being “Fields_black” and “Fileds_white” ).

the nodes in the comment box (boardalphanumeric automated i was just trying to tie a1,b1,c1…g8,h8 . strings to the mesh pieces . but i found out that it will be diffucult down the road to set the allowed the moves with an alpha numeric system , rather prefer the fact that i can just rely on indexes 0…63 of the loop creating the floor 400*400 meshes representing the tiles meshes of the chess board to get references easily for the board tiles …a bit dumb but you know i’m learning… . …i just want it like realistic chess when they refer to the pieces positions “i moved to h7” or “i’ll capture the knight on b4” and so on …

I’m not sure I understand your question. You want a way to select a piece and then tell if it can move in one direction or another ?