Blueprints make building ships super easy, and while Faction blocks are cool, they don't allow players to protect their ships from other faction members. Lets address blueprints first. There are a couple of problems with them for servers, especially role-playing servers:
1. You can make a ship pop into space from thin air (and all of the blocks you've loaded into a blueprint)
2. Blueprint spawned ships tend to spawn far away, especially for small ships. That tiny noob mining ship blueprint can take a bit of time to locate and fly to, especially if you don't know to look for it (hence, you're a noob).
So, instead of making a blueprint pop a ship into existence, here's what I propose:
Blueprints are loaded into a manufacturing/shipyard computer. This shipyard computer then is connected to fabricator controllers or something similar and a docking block. The fabricator controllers are then connected to fabricator beam blocks. When the block is activated with a blueprint, the fabricator beams then build the ship, layer by layer, in front of the players eyes, at a rate of 1 block per second per beam--and require 100 energy to place a single block. These beams can't be stacked to be more efficient, but each .
Parts are grabbed from either the player's inventory, or from storage blocks attached to the shipyard computer--or, if the shipyard computer is tied to a store block, automatically purchased from that store. The shipyard computer could then be told to deduct x amount of credits from the player's account. For multilayer servers, an admin could configure a shipyard computer to just deduct credits from a users account and make these blocks magically appear, or limit a player's request for a new ship for a set time-frame (this would allow admins to ensure new players can get a server-acceptable ship vs a noobie making a flying power cube).
Assuming my other suggestion in the Steam forum was implemented where faction blocks also allowed a personal signature to lock a ship to a person, inside or outside of a faction, the shipyard could automatically assign the ship to this player to prevent a griefer from stealing it. Also, shipyard owners or the admin could set a limit to how long a newly created ship can stay on a docking platform attached to a shipyard computer. If it exceeds a set time frame (10 or more minutes), it is vaporised allowing another player to request a new ship.
From an implementation standpoint, when a ship is being build, each beam should request a block from the master thread, which would respond back with the block ID, position. When the ship has been completed, then the attributes for the blocks are assigned (logic connections, sorting, etc)... with the option of spawning a ship's 2048-character ship manual/logbook in the user's inventory . In theory, this could also be used to repair ships based on a blueprint, it would just go through each layer looking for missing blocks not found on the blueprint, whereas extra blocks would be ignored. Ships that don't fit in the docking area wouldn't be allowed to be spawned form that blueprint with that shipyard.
With this, players get to watch their new ship materialize out of thin air, layer by layer, it would take longer for factions to replace ships that are exploded, and it would allow admins to start players off with nothing, then allow them to hit a magic button and spawn their shiny new noob-ship which doesn't look like a "I just got starmade last night" noob-ship.
Also, if server has an option to limit the docking area size, this would be a handy way of limiting large ships from being crated in-game. It would be very nice to see a config options to specify the maximum block size for a ship, and limit the dock sizes of those ships (eg: ships 100x30x50 cubes, dock area limited to XX% of ship size). Bounding cubes are already implemented in the game for docked ships, this could easily be extended to ship construction in general.
1. You can make a ship pop into space from thin air (and all of the blocks you've loaded into a blueprint)
2. Blueprint spawned ships tend to spawn far away, especially for small ships. That tiny noob mining ship blueprint can take a bit of time to locate and fly to, especially if you don't know to look for it (hence, you're a noob).
So, instead of making a blueprint pop a ship into existence, here's what I propose:
Blueprints are loaded into a manufacturing/shipyard computer. This shipyard computer then is connected to fabricator controllers or something similar and a docking block. The fabricator controllers are then connected to fabricator beam blocks. When the block is activated with a blueprint, the fabricator beams then build the ship, layer by layer, in front of the players eyes, at a rate of 1 block per second per beam--and require 100 energy to place a single block. These beams can't be stacked to be more efficient, but each .
Parts are grabbed from either the player's inventory, or from storage blocks attached to the shipyard computer--or, if the shipyard computer is tied to a store block, automatically purchased from that store. The shipyard computer could then be told to deduct x amount of credits from the player's account. For multilayer servers, an admin could configure a shipyard computer to just deduct credits from a users account and make these blocks magically appear, or limit a player's request for a new ship for a set time-frame (this would allow admins to ensure new players can get a server-acceptable ship vs a noobie making a flying power cube).
Assuming my other suggestion in the Steam forum was implemented where faction blocks also allowed a personal signature to lock a ship to a person, inside or outside of a faction, the shipyard could automatically assign the ship to this player to prevent a griefer from stealing it. Also, shipyard owners or the admin could set a limit to how long a newly created ship can stay on a docking platform attached to a shipyard computer. If it exceeds a set time frame (10 or more minutes), it is vaporised allowing another player to request a new ship.
From an implementation standpoint, when a ship is being build, each beam should request a block from the master thread, which would respond back with the block ID, position. When the ship has been completed, then the attributes for the blocks are assigned (logic connections, sorting, etc)... with the option of spawning a ship's 2048-character ship manual/logbook in the user's inventory . In theory, this could also be used to repair ships based on a blueprint, it would just go through each layer looking for missing blocks not found on the blueprint, whereas extra blocks would be ignored. Ships that don't fit in the docking area wouldn't be allowed to be spawned form that blueprint with that shipyard.
With this, players get to watch their new ship materialize out of thin air, layer by layer, it would take longer for factions to replace ships that are exploded, and it would allow admins to start players off with nothing, then allow them to hit a magic button and spawn their shiny new noob-ship which doesn't look like a "I just got starmade last night" noob-ship.
Also, if server has an option to limit the docking area size, this would be a handy way of limiting large ships from being crated in-game. It would be very nice to see a config options to specify the maximum block size for a ship, and limit the dock sizes of those ships (eg: ships 100x30x50 cubes, dock area limited to XX% of ship size). Bounding cubes are already implemented in the game for docked ships, this could easily be extended to ship construction in general.