<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://developer.vellocetsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Grimwar%2FCustom_content</id>
	<title>Grimwar/Custom content - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://developer.vellocetsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Grimwar%2FCustom_content"/>
	<link rel="alternate" type="text/html" href="https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;action=history"/>
	<updated>2026-10-21T19:56:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=278&amp;oldid=prev</id>
		<title>DocumentationBot: Clarify custom content navigation and standardize asset examples</title>
		<link rel="alternate" type="text/html" href="https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=278&amp;oldid=prev"/>
		<updated>2026-10-04T16:29:52Z</updated>

		<summary type="html">&lt;p&gt;Clarify custom content navigation and standardize asset examples&lt;/p&gt;
&lt;a href=&quot;https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;amp;diff=278&amp;amp;oldid=271&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>DocumentationBot</name></author>
	</entry>
	<entry>
		<id>https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=271&amp;oldid=prev</id>
		<title>DocumentationBot: Keep custom assets in one library shared across maps</title>
		<link rel="alternate" type="text/html" href="https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=271&amp;oldid=prev"/>
		<updated>2026-10-04T16:11:47Z</updated>

		<summary type="html">&lt;p&gt;Keep custom assets in one library shared across maps&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:11, 4 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Use Content in Vertex or VSDK to import your own media. A map or VMod can own its files, or reference assets from another installed add-on. The SDK builds the required files and records those dependencies.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Use Content in Vertex or VSDK to import your own media. A map or VMod can own its files, or reference assets from another installed add-on. The SDK builds the required files and records those dependencies.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Creating materials or model prefabs in Unity?&lt;/del&gt;&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Follow &lt;/del&gt;[[Grimwar/Unity custom content|Unity materials and models for Vertex]]. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It shows exactly where to &lt;/del&gt;create your textures, &amp;lt;code&amp;gt;.mat&amp;lt;/code&amp;gt; files, models, and &amp;lt;code&amp;gt;.prefab&amp;lt;/code&amp;gt; files, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;how &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;export their &lt;/del&gt;catalog&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;how to use them in an add-on map&lt;/del&gt;. The file-import workflow on this page &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;creates content from supported source &lt;/del&gt;files; it does not import Unity &amp;lt;code&amp;gt;.mat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.prefab&amp;lt;/code&amp;gt; files.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For custom assets shared across maps,&lt;/ins&gt;&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;follow &lt;/ins&gt;[[Grimwar/Unity custom content|Unity materials and models for Vertex]]. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Keep one shared library outside your map folders, &lt;/ins&gt;create your textures, &amp;lt;code&amp;gt;.mat&amp;lt;/code&amp;gt; files, models, and &amp;lt;code&amp;gt;.prefab&amp;lt;/code&amp;gt; files &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;there&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and connect each map &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;its &lt;/ins&gt;catalog&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. They appear in your general Materials &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Models selection&lt;/ins&gt;. The file-import workflow on this page &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;owns &lt;/ins&gt;files &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;within the map or resource&lt;/ins&gt;; it does not import Unity &amp;lt;code&amp;gt;.mat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.prefab&amp;lt;/code&amp;gt; files.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Add a sound to a map ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Add a sound to a map ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key vellocet_wiki:diff:1.41:old-266:rev-271:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>DocumentationBot</name></author>
	</entry>
	<entry>
		<id>https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=266&amp;oldid=prev</id>
		<title>DocumentationBot: Guide custom Unity materials and models into Vertex</title>
		<link rel="alternate" type="text/html" href="https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=266&amp;oldid=prev"/>
		<updated>2026-10-04T15:55:08Z</updated>

		<summary type="html">&lt;p&gt;Guide custom Unity materials and models into Vertex&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:55, 4 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Use Content in Vertex or VSDK to import your own media. A map or VMod can own its files, or reference assets from another installed add-on. The SDK builds the required files and records those dependencies.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Use Content in Vertex or VSDK to import your own media. A map or VMod can own its files, or reference assets from another installed add-on. The SDK builds the required files and records those dependencies.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Creating materials or model prefabs in Unity?&#039;&#039;&#039; Follow [[Grimwar/Unity custom content|Unity materials and models for Vertex]]. It shows exactly where to create your textures, &amp;lt;code&amp;gt;.mat&amp;lt;/code&amp;gt; files, models, and &amp;lt;code&amp;gt;.prefab&amp;lt;/code&amp;gt; files, how to export their catalog, and how to use them in an add-on map. The file-import workflow on this page creates content from supported source files; it does not import Unity &amp;lt;code&amp;gt;.mat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.prefab&amp;lt;/code&amp;gt; files.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Add a sound to a map ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Add a sound to a map ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Save the map, for example &amp;lt;code&amp;gt;my_arena.vertex&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Save the map, for example &amp;lt;code&amp;gt;my_arena.vertex&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Open &#039;&#039;&#039;Map → Content…&#039;&#039;&#039;, choose &#039;&#039;&#039;Sound&#039;&#039;&#039;, then &#039;&#039;&#039;Import files&#039;&#039;&#039;. Select &amp;lt;code&amp;gt;wind_loop.wav&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Open &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Settings → &lt;/ins&gt;Map &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;details &lt;/ins&gt;→ Content…&#039;&#039;&#039;, choose &#039;&#039;&#039;Sound&#039;&#039;&#039;, then &#039;&#039;&#039;Import files&#039;&#039;&#039;. Select &amp;lt;code&amp;gt;wind_loop.wav&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Set &amp;#039;&amp;#039;&amp;#039;Playback&amp;#039;&amp;#039;&amp;#039; to &amp;#039;&amp;#039;&amp;#039;AmbientLoop&amp;#039;&amp;#039;&amp;#039; for a looping sound with a world position. Adjust &amp;#039;&amp;#039;&amp;#039;Volume&amp;#039;&amp;#039;&amp;#039; between 0 and 1.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Set &amp;#039;&amp;#039;&amp;#039;Playback&amp;#039;&amp;#039;&amp;#039; to &amp;#039;&amp;#039;&amp;#039;AmbientLoop&amp;#039;&amp;#039;&amp;#039; for a looping sound with a world position. Adjust &amp;#039;&amp;#039;&amp;#039;Volume&amp;#039;&amp;#039;&amp;#039; between 0 and 1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Place an [[Grimwar/Entities/env_ambient|env_ambient]] entity and select the imported sound in &amp;#039;&amp;#039;&amp;#039;Custom Cue&amp;#039;&amp;#039;&amp;#039;. Leave &amp;#039;&amp;#039;&amp;#039;Play On Start&amp;#039;&amp;#039;&amp;#039; enabled to hear it when the map loads.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Place an [[Grimwar/Entities/env_ambient|env_ambient]] entity and select the imported sound in &amp;#039;&amp;#039;&amp;#039;Custom Cue&amp;#039;&amp;#039;&amp;#039;. Leave &amp;#039;&amp;#039;&amp;#039;Play On Start&amp;#039;&amp;#039;&amp;#039; enabled to hear it when the map loads.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key vellocet_wiki:diff:1.41:old-150:rev-266:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>DocumentationBot</name></author>
	</entry>
	<entry>
		<id>https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=150&amp;oldid=prev</id>
		<title>DocumentationBot: Version 1</title>
		<link rel="alternate" type="text/html" href="https://developer.vellocetsoftware.com/w/index.php?title=Grimwar/Custom_content&amp;diff=150&amp;oldid=prev"/>
		<updated>2026-10-01T04:13:05Z</updated>

		<summary type="html">&lt;p&gt;Version 1&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GameNav}}&lt;br /&gt;
&lt;br /&gt;
Use Content in Vertex or VSDK to import your own media. A map or VMod can own its files, or reference assets from another installed add-on. The SDK builds the required files and records those dependencies.&lt;br /&gt;
&lt;br /&gt;
== Add a sound to a map ==&lt;br /&gt;
&lt;br /&gt;
# Save the map, for example &amp;lt;code&amp;gt;my_arena.vertex&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Open &amp;#039;&amp;#039;&amp;#039;Map → Content…&amp;#039;&amp;#039;&amp;#039;, choose &amp;#039;&amp;#039;&amp;#039;Sound&amp;#039;&amp;#039;&amp;#039;, then &amp;#039;&amp;#039;&amp;#039;Import files&amp;#039;&amp;#039;&amp;#039;. Select &amp;lt;code&amp;gt;wind_loop.wav&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Set &amp;#039;&amp;#039;&amp;#039;Playback&amp;#039;&amp;#039;&amp;#039; to &amp;#039;&amp;#039;&amp;#039;AmbientLoop&amp;#039;&amp;#039;&amp;#039; for a looping sound with a world position. Adjust &amp;#039;&amp;#039;&amp;#039;Volume&amp;#039;&amp;#039;&amp;#039; between 0 and 1.&lt;br /&gt;
# Place an [[Grimwar/Entities/env_ambient|env_ambient]] entity and select the imported sound in &amp;#039;&amp;#039;&amp;#039;Custom Cue&amp;#039;&amp;#039;&amp;#039;. Leave &amp;#039;&amp;#039;&amp;#039;Play On Start&amp;#039;&amp;#039;&amp;#039; enabled to hear it when the map loads.&lt;br /&gt;
# Build with &amp;#039;&amp;#039;&amp;#039;Play in Game&amp;#039;&amp;#039;&amp;#039; and check the volume and placement in Grimwar.&lt;br /&gt;
&lt;br /&gt;
The imported sound has a key such as &amp;lt;code&amp;gt;asset:my_arena/wind_loop&amp;lt;/code&amp;gt;. Custom Cue takes priority over the entity&amp;#039;s base-game Event Name. You do not need to build Wwise banks or write an audio manifest.&lt;br /&gt;
&lt;br /&gt;
The source stays under &amp;lt;code&amp;gt;Content/&amp;lt;/code&amp;gt;, with its settings in &amp;lt;code&amp;gt;content.json&amp;lt;/code&amp;gt;. Keep both with the map. Use &amp;#039;&amp;#039;&amp;#039;Replace media&amp;#039;&amp;#039;&amp;#039; to update the sound without changing its key.&lt;br /&gt;
&lt;br /&gt;
=== Pick the playback type ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Use&lt;br /&gt;
|-&lt;br /&gt;
| Announcer || Non-spatial announcements.&lt;br /&gt;
|-&lt;br /&gt;
| Sfx2D || A non-spatial one-shot sound.&lt;br /&gt;
|-&lt;br /&gt;
| Sfx3D || A one-shot sound at a world position.&lt;br /&gt;
|-&lt;br /&gt;
| AmbientLoop || A looping sound at a world position.&lt;br /&gt;
|-&lt;br /&gt;
| MusicLoop || Looping music.&lt;br /&gt;
|-&lt;br /&gt;
| Ambience2DLoop || Looping non-spatial ambience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a sound that starts from a door or objective, disable Play On Start and call the ambient entity from a client VSig handler. See [[Grimwar/VSig#Server and client logic|Server and client logic]].&lt;br /&gt;
&lt;br /&gt;
An ambient entity&amp;#039;s &amp;#039;&amp;#039;&amp;#039;Audible Distance&amp;#039;&amp;#039;&amp;#039; is its emitter radius, not a guaranteed cutoff distance. Point mode stays at the marker. Volumetric mode follows the nearest boundary of its oriented box when the listener is outside and plays in 2D inside.&lt;br /&gt;
&lt;br /&gt;
== Make a reusable media pack ==&lt;br /&gt;
&lt;br /&gt;
# Open VSDK and select &amp;#039;&amp;#039;&amp;#039;Media pack&amp;#039;&amp;#039;&amp;#039;, then &amp;#039;&amp;#039;&amp;#039;Create…&amp;#039;&amp;#039;&amp;#039;. Choose a new source folder outside the SDK installation, such as &amp;lt;code&amp;gt;shared_sounds&amp;lt;/code&amp;gt;. The folder name becomes the pack&amp;#039;s stable ID.&lt;br /&gt;
# Open &amp;#039;&amp;#039;&amp;#039;Content…&amp;#039;&amp;#039;&amp;#039; and set its title, author, and version.&lt;br /&gt;
# Import your files and choose their settings. Mark assets intended for other packages with &amp;#039;&amp;#039;&amp;#039;Include in build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Select &amp;#039;&amp;#039;&amp;#039;Check build contents&amp;#039;&amp;#039;&amp;#039; and review the file list and size.&lt;br /&gt;
# Build into Grimwar&amp;#039;s add-on folder and enable the package in the game.&lt;br /&gt;
&lt;br /&gt;
In another map or VMod&amp;#039;s Content window, select an installed asset from this pack and choose &amp;#039;&amp;#039;&amp;#039;Use this package&amp;#039;&amp;#039;&amp;#039;. A reference such as &amp;lt;code&amp;gt;asset:shared_sounds/wind_loop&amp;lt;/code&amp;gt; points to the provider. The consuming build records &amp;lt;code&amp;gt;shared_sounds&amp;lt;/code&amp;gt; as a requirement and leaves the sound bytes in the provider&amp;#039;s package.&lt;br /&gt;
&lt;br /&gt;
Install and enable both packages to test them. Publish the media pack first, then the map or mod that depends on it. Keep the provider ID and asset keys stable in updates. Removing or renaming a published key can break consumers even if the pack&amp;#039;s display title stays the same.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;#039;&amp;#039;&amp;#039;Copy files into this package&amp;#039;&amp;#039;&amp;#039; when you want an independent copy you can edit and distribute. Check the creator&amp;#039;s redistribution terms first. Other external references still keep their own dependencies.&lt;br /&gt;
&lt;br /&gt;
== Use media in a VMod ==&lt;br /&gt;
&lt;br /&gt;
Open the VMod&amp;#039;s &amp;#039;&amp;#039;&amp;#039;Content…&amp;#039;&amp;#039;&amp;#039; controls in VSDK. For an attached VMod, select it under the map&amp;#039;s SDK resources and use that resource&amp;#039;s Content button. Importing there gives the script local names for its own assets.&lt;br /&gt;
&lt;br /&gt;
For a sound imported as &amp;lt;code&amp;gt;round_start&amp;lt;/code&amp;gt; with the Announcer or Sfx2D playback type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
var result = context.Audio.PlayToAll(&amp;quot;round_start&amp;quot;);&lt;br /&gt;
if (!result.Success)&lt;br /&gt;
    context.Log.Warn(result.Message);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use a full asset key for a sound from a shared pack:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
var result = context.Audio.PlayFromPlayer(&lt;br /&gt;
    playerId, &amp;quot;asset:shared_sounds/wind_loop&amp;quot;, 0.5f);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here &amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; is the &amp;lt;code&amp;gt;IModContext&amp;lt;/code&amp;gt; saved in &amp;lt;code&amp;gt;OnLoad&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;playerId&amp;lt;/code&amp;gt; identifies a connected player. This second example needs an AmbientLoop or Sfx3D cue. &amp;lt;code&amp;gt;PlayFromPlayer&amp;lt;/code&amp;gt; uses the player&amp;#039;s authoritative pawn position. Save &amp;lt;code&amp;gt;result.Value&amp;lt;/code&amp;gt; from a successful play if you need to stop it later with &amp;lt;code&amp;gt;context.Audio.Stop&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PlayToAll&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;PlayToPlayer&amp;lt;/code&amp;gt; accept non-spatial cue types. &amp;lt;code&amp;gt;PlayAt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;PlayFromPlayer&amp;lt;/code&amp;gt; accept Sfx3D and AmbientLoop. Playback gain multiplies the cue&amp;#039;s own volume.&lt;br /&gt;
&lt;br /&gt;
Use &amp;#039;&amp;#039;&amp;#039;Use this package&amp;#039;&amp;#039;&amp;#039; to record a selected provider. When declaring a dependency directly in a VMod manifest, put its add-on ID in &amp;lt;code&amp;gt;requires&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;dependencies&amp;lt;/code&amp;gt; instead lists VMod IDs for script load order.&lt;br /&gt;
&lt;br /&gt;
API 15 also exposes declared text/data through &amp;lt;code&amp;gt;Content&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
string rules;&lt;br /&gt;
if (context.Content.TryReadText(&amp;quot;rules&amp;quot;, out rules))&lt;br /&gt;
    context.Log.Write(rules);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Import the file through the resource&amp;#039;s Content window and keep it included in the build. &amp;lt;code&amp;gt;Content.Describe(key)&amp;lt;/code&amp;gt; reads asset metadata. These APIs operate on declared assets; they do not give a VMod access to arbitrary files.&lt;br /&gt;
&lt;br /&gt;
== Supported imports ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Source formats !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Sound || WAV, Ogg Vorbis, MP3 || Up to 32 MiB per source. Set the playback type and volume.&lt;br /&gt;
|-&lt;br /&gt;
| Surface material || PNG, JPG/JPEG, TGA || Creates a surface material from an image. Up to 16 MiB per source.&lt;br /&gt;
|-&lt;br /&gt;
| Image / texture || PNG, JPG/JPEG, TGA || Up to 16 MiB per source. Select the type the consuming field expects.&lt;br /&gt;
|-&lt;br /&gt;
| Model || FBX, OBJ || Import supported MTL and image companions alongside it. Review scale and collision.&lt;br /&gt;
|-&lt;br /&gt;
| Font || TTF, OTF || Requires a supported game consumer.&lt;br /&gt;
|-&lt;br /&gt;
| Video || MP4, WebM, MOV || Requires a supported game consumer; importing a clip does not place a video screen.&lt;br /&gt;
|-&lt;br /&gt;
| Text / data || TXT, JSON, CSV, Markdown || Up to 8 MiB per source; usable through the VMod Content API.&lt;br /&gt;
|-&lt;br /&gt;
| Binary data || BIN || Packaged data for supported consumers, not executable code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Native Unity media, including models, materials, textures, fonts, and video, needs the SDK&amp;#039;s pinned Unity compiler and target modules. Sounds and ordinary data use platform-independent files. Import support does not imply that every entity or VMod service can consume every type.&lt;br /&gt;
&lt;br /&gt;
== Keep builds small and repeatable ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;#039;&amp;#039;&amp;#039;Check build contents&amp;#039;&amp;#039;&amp;#039; to see what is included and why. Unreferenced files can stay in your source folder without shipping. &amp;#039;&amp;#039;&amp;#039;Include in build&amp;#039;&amp;#039;&amp;#039; keeps an asset available when code chooses its key at runtime; a referenced asset is included even if that checkbox is off.&lt;br /&gt;
&lt;br /&gt;
Keep model companion files together. Use &amp;#039;&amp;#039;&amp;#039;Rebuild model previews&amp;#039;&amp;#039;&amp;#039; after editing a model externally. Rebuild the package after any source change; the compiler reuses matching verified output where it can.&lt;br /&gt;
&lt;br /&gt;
Avoid copying the same large library into every map. Put shared assets in a media pack when you want a common update and dependency. Use an owned copy when a map needs to keep its own version.&lt;br /&gt;
&lt;br /&gt;
== Artwork and distribution ==&lt;br /&gt;
&lt;br /&gt;
Set a media pack&amp;#039;s title, author, version, and PNG thumbnail in Content. Use a 1920 × 1080 thumbnail for Release. Enable &amp;#039;&amp;#039;&amp;#039;Release package&amp;#039;&amp;#039;&amp;#039; in VSDK, build, and publish the result as &amp;#039;&amp;#039;&amp;#039;Content&amp;#039;&amp;#039;&amp;#039; from Grimwar&amp;#039;s Addons screen.&lt;br /&gt;
&lt;br /&gt;
Keep the entire output folder, including its generated &amp;lt;code&amp;gt;addon.json&amp;lt;/code&amp;gt; and catalogs. The editable &amp;lt;code&amp;gt;content.json&amp;lt;/code&amp;gt; is source; it is not an installable package by itself. See [[Grimwar/Steam Workshop addons]] for dependencies and updates.&lt;br /&gt;
&lt;br /&gt;
[[Category:Grimwar]] [[Category:Addons]]&lt;/div&gt;</summary>
		<author><name>DocumentationBot</name></author>
	</entry>
</feed>