It depends upon how are you picking up items. If you tell then I can give you a better answer.
If your player is area2d node and you are using its body entered signal. Then you don't need script in all items. Here player is area2d node and its body entered signal is connected to the script
var portion_1 = 0
func _on_Area2D_body_entered(body):
if body.name == "portion_1":
portion_1 += 1
body.queue_free()
#and so on
Else if your player is other body(RigidBody or KinematiBody) and item is area2d. Then yes you need script in all items