Room Tuning
Overview
Tuning in Intruder refers to a server or Custom Map that uses a JSON script to change the rules of the game. Tuning scripts can modify various gameplay elements, including movement speed, health, clip size, gravity, and more. These Scripts can be pasted into the "Tuning" box in the Create Room page, or placed into a TuningProxy element while creating a map. Entering the Tuning into a TuningProxy will automatically apply the settings each time the map is used. If a server applies Tuning settings on a map with settings already applied, the server options take priority.
Formatting
The formatting for the Tuning JSON file is broken down into multiple sections, each relating to a separate section of gameplay:
1. Match 2. Guard 1. Weapon 2. Motor 1. Jumping 2. Speed 3. Sliding 3. Health/Balance/Energy 4. Movement 5. View 3. Intruder 1. Weapon 2. Motor 1. Jumping 2. Speed 3. Sliding 3. Health/Balance/Energy 4. Movement 5. View 4. Global
In each of these sections, multiple values can be changed to alter how they operate in-game. If a given value is not different from the default settings, then it does not need to be included in the Tuning JSON. For instance, if we just wanted to allow same-team arresting, then the Tuning settings would look like this:
{ "MatchMode": { "canArrestTeammates": true }, }
Default Tuning Settings
In the table below, every setting available is listed at its default value. To change weapon variables, rename the "weapon" tag to the desired item and input numbers or 'true'/'false' into the float or bool labels respectively. NOTE: The table below (with the 'weapon' sections removed) will not alter any in-game settings. It is simply a list of all possible variables for reference.
Default Tuning JSON |
{ "MatchMode": { "element1Name": "", "element2Name": "", "roundsToWin": 3, "setsToWin": 2, "scrambleAfterXMatches": 1, "nextMapAfterXMatches": -1, "randomMapChange": false, "timerEnabled": true, "swapTeamsEverySet": true, "canArrestTeammates": false, "pingLimit": 1200, "pingLimitCheckTimes": 10 }, "GuardTuning": { To edit multiple weapons, copy and paste the 'Weapon' section and rename it to the corresponding weapon "Weapon": { After renaming, you can change each 'bool' or 'float' to your desired value "canUseOnLadder": bool, "canUseInWater": bool, "canUseUnderWater": bool, "canUseOnZipline": bool, "dropWhenRagged": bool, "hideOnRagdoll": bool, "fireRate": float, "fireRecoverRate": float, "fireDelayTime": float, "hasSemiAuto": bool, "hasFullAuto": bool, "hasBurstShot": bool, "maxClipAmmo": float, "reloadTime": float, "autoReload": bool, "reloadOnEquip": bool, "hasScope": bool, "canJumpFire": bool, "unequipOnEmpty": bool, "unequipDelay": float, "removeFromInventoryOnEmpty": bool, "equipTime": float, "advancedRecoil": bool, "hasStockRecoil": bool, "stockRecoilRecoverySpeed": float, "recoilBalance": float, "precoilBalance": float, "canFocusShot": bool, "noPrecoilZoomed": bool, "medHighEnergy": float, "lowMedEnergy": float, "aimDownSightsFov": float, "extraZoomingFov": float }, "CharacterMotor": { "jumping": { "baseHeight": 1, "extraHeight": 4.1, "perpAmount": 0, "steepPerpAmount": 0.5 }, "movement": { "maxForwardSpeed": 10, "maxSidewaysSpeed": 10, "maxBackwardsSpeed": 10, "maxGroundAcceleration": 30, "maxAirAcceleration": 20, "gravity": 9.8, "maxFallSpeed": 20 }, "sliding": { "slidingSpeed": 15, "sidewaysControl": 1, "speedControl": 0.4 } }, "PlayerLife": { "afkTime": 120, "defaultHP": 100, "defaultEnergy": 70, "defaultBalance": 100, "shouldRagdoll": true, "canRespawn": false, "defaultUnragTime": 3, "lowStamina": 40, "superLowStamina": 25, "lowStaminaUnragMod": 0.85, "superLowStaminaUnragMod": 1.6, "breathingThreshold": 15, "jumpBalance": 5, "standBalance": 50, "crouchBalance": 80, "proneBalance": 100, "standMoveBalance": 30, "standAimMoveBalance": 49, "crouchMoveBalance": 60, "crouchMoveAimBalance": 70, "proneMoveBalance": 90, "ziplineBalance": 50, "balanceDownSpeed": 10, "balanceUpSpeed": 2, "stanceEnergyEffect": [ 3, 3, 3, -10, -25, 0, 0, 3, -25, 0 ], "explosionAirKillDistance": 3, "bloodDripRate": 0.9, "bloodHPThreshold": 30 }, "PlayerMovement": { "leanAmount": 0.35, "speedWalk": 2.8, "speedStand": 3.4, "speedCrouch": 2.5, "speedProne": 1, "speedAim": 2.1, "speedAimCrouched": 1.75, "speedAimProne": 0.95, "runAnimSpeed": 1.1, "walkAnimSpeed": 0.6, "feignSpeed": 1, "stompHeight": 4, "canStomp": true, "fallHeightDeath": 13, "fallHeightFall": 4.3, "fallHeightCrouchMod": 2.3, "fallHeightLand": 1.9, "goombaMultiplier": 3, "jumpEnergyEffect": -20, "longJumpMaxSpeed": 5.5, "longJumpVelMultiplier": 3, "aimBobMod": 0.3, "crouchBobMod": 0.5, "proneBobMod": 0.5, "walkBobMod": 0.3, "runFootStepRate": 0.315, "walkFootStepRate": 0.5, "walkSoundMod": 0.5, "walkVolumeMod": 0.5, "walkDistanceMod": 0.5, "runVolumeMod": 1, "runDistanceMod": 1, "rigidGravity": 9.81, "allowFeignDeath": true }, "PlayerView": { "aimBobMod": 0.3, "crouchBobMod": 0.5, "proneBobMod": 0.5, "walkBobMod": 0.3, "lerpSpeed": 30 } }, "IntruderTuning": { To edit multiple weapons, copy and paste the 'Weapon' section and rename it to the corresponding weapon "Weapon": { After renaming, you can change each 'bool' or 'float' to your desired value "canUseOnLadder": bool, "canUseInWater": bool, "canUseUnderWater": bool, "canUseOnZipline": bool, "dropWhenRagged": bool, "hideOnRagdoll": bool, "fireRate": float, "fireRecoverRate": float, "fireDelayTime": float, "hasSemiAuto": bool, "hasFullAuto": bool, "hasBurstShot": bool, "maxClipAmmo": float, "reloadTime": float, "autoReload": bool, "reloadOnEquip": bool, "hasScope": bool, "canJumpFire": bool, "unequipOnEmpty": bool, "unequipDelay": float, "removeFromInventoryOnEmpty": bool, "equipTime": float, "advancedRecoil": bool, "hasStockRecoil": bool, "stockRecoilRecoverySpeed": float, "recoilBalance": float, "precoilBalance": float, "canFocusShot": bool, "noPrecoilZoomed": bool, "medHighEnergy": float, "lowMedEnergy": float, "aimDownSightsFov": float, "extraZoomingFov": float }, "CharacterMotor": { "jumping": { "baseHeight": 1, "extraHeight": 4.1, "perpAmount": 0, "steepPerpAmount": 0.5 }, "movement": { "maxForwardSpeed": 10, "maxSidewaysSpeed": 10, "maxBackwardsSpeed": 10, "maxGroundAcceleration": 30, "maxAirAcceleration": 20, "gravity": 9.8, "maxFallSpeed": 20 }, "sliding": { "slidingSpeed": 15, "sidewaysControl": 1, "speedControl": 0.4 } }, "PlayerLife": { "afkTime": 120, "defaultHP": 100, "defaultEnergy": 70, "defaultBalance": 100, "shouldRagdoll": true, "canRespawn": false, "defaultUnragTime": 3, "lowStamina": 40, "superLowStamina": 25, "lowStaminaUnragMod": 0.85, "superLowStaminaUnragMod": 1.6, "breathingThreshold": 15, "jumpBalance": 5, "standBalance": 50, "crouchBalance": 80, "proneBalance": 100, "standMoveBalance": 30, "standAimMoveBalance": 49, "crouchMoveBalance": 60, "crouchMoveAimBalance": 70, "proneMoveBalance": 90, "ziplineBalance": 50, "balanceDownSpeed": 10, "balanceUpSpeed": 2, "stanceEnergyEffect": [ 3, 3, 3, -10, -25, 0, 0, 3, -25, 0 ], "explosionAirKillDistance": 3, "bloodDripRate": 0.9, "bloodHPThreshold": 30 }, "PlayerMovement": { "leanAmount": 0.35, "speedWalk": 2.8, "speedStand": 3.4, "speedCrouch": 2.5, "speedProne": 1, "speedAim": 2.1, "speedAimCrouched": 1.75, "speedAimProne": 0.95, "runAnimSpeed": 1.1, "walkAnimSpeed": 0.6, "feignSpeed": 1, "stompHeight": 4, "canStomp": true, "fallHeightDeath": 13, "fallHeightFall": 4.3, "fallHeightCrouchMod": 2.3, "fallHeightLand": 1.9, "goombaMultiplier": 3, "jumpEnergyEffect": -20, "longJumpMaxSpeed": 5.5, "longJumpVelMultiplier": 3, "aimBobMod": 0.3, "crouchBobMod": 0.5, "proneBobMod": 0.5, "walkBobMod": 0.3, "runFootStepRate": 0.315, "walkFootStepRate": 0.5, "walkSoundMod": 0.5, "walkVolumeMod": 0.5, "walkDistanceMod": 0.5, "runVolumeMod": 1, "runDistanceMod": 1, "rigidGravity": 9.81, "allowFeignDeath": true }, "PlayerView": { "aimBobMod": 0.3, "crouchBobMod": 0.5, "proneBobMod": 0.5, "walkBobMod": 0.3, "lerpSpeed": 30 } }, "staminaDrainModifier": 0.5, "gunSwerveThreshold": 20, "updateStaminaRate": 0.1, "rigidGravity": 2.2, "energyToSwayOnMove": 70, "shouldCheckLives": false, "tuningMessage": "" } |
Tuning Generators
To avoid having to manually type each Tuning variable, a Tuning Generator is available that allows you to easily edit each setting and compile a Tuning JSON automatically.
Using a Tuning Generator
- Navigate to: https://dukeofsussex.dev/projects/itg/
- If you are editing an existing JSON, click 'IMPORT' at the top of the page and upload the JSON file or paste it manually into the dialog box.
- Edit the Tuning settings as desired.
- After finishing editing the values, click 'EXPORT' at the top and either copy or download the compiled script.
- After you copy/download the script, you can paste it into the "Tuning" box in the Create Room page, or into a TuningProxy element in IntruderMM.