{"id":1726,"date":"2026-04-17T14:04:59","date_gmt":"2026-04-17T13:04:59","guid":{"rendered":"https:\/\/grimms3dworlds.ddns.net\/?page_id=1726"},"modified":"2026-04-17T14:04:59","modified_gmt":"2026-04-17T13:04:59","slug":"1726-2","status":"publish","type":"page","link":"https:\/\/grimms3dworlds.ddns.net\/index.php\/1726-2\/","title":{"rendered":""},"content":{"rendered":"\n<div style=\"font-family: 'Segoe UI', 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);\">\n\n    <h1 style=\"color: #1a3c5e; border-bottom: 2px solid #e0e6ed; margin-bottom: 15px; padding-bottom: 8px;\">\n        Call of Duty 2 \u2013 Client &amp; Server Side Files Explained\n    <\/h1>\n\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">\n        In Call of Duty 2 modding, understanding which files belong on the <strong>client<\/strong> (players), the <strong>server<\/strong>, or <strong>both<\/strong> is essential. \n        Mods are packaged in <strong>.iwd<\/strong> files (renamed ZIP archives). Files that must be on both sides <strong>must be identical<\/strong> (byte-for-byte match). \n        Any difference causes &#8220;iwd\/sum name mismatch&#8221; or purity errors when <code>sv_pure 1<\/code> is enabled.\n    <\/p>\n\n    <p style=\"background: #e7f3fe; border: 1px solid #b6d4fe; padding: 15px; color: #0c5460; border-radius: 5px; margin-bottom: 25px;\">\n        <strong>Key Rule:<\/strong> Any file listed as <strong>Both<\/strong> must be exactly the same on the server and all connecting clients. \n        Even a single byte difference will prevent players from joining.\n    <\/p>\n\n    <h2 style=\"color: #1a3c5e; border-bottom: 2px solid #e0e6ed; margin-bottom: 15px; padding-bottom: 8px;\">\n        File Types Overview\n    <\/h2>\n\n    <table style=\"width: 100%; border-collapse: collapse; margin-bottom: 25px;\">\n        <thead>\n            <tr style=\"border: 1px solid #ddd; background: #f8f9fa; color: black;\">\n                <th style=\"border: 1px solid #ddd; padding: 10px 8px; text-align: left; width: 22%;\">File Type \/ Folder<\/th>\n                <th style=\"border: 1px solid #ddd; padding: 10px 8px; text-align: left; width: 18%;\">Extension<\/th>\n                <th style=\"border: 1px solid #ddd; padding: 10px 8px; text-align: left; width: 15%;\">Primary Side<\/th>\n                <th style=\"border: 1px solid #ddd; padding: 10px 8px; text-align: left;\">Description<\/th>\n            <\/tr>\n        <\/thead>\n        <tbody>\n            <tr style=\"border: 1px solid #ddd;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Images<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.iwi<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Textures, skins, HUD icons, and menu graphics.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd; background: #f9f9f9;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Sounds<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.wav, .mp3<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Actual audio data for weapons, voice lines, and ambient sounds.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Models<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.xmodel<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">3D meshes for players, weapons, and map objects.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd; background: #f9f9f9;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Animations<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.xanim<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Movement and animation data for models and weapons.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Effects<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.efx<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Particle effects for smoke, fire, explosions, etc.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd; background: #f9f9f9;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Sound Aliases<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.csv<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Both<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Links sound names used in scripts to actual audio files (soundaliases folder).<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Scripts<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.gsc, .csc<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Server (.gsc)<br>Client (.csc)<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">.gsc = server-side game logic and rules.<br>.csc = client-side scripts (visual effects, UI, etc.).<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd; background: #f9f9f9;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Weapon Stats<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">(no extension)<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Both<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Damage, recoil, clip size, etc. Located in <code>weapons\/mp\/<\/code>.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Menus<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.menu<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">In-game UI layout and menu design.<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd; background: #f9f9f9;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Materials<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">(no extension)<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Client<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Shader instructions (how textures reflect light, scroll, etc.).<\/td>\n            <\/tr>\n            <tr style=\"border: 1px solid #ddd;\">\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">String Tables<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black; font-family: monospace;\">.csv<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Both<\/td>\n                <td style=\"border: 1px solid #ddd; padding: 10px 8px; color: black;\">Text used for rankings, weapon names, UI labels, etc.<\/td>\n            <\/tr>\n        <\/tbody>\n    <\/table>\n\n    <h2 style=\"color: #1a3c5e; border-bottom: 2px solid #e0e6ed; margin-bottom: 15px; padding-bottom: 8px;\">\n        Important Caveats &amp; Best Practices\n    <\/h2>\n\n    <ul style=\"color:#4a4a4a; padding-left:20px; line-height:1.6;\">\n        <li style=\"margin-bottom:10px;\"><strong>Both-side files must match exactly<\/strong> \u2014 Sound aliases, weapon stats, and string tables are the most common causes of mismatch errors.<\/li>\n        <li style=\"margin-bottom:10px;\"><strong>.gsc vs .csc<\/strong> \u2014 .gsc files run on the server (game logic). .csc files are client-side only and are used for visual\/effects scripting.<\/li>\n        <li style=\"margin-bottom:10px;\">Pure server logic can stay outside of .iwd files in the <code>mods\/yourmod\/<\/code> folder on the server \u2014 these files are never sent to clients.<\/li>\n    <\/ul>\n\n    <h2 style=\"color: #1a3c5e; border-bottom: 2px solid #e0e6ed; margin-bottom: 15px; padding-bottom: 8px;\">\n        Using \u201csvr\u201d in IWD Filenames (Server-Side Only)\n    <\/h2>\n\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">\n        To keep client download sizes small and avoid sending unnecessary files, place server-only content in IWD files prefixed with <strong>svr<\/strong>.\n    <\/p>\n\n    <p style=\"color: #4a4a4a; line-height: 1.6; margin-bottom: 15px;\">\n        Example: <code>svr_mymod_logic.iwd<\/code>\n    <\/p>\n\n    <p style=\"background: #e7f3fe; border: 1px solid #b6d4fe; padding: 15px; color: #0c5460; border-radius: 5px; margin-bottom: 20px;\">\n        <strong>Benefit:<\/strong> Clients will <strong>not<\/strong> download IWDs that begin with <code>svr<\/code>. This is perfect for pure server scripts, configs, or internal data.\n    <\/p>\n\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">\n        <strong>Recommended approach:<\/strong>\n    <\/p>\n\n    <ul style=\"color:#4a4a4a; padding-left:20px; line-height:1.6;\">\n        <li style=\"margin-bottom:8px;\">Client-visible assets (images, sounds, models, menus, etc.) \u2192 normal IWDs (often prefixed with <code>z_<\/code> to override stock files).<\/li>\n        <li style=\"margin-bottom:8px;\">Server-only files \u2192 <code>svr_*.iwd<\/code> or leave them extracted directly in the mod folder on the server.<\/li>\n        <li style=\"margin-bottom:8px;\">Always test with <code>sv_pure 1<\/code> to catch any mismatches early.<\/li>\n    <\/ul>\n\n    <p style=\"color:#4a4a4a;line-height:1.6;margin-top:25px;\">\n        This method keeps your mod fast to download for players while giving you full control on the server side.\n    <\/p>\n\n    <p style=\"font-size:0.9em; color:#888; margin-top:40px; border-top:1px solid #eee; padding-top:15px;\">\n        CoD2 Modding Guide \u2022 Client vs Server Files \u2022 Verified April 2026\n    <\/p>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Call of Duty 2 \u2013 Client &amp; Server Side Files Explained In Call of Duty 2 modding, understanding which files belong on the client (players), the server, or both is essential. Mods are packaged in .iwd files (renamed ZIP archives). Files that must be on both sides must be identical (byte-for-byte match). Any difference causes [&#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-1726","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1726","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=1726"}],"version-history":[{"count":3,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1726\/revisions"}],"predecessor-version":[{"id":1730,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1726\/revisions\/1730"}],"wp:attachment":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=1726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}