I've tired to get my own script working for my buildable, but it hasnt worked, at all, I was wonderning what to script for the bench and for each part, to work properly, and how to script in a cinematic ending after you are done building the builable and you go and hit a trigger
Create a trigger at the table and a script struct on the table to be able to spawn the model for the part you found. You can do random locations by creating multiple script structs or origins and then using getentarray to get them all in script. Then you can do random numbers based on the arrays index size to get the actual locations for the parts. Once that location is found you can spawn a script_model on the location and a trigger to pick it up. Use the second argument of waittill when using "waittill("trigger");" to find the user that grabbed it, ex: (user is equal to the player entity that hit the trigger). Based on that you can just create a sub var of players[index] that's a string to manage the part the player already has. The table would then when triggered get who triggered it, check if that player has a part and which, based on that you can spawn a model on the table and hide the tags of it to be able to show more pieces once they have been added. Depending on what the part is when you go to hit the end trigger add something so you can detect if the player has that full buildable built and then use this function to play the cinematic of your choice: http://www.zeroy.com/script/level/cinematicingame.htm