Dglider, for the missing input, I usually use a universal check among all CPs.
Your example is almost right, it uses the correct events, but OP wanted all caps to be neutral, with one cap specific to the team. Therefore, in my helping the OP, my CPs are Point_N_1 and Point_N_2 for neutrals, and Point_B and Point_Red for blue and red CPs. Also, for future reference and a good life lesson, organize your brick naming better. When I started out, I just used single letters to represent bricks. But, as I got better and builds got bigger, and single letters turned into double and triple letters, I changed naming to something similar to how you name yours now- BluCap1- with abbreviations and a compound name, like StLight for street light and HsLight for house light. Although the makes sense in reading it, it is bad organization. Hs and St are no where near each other in the alphabet, so instead, flip them, so Light is the first word. Also, putting a _ between the words can help better distinguish between brick names when you get long, multi hundred-long lists of brick names.
And use the code to for events, it makes everything more neat, that's [code ]
.
Anyway.
Point_N_1
[0] [Onteam1Capture] [Self] [VCE_Ifvalue] [<var:nb_Point_N_2:captured>] [==] [1]
[1] [Onvariabletrue] [Named Brick] [Point_Red] [setcontrolocked] [ ]
[2] [Onvariabletrue] [Minigame] [MinigameCenterprintAll] [Red is now open for siege] [3]
Adding other things like line 2 make for a more detailed game. Repeat the above events for Point_N_2 and change the "nb_Point_N_2" to "nb_Point_N_1", and change "Point_Red" to "Point_Blue."