• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 10:03
CEST 16:03
KST 23:03
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL19] Finals Recap: Standing Tall9HomeStory Cup 27 - Info & Preview18Classic wins Code S Season 2 (2025)16Code S RO4 & Finals Preview: herO, Rogue, Classic, GuMiho0TL Team Map Contest #5: Presented by Monster Energy6
Community News
Flash Announces Hiatus From ASL62Weekly Cups (June 23-29): Reynor in world title form?13FEL Cracov 2025 (July 27) - $8000 live event21Esports World Cup 2025 - Final Player Roster16Weekly Cups (June 16-22): Clem strikes back1
StarCraft 2
General
Program: SC2 / XSplit / OBS Scene Switcher The SCII GOAT: A statistical Evaluation Statistics for vetoed/disliked maps Weekly Cups (June 23-29): Reynor in world title form? PiG Sty Festival #5: Playoffs Preview + Groups Recap
Tourneys
RSL: Revival, a new crowdfunded tournament series Sparkling Tuna Cup - Weekly Open Tournament WardiTV Mondays FEL Cracov 2025 (July 27) - $8000 live event Korean Starcraft League Week 77
Strategy
How did i lose this ZvP, whats the proper response Simple Questions Simple Answers
Custom Maps
[UMS] Zillion Zerglings
External Content
Mutation # 480 Moths to the Flame Mutation # 479 Worn Out Welcome Mutation # 478 Instant Karma Mutation # 477 Slow and Steady
Brood War
General
Player “Jedi” cheat on CSL SC uni coach streams logging into betting site Flash Announces Hiatus From ASL Practice Partners (Official) ASL20 Preliminary Maps
Tourneys
CSL Xiamen International Invitational [BSL20] Grand Finals - Sunday 20:00 CET [Megathread] Daily Proleagues Small VOD Thread 2.0
Strategy
Simple Questions, Simple Answers I am doing this better than progamers do.
Other Games
General Games
Path of Exile Stormgate/Frost Giant Megathread Nintendo Switch Thread What do you want from future RTS games? Beyond All Reason
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Summer Games Done Quick 2025! Trading/Investing Thread Things Aren’t Peaceful in Palestine
Fan Clubs
SKT1 Classic Fan Club! Maru Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [\m/] Heavy Metal Thread
Sports
Formula 1 Discussion 2024 - 2025 Football Thread NBA General Discussion TeamLiquid Health and Fitness Initiative For 2023 NHL Playoffs 2024
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Blogs
Culture Clash in Video Games…
TrAiDoS
from making sc maps to makin…
Husyelt
Blog #2
tankgirl
StarCraft improvement
iopq
Trip to the Zoo
micronesia
Customize Sidebar...

Website Feedback

Closed Threads



Active: 667 users

[L][D] Visualizing Zerg Supply Blocks

Forum Index > StarCraft 2 Strategy
Post a Reply
Normal
aerique
Profile Joined January 2012
Netherlands15 Posts
Last Edited: 2012-03-30 13:44:49
March 27 2012 13:00 GMT
#1
2012-03-30: added support for injects to the script

The script is available here: http://github.com/aerique/sc2-utils

Note: this post isn't about overlord timings (although I welcome improvements to the used build order) but about visualizing supply blocks.

As a lowly bronze zerg I needed some visual feedback on supply blocks since I was of the mindset of "how bad can it really be, eh?". So I started working on a small script that simulated a build order and fed (hopefully) relevant data into gnuplot.

I've finished a first alpha version of this script, meaning it is still full of bugs, incorrect assumptions and I'm the only one to have looked at it. That said, the graph has already given me an appreciation of the effect of an early supply block on the rest of the game.

Here's a graph it has produced of a 'proper' 15h15p build and the same build that's supply blocked at 28 for 40 seconds. The blue graph is the proper build and the red is the supply blocked one. The magenta graph shows the difference in the number of drones between the blue and red graph. The 'blocky' lines show the number of drones and the curved lines the amount of minerals:
[image loading]

This is what the graph looks like if the player tries to drone / catch up as good as possible after the supply block:
[image loading]

I have used Belial88's supply-at-8-minutes benchmark.

This is the build order for the blue line:

15 hatch / 15 pool:
( 9 :overlord)
(15 :hatchery)
(15 :spawning-pool)
(16 :overlord)
(16 :queen)
(16 :queen)
(24 :overlord)
(25 :hatchery)
(26 :overlord)
(32 :overlord)
(34 :queen)
(40 :overlord)
(48 :overlord)
(54 :overlord)
(62 :overlord)
(70 :overlord)
(78 :overlord)
(86 :overlord)
(this is a straight copy & paste from the code so excuse the formatting)

The script has the following assumptions and bugs:
  • it updates once per second
  • every update all the drones are divided optimally over all hatcheries
  • no workers transfers
  • max 19 larvae per hatchery
  • if the number of larvae drops below 3 at a hatchery a timer starts running and after 15 seconds a new larva will spawn if there's still less than 3 larvae
  • injects are hit almost perfectly (max delay of 1 second)
  • queens are automatically assigned to a hatchery for spawning larvae
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
March 27 2012 13:08 GMT
#2
Man, if you spent as much effort in playing the game as analysing it, you wouldn't be in bronze

That said, good job, it's always nice with some statistical information for future arguments on the forums.
Ketch
Profile Joined October 2010
Netherlands7285 Posts
March 27 2012 13:13 GMT
#3
You should of course be able to calculate optimal overlord timings if you do your math .... Cool insight anyway. I am always the red line obviously
Rannasha
Profile Blog Joined August 2010
Netherlands2398 Posts
March 27 2012 13:31 GMT
#4
I'm interested in some of the assumptions that go into your model. For example, how do you model the spawning of larva? As far as I know, larva spawn at a rate of 1 per 15 seconds (game time) unless 3 or more larva are already on the hatchery. Depending on what your larva situation is at the time of the supply block, the effects are different. If your hatches are empty, you won't lose any larva, but if you've just finished an inject and there's plenty of larva on the hatch, you'll lose out on larva spawning.

Additionally, how do you model base saturation? Do you spread all workers equally between bases, maximizing worker efficiency for long-term benefits, but losing some short-term income due to worker-transfers... Plenty of important questions. I'd love to see some details.
Such flammable little insects!
Maggost
Profile Joined August 2011
Venezuela296 Posts
March 27 2012 13:41 GMT
#5
On March 27 2012 22:08 Tobberoth wrote:
Man, if you spent as much effort in playing the game as analysing it, you wouldn't be in bronze

That said, good job, it's always nice with some statistical information for future arguments on the forums.


This pretty much.

With that information i am pretty sure that you can get into Platinum! by the way, that graph could be applied for the other races for sure.
Quote
DatDarnDude
Profile Joined September 2010
United States5 Posts
Last Edited: 2012-03-27 13:52:58
March 27 2012 13:51 GMT
#6
Maybe Im reading it wrong but your graph suggests your supply block occurs at 18, not 28.
Belial88
Profile Blog Joined November 2010
United States5217 Posts
Last Edited: 2012-03-27 13:55:34
March 27 2012 13:54 GMT
#7
It looks like you make your overlords a bit too early. Try this:

17
26/28 (if hatch went at 20, maybe 24 or 25, depends)
32-33/36
44/44 (since you throw down 4 gas, or generally buildlings, you can adjust if you dont plan to, like in zvz, maybe 40/44)
46/52
52/60, start 2nd overlord when 1st is more than half done
Make another overlord shortly after.

In general it sounds like you are making a bit early. You want it so as soon as that overlord pops, you are ready to just pump a bunch out. You never want to sit at that supply, ie you make overlord for 28 cap, and then you sit at 28/36 for a while.

I'm also not someone to listen to, probably.


How to build a $500 i7-3770K Ultimate Computer:http://www.teamliquid.net/blogs/viewblog.php?topic_id=392709 ******** 100% Safe Razorless Delid Method! http://www.overclock.net/t/1376206/how-to-delid-your-ivy-bridge-cpu-with-out-a-razor-blade/0_100
HaXXspetten
Profile Blog Joined October 2009
Sweden15718 Posts
March 27 2012 14:00 GMT
#8
On March 27 2012 22:08 Tobberoth wrote:
Man, if you spent as much effort in playing the game as analysing it, you wouldn't be in bronze

That said, good job, it's always nice with some statistical information for future arguments on the forums.

My thoughts exactly. It's a nice study, now go put it to some good use
AuxPriest
Profile Joined May 2010
Canada38 Posts
Last Edited: 2012-03-27 14:14:04
March 27 2012 14:13 GMT
#9
I'm sure that it is less than optimal, but the way I work my overlords into my play is that I'll make them when I am about 6-8 supply before a cap.

Say I am at 54/62, I'll make as many overlords as I have bases. Three base = three ovies, that will take me up to x/86, and I'll have still been producing units. Usually the way it works out in my play, I'll hit 60-62/62 before the ovies pop, and just slightly before/shortly after that, larva would have popped from my hatches. Reinject, create units, save the last three larva to make three more ovies.

Over all I'd say that I float maybe 16-24 over my actual food count, and it's probably not optimal, but it works for me, and at the level I play at I find it much better to spend some minerals on extra ovies than to constantly get supply capped.
aerique
Profile Joined January 2012
Netherlands15 Posts
Last Edited: 2012-03-27 14:23:20
March 27 2012 14:20 GMT
#10
On March 27 2012 22:08 Tobberoth wrote:
Man, if you spent as much effort in playing the game as analysing it, you wouldn't be in bronze

Haha, yes. Except I'm not always behind the machine that runs Starcraft! (In fact, I'm rarely behind that machine and usually only after 22:00 / 23:00 )

On March 27 2012 22:13 Ketch wrote:
You should of course be able to calculate optimal overlord timings if you do your math

That's indeed one of the future uses!

On March 27 2012 22:31 Rannasha wrote:
I'm interested in some of the assumptions that go into your model. For example, how do you model the spawning of larva? As far as I know, larva spawn at a rate of 1 per 15 seconds (game time) unless 3 or more larva are already on the hatchery.

Currently, whenever a hatch drops below 3 larvae a timer starts running and after 15 seconds a new larva is spawned. I'm not sure sure whether this simulates the game correctly.

Additionally, how do you model base saturation? Do you spread all workers equally between bases, maximizing worker efficiency for long-term benefits, but losing some short-term income due to worker-transfers...

I do indeed spread the workers equally between bases. Worker transfers are not modeled.

I'd love to see some details.

I could throw the script on-line if you're interested?

On March 27 2012 22:41 Maggost wrote:
by the way, that graph could be applied for the other races for sure.

Definitely! This is just an initial version and I play Zerg.

On March 27 2012 22:51 DatDarnDude wrote:
Maybe Im reading it wrong but your graph suggests your supply block occurs at 18, not 28.

Hm, I better run that script again. edit: oh wait, that is not necessary... the left y-axis shows the number of drones not the supply

Big J
Profile Joined March 2011
Austria16289 Posts
March 27 2012 14:23 GMT
#11
yeah, the 28block is a reason to let an opponent read a unexpected 'gg', before you even had contact with him
madhyene
Profile Joined March 2011
France43 Posts
March 27 2012 14:23 GMT
#12
You know, it's not really about making overlords at certain supply caps, it's just that you have to get about 1 overlord per injection if you're making 2-supply units and 1 for 2 injections if you're making 1-supply units. Of course there's still a few larvae left from the natural larva spawn, but you're using most of them for ovies anyway + you're losing population from engagements and adding more buildings to your tech.

Anyway you're a bronze player, you should just stick to roach rushing until gold league, where you'll start learning macro.
aerique
Profile Joined January 2012
Netherlands15 Posts
March 27 2012 14:26 GMT
#13
I'm also curious how I could better show the impact of having on average 8 drones less mining for over three minutes. Cumulatively add the income per second?
scaban84
Profile Joined August 2010
United States1080 Posts
March 27 2012 14:29 GMT
#14
Cool study but as a bronze player you shouldn't be overly concerned with this. Just learn to pick your fights better and macro with your hotkeys whilst attacking. You don't really need refined builds until gold-plat. And over-droning will get you killed in gold-diamond because most players (in NA) will just do 1 base timing attacks.
"The curious task of economics is to demonstrate to men how little they really know about what they imagine they can design." — Friedrich von Hayek
TheSambassador
Profile Joined May 2010
United States186 Posts
March 27 2012 14:37 GMT
#15
Supply blocks are bad... especially early game. Later supply blocks are manageable, but the early ones, as you've shown, can have massive consequences.

In regards to "when" you build your overlords, with a 15/15 or 15/16, I find that I can drone till 18 and have the overlord pop with the spawning pool/hatchery. Note that my early mechanics might be a bit stronger (mid/high masters) but if you focus on building drones as soon as you can (spam S-D on the hatchery while you're waiting for the larvae to appear) you should be able to do this as well. I always build my 3rd overlord at 24-26 supply.
Rannasha
Profile Blog Joined August 2010
Netherlands2398 Posts
March 27 2012 17:29 GMT
#16
On March 27 2012 23:20 aerique wrote:

Show nested quote +
I'd love to see some details.

I could throw the script on-line if you're interested?


Yeah, if you don't mind, I'd love to take a look.
Such flammable little insects!
Jombozeus
Profile Blog Joined August 2010
China1014 Posts
Last Edited: 2012-03-27 17:35:50
March 27 2012 17:35 GMT
#17
When you're 40-70 supply, make two overlords every pop. You need the spare apm to do other stuff and the spare supply to slam units if you get hit by an unfamiliar timing.

From 70-150, I make overlord by the 3s. And then I usually slam straight to 200 in the next pop. This makes 0 difference to me and I'm mid-high masters.

Making overlords slightly earlier has negligible affects on gameplay at any current level.

Your macro needs to be a thousand-fold better before this matters at all, just make them early and don't get supply blocked, early overlords are okay.
aerique
Profile Joined January 2012
Netherlands15 Posts
March 30 2012 09:58 GMT
#18
I have added support for injects to the script and updated the OP.
Rannasha
Profile Blog Joined August 2010
Netherlands2398 Posts
March 30 2012 10:06 GMT
#19
if the number of larvae drops below 3 at a hatchery a timer starts running and after 15 seconds a new larva will spawn if there's still less than 3 larvae


The actual mechanism is a bit different. When the larva-count hits 3, the timer on the new spontaneously generated larva will pause. It will resume once the larva-count goes below 3 again. Without injects, this is the same as they way you model it. With injects, things change. If the timer is at 10 seconds when the injected larva pop out, you only have to wait 5 more seconds for a new larva once you've used up your current ones.

Source: http://www.teamliquid.net/forum/viewmessage.php?topic_id=323422
Such flammable little insects!
aerique
Profile Joined January 2012
Netherlands15 Posts
March 30 2012 10:12 GMT
#20
On March 30 2012 19:06 Rannasha wrote:
The actual mechanism is a bit different. When the larva-count hits 3, the timer on the new spontaneously generated larva will pause. It will resume once the larva-count goes below 3 again. Without injects, this is the same as they way you model it. With injects, things change. If the timer is at 10 seconds when the injected larva pop out, you only have to wait 5 more seconds for a new larva once you've used up your current ones.

Source: http://www.teamliquid.net/forum/viewmessage.php?topic_id=323422


Thanks for this!

I'll try and get the script online later today.
Cereb
Profile Joined November 2011
Denmark3388 Posts
March 30 2012 12:51 GMT
#21
I love all these mathematical analysis of sc2
"Until the very very top in almost anything, all that matters is how much work you put in. The only problem is most people can't work hard even at things they do enjoy, much less things they don't have a real passion for. -Greg "IdrA" Fields
b0rt_
Profile Joined October 2011
Norway931 Posts
March 30 2012 13:00 GMT
#22
Good post. Have you got a graph for 3 min supply block? aka me
aerique
Profile Joined January 2012
Netherlands15 Posts
Last Edited: 2012-03-30 13:12:47
March 30 2012 13:12 GMT
#23
On March 30 2012 22:00 b0rt_ wrote:
Good post. Have you got a graph for 3 min supply block? aka me

You mean a supply block that lasts for three minutes or one at three minutes? If the former, at which supply do you want it?
aerique
Profile Joined January 2012
Netherlands15 Posts
March 30 2012 13:46 GMT
#24
On March 28 2012 02:29 Rannasha wrote:
Show nested quote +
On March 27 2012 23:20 aerique wrote:
I could throw the script on-line if you're interested?

Yeah, if you don't mind, I'd love to take a look.

I've put the script online here: http://github.com/aerique/sc2-utils
b0rt_
Profile Joined October 2011
Norway931 Posts
March 30 2012 14:36 GMT
#25
On March 30 2012 22:12 aerique wrote:
Show nested quote +
On March 30 2012 22:00 b0rt_ wrote:
Good post. Have you got a graph for 3 min supply block? aka me

You mean a supply block that lasts for three minutes or one at three minutes? If the former, at which supply do you want it?

Could you do multiple blocks at different supplies that total about 2 mins? Say 28 supply, 44, 60? I expect many lower leagued players will have larger than one 40 sec block per game.
aerique
Profile Joined January 2012
Netherlands15 Posts
Last Edited: 2012-03-30 15:20:43
March 30 2012 15:18 GMT
#26
On March 30 2012 23:36 b0rt_ wrote:Could you do multiple blocks at different supplies that total about 2 mins? Say 28 supply, 44, 60? I expect many lower leagued players will have larger than one 40 sec block per game.

This is a graph with 40 second supply blocks at 28, 46 and 62:

[image loading]

Although the graph at 330 seconds has me scratching behind the ears since we seem to be on equal footing at that point but with more minerals for the supply blocked graph! I don't have time to take a better look at it but I assume the blue graph has more overlords, queens and maybe even an extra hatchery at that point.
PeanutsNJam
Profile Joined April 2011
United States175 Posts
Last Edited: 2012-03-30 16:10:54
March 30 2012 15:58 GMT
#27
I'm not going to lie, I think there's something wrong with the graph. It could be:

larva timing
queen injects timing (if there are queens)
building queen timings (3rd hatch before or after 2nd queen?)
hatchery timings (just 2 or 3 hatches?)

You need to show the difference between the integrals of the minerals mined for both. That's the most important thing. How much more money has blue accumulated than red? It should be a boatload.

It's odd that red has the same # of workers and more minerals at the 330-360 range. And more in the order of 500 minerals, so it's overlords/hatcheries/queens. If blue has 500 minerals (a hatchery, queen, and half an overlord) more than red, the supply difference needs to be more than 10. I think this graph is vastly understating the damages of supply block.
aerique
Profile Joined January 2012
Netherlands15 Posts
Last Edited: 2012-03-30 16:11:15
March 30 2012 16:10 GMT
#28
On March 31 2012 00:58 PeanutsNJam wrote:
I'm not going to lie, I think there's something wrong with the graph.
[...]

Thanks for your comments. It'll be a couple of days before I can spend more time on this again but I agree that graphing the available amount of minerals at a certain time is not useful.
PeanutsNJam
Profile Joined April 2011
United States175 Posts
March 30 2012 16:26 GMT
#29
It's impressive you managed to write a script like this, but to be accurate you have to come up with something that rivals the Starcraft 2 script.

I think it'd be much easier to get a replay of Stephano doing his 3 hatch ZvP opening, get a replay of a bronze/silver player attempting the same thing, and plot the data points. Using excel to make best-fit lines. Up to 8 minutes.
Micket
Profile Joined April 2011
United Kingdom2163 Posts
March 30 2012 16:36 GMT
#30
Would be interesting to see what the graph for Terran would look like. I'm not sure but I have a hunch the effect of a single supply block would be more severe on Terran.
Snoodles
Profile Joined March 2012
401 Posts
March 30 2012 21:06 GMT
#31
On March 27 2012 22:08 Tobberoth wrote:
Man, if you spent as much effort in playing the game as analysing it, you wouldn't be in bronze

That said, good job, it's always nice with some statistical information for future arguments on the forums.


You just described the entire reddit community!
Normal
Please log in or register to reply.
Live Events Refresh
WardiTV European League
12:00
Swiss Groups Day 2
WardiTV1195
TKL 401
Liquipedia
FEL
12:00
Cracov 2025: Qualifier #2
IndyStarCraft 337
CranKy Ducklings120
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
TKL 401
IndyStarCraft 337
StarCraft: Brood War
Calm 7915
Rain 3828
Horang2 1968
Bisu 1765
Shuttle 1228
Jaedong 1016
EffOrt 521
Hyuk 470
Stork 305
Last 264
[ Show more ]
Leta 254
Mini 234
Rush 219
GuemChi 193
Free 191
ToSsGirL 171
Hyun 89
TY 74
GoRush 69
hero 69
Soma 67
PianO 58
Sea.KH 44
HiyA 40
ajuk12(nOOB) 38
Sacsri 32
Barracks 17
Terrorterran 8
ivOry 2
Dota 2
qojqva3409
canceldota497
XcaliburYe445
League of Legends
singsing3046
Counter-Strike
zeus437
byalli287
Heroes of the Storm
Khaldor414
Liquid`Hasu99
Other Games
Gorgc3377
B2W.Neo1333
DeMusliM655
Fuzer 329
Hui .262
ArmadaUGS88
KnowMe79
Organizations
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 14 non-featured ]
StarCraft 2
• StrangeGG 71
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 3309
• WagamamaTV796
• Ler117
Upcoming Events
BSL: ProLeague
3h 58m
Dewalt vs Bonyth
Replay Cast
1d 9h
Sparkling Tuna Cup
1d 19h
WardiTV European League
2 days
The PondCast
2 days
Replay Cast
3 days
RSL Revival
3 days
ByuN vs SHIN
Clem vs Reynor
Replay Cast
4 days
RSL Revival
4 days
Classic vs Cure
FEL
5 days
[ Show More ]
RSL Revival
5 days
FEL
5 days
FEL
6 days
Sparkling Tuna Cup
6 days
RSL Revival
6 days
Liquipedia Results

Completed

BSL 2v2 Season 3
HSC XXVII
Heroes 10 EU

Ongoing

JPL Season 2
BSL Season 20
Acropolis #3
KCM Race Survival 2025 Season 2
CSL 17: 2025 SUMMER
Copa Latinoamericana 4
Jiahua Invitational
Championship of Russia 2025
RSL Revival: Season 1
Murky Cup #2
BLAST.tv Austin Major 2025
ESL Impact League Season 7
IEM Dallas 2025
PGL Astana 2025
Asian Champions League '25
BLAST Rivals Spring 2025
MESA Nomadic Masters
CCT Season 2 Global Finals
IEM Melbourne 2025

Upcoming

2025 ACS Season 2: Qualifier
CSLPRO Last Chance 2025
2025 ACS Season 2
CSLPRO Chat StarLAN 3
K-Championship
uThermal 2v2 Main Event
SEL Season 2 Championship
FEL Cracov 2025
Esports World Cup 2025
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.