Space Engineers

Space Engineers

Rotating Ship Constructor
86 Comments
Darkchyylde 6 Feb, 2024 @ 10:56am 
@SCBionicle Awesome thanks! :)
SCBionicle  [author] 2 Feb, 2024 @ 11:05pm 
@Darkchyylde, sorry for the very late reply. When I said alternating sides, I meant: have pistons alternate sides like a zipper teeth. Keen changed the collision boxes on the welders and will get stuck if you have the pistons pressed up against each other.
Darkchyylde 17 Mar, 2022 @ 10:41pm 
@SCBionicle IN your reply to Challenger you said "alternating sides", what do you mean by that?
BoompaBlubbah 22 Nov, 2021 @ 12:08am 
I figured it out! When the (small) ship is docked, the sensors do not see it at a small ship.
Temporarily just switch lock (connector yellow) will solve the problem!
SCBionicle  [author] 21 Nov, 2021 @ 6:59am 
@BoompaBlubbah, check the sensor ranges to see if they're not set to 0. I ran into that problem recently and tried to update the sensor ranges accordingly. If that isn't it, I'd have to look into it when I have time.
BoompaBlubbah 21 Nov, 2021 @ 4:45am 
@SCBionicle Hey long time no speaks, I found myself back at this PMW thing. The sensors will however not detect my small grid? (I know your setup is subgrid detection). Do you maybe know of any bugs with the sensor? Whatever I do, I cannot make it bounce back and forth (I am trying as u suggested, setting up with timers.)
SCBionicle  [author] 25 Sep, 2021 @ 11:41am 
@BoompaBlubbah, you can set the rotor to not turn as well in the script settings.
SCBionicle  [author] 25 Sep, 2021 @ 11:40am 
@BoompaBlubbah, the script isn't configured to do that in that way exactly (the rotor is required as reference for block scanning), but that kind of automation is possible with the use of timer blocks.
BoompaBlubbah 21 Sep, 2021 @ 2:27am 
Heya SCBionicle, Loving it! Quick question tho: could I also use it to for instance use only two welders/pistons, then weld a missile (projector would NOT be rotating)?
SCBionicle  [author] 17 Aug, 2021 @ 11:08am 
@BL8NT, atm, the isn't a way clone the display to the cockpit displays with this script, yet.
SCBionicle  [author] 17 Aug, 2021 @ 11:06am 
@CHALLENGER, sorry for the late reply. I noticed a bug with space engineers, especially with pasting, where you have to construct the pistons on alternating sides (need to update the demo blueprint/documentation) with the new design, else the pistons will stick to each other.
BLUNT 15 Aug, 2021 @ 8:57am 
So far it's a really nice script. Very easy to use
Question, is there a way to configure the display to cockpit LCD?
CHALLENGER 2 Jun, 2021 @ 10:59am 
Also having the same issue. Everything seems to be setup properly and ready to go. The LCD says build is in progress. Projector rotates. But the pistons won't move. LCD doesn't readout any errors.
Zero 6 Apr, 2021 @ 3:15pm 
Currently having the exact same issue as Sandy with the same script version and settings, the PB output shows same as well. I built the ship builder from scratch so its not an ownership issue. Rotor moves and welders light up, but pistons wont move. I can move them individually from control panel so I know they are not stuck. I will continue to try and troubleshoot this, if anyone has a working version and knows some tips, I'd appreciate it, ty.
Belfontan 25 Jan, 2021 @ 7:27am 
I observed a similar behavior in another context as well.
Blocks are mounted together between close subgrids where they shouldn't have been.
SCBionicle  [author] 30 Dec, 2020 @ 8:54pm 
Oh, also, weird thing about SE. If you pasted in the grid, pistons could be either static grids or the different pistons could be merged together, both of which can cause the pistons to freeze. You might like to check against that too. I don't have a reliable way at the moment to check for that except for making the script performance heavy on the single tick it scans the grid.
SCBionicle  [author] 30 Dec, 2020 @ 8:50pm 
@Sandy, my only other idea is ownership issues. I haven't encountered this in testing, but I never tested against ownership. If you own all those blocks, then that shouldn't be a problem. If ownership isn't the case, could you post an example world on the workshop so I can debug it?
Sandy 30 Dec, 2020 @ 7:54pm 
PB Output:

Build Progress 448/448
0%
Sandy 30 Dec, 2020 @ 7:41pm 
Running V1.3.0.

Settings below:

public const string groupName = "RSC Group";
public const float maxPistonExtent = 10.0f;
public const float maxPistonSpeed = 1.5f;
public const float retractPistonSpeed = 4.0f;
public const float maxBottomSensorExtent = 4.5f;
public const float sensorFrontBackExtend = 2.0f;
public const float surroundSensorExtent = 1.3f;
public const int finishLingerTime = 5;
public const float targetRotorRPM = 4.0f;
public const float rotorStopBuffer = 0.02f; //in radians
public const bool doSafetyShutoffOfBuiltGrid = true;
public const float buildingGridScanInterval = 60.0f; //in seconds
public const bool doNotZapPlayers = true; //set to true if you don't want the welders to harm players in their vicinity
SCBionicle  [author] 30 Dec, 2020 @ 7:13pm 
What's the piston speeds set at? And what version are you using?
Sandy 30 Dec, 2020 @ 7:02pm 
Everything looked normal in the dialog "Job Started 0% Complete", and rotor was turning. The projection was on with a weldable block.
SCBionicle  [author] 30 Dec, 2020 @ 6:25pm 
@Sandy, without more info, I won't know what's wrong. Did the script say anything in response to the "start" command?
Sandy 30 Dec, 2020 @ 5:03pm 
Hello - Thanks for this script. I've used it in the past with success, however this time when I start the job this pistons do not extend at all. Everything seems to be grouped and compiled correctly, and the sensors are oriented per the example.

Any ideas?
SCBionicle  [author] 24 Dec, 2020 @ 4:13pm 
To anyone who's subscribed to this thread, there's been an update to this script.
SCBionicle  [author] 4 Dec, 2020 @ 12:44pm 
@Belfontan, I'm glad to hear that.
Belfontan 3 Dec, 2020 @ 5:08pm 
Hi again!
I welded another 2 small grid ships with ~200 and ~300 blocks.
No problems. Absolutely great!
Belfontan 28 Nov, 2020 @ 11:26am 
Hello
Until now I welded only one small grid ship (~150 Blocks), but it worked pretty well!
Thank you
Quickshadow10m 10 Jul, 2020 @ 7:10am 
Make 2 groups, one named elevation, one, is your choice[This one is like the old groups].

if aguement "start" is run, trigger function 1,
extend all pistions in group 1, then when fully extended Function 1
if all pistions in group 1 =10.0f trigger function 2-
Extend all pistions in group 2, then turn on all welders in group 2, then retract all pistions in group 2. then retract all pistions in group one one block (configured in settings based on how many pistions there are, but retract by one block) function 2
then trigger function 2

if All pistionsin group 1 =0.0f then stop

if player then runs the arguement flip, then the rotor will spin 180 degrees, then trigger function 1
Quickshadow10m 7 Jul, 2020 @ 7:46am 
Now that I think of it, the large grid printer should be a seprate script
Quickshadow10m 7 Jul, 2020 @ 7:46am 
lol need guide now
SCBionicle  [author] 6 Jul, 2020 @ 9:12pm 
@everyone A new update was released and the guide had to be moved from this page to an actual guide page because the character limit was hit.
SCBionicle  [author] 6 Jul, 2020 @ 2:21pm 
@Quickshadow10m, good luck in school btw
SCBionicle  [author] 6 Jul, 2020 @ 2:17pm 
Fair enough, I'm currently a college computer science student and I do this as a hobby. Also, this is coded in C#.
Quickshadow10m 6 Jul, 2020 @ 12:42pm 
unfortuunatly I can't code, I once learned the basics of Javascript, but I do not knwo C#, wait is this C## or C#?
SCBionicle  [author] 6 Jul, 2020 @ 12:42pm 
In any case, I'm fixing to release the timer functionality soon.
SCBionicle  [author] 6 Jul, 2020 @ 12:41pm 
I'm willing to look into it as well, but summer college classes started, so I might not have as much time to work on it.
SCBionicle  [author] 6 Jul, 2020 @ 12:41pm 
@Quickshadow10m, I'm not sure how well that will work, but there's only one way to find out (watch out for the Almighty Physics Clang, lol). I'm actually planning to open source this script so if you're willing and able, you could fork the repo and try to implement it and submit a pull request if you manage to get it to work.
Quickshadow10m 6 Jul, 2020 @ 12:25pm 
but welders need to be off on extension, and on on retraction
Quickshadow10m 6 Jul, 2020 @ 12:24pm 
welding anything in the pistions path
Quickshadow10m 6 Jul, 2020 @ 12:24pm 
more like, lock, then extend and retract pistions
SCBionicle  [author] 6 Jul, 2020 @ 12:22pm 
@Quickshadow10m, are you saying that the rotor should turn on and off at set intervals?
Quickshadow10m 6 Jul, 2020 @ 12:13pm 
So, I have been working on it being able to print large grids, and I ran into this problem...
Some large grid blocks are like, 4x4x2 (Jump drive, Large cargo, large hydrogen, etc...) SO I came up for a idea to fix it, you would have to add variables, on variable which is how far in between angles so, var=3= 3 degrees between when pistions would trigger, so, what I am saying, move the rotor a set amount of angles, and then have pistions extend as far as they can go, then retract, welding all blocks as they pull back, then turn another few degrees, extend then retract, rinse and repeat, now, you would have to add two variables, the Deggrees the rotor is to turn, (RotorTurnDegrees) and to configure if it is in small block mode or large block mode (LargeMode). Does this sound like it would work?
SCBionicle  [author] 1 Jul, 2020 @ 11:49am 
I just need to see if each of the 4 timers are reliably called when they need to be.
SCBionicle  [author] 1 Jul, 2020 @ 11:48am 
@Quickshadow10m, that would be tricky to directly implement via the script, that's why I added the "done" timer tag so if engineers wanted to add that themselves, they can. Just be warned, there is no easy way to explain how to do that and I, myself, am not sure how to implement that in an understandable way. Whatever y'all do through the timers called by the script is up to y'all, not this script.
Quickshadow10m 1 Jul, 2020 @ 11:27am 
finished I would say, cause then you could activat grinders to cut it loose and then be like a vending machine
SCBionicle  [author] 30 Jun, 2020 @ 8:08pm 
@Quickshadow10m, I already have an option on whether to have it trigger or start a countdown. At what points in the program should the timers fire? (I added started, finished, safetyshutdown, projectionplaced)
Quickshadow10m 30 Jun, 2020 @ 7:13pm 
maybe have 3 options, (to trigger a timer) Yes, no, trigger now, you might not what to do that cause it would be easiest to just have a Boolean.
SCBionicle  [author] 30 Jun, 2020 @ 5:42pm 
@Quickshadow10m, I added event timer capability, I just need to test it before I submit it to the workshop. Have any other ideas on when timers should be fired?
Quickshadow10m 30 Jun, 2020 @ 5:08pm 
started would be better cause if u wanted it immediately you just set it to the least amount on a timer
SCBionicle  [author] 30 Jun, 2020 @ 5:06pm 
@Quickshadow10m, do you want the timer to be triggered immediately or have the timer started?