My post got burned up in the flame wars... Luckily, I saved a copy... This is what I've come up with so far. let me know what you think.
You build a ship/station/structure, and when saving the bluprint, at which time you select one of these three options.
- Create "original blueprint" which allows full repair, copy, editing, CC upload etc. Basically full ownership of the design.
- Create "blueprint copy"; used for spawning a single entity but does not allow copying, CC upload or repair. You have to go to the manufacturer for service.
- Create "licensed blueprint" used for spawning a single entity and allowing other shipyards to repair it. Copying and CC upload are not permitted.
If you select 'blueprint copy' or 'licensed blueprint' you will be prompted to enter a code then which saves the blue print with the desired protection level and also applies this protection to the structure you've just saved. The protection will take effect when you exit the structure. Re-entering the core/build block of this same structure then attempting to save a blueprint from it will prompt you to enter the code which will bypass the copy protection for as long as you occupy the structure.
For "blueprint originals", no code is entered. This would be useful for less complex builds that you either don't care about copyrighting or are too tedious to want to encode. Examples; small drones, power armor, point defense turrets, decorative components, etc.
All assigned protection levels persists within the blueprint files themselves so you can give someone a structure and its code so that they can have access to it. ...or to remove protection completely from a structure, re-save your it as an 'original blueprint'.
This system would keep copy protection in the hands of the creator without making it unnecessarily restrictive.
Updates
Only admins can bypass the protection on a multi-player server for spawning/catalog management, but they cannot alter the designer's copy protection settings in-game. Players will need to trust that admins are keeping their personal interests with regard to other players' designs separate from their admin rights. Anyone else has to either get an "Original Blueprint" get the code from the creator or wait for a CC release.
Apart from those with admin rights, "Licensed Blueprints" and "Blueprint Copies" will not persist outside of the server in which they are purchased/given. Once again; the player needs to get an "Original Blueprint", the blueprint's code or a CC build in order to be able to take the ship to another server or (re)upload it to CC.
Thanks for finding that for me. There was a TON of burying going on there. lol
I would not recommend the "blueprint copy" option. I don't think it's viable for players to have to rely on the seller every time they want a single block repaired. Ships are frequently damaged. I also think this would hurt the faith players have in the system and cause confusion, so players might avoid wanting to use any licensing aspects of the game at all. I can just imagine all the sellers trying to explain the difference between the "licensed" ship they are trying to sell and what a "blueprint copy" is.
For a ship license, I say let the game handle the behind the scenes codes. No need to password protect it or have some seller forget which code they used for which blueprint and then not be able to help anyone with the designs they sold. Tie it to the registry account for the player who made the ship. Also allow the license to be given a name, that is clearly visible to all. This license would be what is used to determine the permissions on the ship. So if the seller wants players to be able to modify all of a certain type of ship with their own additions, they can. They would just name the license "Bomber Class". (As in my example). This would then allow the purchaser to modify the ship and repair to their modified ship design using a shipyard (but again, that repair ship design could ONLY be used on a ship that was purchased from the specific seller that had that specific license name, "Bomber Class." If the seller wants to assign a unique name to the license, they would just give the license for the ship they are selling a unique name, like "Bomber Class for DestroyerOfWorlds."
Regarding admins: Admins should always have full control of everything. Permissions or otherwise. I think the worst thing that can happen is where admins cannot control their own server. If the admins on a server are untrustworthy, then believe me, that server will not last. Plus having this kind of control would allow wrappers to have creative implementations, that might use NPC factions as "sellers," ect.
Oh, and about the blueprints not persisting outside of one server: I disagree. Just have the blueprint permissions tied to a person's starmade account. The permissions would then follow them from server to server. But purchasers, of course, would only have access to the ship they purchased on a specific server since they cannot save the blueprint to their local hard drive.
Edit: Oh, and with the blueprint, I say don't have anyone have to make any choice when creating the blueprint. Just have an option "Add License" or "Remove License" (if one exists). When the player clicks to add their license to it, it just asks for the name of the license with an ok/cancel/help button. If they click "help," then it pops up a screen that explains licenses. I think simplicity would be key here. Also keep in mind that the license would not stop a faction-shared blueprint from being used by fellow faction members. But the resulting ship would have that unique license on it and could not be duplicated further. I feel this would be good though, because it would give people good leeway with the licenses.
Edit 2: It also occurred to me that with things like quests and NPC factions, there might be a need for a blueprint to be licensed by an NPC or a player without any starmade registry account (such as an offline single-player game mode or a multiplayer server that does not use registry accounts - for whatever reason). The game would prefer to use starmade registry accounts for the license, but if none exists, it would simply default to the player name. And in game, or by admin commands, a blueprint might be specified to be "NPC" and a name given. If set to an NPC, that NPC would not actually have to exist.