[Question]
  [
Choose a set of four bytes without replacement (i.e. no byte repeated), and not necessarily in any particular order, from any one of the following four sets:
1. The characters of any one single-byte encoding
2. The Unicode characters in the range 00–FF
3. The signed decimal integers in the range −128–127
4. The unsigned decimal integers in the range 0–255
The four values you chose (please state which they are) will be the valid inputs. You must pair each value with one of the below ASCII artworks.
Given (by any means) one of your four valid inputs, respond (by any means, even list of strings) with the corresponding ASCII art. Extra white-space is allowed on all sides, as long as the image is in there in one contiguous 2D area.
First byte:
```
     /\
    /  \
   |    |
   |    |
   |    |
   |____|
    \__/
    |  |
    |  |
    |  |
    |  |
 /\ |  | /\
/  \|  |/  \
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
AAAAAAAAAAAA
```
Second byte:
```
  /\
 /  \
|    |
|    |
|    |
|____|
 \__/
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 AAAA
```
Third byte:
```
  /\
 /  \
|    |
|    |
|    |
|____|
 \__/
 |  |
 |  |
 |  |
 |__|
  /\
```
Fourth byte:
```
 db
_/\_
\__/
|  |
|  |
|  |
|__|
 /\
```
> 
> What's new about this ASCII art Kolmogorov complexity challenge?
> 
> 
> 1. The ability to select valid inputs presents a new aspect to the challenge. The inputs are clearly too limited to encode the entire result, but can carry enough information to merit attention.
> 2. The multiple possible outputs share a lot of structure, so reuse of code or sub-images is feasible both within each image and between images.
> 3. There is enough duplication that even languages which are not well-geared towards challenges like this have a fair chance of being able to use clever code rather than just hard-coding strings extensively.
> 
> 
> 
  
[Answer]
# JavaScript (ES6), 247 bytes
RegPack'ed. Expects 0...3 as input.
```
n=>[...'BigFu!#?%$Rocket'].reduce((s,c)=>(x=s.split(c)).join(x.pop()),`oF#$!
FRFRFRF|??|$i$t$t$t$t%# t #
!t!BBB
uuceeeeeee%c%|?|
o#, db
_#_
iggg
|?|%#g|o|e%t%t%tkgttgttcu,o#%!
RRR|??|%ieF R|oo|
$
oo%
 ?__#/\\!/o\\uAAAAFo g
ti\\?/Bkkk`).split`,`[n]
```
[Try it online!](https://tio.run/##dY7NioMwFIX3eYpIDCaMk/6trYwLH8CtKdqJaUiVXKlx6CLv7tgpdDHQcy4c7uXjcK/nn/Okbnb0nw46vVyyxWXHWgiRFNaUc0RyGlegeu2Tk7jpblaasSlVPDuyezaJaRysZ4pzcQXr2F2MMDLO0xZKEkeorP4c8jzENvZPU4I9JijyUVEUaF4rn6KKhjwgICnuvlFDGmSNMWi9UWICBE39w73xfh01p0BohKqqetRTq0tcBYCAYgRAEc6bhmykjDYg5fy1qgRskLdS5pui7/uWP79v07Z2p0WBm2DQYgDDktpl25N0Cf7AF7blayTrxtF/aPeCdu@h/Qvav4cOL@jA@fIL "JavaScript (Node.js) – Try It Online")
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 67 bytes
```
ＮθＦ⁼³θ«ＰAA↑↑¹⁸↗²‖ＭＭ⁴±χ»¿θ«↙²↓⁴Ｍ↗__¶\_¶»↓d/_¶ _\↓×⁴∨›²θ⁶¿‹¹θAA↑¶/_‖Ｍ
```
[Try it online!](https://tio.run/##XVBfS8MwHHxeP8WPPCUQ2TqHiD4NFBHWOYa@BUqtv26BLGmTdD6Inz0m9c9WX0Jyd7k7rt5XtjaVCuFRt71f94dXtLRjt1ljLND7rq@Uo5ccOsbgI5sUvfKytVJ7SpZLEnWTwhyR3ry06b4ZmPjgkF@PgK3c7T2HeQK32CisfSGtNZb@eSw4rHFXeaT5jEX0M5MNxC4p98fnzrzrFTa/Rmcoh8V5mSHuJCFlKbQQ8SCDMSqHMPpN3qaRhVKIpBhRz/KALrV7svTBYixo6TwtwuGKpaKp5gqdo/n3TpvTPqOkNAsRelqmiP8jhDALF0f1BQ "Charcoal – Try It Online") Link is to verbose version of code. Takes input as a number 3-0. Explanation:
```
Ｎθ
```
Input the number.
```
Ｆ⁼³θ«ＰAA↑↑¹⁸↗²‖ＭＭ⁴±χ»
```
If it is 3, draw half the booster, then mirror it, then move to the tip of the rocket.
```
¿θ«↙²↓⁴Ｍ↗__¶\_¶»
```
If it is not 0, draw the left half of the front fuel tank.
```
↓d/_¶ _\
```
But if it is 3, draw left half of the nose cone.
```
↓×⁴∨›²θ⁶
```
Draw the left side of the rocket.
```
¿‹¹θAA↑¶/_‖Ｍ
```
Draw the appropriate base of the rocket and then mirror to finish.
[Answer]
# [Clean](https://clean.cs.ru.nl), ~~292~~ ~~278~~ ~~273~~ ~~271~~ ~~262~~ 261 bytes
*-5 bytes thanks to [Adám](https://codegolf.stackexchange.com/questions/155065/falcon-heavy-stages/155072#comment378325_155072)*
```
import StdEnv,Text
e=[k,k,k,"|__|",m]
l=repeatn
o="\\__/"
n="/  \\"
m="/\\"
u="|    |"
s="AAAA"
k="|  |"
?z=[m,n,u,u,u,"|____|",o:z]
```
# 
```
\i=[cjustify 12[c\\c<-:q]\\q<-[?[k,k,k,k,m+" "+k+" "+m,n+k+n,k+k+k:l 18(k+k+k)]++[s+s+s],?(l 24k++[s]),?e,["db","_/\\_",o:e]]!!i]
```
[Try it online!](https://tio.run/##RU9BasMwELzrFZvtJcEybpIeSohqCu2h0EMhvVnCKI5cVEtyYsuhCX57XdmUdgdWo2GZnS2Mkm6w9aEzCqzUbtD2WDcedv7w7M70XX15olhW0RHY53mP1ApiWKOOSnpHaoac53mCxDFMADhHYgMb345hD6F6JC3Dx1BIqkkLSnplmaWOdhNG68m83lzFkCRwlqZTLchGwS2FJYUVhTXZedl4cgNl5wqvawcMuGZZ8dm1XpcXWK6ygvNiG29OgvPTNs7S3@wVtRECRtXUw@LAHK1CrzYGlvfziS5EFGVtFCBoOjewuqtGQSxoqmiGhz1SzMNt@RhUCTGbaRHiHBvlp/0hjtGth/gBSiO90S7cMCqE/Q/N/9KvF8N3EQY/2iHeD/HL6/B0cdLqop0@b8GirBv7Aw)
A lambda function, mapping the `Int` values `0..3` to the images in the order listed in the OP.
[Answer]
# [Python 2](https://docs.python.org/2/), ~~292~~ ~~290~~ ~~284~~ ~~282~~ 281 bytes
```
i,j,d,e,x,y=input()," "," /\\ ","/  \\","|  |","\__/"
f=i<1
l,m,n,p,q,s=3*f*j,j*(i<3),d*f,e*f,x*f,j*(i>0)
print"\n".join(([l+j+d,l+j+e]+[l+"|    |"]*3+[l+"|____|",l+j+y],[" db\n_/\_",y])[i>2]+([l+j+x]*4+[n+s+x+n,p+s+x+p]+[q+s+x+q]*18+[s+"A"*(4,12)[f]],[m+x]*3+[m+"|__|",m+d])[i>1])
```
[Try it online!](https://tio.run/##JY7RasQgEEXf8xXikzpD0yT7sA@bhX6HilBMqLJxTZNCAvvv6ZgVrtcZxnsm7@vPM7XHETCixwE33PuQ8t8qJHLGSbUxxWvGjCF/MfYiM87VvBr7cGuqB06YMOOMS9@pUUWMSoRbJ9GrEQfSRiq9@6es8m9IKzeJf8RnSELoB0TwWO7BAlUFUSBWde/S0SFmmdgtas78t0muNo7jbqUO99bCO2az6gI6wQIb0EanZwqdz9dsVXMFvQD/4kpcsGmlHi0lTuUjwaYTRqgJ/BncWHkc3T8 "Python 2 – Try It Online")
Takes an integer 0 to 3 as input and uses list indexing (1 or 0) to build each output.
-2 for an unneeded pair of brackets.
-6 by removing a variable assignment that was only used once.
-2 for another single use variable.
-1 with a tip from @Rod
[Answer]
# [Ruby](https://www.ruby-lang.org/), ~~234~~ ~~212~~ 205 bytes
```
->n{y=*"| "
h=%w{/ /\ }+["|  "]*3+%w{|__ \\_}+y*3
t=%w{|_ /}
[h+["| ","/\\ | ","/  \\| ",*["|  || "]*18,?A*6],h+y*21<<?A*2,h+t,%w{d _/ \\_}+y*3+t][n].map{|a|a.rjust(6," ")+a.reverse.tr("\\\\/d","/\\\\b")}}
```
[Try it online!](https://tio.run/##PY3RSsQwEEXf8xXDiNAmMXG3sPiwUfyOJpSuzVIE49KmSmny7XW2q87TvYfLmWE6zevZrA/PYZkNxwTIenP/vWjQFrKoiQA6XgliqWnA2iaLmVcsmo2Azqzutx1K1NbCLQAtr4lvhpSukt2TfHnlByd7Mux3xyO1PZUoSdVBo//tIro6OPXRXpbUplYN79MYi4NEwFJQ9V9@GL2KQ4GWTne339aesMx5LR6Vqkrl27ceuk9IITGAyxRHwDqYuyVkh3/kTI9@M/OhW38A "Ruby – Try It Online")
Takes an integer 0-3. Builds an array of the left halves of each phase, indexes in, then pads and reflects each row. All padding is to the same width, so the latter phases have leading whitespace. Returns an array of strings.
-2 bytes: Declare `y` as an array right away instead of needing `*[y]` later.
-5 bytes: Replace `x="\\"` with `t=%w{_| \\}`.
-5 bytes: Less dereferencing, more array addition.
-1 bytes: `h+y*21+[?A*2]` -> `h+y*21<<?A*2` in phase 1.
-3 bytes: The spec allows the omission of `*$/` to join the result.
-4 bytes: `["b","\\_","_/"]` -> `%w{b \\_ _/}` in phase 3.
-2 bytes: Use `%w` notation in the head array also.
-7 bytes: Use `rjust` instead of manual padding (this also means generating the left side and mirroring it, instead of starting with the right side)
Ungolfed:
```
->n{
  y=*"| "                                            # Same as y=[" |"]
  h=%w{/ /\ }+["|  "]*3+%w{|__ \\_}+y*3              # Head for phases 0-2
  t=%w{|_ /}                                         # Tail for phases 2,3
  [
    h+["| ","/\\ | ","/  \\| ",*["|  || "]*18,?A*6], # Phase 0
    h+y*21<<?A*2,                                    # Phase 1
    h+t,                                             # Phase 2
    %w{d _/ \\_}+y*3+t                               # Phase 3
  ][n].map{|a|                                       # Choose phase
    a.rjust(6," ") +                                 # Pad left to width 6
    a.reverse.tr("\\\\/d","/\\\\b")                  # Add mirror (right side)
  }
}
```
[Answer]
# [SOGL V0.12](https://github.com/dzaima/SOGLOnline), 90 [bytes](https://github.com/dzaima/SOGL/blob/master/chartable.md)
```
┐∙2╚;+ƨA+.1>?jj■|_ /√+}R
3<?'».1>⌡9R"    kΓC+SA}‘03ž}.‽'⁴R╬³2±6«ž}.3=?4R╬³"XƧ⁸│\׀2⁴‘4n10žP}╬³
```
[Try it Here!](https://dzaima.github.io/SOGLOnline/?code=JXUyNTEwJXUyMjE5MiV1MjU1QSUzQisldTAxQThBKy4xJTNFJTNGamoldTI1QTAlN0NfJTIwLyV1MjIxQSslN0RSJTBBMyUzQyUzRiUyNyVCQi4xJTNFJXUyMzIxOVIlMjIlMDlrJXUwMzkzQytTQSU3RCV1MjAxODAzJXUwMTdFJTdELiV1MjAzRCUyNyV1MjA3NFIldTI1NkMlQjMyJUIxNiVBQiV1MDE3RSU3RC4zJTNEJTNGNFIldTI1NkMlQjMlMjJYJXUwMUE3JXUyMDc4JXUyNTAyJTVDJXUwNUMwMiV1MjA3NCV1MjAxODRuMTAldTAxN0VQJTdEJXUyNTZDJUIz,inputs=Mw__,v=0.12)
Inputs 0/1/2/3 correspondingly to the bytes 1/2/3/4
[Answer]
# [Red](http://www.red-lang.org), 333 bytes
```
f: func[g][t:{    }b:{ /\ }c:{/  \}d:{   |}e:{|}j:{\__/}k:{|  |}a:{AAAA}h:[1[t b]1[t c]3[d t e]1[d{____}e]1[t j]]z:[3[t k]1[t{|__|}]1[t b]]r: func[w][foreach[i v]w[loop i[print rejoin v]]]switch g[1 do[r h r[4[t k]1[b k b]1[c k c]18[k k k]]r[1[a a a]]]2 do[r h r[24[t k]]r[1[t a]]]3 do[r h r z]4 do[r[1[t{ db}]1[t{_/\_}]1[t j]]r z]]]
```
[Try it online!](https://tio.run/##RY9LbsQgDIb3OYU1F4jyWFTseoVuHQslQCaPajKitJGGcPbUkKQ1EvbnH8OPNXr/MBqQ9l5A//1QeCd0wgNH6DjnDQQlfA7QBJ36WzDCb2ESvpEyDzNDbLbCv3OEQWCBDjqKu6IKNTgwTNpLjmCSMBG9BFZczZH9JuUW6Bgke1pZCfvFmlYNOMIPrfi5LE8Y8WnHhwNrpmV8cJ/oax2dGuCOBegFLQxgsT7v7mBOZhRnRcUbzlzM/AjbbIEXz5f/Y@Uxl2SXxOpPhBfVCaLmQXfJsZd5I8P1q3iIaD8s3opb1kORnVRGKi@qIlUX1ZHqbP8F "Red – Try It Online")
Takes 1 - 4 as input
```
f: func [ g ] [
    t: {    }
    b: { /\ }
    c: {/  \}
    d: {   |}
    e: {|}
    j: {\__/}
    k: {|  |}
    a: {AAAA} 
    h: [1 [t b] 1 [t c] 3 [d t e] 1 [d {____} e ] 1 [t j]]
    z: [3 [t k] 1 [t {|__|}] 1 [t b]]
    r: func [ w ] [
        foreach [ i v ] w [
            loop i [print rejoin v]]]
    switch g [
        1 do [r h r [4 [t k] 1 [b k b] 1 [c k c] 18 [k k k]] r [1 [a a a]]]
        2 do [r h r [24 [t k]] r [1 [t a]]]
        3 do [r h r z]
        4 do [r [ 1 [t { db}] 1 [t {_/\_}] 1 [t j] ] r z]
    ]
]
```
## [Rebol](http://www.rebol.com/), 258 bytes
I made an experiment with Rebol's `compress` function, compressing a string of all the 4 stages and printing the corresponding part of it after decompression:
```
f: func[n][o:[[1 374][374 196][570 74][644 37]]
b: decompress debase{eJzjUgAB/RguMKWgAGbUgDg1OFnxQABmKcTEx+uDGTVQOZwM/RgwA2QTyBYQG2wbiAHDw5vjiAS4IEEOCwGoWmQKGsaQAIYE4eAhqeMFSCICGZKSxBWvHxPPBVYKDzkoAVamHwMAjkWmoKkCAAA=}
repeat i o/(n)/2[prin b/(i + o/(n)/1)]]
 f 3
  /\
 /  \
|    |
|    |
|    |
|____|
 \__/
 |  |
 |  |
 |  |
 |__|
  /\
```
[Answer]
# [Ruby](https://www.ruby-lang.org/), ~~209~~ 183 bytes
```
->n{z=[a=' /\\ ',b='/  \\']+['|    |']*3+%w{|____| \__/}+[c='|  |']*24+[?A*n]
n>4&&z[10..-n/6]=n>8?[c,a+c+a,b+c+b]+[c*3]*18:['|__|',a]
n==5&&z[0,6]=%w{db _/\_}
z.map{|i|i.center(12)}}
```
[Try it online!](https://tio.run/##FY1NDoIwGET3nqIbqbaFyo@GmBTjOdqmaSsmLmwIQoxQzo4fs5jN5L3pR/dbn2JNmzBPQlqBEVcKYeYE5ggphTWVOCJIxJqUdP@do4FEpIzhC5VebPM2FhWVtzsJeheaKkkmmZ@yLA38okVo6pv0zFJPLXPQDrSelJrk9RX84MPMAijEeSNPDCC4ejhkuDLLbsretpvjK74y34ah7Q95cVyWtRuHD3rKvNDrHw "Ruby – Try It Online")
Required inputs as follows:
```
Centre core + upper stage + fairing: 4
As above + boosters : 12
Upper stage + fairing: 6
Upper stage without fairing 5
```
The idea is to take the `centre core + upper stage + fairing` as a default and modify it for the other outputs. 
**Commented**
```
->n{
  #z = array of parts for centre core + upper stage + fairing, with n A's at the bottom
  z=[a=' /\\ ',b='/  \\']+['|    |']*3+%w{|____| \__/}+[c='|  |']*24+[?A*n]
  #if n not 4, z from element 10 to the last [10..-1] or last but one [10..-2] =
  n>4&&z[10..-n/6]=
    n>8?[c,a+c+a,b+c+b]+[c*3]*18:   #centre core + boosters#
    ['|__|',a]                      #upper stage engine
  n==5&&z[0,6]=%w{db _/\_}        #if n==5, replace first 6 elements with unfaired payload
  z.map{|i|i.center(12)}          #pad each element of array to 12 characters
}                                 #return array of strings (format allowed by question)
```
[Answer]
# [Jstx](https://github.com/Quantum64/Jstx), 124 [bytes](https://quantum64.github.io/Jstx/codepage)
```
↕t▌ÇÇÉÇ~éÇÇÇÇÇÇÇÉΘçK↑ε♀▄ü╙Çz⌡"#ße┐é+\òEhZ█╣S♪[ƒuø>!f♪K▌;0♂9☺}ås══½☻eP▌◙&£óZß:&╝af$V≈-wº[√D(♪╘Pφó√ò▲¶>å⌡◘├^∟z◘αßj◙÷»|æ⌠┼øk&£b
```
Explanation
```
↕t▌ÇÇÉÇ~éÇÇÇÇÇÇÇÉΘçK↑ε♀▄ü╙Çz⌡"#ße┐é+\òEhZ█╣S♪[ƒuø>!f♪K▌;0♂9☺}ås══½☻eP▌◙&£óZß:&╝af$V≈-wº[√D(♪╘Pφó√ò▲¶>å⌡◘├^∟z◘αßj◙÷»|æ⌠┼ # Push literal      /\\n    /  \\n   |    |\n   |    |\n   |    |\n   |____|\n    \__/\n    |  |\n    |  |\n    |  |\n    |  |\n /\ |  | /\\n/  \|  |/  \\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\nAAAAAAAAAAAA0\n  /\\n /  \\n|    |\n|    |\n|    |\n|____|\n \__/\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n AAAA0\n  /\\n /  \\n|    |\n|    |\n|    |\n|____|\n \__/\n |  |\n |  |\n |  |\n |__|\n  /\0\n db\n_/\_\n\__/\n|  |\n|  |\n|  |\n|__|\n /\
ø                                                                                                                       # Push literal 0
k                                                                                                                       # Push a list of strings obtained by splitting the second stack value with the first stack value.
&                                                                                                                       # Swap the top two stack values.
£b                                                                                                                      # Push the value in the list of the second stack value at the index of the first stack value.
```
[Try it online!](https://quantum64.github.io/Jstx/JstxGWT-1.0.3/JstxGWT.html?code=4oaVdOKWjMOHw4fDicOHfsOpw4fDh8OHw4fDh8OHw4fDic6Yw6dL4oaRzrXimYDiloTDvOKVmcOHeuKMoSIjw59l4pSQw6krXMOyRWha4paI4pWjU%24KZqlvGknXDuD4hZuKZqkvilow7MOKZgjnimLp9w6Vz4pWQ4pWQwr3imLtlUOKWjOKXmSbCo8OzWsOfOibilZ1hZiRW4omILXfCulviiJpEKOKZquKVmFDPhsOz4oiaw7LilrLCtj7DpeKMoeKXmOKUnF7iiJ964peYzrHDn2ril5nDt8K7fMOm4oyg4pS8w7hrJsKjYg%3D%3D&args=MA%3D%3D)
[Answer]
# [C (clang)](http://clang.llvm.org/), ~~421~~ 408 bytes
```
r,d,i;f(t){char *s="    ",*e="\n",*l[]={" /\\ ","/  \\","|    |","|____|","\\__/","|  |","AAAA","|__|"," /\\ ","_/\\_","\n"," db","|  ||  ||  |"},*p[]={"VABU3C1DVE8FFF1G","VABU3C1DVE4F1RYAFAKBFBKZ9MM1YGGG","VABU3C1DVE3F1HI","VLJE3F1HI"},*a="",*b,*c=e,*q=p[t];for(r=1;d=*q++;r=(d/48&&57/d)?d-48:r,c=(d/89&&90/d)?e+90-d:c,a=(d/82&&86/d)?s+86-d:a)if(d/65&&77/d)for(b=l[d-65],i=0;i<r;i++)printf("%s%s%s",a,b,c);}
```
[Try it online!](https://tio.run/##VY9tT8IwEMff71Ncalz2UBxTwGGpBtShIm9MNFFGlrFu2gQnduMV8tnxzocYr2n@d7/73zXNW/kyq553e7rKl2tVwKBulH47eDm1doYrrkXpNO4mf8kMeLVkgMG4V0iWVKjL2VxuGARJgpQFAEmC@kGuD0pSDEqSJE2D7w6VQ4zvNlW/4ylqSuaKoFr8@H8v23Jv9fXew3B0f3QeXjxcRnEch2M0/qFOHN49DuPhZBSPJk/96TR8HI//W47i8OqayO3NT46rM8nwQwvu5bLg3rtczZq5KN@MY2QolPTefV8Y6aigE9l29zhQ7plqdaITw3OiUd@2@22ihd9vt9RJzrMvfmjbUY947Uc95JmrS@S9rm0f0xZ6YiGXM9Xqdedcy7bQAyO077sro6umdNh@TYfxjC947ortDjG8ZrpyXNhYQJUWFtAiDRLaAjQMoIOCS8gBpaNddMBq3dQOY5RvLQtM0axNhQPWdvcJ "C (clang) – Try It Online")
]