Tiny client and server pack for daxe's community modrinth.com/project/daxe

Add Vivecraft config

+473 -1
+205
config/vivecraft-server-config.toml
··· 1 + 2 + #General Settings 3 + [general] 4 + #Will log clients that connect with Vivecraft and their Vivecraft version. 5 + debug = false 6 + #Will check for new mod versions when an OP logs into the server and sends a system message to them. 7 + checkForUpdate = false 8 + #What updates to check for. 9 + # r: Release, b: Beta, a: Alpha 10 + checkForUpdateType = "r" 11 + #Set to 'true' to only allow VR players to join the server. 12 + # If enabled, VR hotswitching will be automatically disabled. 13 + vr_only = false 14 + #Set to 'true' to only allow players that have Vivecraft installed to join the server. 15 + vive_only = false 16 + #Set to 'true', to allow server OPs to bypass VR/Vivecraft only settings. 17 + allow_op = true 18 + #Seconds to wait before kicking a player or sending the welcome messages. 19 + # The player's client must send the Vivecraft VERSION info in this time. 20 + # default: 10.00, min: 0.00, max: 100.00 21 + messageAndKickDelay = 10.0 22 + #Gives VR Players fun cakes and drinks at random, when they respawn. 23 + vrFun = false 24 + #Sends the player position data also back to the player that sent it, usually not needed. 25 + # Enable this on a dedicated server when using replay mod or something similar. 26 + sendDataToOwner = false 27 + 28 + #Configure messages that are sent when players do specific actions. 29 + #Set message to nothing to not send. e.g., leaveMessage = "" 30 + # Use '%s' in any message for the player name. 31 + # For messages that take two placeholders (i.e., death by mob) use '%1$s' for the player name and '%2$s' for the second placeholder. 32 + [messages] 33 + #Enable or disable all messages. 34 + enabled = false 35 + #Message sent when a player joins with VR active. 36 + welcomeVR = "%s has joined with standing VR!" 37 + #Message sent when a player joins with VR not active. 38 + welcomeNonVR = "%s has joined with Non-VR companion!" 39 + #Message sent when a player joins with VR in seated mode. 40 + welcomeSeated = "%s has joined with seated VR!" 41 + #Message sent when a player joins without vivecraft installed. 42 + welcomeVanilla = "%s has joined as a Muggle!" 43 + #Message sent when a player leaves the server. 44 + leaveMessage = "%s has disconnected from the server!" 45 + #Message sent when a player dies with VR active. 46 + deathVR = "%s died in standing VR!" 47 + #Message sent when a player dies with VR not active. 48 + deathNonVR = "%s died in Non-VR companion!" 49 + #Message sent when a player dies with VR in seated mode. 50 + deathSeated = "%s died in seated VR!" 51 + #Message sent when a player dies without Vivecraft. 52 + deathVanilla = "%s died as a Muggle!" 53 + #Message sent when a player dies because of a mob with VR active. 54 + deathByMobVR = "%1$s was slain by %2$s in standing VR!" 55 + #Message sent when a player dies because of a mob with VR not active. 56 + deathByMobNonVR = "%1$s was slain by %2$s in Non-VR companion!" 57 + #Message sent when a player dies because of a mob with VR in seated mode. 58 + deathByMobSeated = "%1$s was slain by %2$s in seated VR!" 59 + #Message sent when a player dies because of a mob without Vivecraft. 60 + deathByMobVanilla = "%1$s was slain by %2$s as a Muggle!" 61 + #Message sent to a player when they get kicked because of the 'Vivecraft Only' setting. 62 + KickViveOnly = "This server is configured for Vivecraft players only." 63 + #Message sent to a player when they get kicked because of the 'VR Only' setting. 64 + KickVROnly = "This server is configured for VR players only." 65 + 66 + #Vanilla Modifications for VR Players 67 + [vrChanges] 68 + #Distance at which creepers swell and explode for standing VR players. 69 + # Vanilla distance: 3 70 + # default: 1.75, min: 0.10, max: 10.00 71 + creeperSwellDistance = 1.75 72 + #Adjusts the range in which mobs can use melee attacks against standing VR players. 73 + # This is a reduction to the vanilla range (0.8 blocks), so 0.0 causes no change, and -0.7 means the mobs need to almost touch the player to cause an attack. 74 + # When set very low, mobs might stop right in front of the player without attacking! 75 + # default: -0.40, min: -0.70, max: 0.00 76 + mobAttackRangeAdjustment = -0.4 77 + #Allows vr players to hit/mine with their non-dominant hand items. 78 + dualWielding = true 79 + #Melee damage addition for VR players when hitting with their feet. 80 + # This scales with the armor attribute of the boots, doing one additional damage per Armor level, times this multiplier 81 + # Set to 0.0 to disable. 82 + # default: 0.00, min: 0.00, max: 5.00 83 + bootsArmorDamage = 0.0 84 + #Projectiles by default have an inaccuracy to not shoot in the same direction all the time. 85 + # With this, the inaccuracy can be adjusted for VR players. 86 + # 1.0 is equal to vanilla, 0.0 is no inaccuracy at all. 87 + # default: 1.00, min: 0.00, max: 1.00 88 + projectileInaccuracyMultiplier = 1.0 89 + #Allows VR players to bypass the vanilla block breaking check, which prevents breaking blocks too fast. 90 + allowFasterBlockBreaking = false 91 + #Allows VR players to block attacks by holding their shield up, without needing to actively use it. This means they can block attacks without needing to slow down. 92 + allowRoomscaleShieldBlocking = true 93 + #Allows VR players to attack entities, while they are actively using a shield. (This setting does not affect roomscale shield blocking) 94 + allowAttacksWhileBlocking = true 95 + 96 + #Bow Damage Adjustments 97 + [vrChanges.bow] 98 + #Archery damage multiplier for VR players in standing mode. 99 + # Set to 1.0 to disable. 100 + # default: 2.00, min: 1.00, max: 10.00 101 + standingMultiplier = 1.0 102 + #Archery damage multiplier for VR players in seated mode. 103 + # Set to 1.0 to disable. 104 + # default: 1.00, min: 1.00, max: 10.00 105 + seatedMultiplier = 1.0 106 + #Headshot damage multiplier for VR players in standing mode. 107 + # Set to 1.0 to disable. 108 + # default: 3.00, min: 1.00, max: 10.00 109 + standingHeadshotMultiplier = 1.5 110 + #Headshot damage multiplier for VR players in seated mode. 111 + # Set to 1.0 to disable. 112 + # default: 2.00, min: 1.00, max: 10.00 113 + seatedHeadshotMultiplier = 1.5 114 + #Headshot damage multiplier for Vanilla/NonVR players. 115 + # Set to 1.0 to disable. 116 + # default: 1.00, min: 1.00, max: 10.00 117 + vanillaHeadshotMultiplier = 1.5 118 + #Indicator to notify players that they got a headshot. Options are: 119 + # "NONE": No indicator. 120 + # "AUDIO": Plays a sound near the shooter. 121 + # "VISUAL": Spawns particles at the hit location. 122 + # "BOTH": Both Audio and Visual indicators. 123 + headshotIndicator = "AUDIO" 124 + 125 + #PVP Settings 126 + [pvp] 127 + #Notifies the player that tried to cause damage, that it was blocked from the server. 128 + notifyBlockedDamage = false 129 + #Allows Standing VR players to damage each other. 130 + VRvsVR = true 131 + #Allows Seated VR players to damage each other. 132 + SEATEDVRvsSEATEDVR = true 133 + #Allows Standing VR players and Non VR players to damage each other. 134 + VRvsNONVR = true 135 + #Allows Seated VR players and Non VR players to damage each other. 136 + SEATEDVRvsNONVR = true 137 + #Allows Standing VR players and Seated VR Players to damage each other. 138 + VRvsSEATEDVR = true 139 + 140 + #Climbey Motion Settings 141 + [climbey] 142 + #Allows the use of 'Jump Boots' and 'Climb Claws'. 143 + enabled = false 144 + #Specifies how the blocks in the blocklist are interpreted. Options are: 145 + # "DISABLED": List is ignored. All blocks are climbable. 146 + # "WHITELIST": Only blocks on the list are climbable. 147 + # "BLACKLIST": All blocks are climbable except those on the list 148 + blockmode = "DISABLED" 149 + #List of block names for use with WHITELIST/BLACKLIST block mode. 150 + # Blocks can be of the form 'blockid' for vanilla or 'modid:blockid' for modded blocks 151 + blocklist = ["white_wool", "dirt", "grass_block"] 152 + 153 + #Roomscale Crawling Settings 154 + [crawling] 155 + #Allows VR players to get into the crawl state by getting low to the ground. Disabling does not prevent vanilla crawling. 156 + enabled = true 157 + 158 + #Teleport Settings 159 + [teleport] 160 + #Allows VR players to use teleport movement. It is recommended to leave this enabled for players prone to VR sickness. 161 + # Disabling this only works for Vivecraft 1.3.0+ clients. 162 + enabled = true 163 + #Enforces limited teleport range and frequency in Survival. 164 + limitedSurvival = true 165 + #Maximum number of blocks players in Survival mode can teleport up. Set to 0 to disable. 166 + # default: 4, min: 1, max: 16 167 + upLimit = 4 168 + #Maximum number of blocks players in Survival mode can teleport down. Set to 0 to disable. 169 + # default: 4, min: 1, max: 16 170 + downLimit = 4 171 + #Maximum number of blocks players in Survival mode can teleport horizontally. Set to 0 to disable. 172 + # default: 16, min: 1, max: 32 173 + horizontalLimit = 16 174 + 175 + #Worldscale Settings 176 + [worldScale] 177 + #Limit the range of worldscales players are allowed to use. 178 + limitRange = false 179 + #Lower limit of allowed worldscale 180 + # default: 0.50, min: 0.10, max: 100.00 181 + min = 0.5 182 + #Upper limit of allowed worldscale 183 + # default: 2.00, min: 0.10, max: 100.00 184 + max = 2.0 185 + 186 + #Other Clientsetting Overrides 187 + [settingOverrides] 188 + #Forces players to use the 'Raw Item Positions' setting 189 + thirdPersonItems = false 190 + #Forces players to use the 'Raw Item Positions' setting, only for items with custom model data/custom item models. 191 + thirdPersonItemsCustom = false 192 + 193 + #VR Hotswitch Settings 194 + [vrSwitching] 195 + #Allows players to switch between VR and NonVR on the fly. 196 + # If disabled, they will be locked to the mode they joined with. 197 + enabled = true 198 + 199 + #Debug Settings 200 + [debug] 201 + #Will spawn particles at VR players device positions, to indicate the server VR data state. 202 + debugParticles = false 203 + #Will spawn particles at VR players head position, to indicate the server VR data state. 204 + debugParticlesHead = false 205 +
+259
configureddefaults/config/vivecraft-client-config.json
··· 1 + { 2 + "mrMovingCamOffsetZ": "0.0", 3 + "smoothTick": "false", 4 + "mrMovingCamOffsetY": "0.0", 5 + "mrMovingCamOffsetX": "0.0", 6 + "crawlThreshold": "0.82", 7 + "modelArmsMode": "COMPLETE", 8 + "reverseShootingEye": "false", 9 + "fbtExtendedCalibrated": "false", 10 + "closeWithRuntime": "true", 11 + "physicalKeyboardScale": "1.0", 12 + "renderTrackerPositions": "false", 13 + "disableShaderOptimization": "false", 14 + "keyboardKeys": "`1234567890-=qwertyuiop[]\\asdfghjkl;':\"zxcvbnm,./?<>", 15 + "FBTOFFSETS": "0.0,0.0,0.0;0.0,0.0,0.0;0.0,0.0,0.0;0.0,0.0,0.0;0.0,0.0,0.0;0.0,0.0,0.0;0.0,0.0,0.0", 16 + "applyPlayerWorldscale": "false", 17 + "weaponCollisionNew": "AUTO", 18 + "vrTouchHotbar": "true", 19 + "useCrosshairOcclusion": "true", 20 + "displayMirrorMode": "CROPPED", 21 + "vrFixedCamrotW": "0.962", 22 + "vrFixedCamrotZ": "0.041", 23 + "realisticRowEnabled": "true", 24 + "vrFixedCamrotY": "0.239", 25 + "vrFixedCamrotX": "0.125", 26 + "low_health_indicator": "true", 27 + "version": "0", 28 + "mixedRealityAlphaMask": "false", 29 + "handCameraFov": "70.0", 30 + "lastUpdate": "", 31 + "nullvrFOV": "110.0", 32 + "unlabeledTrackersUsed": "false", 33 + "playerWalkAnim": "true", 34 + "reverseHands": "false", 35 + "keyboardKeysShift": "~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL;':\"ZXCVBNM,./?<>", 36 + "thirdPersonItems": "false", 37 + "controllerTransform": "AUTO", 38 + "worldScale": "1.0", 39 + "feetBodyPosition": "true", 40 + "alwaysShowUpdates": "true", 41 + "playerModelArmsScale": "0.5", 42 + "renderVrPlayerAxes": "false", 43 + "hudDistance": "1.25", 44 + "stencilOn": "true", 45 + "hudPitchOffset": "-2.0", 46 + "onlySwordCollision": "false", 47 + "vehicleRotation": "true", 48 + "autoSprint": "true", 49 + "playerLimbsConnected": "true", 50 + "teleportLimitDown": "4", 51 + "ySensitivity": "1.0", 52 + "teleportLimitUp": "1", 53 + "allowAdvancedBindings": "false", 54 + "playerArmAnim": "true", 55 + "mrMovingCamOffsetRotW": "1.0", 56 + "pumpkinEffect": "true", 57 + "seatedHudAltMode": "true", 58 + "guiScale": "0", 59 + "insideBlockSolidColor": "false", 60 + "autoCloseKeyboard": "true", 61 + "mrMovingCamOffsetRotZ": "-0.0", 62 + "headHudScale": "1.0", 63 + "debugCameraTracker": "false", 64 + "autoSprintThreshold": "0.9", 65 + "mrMovingCamOffsetRotX": "-0.0", 66 + "mrMovingCamOffsetRotY": "-0.0", 67 + "QUICKCOMMAND_9": "take this!", 68 + "waterEffect": "true", 69 + "QUICKCOMMAND_1": "/gamemode creative", 70 + "menuBackground": "false", 71 + "QUICKCOMMAND_2": "/help", 72 + "QUICKCOMMAND_3": "/home", 73 + "simulateFalling": "true", 74 + "portalEffect": "true", 75 + "QUICKCOMMAND_4": "/sethome", 76 + "QUICKCOMMAND_5": "/spawn", 77 + "QUICKCOMMAND_6": "hi!", 78 + "realisticSneakEnabled": "true", 79 + "QUICKCOMMAND_7": "bye!", 80 + "QUICKCOMMAND_8": "follow me!", 81 + "analogMovement": "true", 82 + "QUICKCOMMAND_0": "/gamemode survival", 83 + "playerModelType": "VANILLA", 84 + "headToHmdLength": "0.10000000149011612", 85 + "chatNotificationSound": "block.note_block.bell", 86 + "jumpThreshold": "0.05", 87 + "movementSpeedMultiplier": "1.0", 88 + "seated": "false", 89 + "dualMirrorCrop": "false", 90 + "doubleGUIResolution": "false", 91 + "physicalKeyboardTheme": "DEFAULT", 92 + "limitedTeleport": "true", 93 + "guiOnMirror": "OFF", 94 + "RADIALALT_11": "", 95 + "RADIALALT_10": "", 96 + "RADIALALT_13": "", 97 + "RADIALALT_12": "", 98 + "bowMode": "ON", 99 + "allowStandingOriginOffset": "false", 100 + "crosshairScalesWithDistance": "false", 101 + "autoCalibration": "-1.0", 102 + "renderInGameCrosshairMode": "ALWAYS", 103 + "worldRotation": "0.0", 104 + "displayMirrorCenterSmooth": "0.0", 105 + "alwaysSimulateKeyboard": "false", 106 + "keyholeX": "15.0", 107 + "mixedRealityRenderCameraModel": "true", 108 + "thirdPersonItemsCustom": "true", 109 + "useFuzzySearch": "true", 110 + "fovRedutioncOffset": "0.1", 111 + "RADIAL_2": "vivecraft.key.rotateRight", 112 + "RADIAL_3": "key.pickItem", 113 + "RADIAL_0": "key.drop", 114 + "disableGarbageCollectorMessage": "false", 115 + "RADIAL_1": "key.chat", 116 + "RADIAL_6": "vivecraft.key.rotateLeft", 117 + "RADIAL_7": "vivecraft.key.quickTorch", 118 + "doorHitting": "true", 119 + "RADIAL_4": "vivecraft.key.toggleHandheldCam", 120 + "RADIAL_5": "vivecraft.key.togglePlayerList", 121 + "rememberVr": "true", 122 + "hudOcclusion": "true", 123 + "RADIAL_8": "", 124 + "RADIAL_9": "", 125 + "aimDevice": "CONTROLLER", 126 + "playerLimbsLimit": "false", 127 + "mixedRealityGui": "FIRST", 128 + "keyboardLayoutOrder": "custom;en_us", 129 + "mixedRealityUndistorted": "true", 130 + "vrSettingsButtonPositionLeft": "true", 131 + "vrFreeMoveMode": "CONTROLLER", 132 + "walkMultiplier": "1.0", 133 + "fovReduction": "false", 134 + "menuAlwaysFollowFace": "false", 135 + "renderAllPasses": "false", 136 + "hudMaxScale": "false", 137 + "vrHudLockMode": "WRIST", 138 + "blockIntelWindows": "true", 139 + "shouldRenderSelf": "false", 140 + "menuWorldSelection": "BOTH", 141 + "showMirrorOffText": "true", 142 + "useFsaa": "false", 143 + "renderScaleFactor": "1.0", 144 + "showServerPluginMissingMessageAlways": "true", 145 + "realisticBlockInteractEnabled": "true", 146 + "crosshairScale": "1.0", 147 + "hideGUI": "false", 148 + "mainPlayerDataSource": "REALTIME", 149 + "sneakThreshold": "0.4", 150 + "ingameBindingsInGui": "false", 151 + "RADIALALT_4": "", 152 + "RADIALALT_3": "", 153 + "RADIALALT_2": "", 154 + "RADIALALT_1": "", 155 + "RADIALALT_0": "", 156 + "mirrorCrop": "0.15", 157 + "mixedRealityKeyColor": "0,0,0", 158 + "oscTrackerPort": "9000", 159 + "showPlayerHands": "true", 160 + "realisticJumpEnabled": "AUTO", 161 + "vrRadialButtons": "8", 162 + "shaderFullSizeShadowLimbs": "true", 163 + "originOffset": "0.0,0.0,0.0", 164 + "vrToggleButtonEnabled": "true", 165 + "roomscaleSpearLunge": "true", 166 + "handCameraResScale": "1.0", 167 + "forceHardwareDetection": "0", 168 + "realisticClimbEnabled": "true", 169 + "forceStandingFreeMove": "false", 170 + "renderHeadHitbox": "false", 171 + "inertiaFactor": "NORMAL", 172 + "FBTROTATIONS": "1.0,0.0,0.0,0.0;1.0,0.0,0.0,0.0;1.0,0.0,0.0,0.0;1.0,0.0,0.0,0.0;1.0,0.0,0.0,0.0;1.0,0.0,0.0,0.0;1.0,0.0,0.0,0.0", 173 + "freezeEffect": "true", 174 + "mixedRealityFov": "40.0", 175 + "vrServerBlacklist": "mc.hypixel.net", 176 + "playerModelLegScale": "1.0", 177 + "xSensitivity": "1.0", 178 + "teleportLimitHoriz": "16", 179 + "nullvrEyeAngle": "2.0", 180 + "monoFOV": "0.0", 181 + "physicalKeyboard": "true", 182 + "autoOpenKeyboard": "OFF", 183 + "realisticSwimEnabled": "true", 184 + "keyboardCodes": "96;49;50;51;52;53;54;55;56;57;48;45;61;81;87;69;82;84;89;85;73;79;80;91;93;92;65;83;68;70;71;72;74;75;76;59;39;-1;-1;90;88;67;86;66;78;77;44;46;47;-1;-1;-1", 185 + "RADIALALT_9": "", 186 + "stereoProviderPluginID": "OPENVR", 187 + "RADIALALT_8": "", 188 + "RADIALALT_7": "", 189 + "RADIALALT_6": "", 190 + "RADIALALT_5": "", 191 + "worldRotationXSensitivity": "1.0", 192 + "keyboardPressBinds": "false", 193 + "radialModeHold": "true", 194 + "chatNotifications": "SOUND", 195 + "renderBlockOutlineMode": "ALWAYS", 196 + "guiAnisotropicFiltering": "true", 197 + "showServerPluginMessage": "NEVER", 198 + "showServerVrChangesMessage": "SERVER_ONLY", 199 + "vrHudWristOffset": "1.0", 200 + "reducedPlayerReach": "true", 201 + "modifyPauseMenu": "true", 202 + "guiAppearOverBlock": "true", 203 + "realisticDismountEnabled": "true", 204 + "dualMirrorSwap": "false", 205 + "bcbOn": "true", 206 + "hrtfSelection": "0", 207 + "menuCrosshairScale": "1.0", 208 + "renderDeviceAxes": "false", 209 + "seatedhmd": "false", 210 + "digitalMovementDeadzone": "0.5", 211 + "rightclickDelay": "VANILLA", 212 + "displayMirrorUseScreenshotCamera": "false", 213 + "manualCalibration": "-1.0", 214 + "allowCrawling": "true", 215 + "smoothRunTickCount": "20", 216 + "physicalGuiEnabled": "false", 217 + "vrHotswitchingEnabled": "true", 218 + "hudYawOffset": "0.0", 219 + "RADIAL_10": "", 220 + "menuWorldFallbackPanorama": "true", 221 + "shaderPatching": "true", 222 + "fovReductionMin": "0.25", 223 + "swordBlockCollision": "true", 224 + "externalCameraAngleOrder": "XZY", 225 + "RADIAL_12": "", 226 + "gameplayTrackerToRender": "", 227 + "guiMipmaps": "false", 228 + "RADIAL_11": "", 229 + "vrFixedCamposX": "-1.0", 230 + "realisticEntityInteractEnabled": "true", 231 + "RADIAL_13": "", 232 + "stencilBufferDisable": "false", 233 + "vrFixedCamposY": "2.5", 234 + "fbtCalibrated": "false", 235 + "vrFixedCamposZ": "2.7", 236 + "QUICKCOMMAND_11": "praise the sun!", 237 + "QUICKCOMMAND_10": "thank you!", 238 + "mixedRealityRenderHands": "false", 239 + "hudOpacity": "1.0", 240 + "vrWorldRotationIncrement": "45.0", 241 + "vrFreeMoveFlyMode": "AUTO", 242 + "feetCollision": "true", 243 + "renderGameplayTrackers": "false", 244 + "mixedRealityUnityLike": "true", 245 + "nullvrIPD": "0.1", 246 + "backpackSwitching": "true", 247 + "playerModelBodyScale": "1.0", 248 + "vrSettingsButtonEnabled": "true", 249 + "shaderGUIRender": "AFTER_SHADER", 250 + "displayMirrorLeftEye": "false", 251 + "selfButtSparklesInFirstPerson": "false", 252 + "vrEnabled": "false", 253 + "hitIndicator": "true", 254 + "walkUpBlocks": "true", 255 + "seatedFreeMove": "false", 256 + "updateType": "RELEASE", 257 + "showChatMessageStencil": "true", 258 + "fullReloadOnInit": "false" 259 + }
+8
index.toml
··· 93 93 hash = "6585cf34c6ea5c7b0462cc7bdd032eb728bd14f1e644eee87df73fefbc11402c" 94 94 95 95 [[files]] 96 + file = "config/vivecraft-server-config.toml" 97 + hash = "b3164ed754b84fce7a787de306a71346cc432d474148e2ad94eb4729be4807a8" 98 + 99 + [[files]] 96 100 file = "config/voicechat/voicechat-server.properties" 97 101 hash = "b7a88ee8cde6ed604eb8e8a03619545472b204f3cee20ab64085349c633fde26" 98 102 ··· 103 107 [[files]] 104 108 file = "configureddefaults/config/modmenu.json" 105 109 hash = "cbb272545d031a7343779e03311612d915d29c96883a82f1652d580857104649" 110 + 111 + [[files]] 112 + file = "configureddefaults/config/vivecraft-client-config.json" 113 + hash = "d203c0207854c6724676a7f46c6263c222bead85c915225fbb0c75193cd0b834" 106 114 107 115 [[files]] 108 116 file = "configureddefaults/options.txt"
+1 -1
pack.toml
··· 6 6 [index] 7 7 file = "index.toml" 8 8 hash-format = "sha256" 9 - hash = "ae75dd36bf59a06aabe477092205efa86c05700e34f9264d1b529671cb38a9bc" 9 + hash = "53843403ef8d228b35a2ec8dbba709cf16171247fdf34edd2c8599e02671a80b" 10 10 11 11 [versions] 12 12 fabric = "0.18.4"