There are remote.call interfaces declared in the free play scenario explicitly to control starting items. You would call them from an on_init handler in your control.lua.
Here’s how I do it for Salvage QuickStart:
https://github.com/mspielberg/factorio- ... l.lua#L121