Team IPX ETQW Configs

WEBSITE RESOURCES
http://4newbies.planetwolfenstein.gamespy.com/ETQW/cvars.php

This will try rendering another frame whenever it estimates it has enough time left for rendering before the next game frame is done. This will give you the highest possible framerate, however it can lead to frame “bunching”. To many (including myself) this feels really jerky – 200fps in the best case is no good if its regularly dropping to 60fps.

SUGGESTED CONFIGS

CONFIG variables/defult How its used Whats it Achieve
seta com_unlockFPS 1 0=off, 1=on seta com_unlockFPS 1 Shows your current Frames Per Second in the top right corner
seta com_unlock_timingMethod 1 0=max fps highest jerkyness, 1=lower max fps, less jerkyness, 2= lowest max fps, least jerky seta com_unlock_timingMethod 1 In short, 0= highest FPS, but it will feel jerky. 1= lower fps than 0, higher fps than 2, less jerky than 1, more jerky than 2. 2= lowest max fps, least jerky. Suggest 1, with a sensible com_unlock_maxFPS (see below)
seta com_unlock_maxFPS 120 defult = 30 seta com_unlock_maxFPS 120 increases your FPS to a max of 120
seta g_fov 120 Defult =95, but can range from 95-120 seta g_fov 120, or seta g_fov 95 etc gives more angle on your field of vision. ie you can see more of whats going on around you
seta net_clientLagOMeter 1 0=off, 1=on seta net_clientLagOMeter 1 Shows when you’re lagging and dropping packets. Technical explanation: Set this to 1 to monitor your connection, a small graph will appear in the lower left hand side of your HUD.The first line is related to your graphics card updating displayed frames in time with received gameworld updates from the server. It will be green if frames are being rendered in time with the world updates. If it has a lot of yellow then gameworld updates are not being displayed and are being dropped. In this case you may wish to tweak your visual settings to raise your average framerate. Another option is to adjust net_clientPrediction by very small values until the line is mostly green. Note that if you are using a value below 1 for net_clientPrediction the first line of the graph may be mostly yellow.

HarassmentPandas Suggested Vehicle Settings
Turn off cockpit
Allow the camera angle to change
Remember Camera Views – This is a huge freaking difference. No cockpit means greater view angle.

Robag’s Settings

path to myconfig.cfg
\My Documents\id Software\Enemy Territory – QUAKE Wars\base\myconfig.cfg

use WORDPAD to create and edit file.
File:myconfig.cfg

CONFIG variables/defult How its used Whats it Achieve
seta net_clientPunkbusterEnabled “1” turns on Punkbuster
seta ui_clanTagPosition “1” Adds Clan tag to the end of your Name
seta ui_clanTag “-^4I^7P^AX” Clan Tag with
seta ui_name “Robag” You UI Name
seta com_allowconsole “1” Enables console press the ~ key to activate
seta g_skipintro “1” turns of Intro Movie
seta com_videoRam “512” Set GPU Ram Size V Important with SLI
seta r_useThreadedRenderer “2” Tunes GPU Rendering Engine
seta g_advancedHud “1” More Hud Details Ingame
bind “w” “_voice” “” “default” Binds World Chat Key
seta g_playTooltipSound “0” Turns Off Tools Tips audio
seta g_tooltipVolumeScale “-20” Suppress Volume for Tool Tips Ingame

path to autoexec.cfg
\My Documents\id Software\Enemy Territory – QUAKE Wars\sdnet\robag\base\autoexec.cfg
File:autoexec.cfg
set logtimestamps “1”
set logfile “2”
set logFileName “console_$Y-$M-$D_$h.$m.$s.log”
set developer “1”
pb_logtofile 1

this creates a handy log file of a full dump of the console during the start up of the game

Replace robag with your ETQW Profile name
The placement of the file is very important.
Otherwise the “profile.cfg” and “bindings.cfg” will reapply the default keybinds.
if you remove “profile.cfg” and “bindings.cfg” files ETQW will replace them the next time you run the game

Ltmon’s Zombie Bot Config
This is a good config to run against bots (won’t work in a pub) in order to set up the Strogg as weaponless zombies and yourself as god. I use this to practice aiming. You should save this in your profile base or pro dir as “zombie.cfg”, then in the console type “exec zombie”.

Next, stand at the top of a hill with a supply crate and fire at any passing strogg. They’ll come towards you, and you can practice aiming and see if you can get them all before the top of the hill. Turning on jumping and strafe jumping will make it harder, and you can also tweak this to do the same thing as a Strogg yourself.

net_allowcheats 1
god
bot_enable 1
bot_uiSkill 2
bot_skill 2
bot aimSkill 2
bot_uiNumGDF 0
bot_uiNumStrogg 12
botSillyWarmup 0
bot_knifeOnly 1
bot_useVehicles 0
bot_useRearSpawn 0
bot_ignoreGoals 1
bot_doObjectives 0
bot_noTaunt 1
bot_noChat 1
bot_canDropDeployables 0
bot_canStrafeJump 0
bot_noRandomJump 1
bot_useSpawnHosts 0

Chuck’s Key Binds
Just the fancy ones… most of these are ideas i’ve stolen from others, so i take very little credit.
The first one is self explanitory:

bind "del" "kill" "" "default"          //suicide

Stroy Up & Down Keys… StroyUp is same as GDF Reload, which feels very natural… I use z for stroy down, but what ever button you choose to use should be easily accessible!

bind "r" "_reload" "" "default"
bind "r" "_stroyUp" "" "aggressor"        // has to be set individually for each strogg class,
bind "r" "_stroyUp" "" "technician"        // so as not to screw up some other class specific binds
bind "r" "_stroyUp" "" "constructor"
bind "r" "_stroyUp" "" "oppressor"
bind "r" "_stroyUp" "" "infiltrator"
bind "z" "_stroyDown" "" "default"

Flyer Controls: the following script makes flyers behave more like a flyer drone, or free fly while spectating. Personally i find this easier… but i still suck at flying. Note: CTRL is usually my crouch key… substitute C if this is what you use to crouch.

seta g_bind_context_anansi "flyer"     // create a generic flyer context
seta g_bind_context_bumblebee "flyer"
seta g_bind_context_hornet "flyer"
bind "w" "_sprint" "" "flyer"                // Forwards
bind "s" "_speed" "" "flyer"                // Airbrake
bind "SPACE" "_forward" "" "flyer"        // Up (Ascend)
bind "CTRL" "_back" "" "flyer"            // Down (Descend)

Fire decoys with Mouse2… that pesky 1 key is just to hard to reach quickly. Uses the Vehicle and Flyer contexts, so doesnt affect ironsights when on foot.

bind "MOUSE2" "_weapon0" "" "vehicle"     // Fire decoy
bind "MOUSE2" "_weapon0" "" "flyer"

Changing the view in vehicles:

bind "HOME" "_vehicleCamera" "" "default"               // Toggle 3rd Person View
bind "END" "toggle g_showVehicleCockpits" "" "default"   // Toggle Cockpit

Class and Weapon Selection Binds, save you going to the limbo menu. This last one is a big one, and comes in four parts.

Its big because it needs to be set individually for each class, if you try to consolidate them all to a GDF and Strogg context (similar to how i did the flyer context above) you lose the ability make class specific binds (the weapons selection relies on this).

How it works: pressing alt-1 selects soldier, alt-2 selects medic, alt-3 engineer… etc… if you are Strogg the the Strogg equivalent is selected.
pressing shift-1 selects the first weapon for your current class (eg Assault Rifle), shift-2 the second (eg Shotgun)… etc. Changes take effect on next respawn. oh, and you get a happy green message telling you what you have just chosen.

Part 1: Class Selection for GDF

bind "1" "clientClass soldier 0; addchatline '^2Class = Soldier'" "alt" "soldier"
bind "1" "clientClass soldier 0; addchatline '^2Class = Soldier'" "alt" "medic"
bind "1" "clientClass soldier 0; addchatline '^2Class = Soldier'" "alt" "engineer"
bind "1" "clientClass soldier 0; addchatline '^2Class = Soldier'" "alt" "fieldops"
bind "1" "clientClass soldier 0; addchatline '^2Class = Soldier'" "alt" "covertops"
bind "2" "clientClass medic 0; addchatline '^2Class = Medic'" "alt" "soldier"
bind "2" "clientClass medic 0; addchatline '^2Class = Medic'" "alt" "medic"
bind "2" "clientClass medic 0; addchatline '^2Class = Medic'" "alt" "engineer"
bind "2" "clientClass medic 0; addchatline '^2Class = Medic'" "alt" "fieldops"
bind "2" "clientClass medic 0; addchatline '^2Class = Medic'" "alt" "covertops"
bind "3" "clientClass engineer 0; addchatline '^2Class = Engineer'" "alt" "soldier"
bind "3" "clientClass engineer 0; addchatline '^2Class = Engineer'" "alt" "medic"
bind "3" "clientClass engineer 0; addchatline '^2Class = Engineer'" "alt" "engineer"
bind "3" "clientClass engineer 0; addchatline '^2Class = Engineer'" "alt" "fieldops"
bind "3" "clientClass engineer 0; addchatline '^2Class = Engineer'" "alt" "covertops"
bind "4" "clientClass fieldops 0; addchatline '^2Class = Field Ops'" "alt" "soldier"
bind "4" "clientClass fieldops 0; addchatline '^2Class = Field Ops'" "alt" "medic"
bind "4" "clientClass fieldops 0; addchatline '^2Class = Field Ops'" "alt" "engineer"
bind "4" "clientClass fieldops 0; addchatline '^2Class = Field Ops'" "alt" "fieldops"
bind "4" "clientClass fieldops 0; addchatline '^2Class = Field Ops'" "alt" "covertops"
bind "5" "clientClass covertops 0; addchatline '^2Class = Covert Ops'" "alt" "soldier"
bind "5" "clientClass covertops 0; addchatline '^2Class = Covert Ops'" "alt" "medic"
bind "5" "clientClass covertops 0; addchatline '^2Class = Covert Ops'" "alt" "engineer"
bind "5" "clientClass covertops 0; addchatline '^2Class = Covert Ops'" "alt" "fieldops"
bind "5" "clientClass covertops 0; addchatline '^2Class = Covert Ops'" "alt" "covertops"

Part 2: Weapon Selection for GDF

bind "1" "clientClass soldier 0; addchatline '^2Weapon = Assault Rifle'" "shift" "soldier"
bind "2" "clientClass soldier 1; addchatline '^2Weapon = Rocket Launcher'" "shift" "soldier"
bind "3" "clientClass soldier 2; addchatline '^2Weapon = GPMG'" "shift" "soldier"
bind "4" "clientClass soldier 3; addchatline '^2Weapon = Shotgun'" "shift" "soldier"
bind "1" "clientClass medic 0; addchatline '^2Weapon = Assault Rifle'" "shift" "medic"
bind "2" "clientClass medic 1; addchatline '^2Weapon = Shotgun'" "shift" "medic"
bind "1" "clientClass engineer 0; addchatline '^2Weapon = Assault Rifle'" "shift" "engineer"
bind "2" "clientClass engineer 1; addchatline '^2Weapon = Shotgun'" "shift" "engineer"
bind "3" "clientClass engineer 2; addchatline '^2Weapon = Grenade Launcher'" "shift" "engineer"
bind "1" "clientClass fieldops 0; addchatline '^2Weapon = Assault Rifle'" "shift" "fieldops"
bind "2" "clientClass fieldops 1; addchatline '^2Weapon = Scoped Assault Rifle'" "shift" "fieldops"
bind "1" "clientClass covertops 0; addchatline '^2Weapon = Scoped Assault Rifle'" "shift" "covertops"
bind "2" "clientClass covertops 1; addchatline '^2Weapon = Sniper Rifle'" "shift" "covertops"

Part 3: Class Selection for Strogg

bind "1" "clientClass aggressor 0; addchatline '^2Class = Aggressor'" "alt" "aggressor"
bind "1" "clientClass aggressor 0; addchatline '^2Class = Aggressor'" "alt" "technician"
bind "1" "clientClass aggressor 0; addchatline '^2Class = Aggressor'" "alt" "constructor"
bind "1" "clientClass aggressor 0; addchatline '^2Class = Aggressor'" "alt" "oppressor"
bind "1" "clientClass aggressor 0; addchatline '^2Class = Aggressor'" "alt" "infiltrator"
bind "2" "clientClass technician 0; addchatline '^2Class = Technician'" "alt" "aggressor"
bind "2" "clientClass technician 0; addchatline '^2Class = Technician'" "alt" "technician"
bind "2" "clientClass technician 0; addchatline '^2Class = Technician'" "alt" "constructor"
bind "2" "clientClass technician 0; addchatline '^2Class = Technician'" "alt" "oppressor"
bind "2" "clientClass technician 0; addchatline '^2Class = Technician'" "alt" "infiltrator"
bind "3" "clientClass constructor 0; addchatline '^2Class = Constructor'" "alt" "aggressor"
bind "3" "clientClass constructor 0; addchatline '^2Class = Constructor'" "alt" "technician"
bind "3" "clientClass constructor 0; addchatline '^2Class = Constructor'" "alt" "constructor"
bind "3" "clientClass constructor 0; addchatline '^2Class = Constructor'" "alt" "oppressor"
bind "3" "clientClass constructor 0; addchatline '^2Class = Constructor'" "alt" "infiltrator"
bind "4" "clientClass oppressor 0; addchatline '^2Class = Oppressor'" "alt" "aggressor"
bind "4" "clientClass oppressor 0; addchatline '^2Class = Oppressor'" "alt" "technician"
bind "4" "clientClass oppressor 0; addchatline '^2Class = Oppressor'" "alt" "constructor"
bind "4" "clientClass oppressor 0; addchatline '^2Class = Oppressor'" "alt" "oppressor"
bind "4" "clientClass oppressor 0; addchatline '^2Class = Oppressor'" "alt" "infiltrator"
bind "5" "clientClass infiltrator 0; addchatline '^2Class = Infiltrator'" "alt" "aggressor"
bind "5" "clientClass infiltrator 0; addchatline '^2Class = Infiltrator'" "alt" "technician"
bind "5" "clientClass infiltrator 0; addchatline '^2Class = Infiltrator'" "alt" "constructor"
bind "5" "clientClass infiltrator 0; addchatline '^2Class = Infiltrator'" "alt" "oppressor"
bind "5" "clientClass infiltrator 0; addchatline '^2Class = Infiltrator'" "alt" "infiltrator"

Part 4: Weapon Selection for Strogg

bind "1" "clientClass aggressor 0; addchatline '^2Weapon = Lacerator'" "shift" "aggressor"
bind "2" "clientClass aggressor 1; addchatline '^2Weapon = Obliterator'" "shift" "aggressor"
bind "3" "clientClass aggressor 2; addchatline '^2Weapon = Hyperblaster'" "shift" "aggressor"
bind "4" "clientClass aggressor 3; addchatline '^2Weapon = Nailgun'" "shift" "aggressor"
bind "1" "clientClass technician 0; addchatline '^2Weapon = Lacerator'" "shift" "technician"
bind "2" "clientClass technician 1; addchatline '^2Weapon = Nailgun'" "shift" "technician"
bind "1" "clientClass constructor 0; addchatline '^2Weapon = Lacerator'" "shift" "constructor"
bind "2" "clientClass constructor 1; addchatline '^2Weapon = Nailgun'" "shift" "constructor"
bind "3" "clientClass constructor 2; addchatline '^2Weapon = Plasma Launcher'" "shift" "constructor"
bind "1" "clientClass oppressor 0; addchatline '^2Weapon = Lacerator'" "shift" "oppressor"
bind "2" "clientClass oppressor 1; addchatline '^2Weapon = Accurized Lacerator'" "shift" "oppressor"
bind "1" "clientClass infiltrator 0; addchatline '^2Weapon = Accurized Lacerator'" "shift" "infiltrator"
bind "2" "clientClass infiltrator 1; addchatline '^2Weapon = Railgun'" "shift" "infiltrator"

How to setup a config in a different location to default:

Right mouse click on you ETQW shortcut and select properties, then select the shortcut tab change the target information as follows (assuming ETQW is installed on c: drive)

“C:\Program Files\id Software\Enemy Territory – QUAKE Wars\etqw.exe” +set fs_userpath “c:\etqwdata” +set fs_savepath “c:\etqwdata” +set fs_devpath “c:\etqwdata”

Promod will be:

“C:\Program Files (x86)\id Software\Enemy Territory – QUAKE Wars\etqw.exe” +set fs_game etqwpro +set fs_userpath “c:\etqwdata” +set fs_savepath “c:\etqwdata” +set fs_devpath “c:\etqwdata”

Change c:\etqwdata to whatever you like as that will be the directory your files will go to in the future. Obviously you will need to grab your existing files and move them there unless you want to start a fresh slate.

Comments

chipper's picture

a full list of etqw pro

a full list of etqw pro cvars can be found at http://myhannes.info/wiki/index.php/Cvars_full_list
a full list of the retail cvars can be found at http://wiki.battle.no/index.php/Quake_Wars_Cvar_list

HarassmentPanda's picture

Thanks for those key binds Chuck

I’ll check them out when I get hoe. I hate pressing one for the decoys and the right mouse button feels so unused when I fly.

My competition config :)

There are a lot of good configs floating around, but here is mine, I need it to run ETQW on my crappy system. You will probably need to change a few binds and crosshair colours etc, but overall, its quite good:

bind “DEL” “kill” “shift”
seta s_decompressionLimit “6”
seta net_clientMaxRate “50000”
seta net_serverMaxClientRate “50000”
seta m_strafeSmooth “1”
seta m_smooth “1”
seta m_strafeScale “6.25”
seta m_yaw “0.022”
seta m_pitch “0.022”
seta in_anglespeedkey “1.5”
seta in_pitchspeed “140”
seta in_yawspeed “140”
seta s_useAdpcmCompression “1”
seta ui_showGun “0”

seta pm_runbob “0”
seta pm_runpitch “0”
seta pm_runroll “0”
seta pm_bobpitch “0”
seta pm_bobroll “0”
seta pm_bobup “0”
seta pm_crouchbob “0”
seta pm_walkbob “0”

seta net_clientPunkbusterEnabled “1”//enables punkbuster client
seta net_clientMaxPrediction “1000” //maximum number of ms a client can predict ahead of server d.
seta net_clientPrediction “20” //additional client side prediction d.
seta net_clientMaxRate 50000 //max rate d.
seta net_clientServerTimeout 40 //timeout counter for servercon. d.

//+-+-+-+ —+-+-+-+-+-+ —+-+-+-+-+-++-+-+-+-+-+-+-+
//|change this values correspodenting to your machine: |
//+-+-+-+ —+-+-+-+-+-+ —+-+-+-+-+-++-+-+-+-+-+-+-+
//be sure to set the right aspect ratio for your resolution,
//for example 5:4 for 1280×1024 or 4:3 for 800×600/1024×768
//to avoid displacement of screen elements

seta r_mode “4” //screen resolution,4=800×600,5=1024×768,9=1280×1024,13=1680×1050
seta r_aspectRatio “0” //0= 4:3 CRT default, 1=16:9 widescreen, 3=5:4 TFT, -1=r_customaspectratio is used

seta r_displayrefresh “85” //monitor refresh rate
seta r_fullscreen “1” //no comment =) alt+enter to change on-the-fly
seta r_visDistMult “1” //viewdistance for players, vehicles, 1=max distance, 0.8=min distance. lowering will improve FPS a bit, but not recommend for gameplay
seta com_videoRam “512” //insert your gpu ram amount here

//+-+-+-+ —+-+-+-+-+-+ —+-+-+-+-+-+
//| low quality shaders |
//+-+-+-+ —+-+-+-+-+-+ —+-+-+-+-+-+

seta r_skipStuff “1” //don´t draw stuff models
seta r_detailTexture “0” //disables detail textures on landscape
seta image_lodbias “1” //change lod bias on mipmapped images
seta bse_detailLevel “0.5” //detail level for effects

//+-+-+-+-+ —+-+-+-+-+-+-+
//| FPS- Unlock |
//+-+-+-+-+ —+-+-+-+-+-+-+

seta com_unlockFPS “1” //
seta com_unlock_timingMethod “1” //0=maxFPS,1=bound to 30/60/90,2=1+totalframetime
seta com_unlock_maxFPS “60” //fps engine tries to reach in meth 1+2

//+-+-+-+-+ —+-+-+-+-+-+-+
//| com_ settings |
//+-+-+-+-+ —+-+-+-+-+-+-+

seta com_MachineSpec “0” //-1=undetected,0=low,1=med,2=high,3=ultra
seta com_gpuSpec “0” //-1=undetected,0=low,1=med,2=high,3=ultra
seta com_purgeAll “0” //1=purge everything between level loads, not recommend

//+-+-+-+-+ —+-+-+-+-+-+-+
//| bse_ settings |
//+-+-+-+-+ —+-+-+-+-+-+-+

seta bse_simple “1” //simple effect animations on
seta bse_rateCost “1” //a bit faster with 1, but during tourney you need to see all effects like shotgun impacts etc
seta bse_rateLimit “1” //a bit faster with 1, but during tourney you need to see all effects like shotgun impacts etc
seta bse_detailLevel “0.5” //low details

//+-+-+-+-+ —+-+-+-+-+-+-+
//| r_ settings |
//+-+-+-+-+ —+-+-+-+-+-+-+

seta r_multiSamples “0” //Antialiasing samples
seta r_megaTilesPerSecond “1” //only updates limited number of megatiles
seta r_megaUpscale “0”
seta r_megaStreamFromDVD “0”
seta r_megaFadeTime “1500”
seta r_megaStreamBlocks “4”
seta r_detailFade “0.5”
seta r_shaderSkipSpecCubeMaps “0”
seta r_normalizeNormalMaps “1”
seta r_shaderPreferALU “1”
seta r_shaderQuality “2”
seta r_useAlphaToCoverage “0”
seta r_debugArrowStep “120”
seta r_debugLineWidth “1”
seta r_debugLineDepthTest “0”
seta r_skipRefractCopy “0”
seta r_skipDepthAmbient “0”
seta r_useShadowVisDistMult “1.0”
seta r_trisColor “1.0 1.0 1.0 1.0”
seta r_forceLoadImages “0”
seta r_shadows “0”
seta r_shadowPolygonFactor “0.3”
seta r_shadowPolygonOffset “-5”
seta r_useDitherMask “0”
seta r_skipAtmosphere “1”
seta r_swapInterval “0”
seta r_megaDrawMethod “3”
seta r_softParticles “0”
seta r_useIndexBuffers “1”
seta r_MD5LodScale “1”
seta r_renderProgramLodDistance “-1”
seta r_skipAtmosInteractions “1”

// <> Seta image_

seta image_specularPicMip “-4”
seta image_diffusePicMip “-4”
seta image_bumpPicMip “-4”
seta image_globalPicMip “-4”
seta image_picMip “-4”
seta image_picMipEnable “0”
seta image_detailPower “0.7”
seta image_ignoreHighQuality “0”
seta image_useBackgroundLoads “1”
seta image_usePrecompressedTextures “1”
seta image_useNormalCompression “2”
seta image_useAllFormats “1”
seta image_useCompression “1”
seta image_roundDown “1”
seta image_lodbias “1”
seta image_anisotropy “0”
seta image_filter “GL_LINEAR_MIPMAP_NEAREST”
seta r_renderProgramLodDistance “-1”
seta com_lastCPULevel “0”
seta com_lastCPUDetailLevel “0”
seta com_lastGraphicsLevel “0”
seta com_lastGraphicsDetailLevel “0”

// <> Seta g_

seta g_showplayershadow “0”
seta g_unlock_viewStyle “1”
seta g_unlock_interpolateMoving “1”
seta g_unlock_updateViewpos “1”
seta g_unlock_updateAngles “1”
seta g_spectateLerpScale “0.2”
seta g_transportDebrisLowCutoff “0”
seta g_transportDebrisMediumCutoff “0”
seta g_transportDebrisHighCutoff “0”
seta g_transportDebrisExtraHighCutoff “0”
seta g_maxTransportDebrisLow “0”
seta g_maxTransportDebrisMedium “0”
seta g_maxTransportDebrisHigh “0”
seta g_maxTransportDebrisExtraHigh “0”
seta g_enemyColor “0.9 0.1 0.1 1”
seta g_neutralColor “0.75 0.75 0.75”
seta g_friendlyColor “.5 .83 0 1”

I <3 Pr0sie

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Project issue numbers (ex. [#12345]) turn into links automatically.
  • You can use Textile markup to format text.
  • Lines and paragraphs break automatically.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • Web page addresses and e-mail addresses turn into links automatically.
  • You may use [view:name=display=args] tags to display views.
  • Avast! This website be taken over by pirates on September 19th. Yarr!

More information about formatting options

CAPTCHA
This question is for testing whether you are a Norwegian and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.