Jump to content

Help with scope optical zoom

Recommended Posts



I am trying to create a copy of a LPRS scope with maximum zoom and ace .

Coefficients remain unclear to me. For example, what is the minimum and maximum zoom in the config of my example ?

Can anyone give a formula, for example, so that the minimum zoom will be   8 and the maximum is 80?

What is the maximum zoom possible? I will be glad for any help


class Max_optic_LRPS_Max: ItemCore {
		author = "MaxOptic";
		dlc = "MaxOptic_New";
		_generalMacro = "Max_optic_LRPS_Max";
		scope = 2;
		displayName = "Optic LRPS MAX";
		picture = "\A3\Weapons_F_EPB\Acc\Data\UI\gear_acco_sniper02_CA.paa";
		model = "\A3\Weapons_F_EPB\Acc\acco_sniper02_F.p3d";
		descriptionShort = "LRPS MAX";
		ACE_ScopeHeightAboveRail = 4;
		ACE_ScopeAdjust_Vertical = {-10, 50};
		ACE_ScopeAdjust_Horizontal = {-10, 10};
		ACE_ScopeAdjust_VerticalIncrement = 0.100000;
		ACE_ScopeAdjust_HorizontalIncrement = 0.100000;

		class ItemInfo: InventoryOpticsItem_Base_F {
			mass = 20;
			opticType = 2;
			weaponInfoType = "RscWeaponRangeZeroingFOV";
			optics = 1;
			modelOptics = "\MAX_optic\Optic_LRPS.p3d";

			class OpticsModes {

				class Snip {
					opticsID = 1;
					useModelOptics = 1;
					opticsPPEffects = {"OpticsCHAbera1", "OpticsBlur1"};
					opticsZoomMin = 0.011000;
					opticsZoomMax = 0.045000;
					opticsZoomInit = 0.045000;
					discretefov = {0.045000, 0.011000};
					discreteDistance = {100};
					discreteDistanceInitIndex = 0;
					distanceZoomMin = 100;
					distanceZoomMax = 100;
					discreteInitIndex = 0;
					memoryPointCamera = "opticView";
					modelOptics = {"\MAX_optic\Optic_LRPS.p3d", "\MAX_optic\Optic_LRPS_Z.p3d"};
					visionMode = {"Normal"};
					opticsFlare = 1;
					opticsDisablePeripherialVision = 1;
					cameraDir = "";
		inertia = 0.200000;


Share this post

Link to post
Share on other sites

If the optic has a discretefov[] = array, it uses the stepped zoom system and has a corresponding modelOptics[] = for the reticle at each level of magnification.


For a start it appears you are missing the [] in the parameter names for the all your arrays (the config lines with = {xxx, yyy, zzz}; type lists of one or more values within curly brackets), so the game might not recognise them as valid parameters.


But ultimately the values for zoom correspond to the vertical screen FOV. Wide FOVs look less magnified than small FOVs, which is why the old system of optics magnification (opticsZoomMin, opticsZoomMax) are typically inverted to what you would expect, with the "min" value being high magnification and the "max" value being low magnification.

Since the Marksman DLC, all optics use an FOV of 0.25 to correspond to 1x magnification, so any magnified optics are calculated on the basis of 0.25 / Magnification. So a 4x scope magnification level would be 0.25/4, 6x would be 0.25/6 etc. etc.

As such, the values for a scope that has stepped zoom levels of 3x, 6x, 9x, 12x, 15x can use

discretefov[] = {0.25/3,0.25/6,0.25/9,0.25/12,0.25/15};

and a config parsing tool will normally enumerate that during binarisation to values that would be read ingame like

discretefov[] = {0.08333,0.04167,0.02778,0.02083,0.01667};

But as I said before, the modelOptics[] are typically calibrated to each of these FOVs if they're using mil-dots. So your scope will need custom optics too if you want working mil-dot reticles for an 8-80x scope

  • Like 1

Share this post

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now