@dcturner thank you :] this reminds me my toilet flush indeed.
Another one and it is really not what I was trying to do some hours ago...

Cart #24443 | 2016-07-03 | Code ▽ | License: CC4-BY-NC-SA

 ```x=64y=64 c=1i=0 p=128 pset(x,y,1) while 1 do x+=-1+rnd(2) y+=-1+rnd(2) if(x>p)x=p if(x<0)x=0 if(y>p)y=p if(y<0)y=0 pset(x,y,c) c+=.0001 end ```
P#24444 2016-07-03 14:05 ( Edited 2016-07-03 18:07)
1

Cart #24446 | 2016-07-03 | Code ▽ | License: CC4-BY-NC-SA
1

I couldn't get mountains in under the character count, so I decided to fly over Kansas instead.

 ```n=15 t=0::s::cls()t-=1 for i=0,n do z=(i*n+t%n)/1500 for j=-n,n do c=sin(t/300)pset((j*.7+c)/z+64,(-j*c/9+c/3+1)/z+64,9)end end flip()goto s ```
P#24447 2016-07-03 14:36 ( Edited 2016-07-03 18:36)

Bwahahahaha electricgryphon. I hit the same problem, but I love your solution ^__^

P#24451 2016-07-03 15:11 ( Edited 2016-07-03 19:11)
2

Cart #24455 | 2016-07-03 | Code ▽ | License: CC4-BY-NC-SA
2

I made a compilation of all my tweetcarts (20 so far) in one cartridge to see how it could work.
There is free tokens for about 4x more so we could do a prety long animation everyone together, maybe with a random switch.
It was not so hard to do, but I had to use labels, so some manual work is required. I needed to add one line in each cart loop and one line to link label and cart's id. My early carts needed some rewrite (those using _draw, some with no loop at all). I also renamed labels inside carts, but it may be skipped if included in a local scope.
If someone is good at scripting, maybe it could be automated ...
Enjoy.

P#24457 2016-07-03 16:10 ( Edited 2016-07-03 20:10)

Cart #24463 | 2016-07-03 | Code ▽ | License: CC4-BY-NC-SA

 ```s={0,0,0,48,-24,48,-84}::a::cls()u=rnd(3)-1 for x=0,7 do for y=1,7 do c=7 if((s[y]+204)/2^x%2<1)c=0 pset(60+x,60+u+y,c)end end flip() goto a ```

Small 1-bit sprite decoder with just enough space left to make it hop.

P#24464 2016-07-03 16:39 ( Edited 2016-07-03 20:39)

Cart #24467 | 2016-07-03 | Code ▽ | License: CC4-BY-NC-SA

 ```t=1r=40n=64s=sin::a::cls()for i=0,r do for j=0,r do line(s(t/8)*n+n,s(i/8+.3)*n+n,s(j/8)*r+n,s(j/8+.3)*r+n,t%5+8)end end t+=.08 flip()goto a ```
P#24468 2016-07-03 17:30 ( Edited 2016-07-03 21:30)

Cart #24469 | 2016-07-03 | Code ▽ | No License

Riffing on knarf's "not what it was meant to be". 138 chars.

 ```poke(24364,5)x=64y=64 t={0,5,6,7}c=1i=0p=64 ::s:: x+=-.5+rnd(1) y+=-.5+rnd(1) x%=p y%=2*p circ(x,y,1+rnd(1),t[flr(c)%4+1])c+=.0001 goto s ```
P#24470 2016-07-03 17:34 ( Edited 2016-07-03 21:35)

:] everything is good

P#24474 2016-07-03 18:25 ( Edited 2016-07-03 22:25)

@NuSan nice compilation!

P#24475 2016-07-03 18:38 ( Edited 2016-07-03 22:38)

Cart #24487 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

tried some metaballs but for some reason I have no idea how many ch--ALL GLORY TO THE HYPNOTOAD!

P#24488 2016-07-03 20:11 ( Edited 2016-07-04 00:11)
2

Cart #24491 | 2016-07-04 | Code ▽ | No License
2

I told you to stop poking at the lava lamp. Now it's gone all fuzzy.

 ```m=0x6000 t=1::s:: t+=.001 x=flr(rnd(63)) y=flr(rnd(127)) a=m+flr(x+y*64) v=flr(t+(sin((y)/128)+sin(x/64))*64) poke(a,v) goto s ```
P#24493 2016-07-03 20:29 ( Edited 2016-07-04 00:29)
1

God this is hard, original effect had motion as well, got like 10 chars away but couldn't get it. (added more after removing motion, so I was doing stuff like just using `circ`)

Cart #24496 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA
1

 ```::s::circfill(64,64,rnd(10),10) for x=0,128 do for y=0,128 do c=pget(x,y) if(rnd(2)+c
P#24495 2016-07-03 23:09 ( Edited 2016-07-04 03:15)

Cart #24497 | 2016-07-04 | Code ▽ | No License

140

 ```poke(24364,7)w=8z=1i=.0001p=64x=0y=0s=sin::a:: x+=1+s(z) y+=1+s(i) x%=p y%=p w+=i if(w>192)w=8 circ(x,y,1,flr(2+s(x/w)+s(y/w)+z))z+=i goto a ```
P#24498 2016-07-04 00:08 ( Edited 2016-07-04 04:08)

Cart #24502 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

 ```t=0::s::w=64 t+=.01 z=40+9*cos(t)for y=-w,w do q=z+4*cos(y/w)for x=-w,w do e=z+4*sin(x/w)pset(x+w,y+w,bxor(x/q+t,y/e-t*2)%2+1)end end goto s ```
P#24503 2016-07-04 02:52 ( Edited 2016-07-04 06:52)
1

Cart #24505 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA
1

It's that Amiga effect.

 ```t=0::s::w=64 t+=.01 for y=-w,w do q=16+8*cos(t+y/(w*2))for x=-w,w do pset(x+w,y+w,bxor(x/q,y/16-t*8)%2+1)end end goto s ```
P#24506 2016-07-04 03:14 ( Edited 2016-07-04 07:14)

@ultrabrite That toad one is 265 chars :|

P#24508 2016-07-04 03:39 ( Edited 2016-07-04 07:39)
1

Cart #24512 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA
1

 ```t=0v=1/32h=1::g::cls()for i=0,9 do s=t+0.1*i ?i,64+cos(s)*40,64+sin(s)*40,15-i end circ(64,26,10,1)t+=v if(btnp(4))h=32/31 v/=h flip()goto g ```

140/140

Shitty wheel of fortune. Press Z to stop the wheel and Ctrl+R to restart.

P#24513 2016-07-04 07:18 ( Edited 2016-07-04 11:18)

@ilkke ^_^ really? i'm pretty sure I coun-- O_O ALL GLORY TO THE HYPNOTOAD!

P#24515 2016-07-04 08:17 ( Edited 2016-07-04 12:17)

Cart #24517 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

I found a solution to prevent cheating by just pressing the arrow up: it is now a real, complete game ha ha.

🐤 FLAPPYTWEET 2

• Use arrow up to jump over the walls
• If you hit a wall, the floor or the ceiling, you die

140 chars:

 ```y=1 w=128 t=0 while y>0 do cls()t+=1 srand(flr(t/w))x=w-t%w y+=1 if(btn(2))y-=3 pset(9,y)i=rnd(w)line(x,i,x,w) if(x==9 and y>i)y=0 flip()end ```
P#24518 2016-07-04 08:55 ( Edited 2016-07-04 16:45)
1

Cart #24520 | 2016-07-04 | Code ▽ | No License
1

Made this slow abstract thing by accident last night?

 ```cls() f=128 t=0 p=0 while 1 do for i=1,f do a=flr(t/f) pset(-f+t%f+a,t%f,(t%p/8+rnd(t%a/8))%8-6) t+=10 end p+=1 end ```
P#24521 2016-07-04 09:21 ( Edited 2016-07-04 13:21)

Cart #24524 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

all your brains are belong to us.

 ```p={0,1,5,6,7,6,5,1}u=64t=0::z::x=u-rnd(128)y=u-rnd(128)pset(x+u,y+u,16*atan2(x,y)-sqrt(x*x+y*y))c=1+flr(rnd(8))pal(t+c,p[c],1)t+=0.01 goto z ```
P#24525 2016-07-04 10:26 ( Edited 2016-07-04 14:26)

Cart #24526 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

I wanted to recreate one of the scene from the "Best Illusion of The Year Contest" winner entry named "Motion Integration Unleashed: New Tricks for an Old Dog", so I created an illusion with the so named "Gabor elements". You can watch the original illusion in the video at 0:35.

 ```cls(6)z=0::s:: z+=.001 for a=0,90 do x=a%7 y=(a-x)*10/7+1 x*=20 for i=x,x+3 do b=sin(z)*(61-y)/5+i line(i,y,i,y+5,b%3+5)end end goto s ```

It took a while to figure out that I can use cls(6) instead of rectfill(0,0,128,128,6). I had to cut out some features to keep the 140 character limit: in the video the Gabor elements rolling the other direction in every second column, you can re-enable modifying the 9th line to:

 ```b=sin(z)*cos(x/40)*(61-y)/5+i ```
P#24528 2016-07-04 10:55 ( Edited 2016-07-04 14:55)

Cart #24529 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

I managed to reorganize the code and made every other column rolling counterwise.

 ```cls(6)z=0::s:: z+=.001 for a=0,90 do c=a%7y=1+10/7*(a-c)for i=c*20,c*20+3 do b=i+sin(z)*cos(c/2)/5*(61-y)line(i,y,i,y+5,b%3+5)end end goto s ```
P#24530 2016-07-04 11:02 ( Edited 2016-07-04 15:02)

Cart #24532 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

Another variation

P#24533 2016-07-04 11:19 ( Edited 2016-07-04 15:19)

@arnodick Really dig that one. Needs a vaporwave soundtrack.

P#24534 2016-07-04 11:24 ( Edited 2016-07-04 15:24)

@solar thanks! was thinking it needed music as well :) I wonder if making a track and just using music(0) is considered cheating?

P#24539 2016-07-04 12:15 ( Edited 2016-07-04 16:15)
1

Cart #24540 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA
1

139 chars

 ```a=24576;t=0;v=126 function _draw()t+=.01 memcpy(a,a+63,8129)c=1+rnd(t)x=rnd(v)h=v-rnd(t)rectfill(x-1,h-1,x+6,v,0)rectfill(x,h,x+5,128,c)end ```
P#24541 2016-07-04 12:24 ( Edited 2016-07-04 16:24)

Cart #24542 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

140.

 ```t=73p={t}n=128 function _draw()cls()for i=n,2,-1 do p[i]=p[i-1]x=p[n-i]or 0rect(x,n-i,x+1,n,i)end t+=0.02 p[1]+=sin(t)+sin(t/2)+cos(t/3) end ```

Cart #24543 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

Same as curtain but without the cls(). 135.

P#24547 2016-07-04 12:46 ( Edited 2016-07-04 16:46)

I tried to draw some static optical illusion but i think it's a fail :p
At least it has less than 140 chars !

Cart #24545 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

 ```cls() n=30 a=64 b=a*2 for i=0,n do x=a+a*sin(i/n) y=a+a*cos(i/n) line(x,y,a,a,7) end for i=0,5 do line(11+i*b/6,0,11+i*b/6,b,8) end ```
P#24549 2016-07-04 13:02 ( Edited 2016-07-04 17:02)
5

Cart #24555 | 2016-07-04 | Code ▽ | No License
5

FIRE ORB

 ```cls()::s:: a=rnd()r=rnd(63)x=64+cos(a)*r y=65+sin(a)*r cl=pget(x,y) if(rnd()<.01)cl+=1 if(r>62.9)cl=8 circ(x,y-1,1,cl)goto s ```
P#24557 2016-07-04 15:13 ( Edited 2016-07-06 07:42)
1

by cap
Cart #24556 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA
1

 ```w=64 t=100000::s:: t+=0.4 for i=0,w*1.4 do c=(((i+t)/8)%10)+6 circ(w+(4*sin(t/i)),w+(4*cos(t/i)),i,c) end goto s ```
P#24558 2016-07-04 15:18 ( Edited 2016-07-04 19:18)

Oh, that fire orb is excellent. I was worried it wouldn't reach homeostasis, but it turns out quite nicely. :)

P#24568 2016-07-04 16:40 ( Edited 2016-07-04 20:40)

My attempt at some sort of game :D

When the red bug appears, press "Z" to squash it. Wait too long, and game over! You get less and less time to squash the bug as time goes on.

Of course characters needed to be saved... so the game crashes to indicate you lost :)

Cart #24567 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

 ```t=0q=rnd(150)r=30 cls()function _draw()t+=1 if(t>q)pset(q%128,q%128,8) if(btn(4) and t>q)then cls()q+=rnd(99)+20 r-=1 end if(t>q+r)x+=1 end ```

Exactly 140 characters!

P#24569 2016-07-04 16:43 ( Edited 2016-07-04 20:43)

Nice, grey! It's an actual game. :)

If you reformat a bit, you can get a few chars back and make the crash report a little more meaningful to the player:

 ```t=0q=rnd(150)r=30 cls()function _draw()t+=1 if(t>q)pset(q%128,q%128,8) if(btn(4)and t>q)cls()q+=rnd(99)+20 r-=1 if(t>q+r)you_missed_it() end ```
P#24572 2016-07-04 17:15 ( Edited 2016-07-04 21:15)

Cart #24574 | 2016-07-04 | Code ▽ | License: CC4-BY-NC-SA

 ```poke(0x5f2c,7)t,c=0,0,0 ::a:: t+=.0009 for i=0,32 do c+=1 for j=-2,2 do circ(32+j*cos(t)*3*i,32+j*sin(t)*4*i,i*sin(t)*15,c%16)end end goto a ```
P#24575 2016-07-04 17:40 ( Edited 2016-07-04 21:40)

Cart #24581 | 2016-07-04 | Code ▽ | No License

 ```t=0 cls()::s::if rnd(1)<0.99 then circ(54+rnd(20),54+rnd(20),rnd(90),t) else circfill(54+rnd(20),54+rnd(20),rnd(50),t) end t+=3 goto s ```
P#24582 2016-07-04 19:07 ( Edited 2016-07-04 23:07)

@Felice Ahhh, thanks! So many spacing tricks with lua that I'm discovering :) And I love the crash message idea, a fun way to send a message :D

P#24585 2016-07-04 19:55 ( Edited 2016-07-04 23:55)

Cart #24586 | 2016-07-05 | Code ▽ | No License

140

 ```r=1 d=0 ::a:: d+=.01 d%=256 r+=.1 r%=192 for t=0,8,.05 do x=64+r*sin(t/8)+d*cos(d+t) y=64+r*cos(t/8)+d*sin(d+t) circ(x,y,2,r/8+d) end goto a ```

So much awesome in this thread. We should do another "tweet" jam, but with 256 chars. I imagine even cooler stuff would come out of that.

P#24587 2016-07-04 20:16 ( Edited 2016-07-05 00:16)

Cart #24599 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA

 ```::s:: x=rnd(128) y=rnd(128) if(rnd()<0.0001)circ(x,y,5,rnd(10)+1) c=pget(x,y) if(c>10)c=1 if(c>0)pset(x+rnd(2)-1,y-1,c) goto s ```
P#24600 2016-07-04 23:45 ( Edited 2016-07-05 03:45)
1

Cart #24613 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA
1

More CRT worship.

 ```o=128 l=o*64 d=l*3 m=memcpy pal(6,9)m(0,d,l)i=9::s::m(d,d*.6,l) for y=0,o do r=rnd(2)sspr(r,y+i/o,o,1,0,y*2)end flip()i*=2 if(r<1)i=9 goto s ```

140 characters.

P#24614 2016-07-05 08:06 ( Edited 2016-07-05 12:06)

Ernõ Rubik sometimes dreamed of Tinkertoys as a child

Cart #24619 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA

P#24620 2016-07-05 08:36 ( Edited 2016-07-05 12:36)

Cart #24622 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA

139

 ```n=127 t=0::l::cls()t+=0.005 x=64+64*sin(1.6*t)y=n-n*abs(sin(t))line(x-2,0,x+2,0,1)circ(x,y,y/10,8+y/42)rect(x-25,120,x+25,n,12)flip()goto l ```
P#24623 2016-07-05 09:36 ( Edited 2016-07-05 13:36)

I started collecting nice little tricks I learned from these carts, feel free to fork and add stuff and so on (I did not explain stuff too well):

P#24625 2016-07-05 10:20 ( Edited 2016-07-05 14:20)
1

Cart #24631 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA
1

138

 ```a="\128\132\133\134\135\136\137\138\140\141\143\144\146\147\150\152\153"r=rnd::l::i=r(#a)print(sub(a,i,i),r(122),r(124),r(16))flip()goto l ```

Cart #24632 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA
1

1. Restart the cart to generate another.
 ```p=print r=rnd cls(3)rectfill(0,0,127,50,12)p("\143",20,20,10)for i=1,50 do p("\149",r(120),49+r(78),8+r(4))end p("\138",r(119),45+r(80),6) ```

Cart #24633 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA
1

1. Inspired by the tweetcart Tileset Maker by Alberton. Pause to have a look!
 ```h="\130\134\138\140"b="\137\146"r=rnd::a::for x=0,96,8 do c=1+r(15)i=1+r(4)j=1+r(2) ?sub(h,i,i),x,117,c ?sub(b,j,j),x,121,c end ?"\n" goto a ```
P#24634 2016-07-05 12:45 ( Edited 2016-07-05 22:00)

Cart #24648 | 2016-07-05 | Code ▽ | No License

 ```t=1w=128::s:: t+=.00002 x=rnd(w)y=rnd(w) v=(t+(sin(y/w)+sin(x/w))) if(rnd(1000)<.01)circfill(x,y,30,8) v=flr(v%1+.5)*7 circ(x,y,1,v) goto s ```
P#24649 2016-07-05 16:53 ( Edited 2016-07-05 20:53)

Well with all this tweetcarts, I guess tokens limit is not an excuse anymore for not making kickass titlescreen for all our future games

P#24653 2016-07-05 17:19 ( Edited 2016-07-05 21:19)

This thread alone was worth getting a license in my opinion. Tonight I'll try and make myself come back and add my own contribution in this space:

Here it is, a quicky bouncy ball

Cart #24685 | 2016-07-06 | Code ▽ | License: CC4-BY-NC-SA

I definitely have some spare room, but I'm not sure I can fit multiball in.

 ```x=9 y=9 a=2 b=1 ::t::cls() circfill(x,y,6,5) line(x-4,y-2,x-2,y-4,7) x+=a y+=b if((x<8)or(x>119))a*=-1 if((y<8)or(y>119))b*=-1 flip()goto tt ```

edit -changed it to the lean/correct 140 char version.

bloated sound and anim version:

Cart #24684 | 2016-07-06 | Code ▽ | License: CC4-BY-NC-SA

P#24656 2016-07-05 17:37 ( Edited 2016-07-06 04:47)

Cart #24658 | 2016-07-05 | Code ▽ | No License

136

More blood on water :)

Once I got the waterfall effect going, the Contra theme song popped in my head. :)

 ```::a::c={1,12,7} x=rnd(128) y=rnd(128) p=pget(x,y) pset(x,y,c[1+flr(rnd(#c))]) rect(x,y+1,x,y+3,p) if(rnd(1000)<1)circ(64,64,48,8) goto a ```
P#24659 2016-07-05 18:48 ( Edited 2016-07-05 22:48)

Cart #24661 | 2016-07-05 | Code ▽ | License: CC4-BY-NC-SA

Struggled a lot minifying this, I'm very new to minifying. Got it though, not as much as I wanted but it's something. Every run it creates a kind of 'travelling salesman problem' map and then just creates random routes from one point to another, in random colours.

 ```a={}cls()n=9 for i=0,n do a[i]={x=rnd(128),y=rnd(128)}end s=0 function _draw() e=flr(rnd(n))line(a[s].x,a[s].y,a[e].x,a[e].y,e+1)s=e end ```
P#24662 2016-07-05 19:10 ( Edited 2016-07-05 23:10)

Cart #24668 | 2016-07-06 | Code ▽ | License: CC4-BY-NC-SA

Had to cheat a little bit here for the cursor sprite, but the code is 140 characters. Uses this mouse stuff.

 ```poke(24365,1)::a::x=stat(32)-25y=stat(33)+2rectfill(x,y,x+50,y+8,12)rect(x,y,x+50,y+8,1)y+=2 print("error",x+2,y,7)spr(1,x+25,y)flip()goto a ```

Cart #24669 | 2016-07-06 | Code ▽ | License: CC4-BY-NC-SA

Here I'm cheating a lot, just for fun. Code is 126 and obviously could be much smaller.

 ```poke(24365,1) palt(0,f) palt(14,1) ::a:: x=stat(32) y=stat(33) if(stat(34)>0)sspr(8,0,47,17,x-27,y-2) spr(7,x,y) flip() goto a ```
P#24670 2016-07-05 20:39 ( Edited 2016-07-06 00:43)