Discuss Scratch

robloxnoob27
New Scratcher
100+ posts

my memo 1

ways to prevent checkering/faster updates
Current setup:
X-Axis: states (in list ‘block’) of chosen row
Y-axis: time (in ticks (synonymous to game updates, but based on frames rather than the default 20t/s)), top to bottom, side numbers are variable that may be used to prevent checkering.
Update method: Blocks (including redstone dust) do a
forever
update::custom
end
loop (essentially, the blocks do loops once they're created, until destroyed)
S 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 14 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 0 13 0 13 12 11 10 9 8 7 6 5 4 3 2 1
X 12 0 12 0 12 11 10 9 8 7 6 5 4 3 2 1
X 0 11 0 11 0 11 10 9 8 7 6 5 4 3 2 1
to list a few..
Key:
S: source block (whether redstone block, torch, repeater, or other)
X: emptiness, ‘ ’ in list block
#: redstone dust signal strengths
Option 1: Parity Check
Change: Redstone dust will now active by their signal strength parities.
Implementation: A new variable named ‘parity’
Upsides: Removes checkering
Downsides: 2x slower dust for off-powering
parity flip flop code:
forever
set [parity v] to ((1)-(parity))
end
updated dust update loop:
forever
update::custom
wait until <((signal strength::grey)mod(2))=(parity)>
end
Parity is shown on the left with the letter P
P
0 S 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
1 X 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
0 X 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
1 X 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1
0 X 0 0 0 13 12 11 10 9 8 7 6 5 4 3 2 1
1 X 0 0 0 0 12 11 10 9 8 7 6 5 4 3 2 1
0 X 0 0 0 0 0 11 10 9 8 7 6 5 4 3 2 1
to list a few..
Option 2: Temporary Pause
Change: dust will go # -> N -> 0 instead of # -> 0. N is a placeholder for a signal that emits 0 strength, but doesnt get powered on by other sources. N's turns to 0's after 1 update.
Implementation: N -> 0 in the forever code
Upsides: No delay when off-powering
Downsides: NN might get interpreted by the renderer as a full power
forever
if <(costume [name v])contains[redstone dust]?>then
if <(item(position)of[blocks v])contains[NN]?> then
replace item (position) of [blocks v] with (zero signal dust format::grey)
end
else
end
S 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X N 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 0 N 14 13 12 11 10 9 8 7 6 5 4 3 2 1
X 0 0 N 13 12 11 10 9 8 7 6 5 4 3 2 1
X 0 0 0 N 12 11 10 9 8 7 6 5 4 3 2 1
X 0 0 0 0 N 11 10 9 8 7 6 5 4 3 2 1
to list a few..
(dust with strength NN in ‘block’ list look identical to 00 strength dust)
Updates for Fasterest: New Table
Change: Dust will use a different table than other blocks, the list.
Implementation: (signals) is added
Upsides: Dust signal updates don't rely on the same list as other block updates
Downsides: Harder debugging with double lists
(signals::list)
Expansion:
Maybe the list could be extended to other redstone sources too, like blocks, torchs, repeaters, comparators, to name a few
But removal via piston breaking would be a bit buggy

Last edited by robloxnoob27 (Sept. 26, 2026 05:56:57)

Powered by DjangoBB