-Why exactly is a given pattern invalid? We're given no way of knowing without either manual inspection (and for subtle errors, things can be easy to miss, and I'd rather not be wasting time on looking for something not immediately obvious when LifeViewer could be telling me exactly what went wrong in seconds) or manually copying and pasting the pattern in question over to another tab containing a LifeViewer input box (which, while potentially less time-consuming for diagnostics, still takes more time than I'd like it to).

-What is the pattern in question supposed to look like? Again, there's no way to know without opening the pattern in another LifeViewer window or Golly or something else (and there's no guarantee that Golly supports the rulespace in the first place and won't just immediately reject the entire rule file).

-It's kind of inconsistent as well. Invalid script commands don't stop a pattern from being viewed, so why should an invalid RLE (especially one which can be confirmed to be an RLE in the first place)?

I'm creating a separate thread for this since I'm not sure whether it's Chris or Nathaniel who'd be in control of making such a change to allow these to be playable.

One thing I would like to note is that I'd like to preserve the ability to see at a glance whether a pattern is valid without having to open the viewer. Currently the (persistent after the page fully loads since it takes time to fetch ruletables and the like) absence of "show in viewer" on a code box indicates this - but that's what this thread is intending to get rid of, so perhaps we could have it be phrased differently: valid RLEs could have the link be "play in viewer" (since the pattern would usually be playable if this shows up), whereas invalid RLEs (which the site recognises as RLEs rather than any old text, but are otherwise invalid for some reason or another) use "show in viewer" instead (as the pattern within would only be viewable, and further interactivity would be limited).

----

Here's a list of several different types of errors, compiled here for testing purposes, and as a demonstration of patterns that may not have been obviously flawed. The first three of these, despite being invalid, actually

*do*have the ability to be shown in LifeViewer, unlike the rest (feel free to add "the forum doesn't perfectly distinguish between valid and invalid RLEs before forbidding what can be run" to the above list of reasons I want to see this change):

Bounded grid which is too large

Code: Select all

```
x = 10, y = 10, rule = B3/S23:T10000,10000
2o2b2obobo$o2bo3bo$b3o2bobo$o4bo$2bo2b3obo$4bobo2bo$7ob2o$bo5b2o$5b4o$
2o4bobo!
```

Code: Select all

```
x = 10, y = 10, rule = B3/S23
2o2b2obobo$o2bo3bo$b3o2bobo$o4bo$2bo2b3obo$4bobo2bo$7ob2o$bo5b2o$5b10000o$
2o4bobo!
```

Code: Select all

```
x = 10, y = 10, rule = B3/S23History
GA2.2A.A.A$A2.A3.A$.3A2.A.A$A4.A$2.A2.3A.A$4.A.A2.A$7A.2A$.A5.2A$5.4A
$2A4.A.A!
```

Repeated number in isotropic non-totalistic rulestring

Code: Select all

```
x = 4, y = 4, rule = B3-j3j/S23
bo$o$o2bo$3o!
```

Code: Select all

```
x = 4, y = 4, rule = R1,C0,S2-3,B3History
bo$o$o2bo$3o!
```

Code: Select all

```
x = 10, y = 10, rule = R1,C0,S2-3,B3:T100,0
3o5b2o$o8bo$2bo4bobo$3b4o$3bo2bo$3bo2bo$3b4o$obo4bo$o8bo$2o5b3o!
```

Code: Select all

```
x = 9, y = 18, rule = B3/S23:S30*
b2o$bo$bo$2o$3b2o$3bo$3bo$3bo$2b2o$5b2o$5bo$5bo$5bo$4b2o$7b2o$7bo$7bo$
6b2o!
```

Code: Select all

```
x = 3, y = 3, rule = R0,C2,S0,B0
3o$3o$3o!
```

Code: Select all

```
x = 3, y = 3, rule = /2/1
3A$A.A$3A!
```

Code: Select all

```
x = 10, y = 3, rule = B3/S239
b2o4bo$obo4bobo$2bo4b2o!
```

Code: Select all

```
x = 8, y = 8, rule = R1,C0,S2-3,B0-3
b6o$2o4b2o$o2b2o2bo$ob4obo$ob4obo$o2b2o2bo$2o4b2o$b6o!
```

Code: Select all

```
x = 10, y = 10, rule = R1,C0,S2,B3,9
2o6b2o$ob6obo$b2o2bob2o$bo2b2o2bo$b6obo$bob6o$bo2b2o2bo$b2obo2b2o$ob6o
bo$2o6b2o!
```

Code: Select all

```
x = 8, y = 8, rule = 2/03/3
3bo$3bobo$bo$6b2o$2o$6bo$2bobo$4bo!
```

Code: Select all

```
x = 8, y = 8, rule = MAPERROR
o4bo!
```

Code: Select all

```
x = 8, y = 8, rule = W-1
o!
```

Code: Select all

```
x = 8, y = 8, rule = W1
o!
```

Code: Select all

```
x = 8, y = 8, rule = W256
o!
```

Code: Select all

```
x = 7, y = 3, rule = M14,15,13,12,11,10,9,8,7,6,5,4,3,2,1,0
o3b3o$3o2bo$bo!
```

Code: Select all

```
x = 7, y = 3, rule = M15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,1
o3b3o$3o2bo$bo!
```

Code: Select all

```
x = 21, y = 20, rule = R1,C0,S0,12,B1,NL:T21,21
4b13o3bo$3bo7b4o3b3o$2bo7bo2b2o2bo2bo$2bo7bo2bob2o3bo$bo7bo3b2obo3bo$b
o6bo3bo4bo2bo$o6bo2b3o5b3o$o6bobo2bo3b5o$o5bobo3bob2o2b3o$o5b2o2bob2o
3bob2o$o4bo5b2o3bo3bo$o3bo5b2o3bo4bo$o2bo5bobo2bo4b2o$obo4b2o2bobo5b2o
$b6o4bobo5b2o$11b2o6b2o$11b2o5bobo$11b2o5bobo$11b2o3b2o2bo$10b11o!
```

Code: Select all

```
x = 21, y = 20, rule = B1/S0ZL:T21,21
4b13o3bo$3bo7b4o3b3o$2bo7bo2b2o2bo2bo$2bo7bo2bob2o3bo$bo7bo3b2obo3bo$b
o6bo3bo4bo2bo$o6bo2b3o5b3o$o6bobo2bo3b5o$o5bobo3bob2o2b3o$o5b2o2bob2o
3bob2o$o4bo5b2o3bo3bo$o3bo5b2o3bo4bo$o2bo5bobo2bo4b2o$obo4b2o2bobo5b2o
$b6o4bobo5b2o$11b2o6b2o$11b2o5bobo$11b2o5bobo$11b2o3b2o2bo$10b11o!
```

Code: Select all

```
x = 10, y = 10, rule = R1,C0,S2-3,B3,NM:K100,100
2o2b2obobo$o2bo3bo$b3o2bobo$o4bo$2bo2b3obo$4bobo2bo$7ob2o$bo5b2o$5b4o$
2o4bobo!
```

Code: Select all

```
x = 9, y = 5, rule = B3-z/S23
6b3o$5bo2bo$o7bo$obo5bo$2o3bobo!
```