For me, the forum reminds me a little of first-generation 56k modems, hoping that Fred & Co will find a solution.
It's impossible to live with this right now, and unfortunately it's not going to get any better with these damn AI chatbots.




STARGÅTE wrote: Thu Mar 05, 2026 8:08 am Indeed, it is fast now.
Probably, the page loading was also too slow for the AI bots. Now they ask another chat bots, what goes up in the Pure Basic forum.
Welcome, to the AI slop age.

However as said before but othersminimy wrote: Thu Mar 05, 2026 3:24 pm
A trick that I use when programming websites is to leave some fields or elements hidden.
If this is accessed, it is an AI/bot. That greatly limits traffic.

That's just luck. Give it a day or two and it starts over again like the last few weeks.threedslider wrote: Thu Mar 05, 2026 3:42 pm What is happening ?Fast now and work well too. Kudos to Fred and Team
![]()

Why? Just let it open or I create the next thread if it happens again.
As long as it's open, I think it's the same thing.NicTheQuick wrote: Fri Mar 06, 2026 10:08 amWhy? Just let it open or I create the next thread if it happens again.
Code: Select all
Global sw, sh, countDown = 300, life = 3, score = 0, coinQty = 0, trial = 1
Global Dim key.i(255)
Procedure keyb(i.i)
Protected r, ks = KeyboardPushed(i)
If ks And Not key(i)
r = 1
EndIf
key(i) = ks
ProcedureReturn r
EndProcedure
Procedure c31(r, g, b)
ProcedureReturn RGB(r * 255, g * 255, b * 255)
EndProcedure
Procedure c41(a, r, g, b)
ProcedureReturn RGBA(r * 255, g * 255, b * 255, a * 255)
EndProcedure
InitSprite()
InitKeyboard()
ExamineDesktops()
sw = DesktopWidth(0)
sh = DesktopHeight(0)
OpenScreen(sw, sh, 32, "", #PB_Screen_SmartSynchronization, DesktopFrequency(0) )
CreateSprite(0, 256, 128)
TransformSprite(0, 0, 0, sw, 0, sw, sh, 0, sh)
Global Dim p.L(3, 3) ; 4 palettes * 4 attributs * 32 bits = 1Kbits = 128-bytes palette (4 palettes)
Global Dim s.u(63, 7) ; 256 * 8 * 16 bits = 32Kbits = 1-kilobytes sprite (256 sprites)
Global Dim sp(255) ; 2 KB
Global Dim c.a(31, 15) ; 32 columns * 16 rows * 8 bits = 4Kbits text = 512-bytes text
For palette = 0 To 3
p(palette, 0) = RGBA(0, 0, 0, 0)
For color = 1 To 3
p(palette, color) = RGBA(Random(255), Random(255), Random(255), 255)
Next
Next
For char = 0 To 63
For charLine = 0 To 7
s(char, charLine) = Random($FFFF)
Next
Next
;- start
p(0, 0) = RGBA(%00000000, %00000000, %00000000, %11111111) ; décor arrière (opaque) 4 niveaux de bleus
p(0, 1) = RGBA(%00000000, %00000000, %01010101, %11111111)
p(0, 2) = RGBA(%00000000, %00000000, %10101010, %11111111)
p(0, 3) = RGBA(%00000000, %01010101, %11111111, %11111111)
p(1, 0) = RGBA(%00000000, %00000000, %00000000, %00000000) ; allié (semi opaque) transparent
p(1, 1) = RGBA(%00000000, %00000000, %01010101, %11111111) ; bleu
p(1, 2) = RGBA(%11111111, %00000000, %00000000, %11111111) ; rouge
p(1, 3) = RGBA(%11111111, %10101010, %01010101, %11111111) ; chair
p(2, 0) = RGBA(%00000000, %00000000, %00000000, %00000000) ; décor avant transp
p(2, 1) = RGBA(%00000000, %01010101, %00000000, %11111111) ; noir
p(2, 2) = RGBA(%00000000, %11111111, %00000000, %11111111) ; vert
p(2, 3) = RGBA(%11111111, %11111111, %11111111, %11111111) ; blanc
p(3, 0) = RGBA(%00000000, %00000000, %00000000, %00000000) ; ennemi transparent
p(3, 1) = RGBA(%01010101, %00000000, %00000000, %11111111) ; rouge sombre
p(3, 2) = RGBA(%11111111, %01010101, %00000000, %11111111) ; orange
p(3, 3) = RGBA(%11111111, %11111111, %00000000, %11111111) ; jaune
For i = 0 To 7
s(0, i) = 0
Next
s(1, 0) = %0011111111111100
s(1, 1) = %1000111111110010
s(1, 2) = %1010001111001010
s(1, 3) = %1010100000101010
s(1, 4) = %1010100000101010
s(1, 5) = %1010000101001010
s(1, 6) = %1000010101010010
s(1, 7) = %0001010101010100
s(2, 0) = %0101010100000000
s(2, 1) = %1111111101010101
s(2, 2) = %1110101011111111
s(2, 3) = %1110101010101010
s(2, 4) = %1010101010101010
s(2, 5) = %1010101010101010
s(2, 6) = %1010101001010101
s(2, 7) = %0101010100000000
s(3, 0) = %0000000000000000
s(3, 1) = %0101010101010101
s(3, 2) = %1111111111111111
s(3, 3) = %1010101010101010
s(3, 4) = %1010101010101010
s(3, 5) = %1010101010101010
s(3, 6) = %0101010101010101
s(3, 7) = %0000000000000000
s(4, 0) = %0000000101010100
s(4, 1) = %0101011111111101
s(4, 2) = %1111111010101011
s(4, 3) = %1010101010101010
s(4, 4) = %1010101010101010
s(4, 5) = %1010101010101010
s(4, 6) = %0101011010101001
s(4, 7) = %0000000101010100
s(5, 0) = %0000000001010101
s(5, 1) = %0101010111111111
s(5, 2) = %1111111110101010
s(5, 3) = %1010101010101010
s(5, 4) = %1010101010101001
s(5, 5) = %1010101010101001
s(5, 6) = %0101010110101001
s(5, 7) = %0000000001010101
s(6, 0) = %0011111111110000
s(6, 1) = %1111000000111100
s(6, 2) = %1111000000111100
s(6, 3) = %0011000000110000
s(6, 4) = %1111000000111100
s(6, 5) = %1111000000111100
s(6, 6) = %0011111111110000
s(6, 7) = %0000000000000000
s(7, 0) = %0000000000110000
s(7, 1) = %0000000000111100
s(7, 2) = %0000000000111100
s(7, 3) = %0000000000110000
s(7, 4) = %0000000000111100
s(7, 5) = %0000000000111100
s(7, 6) = %0000000000110000
s(7, 7) = %0000000000000000
s(8, 0) = %0011111111110000
s(8, 1) = %0000000000111100
s(8, 2) = %0000000000111100
s(8, 3) = %0011111111110000
s(8, 4) = %1111000000000000
s(8, 5) = %1111000000000000
s(8, 6) = %0011111111110000
s(8, 7) = %0000000000000000
s(9, 0) = %0011111111110000
s(9, 1) = %0000000000111100
s(9, 2) = %0000000000111100
s(9, 3) = %0011111111110000
s(9, 4) = %0000000000111100
s(9, 5) = %0000000000111100
s(9, 6) = %0011111111110000
s(9, 7) = %0000000000000000
s(10, 0) = %0011000000110000
s(10, 1) = %1111000000111100
s(10, 2) = %1111000000111100
s(10, 3) = %0011111111110000
s(10, 4) = %0000000000111100
s(10, 5) = %0000000000111100
s(10, 6) = %0000000000110000
s(10, 7) = %0000000000000000
s(11, 0) = %0011111111110000
s(11, 1) = %1111000000000000
s(11, 2) = %1111000000000000
s(11, 3) = %0011111111110000
s(11, 4) = %0000000000111100
s(11, 5) = %0000000000111100
s(11, 6) = %0011111111110000
s(11, 7) = %0000000000000000
s(12, 0) = %0011111111110000
s(12, 1) = %1111000000000000
s(12, 2) = %1111000000000000
s(12, 3) = %0011111111110000
s(12, 4) = %1111000000111100
s(12, 5) = %1111000000111100
s(12, 6) = %0011111111110000
s(12, 7) = %0000000000000000
s(13, 0) = %0011111111110000
s(13, 1) = %0000000000111100
s(13, 2) = %0000000000111100
s(13, 3) = %0000000000110000
s(13, 4) = %0000000000111100
s(13, 5) = %0000000000111100
s(13, 6) = %0000000000110000
s(13, 7) = %0000000000000000
s(14, 0) = %0011111111110000
s(14, 1) = %1111000000111100
s(14, 2) = %1111000000111100
s(14, 3) = %0011111111110000
s(14, 4) = %1111000000111100
s(14, 5) = %1111000000111100
s(14, 6) = %0011111111110000
s(14, 7) = %0000000000000000
s(15, 0) = %0011111111110000
s(15, 1) = %1111000000111100
s(15, 2) = %1111000000111100
s(15, 3) = %0011111111110000
s(15, 4) = %0000000000111100
s(15, 5) = %0000000000111100
s(15, 6) = %0011111111110000
s(15, 7) = %0000000000000000
s(16, 0) = %0000101010000000
s(16, 1) = %0010101010101000
s(16, 2) = %0011111101111100
s(16, 3) = %0000111111110000
s(16, 4) = %0000101010101011
s(16, 5) = %0011101010100010
s(16, 6) = %0000010101010110
s(16, 7) = %0000101000000000
s(17, 0) = %0000101010000000
s(17, 1) = %0010101010101000
s(17, 2) = %0011111101111100
s(17, 3) = %0000111111110000
s(17, 4) = %0000101010100000
s(17, 5) = %0000101011100000
s(17, 6) = %0000010101000000
s(17, 7) = %0000001010000000
s(18, 0) = %0000001010100000
s(18, 1) = %0010101010101000
s(18, 2) = %0011110111111100
s(18, 3) = %0000111111110000
s(18, 4) = %1110101010100000
s(18, 5) = %1000101010100000
s(18, 6) = %1001010101010000
s(18, 7) = %0000000010100000
s(19, 0) = %0000001010100000
s(19, 1) = %0010101010101000
s(19, 2) = %0011110111111100
s(19, 3) = %0000111111110000
s(19, 4) = %0000101010100000
s(19, 5) = %0000101110100000
s(19, 6) = %0000000101010000
s(19, 7) = %0000001010000000
s(20, 0) = %0000000101010000
s(20, 1) = %0001111111100100
s(20, 2) = %0011101010101000
s(20, 3) = %0111101111011101
s(20, 4) = %0111101110011101
s(20, 5) = %0111100101111000
s(20, 6) = %0001101111100100
s(20, 7) = %0000000101000000
s(21, 0) = %0000000000000000
s(21, 1) = %0000011111010000
s(21, 2) = %0000111010110000
s(21, 3) = %0000111111110000
s(21, 4) = %0000111110110000
s(21, 5) = %0000110101110000
s(21, 6) = %0000011111010000
s(21, 7) = %0000000101000000
s(22, 0) = %0000000000000000
s(22, 1) = %0000001010000000
s(22, 2) = %0000001111000000
s(22, 3) = %0000001111000000
s(22, 4) = %0000001111000000
s(22, 5) = %0000001111000000
s(22, 6) = %0000001010000000
s(22, 7) = %0000000000000000
s(23, 0) = %0000000000000000
s(23, 1) = %0000011111010000
s(23, 2) = %0000111010110000
s(23, 3) = %0000111010110000
s(23, 4) = %0000111010110000
s(23, 5) = %0000111001110000
s(23, 6) = %0000011111010000
s(23, 7) = %0000000101000000
s(24, 0) = %1010101010101010
s(24, 1) = %1000101111100010
s(24, 2) = %1010111010111010
s(24, 3) = %1010101010111010
s(24, 4) = %1010101111101010
s(24, 5) = %1010101010101010
s(24, 6) = %1000101111100010
s(24, 7) = %1010101010101010
s(25, 0) = %1010101010101010
s(25, 1) = %1000101010100010
s(25, 2) = %1010101010101010
s(25, 3) = %1010101010101010
s(25, 4) = %1010101010101010
s(25, 5) = %1010101010101010
s(25, 6) = %1000101010100010
s(25, 7) = %1010101010101010
s(26, 0) = %0111111110101001
s(26, 1) = %0111101010101001
s(26, 2) = %0111101010101001
s(26, 3) = %0111101010101001
s(26, 4) = %0001111010100100
s(26, 5) = %0001111010100100
s(26, 6) = %0001111010100100
s(26, 7) = %0001111010100100
s(27, 0) = %0001111010100100
s(27, 1) = %0001111010100100
s(27, 2) = %0001111010100100
s(27, 3) = %0001111010100100
s(27, 4) = %0001111010100100
s(27, 5) = %0001111010100100
s(27, 6) = %0001111010100100
s(27, 7) = %0001111010100100
s(28, 0) = %0001111010100100
s(28, 1) = %0001111010100100
s(28, 2) = %0001111010100100
s(28, 3) = %0111101010101001
s(28, 4) = %0111101010101001
s(28, 5) = %0111101010101001
s(28, 6) = %0111101010101001
s(28, 7) = %0001111010100100
s(29, 0) = %0001111010100100
s(29, 1) = %0001111010100100
s(29, 2) = %0001111010100100
s(29, 3) = %0001111010100100
s(29, 4) = %0011110101010100
s(29, 5) = %0111101010101001
s(29, 6) = %0111101010101001
s(29, 7) = %0111101001010101
S(30, 0) = %0011111011110000
S(30, 1) = %1101010101011100
S(30, 2) = %1101010100011100
S(30, 3) = %1001010001011000
S(30, 4) = %1101010001011100
S(30, 5) = %1101010001011100
S(30, 6) = %0011111011110000
S(30, 7) = %0000000000000000
S(31, 0) = %0000000000000000
S(31, 1) = %0011000000110000
S(31, 2) = %0000110111000000
S(31, 3) = %0000011101000000
S(31, 4) = %0000110111000000
S(31, 5) = %0011000000110000
S(31, 6) = %0000000000000000
S(31, 7) = %0000000000000000
S(30, 0) = %0000000000000000
S(30, 1) = %0000000000000000
S(30, 2) = %0010110000000000
S(30, 3) = %1011011011101000
S(30, 4) = %1000101111111010
S(30, 5) = %0000101010101001
S(30, 6) = %0000010101010100
S(30, 7) = %0011000100010011
S(31, 0) = %0000000000000000
S(31, 1) = %0000000000000000
S(31, 2) = %0010110000000000
S(31, 3) = %1011011011101000
S(31, 4) = %1000101111111010
S(31, 5) = %0000101010101001
S(31, 6) = %0000010101010100
S(31, 7) = %0000110000001100
For spp = 0 To 3
For spi = 0 To 63
i = spp << 6 | spi
sp(i) = CreateSprite(#PB_Any, 8, 8, #PB_Sprite_AlphaBlending)
If 1
StartDrawing(SpriteOutput(sp(i) ) )
DrawingMode(#PB_2DDrawing_AllChannels)
For y = 0 To 7
For x = 0 To 7
c = p(spp, (s(spi, y) >> (2 * x) ) & 3)
Box(y, x, 1, 1, c)
Next
Next
StopDrawing()
EndIf
xA = 0
yA = 0
xB = sw / 32
yB = sh / 16
TransformSprite(sp(i), xB, yA, xB, yB, xA, yB, xA, yA)
Next
Next
Procedure prnb(x, y, n, ln, pal) ; (pr)int (n)um(b)er (prnb)
a$ = Right(ReplaceString(Space(ln), " ", "0") + Str(Abs(n) ), ln)
For i = 1 To Len(a$)
a = Asc(Mid(a$, i, 1) ) - '0' + 6 + pal << 6
c(x + i - 1, y) = a
Next
EndProcedure
Procedure backMode1()
For x = 0 To 31
For y = 0 To 15
c(x, y) = 0
Next
c(x, 1) = 1
If Abs(x - 16) > 4
c(x, 4) = 1
EndIf
c(1, 2) = 5 + 128 ; green pipes
c(1, 3) = 5 + 128
c(1, 7) = 5 + 128
c(1, 11) = 5 + 128
c(0, 14) = 5 + 128
c(31, 2) = 2 + 128
c(31, 3) = 2 + 128
c(31, 7) = 2 + 128
c(31, 11) = 2 + 128
c(31, 14) = 2 + 128
If Abs(x - 16) > 6
c(x, 8) = 1
EndIf
If Abs(x - 16) > 3
c(x, 12) = 1
Else
c(x, 7) = 129 - 64
EndIf
c(x, 15) = 1
Next
c(0, 0) = 81
c(1, 0) = 95
prnb(5, 0, 00, 2, 3)
c(0, 1) = 154 - 128
For y = 2 To 11
c(0, y) = 155 - 128
Next
c(0, 12) = 157 - 128
EndProcedure
torSpeedX = 1
marX = 0
marY = 670
period = 1000 / 30
Repeat
Repeat
clock = ElapsedMilliseconds()
Delay(period - 1)
Until clock > alarm
alarm = clock + period
ExamineKeyboard()
ClearScreen(0)
If keyb(#PB_Key_Tab) Or trial
trial = 0
mode + 1
mode & 1
If mode = 1
backMode1()
EndIf
EndIf
If mode = 1 ; anims
prnb(1, 0, life, 2, 1)
coinCycle + 1
coinCycle & 3
If coinCycle = 0
coin + 1
coin & 3
c(4, 0) = 212 + coin
EndIf
If clock > timeAlarm
timeAlarm + 1000
countDown - 1
prnb(8, 0, countDown, 3, 2)
EndIf
hour = Val(FormatDate("%HH", Date() ) )
minu = Val(FormatDate("%ii", Date() ) )
prnb(12, 0, hour, 2, 0)
prnb(14, 0, minu, 2, 0)
prnb(17, 0, marY, 3, 2)
prnb(24, 0, score, 8, 0)
EndIf
If Keyb(#PB_Key_F12)
Blur ! 1
EndIf
SpriteQuality(Blur)
For ty = 0 To 15
For tx = 0 To 31
If mode = 0
c(tx, ty) = tx & $F | ty << 4
EndIf
DisplayTransparentSprite(sp(c(tx, ty) ), tx * xB, ty * yB)
Next
Next
If mode = 1
DisplaySprite(sp(156 - 128), 0, (y + 8) * yB / 8)
If vy < 4
vy + 1
EndIf
y + vy
If y > 88
y = 0
vy = 0
life - 1
EndIf
torY = 24
torY = 14*8
torTime ! 1
torX - torSpeedX
If torX < 0
torX = sw * 8 / xB
EndIf
jmpX = 0 - 1 - Sin(clock * clock)
jmpY = 0 - 1 - Cos(clock * clock)
DisplayTransparentSprite(sp(30 + torTime + 128), (torX) * xB / 8, (torY) * yB / 8)
If marVX < 0
marFlow = 2
Else
If marVX > 0
marFlow = 0
EndIf
EndIf
DisplayTransparentSprite(sp(16 + marTime + 64 + marFlow), marX, marY)
marMoving = 1
If KeyboardPushed(#PB_Key_Right)
If marVX < 24
marVX + 1
EndIf
Else
If marVX > 0
marVX - 1
EndIf
If KeyboardPushed(#PB_Key_Left)
If marVX > 0 - 24
marVX - 1
EndIf
Else
marMoving = 0
If marVX < 0
marVX + 1
EndIf
EndIf
EndIf
If marY < 670
marVY - 4
EndIf
If marY > 670
marY = 670
marVY = 0
EndIf
marY - marVY
If KeyboardPushed(#PB_Key_Up)
marVY = 16
EndIf
If marVX
marTime ! marMoving
marX + marVX
If marX > DesktopWidth(0)
marX - DesktopWidth(0)
Else
If marX < 0
marX + DesktopWidth(0)
EndIf
EndIf
EndIf
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or keyb(#PB_Key_Tab)
Why ? There is no reason to close it!