{"id":1550,"date":"2025-10-07T01:05:49","date_gmt":"2025-10-07T00:05:49","guid":{"rendered":"https:\/\/grimms3dworlds.ddns.net\/?page_id=1550"},"modified":"2025-10-07T02:27:24","modified_gmt":"2025-10-07T01:27:24","slug":"1550-2","status":"publish","type":"page","link":"https:\/\/grimms3dworlds.ddns.net\/index.php\/1550-2\/","title":{"rendered":"CoD2 Soundalias csv"},"content":{"rendered":"\n<style>\n    .soundalias-container {\n        font-family: 'Segoe UI', Arial, sans-serif;\n        max-width: 900px;\n        margin: 0 auto;\n        padding: 20px;\n        background: #ffffff;\n        border-radius: 8px;\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n    }\n    .soundalias-container h1 {\n        color: #1a3c5e;\n        border-bottom: 2px solid #e0e6ed;\n        margin-bottom: 15px;\n        padding-bottom: 8px;\n    }\n    .soundalias-container h2 {\n        color: #1a3c5e;\n        border-bottom: 2px solid #e0e6ed;\n        margin-bottom: 15px;\n        padding-bottom: 8px;\n    }\n    .soundalias-container h3 {\n        color: #1a3c5e;\n        border-bottom: 1px solid #e0e6ed;\n        margin-bottom: 15px;\n        padding-bottom: 8px;\n    }\n    .soundalias-container p {\n        color: #4a4a4a;\n        line-height: 1.6;\n    }\n    .soundalias-container .note {\n        background: #e7f3fe;\n        border: 1px solid #b6d4fe;\n        padding: 15px;\n        color: #0c5460;\n        border-radius: 5px;\n        margin-bottom: 20px;\n    }\n    .soundalias-container ul {\n        color: #4a4a4a;\n        padding-left: 20px;\n    }\n    .soundalias-container ul li {\n        margin-bottom: 8px;\n    }\n    .soundalias-container pre {\n        background: #1e1e1e;\n        color: #ffffff;\n        padding: 15px;\n        border-radius: 5px;\n        font-size: 14px;\n        line-height: 1.4;\n        max-height: 400px;\n        overflow-y: auto;\n        overflow-x: auto;\n        white-space: pre;\n        position: relative;\n    }\n    .soundalias-container .copy-button {\n        position: absolute;\n        top: 10px;\n        right: 10px;\n        background: #007bff;\n        color: #ffffff;\n        border: none;\n        padding: 8px 12px;\n        border-radius: 4px;\n        cursor: pointer;\n        font-size: 12px;\n    }\n    .soundalias-container .copy-button.copied {\n        background: #28a745;\n    }\n    .soundalias-container table {\n        width: 100%;\n        border-collapse: collapse;\n        margin-bottom: 20px;\n    }\n    .soundalias-container th,\n    .soundalias-container td {\n        border: 1px solid #ddd;\n        padding: 8px;\n        text-align: left;\n        color: black;\n    }\n    .soundalias-container th {\n        background: #f8f9fa;\n        color: black;\n    }\n<\/style>\n\n<div class=\"soundalias-container\">\n    <h1>Call of Duty 2 Soundalias CSV Format<\/h1>\n    <p>\n        The <code>soundalias<\/code> CSV file in <em>Call of Duty 2<\/em> defines audio asset properties for in-game sounds. For custom multiplayer maps, create a new file named <code>yourmapname.csv<\/code> in a <code>soundalias<\/code> folder inside the &#8220;main&#8221; folder of the *Call of Duty 2* directory (e.g., <code>main\/soundalias\/<\/code>) and include it in your map\u2019s IWD file to ensure proper integration.\n    <\/p>\n    <p class=\"note\">\n        <strong>Note:<\/strong> Never modify existing <code>soundalias.csv<\/code> files in the game\u2019s main directories. Create a new <code>yourmapname.csv<\/code> file for your custom map to avoid conflicts and ensure compatibility. The header row (<code>name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type, probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve, startdelay,speakermap,reverb,lfe percentage<\/code>) must be included in the CSV file and is not optional.\n    <\/p>\n\n    <h2>Overview<\/h2>\n    <p>\n        The <code>soundalias<\/code> CSV format specifies sound aliases for in-game audio, such as ambient effects, weapon sounds, or dialogue. Each row in the file represents a sound alias, defining its playback behavior, channel, and map-specific usage. This documentation outlines the fields, their purposes, and how to configure them for custom multiplayer maps.\n    <\/p>\n\n    <h2>CSV Fields<\/h2>\n    <p>\n        The table below describes each field in the <code>soundalias<\/code> CSV file, including possible values for fields with preset options.\n    <\/p>\n\n    <table>\n        <tr>\n            <th>Field<\/th>\n            <th>Description<\/th>\n            <th>Possible Values<\/th>\n        <\/tr>\n        <tr>\n            <td><code>name<\/code><\/td>\n            <td>The identifier used to reference the sound alias in the game.<\/td>\n            <td>Any unique string (required).<\/td>\n        <\/tr>\n        <tr>\n            <td><code>sequence<\/code><\/td>\n            <td>Identifies duplicate aliases when multiple sound files are tied to a single alias, used to detect unwanted duplicates.<\/td>\n            <td>Any integer or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>file<\/code><\/td>\n            <td>The path to the audio file relative to the game&#8217;s sound directory.<\/td>\n            <td>Path to a valid audio file (e.g., .mp3, .wav) (required).<\/td>\n        <\/tr>\n        <tr>\n            <td><code>vol_min<\/code><\/td>\n            <td>The minimum volume at which the sound plays.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>vol_max<\/code><\/td>\n            <td>The maximum volume for randomizing volume between <code>vol_min<\/code> and <code>vol_max<\/code>.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>vol_mod<\/code><\/td>\n            <td>References a volume modifier group to adjust <code>vol_min<\/code> and <code>vol_max<\/code> based on a predefined multiplier.<\/td>\n            <td>Any string matching a <code>volumodgroups.def<\/code> category (e.g., <code>ambience<\/code>, <code>wpnplyr<\/code>) or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>pitch_min<\/code><\/td>\n            <td>The minimum pitch affecting the playback speed and tone of the sound.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>pitch_max<\/code><\/td>\n            <td>The maximum pitch for randomizing pitch between <code>pitch_min<\/code> and <code>pitch_max<\/code>.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>dist_min<\/code><\/td>\n            <td>The distance within which the sound plays at full volume.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>dist_max<\/code><\/td>\n            <td>The distance beyond which the sound does not play.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>channel<\/code><\/td>\n            <td>The audio channel determining how the sound is processed.<\/td>\n            <td><code>auto<\/code>, <code>menu<\/code>, <code>weapon<\/code>, <code>voice<\/code>, <code>item<\/code>, <code>body<\/code>, <code>local<\/code>, <code>music<\/code>, <code>announcer<\/code>, <code>auto2d<\/code>, or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>type<\/code><\/td>\n            <td>Specifies whether the sound is streamed from disk, primed for streaming, or pre-loaded into memory.<\/td>\n            <td><code>primed<\/code>, <code>streamed<\/code>, <code>loaded<\/code>, or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>probability<\/code><\/td>\n            <td>The weighted probability of playing this sound when multiple sounds are available for the same alias.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>loop<\/code><\/td>\n            <td>Indicates whether the sound loops continuously or plays once.<\/td>\n            <td><code>looping<\/code>, <code>nonlooping<\/code>, or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>masterslave<\/code><\/td>\n            <td>Defines if the sound is a master sound or if its volume is scaled when a master sound plays.<\/td>\n            <td><code>master<\/code>, any float, or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>loadspec<\/code><\/td>\n            <td>Lists the maps where the sound alias is loaded, optimizing memory usage.<\/td>\n            <td>Space-separated map names or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>subtitle<\/code><\/td>\n            <td>Text for subtitles, typically used for dialogue sounds.<\/td>\n            <td>Any string or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>compression<\/code><\/td>\n            <td>Specifies the compression type for the audio file. <strong>Note:<\/strong> This references an external file, likely part of another SDK (e.g., XMAUpdate), and may require further investigation.<\/td>\n            <td>Any string matching an entry in <code>XMAUpdate.tbl<\/code> or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>secondaryaliasname<\/code><\/td>\n            <td>References an additional sound alias to play alongside the current sound.<\/td>\n            <td>Any valid sound alias name or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>volumefalloffcurve<\/code><\/td>\n            <td>Defines the curve for how volume decreases with distance. <strong>Note:<\/strong> Most of these are typically not required, as seen in examples where this field is often left blank.<\/td>\n            <td>Any string referencing a <code>.vfcurve<\/code> file or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>startdelay<\/code><\/td>\n            <td>The delay before the sound starts playing.<\/td>\n            <td>Any integer (milliseconds) or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>speakermap<\/code><\/td>\n            <td>Defines the speaker output configuration. <strong>Note:<\/strong> Most of these are typically not required, as seen in examples where this field is often left blank.<\/td>\n            <td>Any string referencing a <code>.spkrmap<\/code> file or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>reverb<\/code><\/td>\n            <td>Controls how the sound is affected by reverb settings, such as wet and dry levels. <strong>Note:<\/strong> In multiplayer, reverb settings have no effect as they are not included in multiplayer utility scripts.<\/td>\n            <td><code>fulldrylevel<\/code>, <code>nowetlevel<\/code>, or blank.<\/td>\n        <\/tr>\n        <tr>\n            <td><code>lfe percentage<\/code><\/td>\n            <td>The percentage of the sound sent to the low-frequency effects (subwoofer) channel.<\/td>\n            <td>Any float or blank.<\/td>\n        <\/tr>\n    <\/table>\n\n    <h2>Volume Modifier Groups<\/h2>\n    <p>\n        The <code>vol_mod<\/code> field references categories defined in the <code>volumodgroups.def<\/code> file, which apply multipliers to adjust the volume of sounds based on their type. Below are the categories and their purposes:\n    <\/p>\n    <ul>\n        <li><strong>ambience<\/strong>: Ambient streams, such as background environmental sounds.<\/li>\n        <li><strong>bodyfall<\/strong>: Sounds for bodies hitting the ground or similar impacts.<\/li>\n        <li><strong>chatteral<\/strong>: Battle chatter for allied forces.<\/li>\n        <li><strong>chatterax<\/strong>: Battle chatter for axis forces.<\/li>\n        <li><strong>element<\/strong>: Ambient element sound effects, such as wind or water.<\/li>\n        <li><strong>emitter<\/strong>: Point emitter sound effects, like machinery or fires.<\/li>\n        <li><strong>explosion<\/strong>: Explosion-related sound effects.<\/li>\n        <li><strong>foley<\/strong>: Foley sounds, such as gear rattles or foliage movement.<\/li>\n        <li><strong>footstep<\/strong>: Footstep and landing sound effects.<\/li>\n        <li><strong>impact<\/strong>: Bullet impact sound effects.<\/li>\n        <li><strong>interface<\/strong>: User interface sound effects.<\/li>\n        <li><strong>music<\/strong>: Level music, excluding title or fluff music.<\/li>\n        <li><strong>reactional<\/strong>: Allied character reaction sound effects.<\/li>\n        <li><strong>reactionax<\/strong>: Axis character reaction sound effects.<\/li>\n        <li><strong>vehicle<\/strong>: Vehicle and vehicle-related sound effects.<\/li>\n        <li><strong>voiceover<\/strong>: Mission-based speech.<\/li>\n        <li><strong>wpnai<\/strong>: AI-controlled weapon sounds.<\/li>\n        <li><strong>wpnplyr<\/strong>: Player-controlled weapon sounds.<\/li>\n        <li><strong>na<\/strong>: Non-categorized sounds.<\/li>\n    <\/ul>\n    <p class=\"note\">\n        <strong>Note:<\/strong> Use the appropriate <code>vol_mod<\/code> category to balance sound types in-game. For example, use <code>ambience<\/code> for background sounds to ensure they blend well with louder effects like <code>explosion<\/code> or <code>wpnplyr<\/code>.\n    <\/p>\n\n    <h2>Example<\/h2>\n    <p>\n        Below is a sample <code>yourmapname.csv<\/code> file for a custom multiplayer map, placed in a <code>soundalias<\/code> folder inside the &#8220;main&#8221; folder (e.g., <code>main\/soundalias\/<\/code>) and included in the map\u2019s IWD file. This example includes ambient sounds and speech, reflecting common configurations from the game\u2019s sound aliases.\n    <\/p>\n    <pre>\nname,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage\nambient_custom_map,,ambient\/custom_ambience.mp3,0.6,,ambience,,,,,local,streamed,,looping,,custom_map,,,,,,,\nspeech_custom_cmd,,Voiceovers\/MP\/custom_cmd_01.wav,0.93,,,,7,3000,voice,streamed,,,,custom_map,,,\n<button class=\"copy-button\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/pre>\n\n    <h2>Usage Notes<\/h2>\n    <ul>\n        <li>Create a new <code>yourmapname.csv<\/code> file in a <code>soundalias<\/code> folder inside the &#8220;main&#8221; folder of the *Call of Duty 2* directory (e.g., <code>main\/soundalias\/<\/code>) and include it in your map\u2019s IWD file.<\/li>\n        <li>Use unique <code>name<\/code> values to avoid conflicts with other sound aliases.<\/li>\n        <li>Ensure the <code>file<\/code> path points to a valid audio file in the game\u2019s sound directory.<\/li>\n        <li>Use <code>vol_mod<\/code> to apply volume adjustments based on sound type, referencing <code>volumodgroups.def<\/code> categories.<\/li>\n        <li>Set <code>loadspec<\/code> to your map\u2019s name to restrict the sound to your custom map.<\/li>\n        <li>For ambient sounds (e.g., <code>ambient_custom_map<\/code>), consider using <code>looping<\/code> and leaving <code>dist_max<\/code> blank for omnipresent audio, as seen in examples like <code>ambient_france<\/code>.<\/li>\n        <li>The <code>reverb<\/code> field (<code>fulldrylevel<\/code>, <code>nowetlevel<\/code>, or blank) has no effect in multiplayer, as reverb settings are not included in multiplayer utility scripts.<\/li>\n        <li><code>volumefalloffcurve<\/code> and <code>speakermap<\/code> are typically not required, as most examples (e.g., <code>ambient_africa<\/code>, <code>ctf_touchenemy<\/code>) leave these fields blank unless a specific volume falloff or speaker configuration is needed.<\/li>\n        <li>Test sounds in-game to verify volume, pitch, and spatial behavior.<\/li>\n    <\/ul>\n    <p class=\"note\">\n        <strong>Note:<\/strong> Validate the CSV structure and ensure audio files exist in the specified paths. Include the <code>main\/soundalias\/yourmapname.csv<\/code> file in your map\u2019s IWD file to ensure the game loads it correctly. Be aware that reverb settings are ineffective in multiplayer due to the absence of reverb support in multiplayer utility scripts. The header row must be included in the CSV file and is not optional.\n    <\/p>\n<\/div>\n\n<script>\nfunction copyCode(button) {\n    const pre = button.parentElement;\n    const code = pre.textContent.split('\\n').slice(0, -1).join('\\n'); \/\/ Remove button text\n    navigator.clipboard.writeText(code).then(() => {\n        button.textContent = 'Copied!';\n        button.classList.add('copied');\n        setTimeout(() => {\n            button.textContent = 'Copy';\n            button.classList.remove('copied');\n        }, 2000);\n    });\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>.soundalias-container { font-family: &#8216;Segoe UI&#8217;, Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px; background: #ffffff; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .soundalias-container h1 { color: #1a3c5e; border-bottom: 2px solid #e0e6ed; margin-bottom: 15px; padding-bottom: 8px; } .soundalias-container h2 { color: #1a3c5e; border-bottom: 2px solid #e0e6ed; margin-bottom: 15px; padding-bottom: 8px; } [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1550","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=1550"}],"version-history":[{"count":4,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1550\/revisions"}],"predecessor-version":[{"id":1559,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1550\/revisions\/1559"}],"wp:attachment":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=1550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}