- Details
- Written by: INsane
- Category: Day of Defeat Customisation Guides
- Hits: 157


A guide on making sniper scopes for Day of Defeat 1.3 and a solution to problem cased by the Half-Life 25th anniversary update.
We have a quick option in this guide.
Just want to change the center lines of the scope?
If you just want to change the center part of the scope and want to do that in a correct 16:9 image size... use my template.
The sniper scopes in day of defeat have always been different to other Half Life 1 mods.
The images are four sections (256 X 256 pixels each) of a maximum size (512 X 512) sprite file.
These four images (frame 0-3) once in a sprite file of the correct type animate around the center point and make the image you see on the screen.
Since the Half-Life 25th Anniversary update there is a problem with scaling and a large section around the image border is not filled in with black-out.
![]() |
A 21:9 ratio Ultra-Wide monitor with default files and default settings |
The default command gl_widescreen_yfov "1" does this. That command was supposed to fix the “zoomed in” effect that affected the gun model and made for a tighter field of vision (FOV) that also had the effect of running slower.
The “gl_widescreen_yfov” command does fix it but… it broke the sprite image of 512 X 512 and it doesn’t cover the areas that made a better FOV.
Reported in Nov 2023, this is still the case in early 2025 …
https://github.com/ValveSoftware/halflife/issues/3583 They may not fix it.
The second issue with the default files is they were made back in the day when everyone ran small 4:3 ratio CRT screens.
As you can see above the sniper view is an oval, not round.
There isn’t any fast fix for the out of bounds back-out areas (apart for Valve fixing it) but we can fix the image to display a round sniper view at least for the now common 16:9 ratio screens.
I made a file and it looks like this…
![]() |
A fixed sniper image “scope_spring.spr” gl_widescreen_yfov "1" |
Further, you can set the “gl_widescreen_yfov” command off the default of “1” (as above) change that to “0” and you get this…
![]() |
The way it was in 2000-2004 gl_widescreen_yfov "0" |
You can of course go to the “Options – Video – “ GUI panel and click the FOV widescreen fix and the command will change.
You can also make a toggle bind in a userconfig.cfg to turn it on and off (Mouse 4 is good).
// Valve Widescreen FOV fix on and off toggle // "0" (OFF) will make the sniper scope full screen // gl_widescreen_yfov "1" (ON) Default - for all other weapons. gl_widescreen_yfov 1 bind "MOUSE4" "fov_tog" alias fov_tog "fov_tog0" alias fov_tog0 "gl_widescreen_yfov 0; alias fov_tog fov_tog1" alias fov_tog1 "gl_widescreen_yfov 1; alias fov_tog fov_tog0"
Now that bind and script would be seen as a cheat in some places (like competitive players) as it does give a small advantage to zoom at anytime.
My two cents of common sense (for single play and Pub servers)…
Lots of other games have a non-weapon zoom, for the visually impaired the command gl_widescreen_yfov “0” actually helps them enjoy the game.
That’s it isn’t it, games are for fun?
It’s a game meant to be enjoyed and seeing this will never get fixed, we should make some custom files to at least make it work better, look better.
The original files are found in dod\sprites. You can make a new image, place it in Half-Life\dod_addon\sprites and that custom file will display.
The disassembly and reassembly (including modifying them) are not easy.
To start with sprite files, use outdated 8 bit bitmap images, most modern image editors will not save in the bitmap specifications that the tools to reassemble them require. It is a multi-step process that often results in persons giving up.
I found my old Photoshop CS2 that barely runs on Windows 11 the best for me. I save the files as Windows – 24 bit and then take them through Irfanview and save them in the 8 bit format.
Then you have the color palette issue where the last color in the palette is the one that controls the transparency if the inner circle. Don’t worry we will take this step by step soon.
I used five different programs to make my sprite, this is why its so hard.
The gimp can be used and that can cut out some steps.
Paint.Net is (normally) a pain with spites and Wally while great with color palette control and good for crosshair edits isn’t good enough for the complex scope images however it can be one of the programs used.
We will use Paint.Net as it's free and there is a couple more steps that make the sprite files work correctly, see the next section.
HLTextureTools 1.6.2.0
https://github.com/yuraj11/HL-Texture-Tools
Download the latest release (look at the right middle of the page)
Wally 1.55B (twhl link)
https://twhl.info/wiki/embed/Wally_1.55b
SprWiz V1.1 (twhl link)
https://twhl.info/wiki/embed/VERC_Archive%3A_SprView_1.05
IrfanView
https://www.irfanview.com/main_download_engl.htm
Paint.Net
https://www.getpaint.net/download.html
Or look in the windows store
The Paint.Net plugin “Grid and Checker Maker”
https://forums.getpaint.net/topic/4175-grid-maker-plugin/
Install after Paint.Net.
Classic version of Paint.net
Unzip and (re)place the DLL in your Effect folder usually: C:/Program Files/Paint.NET/Effects
Microsoft Store version of Paint.net
Unzip and (re)place the DLL in your Effect folder usually: /My Documents/paint.net App Files/Effects/
The tool is under Effect/Render menu.
We will use HLTextureTools 1.6.2.0 to view them and extract the images.
https://github.com/yuraj11/HL-Texture-Tools
Download the latest release (look at the right middle of the page)
Put the zip in the “Make scopes” folder.
Extract it there, I put mine in a folder called “1_HLTextureTools”
You can run this from the folder (HLTextureTools.exe) and on startup you will have a windows popup,
If you have associated the .spr image type via open with – choose program – HLTextureTools – always in the right click menu, just go to that “dod files” folder and open “scope_spring.spr”
![]() |
HLTextureTools – The scope_sprite.spr file |
The very first thing you see doesn’t look like a sniper scope. It is but has four separate 256X256 images named Frame #0 to Frame #3.
You can click on each image and note the position like upper left, upper right, lower right and lower left. Note below the menu “Image” (top left of the program) there is a play button icon? Press it.
See how it rotates around clockwise?
Imagine center point of the scope and the images are rotating around that to make a 512 X 512 image.
Now you see why in the image, the white bit is transparent in the game and not a true circle but would be if you stretched it width wise. Look at the file data at the bottom…
The ones in “Type:” are two important settings we are going to need on reassembly of the four files when put in another program called “SprWiz” a program that takes bmp images and makes all kinds of different sprite files.
The best way to look at these sprite types is to read this part of the TWHL guide… https://twhl.info/wiki/page/env_sprite#Sprite_type_and_orientation
In this case the orientation type is VP_PARALLEL…
“Always faces the camera with roll applied. The majority of sprites are in this format.”
Then the render mode… SPR_INDEXALPHA (or Index-alpha) …
“Index-alpha - 8-bit alpha channel. The palette is ignored, except for the last color, which determines the overall sprite color. This format is also used for decal textures.”
Remember we talked of the challenges of the “color palette issue” note that is in the settings, color palrtte’s are important! We will get to that.
First, I want to explain what the other files named scope_enfield_soft.spr, scope_k43_soft.spr and scope_spring_soft.spr.
It isn’t common to change them when working on a scope sprite. So, what are the “soft” files for?
![]() |
The standard scope image and the soft type. |
Notice they are different.
Still four files and origin and size the same its still VP_PARALLEL but the soft file is “SPR_ALPHATEST”.
“Alpha-test - 8-bit indexed format, using a 256-color palette. The last color in the palette is used for transparent areas. This format is also used for transparent textures.”
So… much the same thing as scope_spring.spr ?
They seem to be a older file left in, in Alpha 6.2 (year 2000) blackouts were added, the files in Beta 1.3 (2001) are different, in dod 3.1 beta (8 Aug 2002) they are the same as now. Somewhere in 2001 and 2003 they were added.
Another oddity is the file “scope_binoc.spr” I would say that is for the attempt at mortar class.
![]() |
The unused scope_binoc.spr file |
Safe to say that we can ignore those four files for customization.
Lets get the images we need out.
HLTextureTools
![]() |
The saved BMPs |
Open them in Wally.
Next is open them in Wally and grab the “Color Palette” before any images get corrupted in edits.
![]() |
Wally and the color palette. |
To save the color palette.
Now if your graphics program edits the color palette you have the original one to use and Wally can load that file, then save it to repair it.
Remember the render mode setting?… SPR_INDEXALPHA (or Index-alpha) …
“Index-alpha - 8-bit alpha channel. The palette is ignored, except for the last color, which determines the overall sprite color. This format is also used for decal textures.”
The last color is the one on the bottom right of the color palette.
We are done with Wally for now.
Get the Four images in an editor.
This is where things may get tricky for you, everyone has a free or specific editor they like.
For me it’s PS CS2 for these old files but we will use Paint.Net, Gimp is great I am told but it’s PS or Paint.Net for me (normally).
Paint.Net
If you have not done it yet (recommended) You may want to install a grid plugin as Paint.Net has a grid but its not adjustable, use this one, put the .dll in your effects folder.
https://forums.getpaint.net/topic/4175-grid-maker-plugin/
The plugin “Grid and Checker Maker” is under Effect/Render menu.
Set it on 256 like below to find center.
![]() |
Paint.Net Grid and Checker Maker |
The grid now divides the image into 4 squares and you can get your line tool set to one pixel, make a new layer called “Grid Guide” and trace over the grid for a guide.
The four images will go in each square and now you know where the true center is.
Open each image and place them in the correct square using the “Edit” – “Copy” – Now select the 512X512 image and “Edit” “Paste into a new Layer”.
I named my layers the same name as the BMP images. You should have this by now…
![]() |
Paint.Net new file with layers and the grid guide. |
We can delete the “Background” layer now as we don’t need it.
So that is a copy of the standard .bmp files in an editor we can effect changes to what ever you like, like changes to the line, making a different surround.
In my case I want to make the standard files suit a 16:9 screen, typically a 1920X1080 screen and have the image round not oval.
The standard images suit a 4:3 ratio screen typically 800X600 or 600X480, so let’s make a new image 1920X1080.
Now go back to the 512X512 image, we want to reverse engineer that size to a 4:3 ratio 640X480.
“Image” – “Resize” – untick “Maintain aspect Ratio” – set width 640 and height 480.
Go to the 1920X1080 image and adjust the height to 480 and we are going to need the width to maintain its aspect ratio with the height. “Maintain aspect Ratio” must be ticked.
Your height should be 853. Press OK.
Go back to the resized 640X480 image.
Use the move tool (not the handles) to move the image.
You will know when it’s right when it looks like this zoomed in, you can see the corner of the grid guide you need to get to and ensure the scope lines are dead center, deselect the image when done …
![]() |
The zoomed in center. |
Deselect via pressing enter to apply the layer in position.
We now have some areas to fill in and we have a 16:9 screen ration with…a round circle.
![]() |
The new layer, centered and needs black fill on the ends |
Select the areas in the Layer that need filling so we don’t affect other parts of the image.
With the color selection tool (eyedropper) select the black in the image.
Then the fill bucket, doing each side.
Now we have an image that will scale correctly for a sniper scope on a 16:9 ratio screen, but it needs to be 512X512 for the sprite to work…so, “Image” – “Resize” – untick “Maintain aspect Ratio” – set width 512 and height 512.
The guide layer looks wrong now, make a new one like we did in the very first image.
It’s slightly off center Horizontally buy one pixel. The vertical one looks OK but look closer.
The lines in the other 512X512 image are…
To make it dead center really, we should make an odd number like 9 Pixels for the vertical and 7 for the horizontal line.
So, select each line using the guide.
![]() |
HOZ LINE new layer and now centered by moving down one pixel. |
If you wanted a thinner line, you could reduce the top.
Seeing this is the spring, the line is fine enough but in a new layer we can separate the lines and make others later.
Do the same for the vertical line now, increase by one to 7.
![]() |
The VERT LINE layer is now moved and centered. |
Now we have the blackouts done, the lines are in different layers.
It really is time to save the file at this point. I’ll call it “dod_scope_master_16_9_ratio”
We should really get rid of the old lines as we may want to make another scope with different lines.
Now turn on the other line layers and by selecting each one use the eraser tool to blend them around the circle edge areas.
Now we have a file we can use as a template for the US sniper, the British Enfield and the Kar 98 scope. The image will display correctly on a 16:9 screen and we can fool with the lines in other edits.
![]() |
The finished base template with US sniper lines and a center guide. |
The next task for this template is to copy over those .BMP files we made this with and get 4 files out of it.
I renamed the “Layer 2” to “Scope”
Making the new .BMP images.
Now it’s a matter of selecting each section and making a perfect 256X256 set of 4 BMP files named Frame 0 – 3 via the layer
![]() |
Copy from the center and stop at the left top. |
![]() |
BMP format |
You can now close this template image ensuring while doing that last part you didn’t screw up anything.
When we make a new one we can do another layer for the different internal lines and name them, then make a new image for the other teams or types you may want to make.
One of the goals I have is to just make copies of each standard scope but make it display right on 16:9.
Go to the next section.
This step is important and we need to download and use Irfanview. No matter what editor you used it’s likely not correct and the color palette will be wrong for sure.
https://www.irfanview.com/main_download_engl.htm
After you have that installed…
![]() |
The advanced settings in Irfanview Batch. |
Press the exit batch button and close irfanview.
Now we need to look at the color table and correct it with the one we saved.
Open Wally.
This is the final part.
Remember we looked at the sprite types and the default sprite reported that it was a “SPR_INDEXALPHA” ?
Place that in Half-Life\dod_addon\sprites and open dod.
![]() |
Spring scope needs improvement. |
I can see some errors there in the black “Frame 0” area and while I like the thick lines that look damaged and uneven, some may not.
Now you can see why making all those different layers for the different parts will come in handy. You can adjust back in paint.net and make another version.
![]() |
The final Spring scope. |
In the second image the vertical line is now reduced. I’ll call that done for now.
The last bit is to make the standard lines for the scope_enfield and scope_k43.
It’s the same process but using the “dod_scope_master_16_9_ratio.pdn” file we will just add the lines in more layers.
Then follow the same process in making the four new BMP’s and “washing” the file in Irfanview, Wally and final assembly in SprWiz.
Now the other two are done and in the master Paint.Net file. Here are my results…
![]() |
The Axis Scope for the K98 scoped and the FG43 scoped |
![]() |
The scope for the Enfield (British Marksman) |
It was hard doing this from scratch and likely why no one has written a complete step by step guide on dod scopes.
Now there is one.
Here is a example where those files were used bulletlottery packed them up, made a script to control fov via binds...
https://streamable.com/ggm4to?src=player-page-share
INsane
Webmaster Sturmbot.org
Designed by INsane Webmaster - dodbits.com using Template Toaster (Joomla! Version 4)