<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://forge.gemwire.uk/index.php?action=history&amp;feed=atom&amp;title=Sounds%2F1.16</id>
	<title>Sounds/1.16 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://forge.gemwire.uk/index.php?action=history&amp;feed=atom&amp;title=Sounds%2F1.16"/>
	<link rel="alternate" type="text/html" href="https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;action=history"/>
	<updated>2026-04-30T16:07:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2963&amp;oldid=prev</id>
		<title>Claycorp: Added a notice about a trap for newbies where sounds will always play on the client if they exist in the sound file regardless of registry.</title>
		<link rel="alternate" type="text/html" href="https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2963&amp;oldid=prev"/>
		<updated>2021-10-03T01:17:06Z</updated>

		<summary type="html">&lt;p&gt;Added a notice about a trap for newbies where sounds will always play on the client if they exist in the sound file regardless of registry.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&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-GB&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 01:17, 3 October 2021&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-l69&quot; &gt;Line 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;For example, to reference &amp;lt;code&amp;gt;example_complex.ogg&amp;lt;/code&amp;gt;, you would store the reference name (e.g. &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt;) within a &amp;lt;code&amp;gt;new SoundEvent(new ResourceLocation(&amp;quot;examplemod&amp;quot;, &amp;quot;example_sound_complex&amp;quot;))&amp;lt;/code&amp;gt;. This will locate &amp;lt;code&amp;gt;assets/examplemod/sounds.json&amp;lt;/code&amp;gt; and try to find an &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt; object nested within it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;For example, to reference &amp;lt;code&amp;gt;example_complex.ogg&amp;lt;/code&amp;gt;, you would store the reference name (e.g. &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt;) within a &amp;lt;code&amp;gt;new SoundEvent(new ResourceLocation(&amp;quot;examplemod&amp;quot;, &amp;quot;example_sound_complex&amp;quot;))&amp;lt;/code&amp;gt;. This will locate &amp;lt;code&amp;gt;assets/examplemod/sounds.json&amp;lt;/code&amp;gt; and try to find an &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt; object nested within it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;&amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s must be [[Registration/1.16|registered]] to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;be referenced &lt;/del&gt;in code.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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 class=&quot;diffchange diffchange-inline&quot;&gt;{{Tip/Warning|&lt;/ins&gt;&amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s must be [[Registration/1.16|registered]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;on the &amp;lt;code&amp;gt;ModEventBus&amp;lt;/code&amp;gt; &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;properly reference a sound on a server. However, &amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s or referencing a sound by name will still work on the client when the sound is not registered as long as the sound exists &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;&lt;/ins&gt;code&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;sounds&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;json&amp;lt;/code&amp;gt;!}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;== Playing Sounds ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;== Playing Sounds ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Claycorp</name></author>
	</entry>
	<entry>
		<id>https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2907&amp;oldid=prev</id>
		<title>Curle: Add note about mono sounds and attenuation.</title>
		<link rel="alternate" type="text/html" href="https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2907&amp;oldid=prev"/>
		<updated>2021-08-08T01:20:59Z</updated>

		<summary type="html">&lt;p&gt;Add note about mono sounds and attenuation.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&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-GB&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 01:20, 8 August 2021&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-l17&quot; &gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;Using the example above, it creates a sound called &amp;lt;code&amp;gt;example_sound&amp;lt;/code&amp;gt; and references the file &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;assets/&amp;lt;modid&amp;gt;/sounds/example_sound_file.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;Using the example above, it creates a sound called &amp;lt;code&amp;gt;example_sound&amp;lt;/code&amp;gt; and references the file &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;assets/&amp;lt;modid&amp;gt;/sounds/example_sound_file.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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 class=&quot;diffchange diffchange-inline&quot;&gt;{{Tip/Danger | Due to [https://bugs.mojang.com/browse/MC-146721 the way OpenAL (Minecraft's sound engine) works], for your sound to have attenuation - that is, for it to get quieter as the player walks away, it absolutely MUST be mono (have one audio channel).  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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 class=&quot;diffchange diffchange-inline&quot;&gt;Stereo sounds are always played at the '''player's''' location, making them ideal for ambient sounds and background music.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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 class=&quot;diffchange diffchange-inline&quot;&gt;}}  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;Instead of being constructed as a list of strings, each entry could also be an object which allows a greater control over what and how it is played.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;Instead of being constructed as a list of strings, each entry could also be an object which allows a greater control over what and how it is played.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Curle</name></author>
	</entry>
	<entry>
		<id>https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2787&amp;oldid=prev</id>
		<title>ShrimpBot: Copy Sounds to MC1.16 archive</title>
		<link rel="alternate" type="text/html" href="https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2787&amp;oldid=prev"/>
		<updated>2021-07-27T04:15:04Z</updated>

		<summary type="html">&lt;p&gt;Copy &lt;a href=&quot;/wiki/Sounds&quot; title=&quot;Sounds&quot;&gt;Sounds&lt;/a&gt; to MC1.16 archive&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&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-GB&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 04:15, 27 July 2021&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-l61&quot; &gt;Line 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 61:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;For example, to reference &amp;lt;code&amp;gt;example_complex.ogg&amp;lt;/code&amp;gt;, you would store the reference name (e.g. &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt;) within a &amp;lt;code&amp;gt;new SoundEvent(new ResourceLocation(&amp;quot;examplemod&amp;quot;, &amp;quot;example_sound_complex&amp;quot;))&amp;lt;/code&amp;gt;. This will locate &amp;lt;code&amp;gt;assets/examplemod/sounds.json&amp;lt;/code&amp;gt; and try to find an &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt; object nested within it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;For example, to reference &amp;lt;code&amp;gt;example_complex.ogg&amp;lt;/code&amp;gt;, you would store the reference name (e.g. &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt;) within a &amp;lt;code&amp;gt;new SoundEvent(new ResourceLocation(&amp;quot;examplemod&amp;quot;, &amp;quot;example_sound_complex&amp;quot;))&amp;lt;/code&amp;gt;. This will locate &amp;lt;code&amp;gt;assets/examplemod/sounds.json&amp;lt;/code&amp;gt; and try to find an &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt; object nested within it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;&amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s must be [[Registration&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|registered&lt;/del&gt;/1.16]] to be referenced in code.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;&amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s must be [[Registration/1.16&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|registered&lt;/ins&gt;]] to be referenced in code.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;== Playing Sounds ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;== Playing Sounds ==&lt;/div&gt;&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-l95&quot; &gt;Line 95:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 95:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;=== &amp;lt;code&amp;gt; PlayerEntity&amp;lt;/code&amp;gt; ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;=== &amp;lt;code&amp;gt; PlayerEntity&amp;lt;/code&amp;gt; ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (overriding the one in &amp;lt;code&amp;gt;[[Sounds#&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Entity|&lt;/del&gt;Entity/1.16]]&amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (overriding the one in &amp;lt;code&amp;gt;[[Sounds#Entity/1.16&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Entity&lt;/ins&gt;]]&amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; as the player.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; as the player.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Does nothing, see override in &amp;lt;code&amp;gt;[[Sounds#clientplayerentity&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|ClientPlayerEntity&lt;/del&gt;/1.16]]&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Does nothing, see override in &amp;lt;code&amp;gt;[[Sounds#clientplayerentity/1.16&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|ClientPlayerEntity&lt;/ins&gt;]]&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Plays the sound to everyone nearby &amp;lt;code&amp;gt;except&amp;lt;/code&amp;gt; this player.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Plays the sound to everyone nearby &amp;lt;code&amp;gt;except&amp;lt;/code&amp;gt; this player.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: See &amp;lt;code&amp;gt;[[Sounds#clientplayerentity&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|ClientPlayerEntity&lt;/del&gt;/1.16]]&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: See &amp;lt;code&amp;gt;[[Sounds#clientplayerentity/1.16&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|ClientPlayerEntity&lt;/ins&gt;]]&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;=== &amp;lt;code&amp;gt; ClientPlayerEntity&amp;lt;/code&amp;gt; ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;=== &amp;lt;code&amp;gt; ClientPlayerEntity&amp;lt;/code&amp;gt; ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (overriding the one in &amp;lt;code&amp;gt;[[Sounds#playerentity&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|PlayerEntity&lt;/del&gt;/1.16]]&amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (overriding the one in &amp;lt;code&amp;gt;[[Sounds#playerentity/1.16&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|PlayerEntity&lt;/ins&gt;]]&amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; as the player.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; as the player.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Just plays the Sound Event.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Just plays the Sound Event.&lt;/div&gt;&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-l110&quot; &gt;Line 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;td class='diff-marker'&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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&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;[[Category:Game Effects/1.16]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&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;[[Category:Game Effects/1.16&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Category:Game Effects&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ShrimpBot</name></author>
	</entry>
	<entry>
		<id>https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2732&amp;oldid=prev</id>
		<title>ShrimpBot: Copy Sounds to MC1.16 archive</title>
		<link rel="alternate" type="text/html" href="https://forge.gemwire.uk/index.php?title=Sounds/1.16&amp;diff=2732&amp;oldid=prev"/>
		<updated>2021-07-27T03:59:14Z</updated>

		<summary type="html">&lt;p&gt;Copy &lt;a href=&quot;/wiki/Sounds&quot; title=&quot;Sounds&quot;&gt;Sounds&lt;/a&gt; to MC1.16 archive&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Although not essential, sounds bring a greater immersion into the Minecraft world. Their usages within and outside the development environment gives a bit more polish to an already existing mod from background music to a single block break.&lt;br /&gt;
&lt;br /&gt;
== Creating a Sound ==&lt;br /&gt;
&lt;br /&gt;
Sounds in Minecraft are comprised of two things: an audio file and a reference pointer to that audio file.&lt;br /&gt;
&lt;br /&gt;
The reference pointer is known as &amp;lt;code&amp;gt;sounds.json&amp;lt;/code&amp;gt; which should be created at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;assets/&amp;lt;modid&amp;gt;/sounds.json&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. This JSON defines resource names to point to the audio files added by a specific mod. The only thing necessary to define a sound is by creating an object, naming it, and then defining the location of the sound within a list.&lt;br /&gt;
&lt;br /&gt;
By default, the only supported audio format is [https://xiph.org/vorbis/ Ogg Vorbis] represented by the extension &amp;lt;code&amp;gt;.ogg&amp;lt;/code&amp;gt;. The file &amp;lt;code&amp;gt;namespace:path&amp;lt;/code&amp;gt; when referenced in the JSON will be located within &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;assets/&amp;lt;namespace&amp;gt;/sounds/&amp;lt;path&amp;gt;.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;example_sound&amp;quot;: {&lt;br /&gt;
    &amp;quot;sounds&amp;quot;: [ &amp;quot;examplemod:example_sound_file&amp;quot; ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the example above, it creates a sound called &amp;lt;code&amp;gt;example_sound&amp;lt;/code&amp;gt; and references the file &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;assets/&amp;lt;modid&amp;gt;/sounds/example_sound_file.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Instead of being constructed as a list of strings, each entry could also be an object which allows a greater control over what and how it is played.&lt;br /&gt;
&lt;br /&gt;
Here are some variables that could be defined:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=1&lt;br /&gt;
!Parameter !!Description &lt;br /&gt;
|-&lt;br /&gt;
|   name   ||  Sets the path to the sound file excluding the &amp;lt;code&amp;gt;.ogg&amp;lt;/code&amp;gt; extension. &lt;br /&gt;
|-&lt;br /&gt;
|   stream   ||  Determines whether the sound should be streamed from the file. When true, it reduces the amount of lag from loading a large file; however, it only allows four instances of the sound to be played at once. &lt;br /&gt;
|-&lt;br /&gt;
|   volume   ||  A value between 0 and 1 to determine the volume of the sound played. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;example_sound&amp;quot;: {&lt;br /&gt;
    &amp;quot;sounds&amp;quot;: [ &amp;quot;examplemod:example_sound_file&amp;quot; ]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;example_sound_complex&amp;quot;: {&lt;br /&gt;
    &amp;quot;sounds&amp;quot;:&lt;br /&gt;
    [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;examplemod:complex/example_complex&amp;quot;,&lt;br /&gt;
        &amp;quot;pitch&amp;quot;: 0.6,&lt;br /&gt;
        &amp;quot;stream&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now there is a new sound within our JSON called &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt;. This points to the audio file at &amp;lt;code&amp;gt;assets/examplemod/sounds/complex/example_complex.json&amp;lt;/code&amp;gt;. The sound's pitch is lowered to 0.6 of its original value. The &amp;lt;code&amp;gt;stream&amp;lt;/code&amp;gt; parameter is also set to true.&lt;br /&gt;
&lt;br /&gt;
There are many more parameters that can give greater control on how sounds are played. However, this is left as an exercise to the reader to try and construct with the [https://minecraft.gamepedia.com/Sounds.json wiki].&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s ==&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;code&amp;gt;sounds.json&amp;lt;/code&amp;gt; left in its current state would only be defined in-game. There is currently no way to reference the sound within a mod. To do this, we utilize the &amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt; class. Each &amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt; class holds a &amp;lt;code&amp;gt;ResourceLocation&amp;lt;/code&amp;gt; to reference a sound pointer defined in the &amp;lt;code&amp;gt;sounds.json&amp;lt;/code&amp;gt; file. The &amp;lt;code&amp;gt;sounds.json&amp;lt;/code&amp;gt; file used is determined by the namespace or the resource location passed into the class.&lt;br /&gt;
&lt;br /&gt;
For example, to reference &amp;lt;code&amp;gt;example_complex.ogg&amp;lt;/code&amp;gt;, you would store the reference name (e.g. &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt;) within a &amp;lt;code&amp;gt;new SoundEvent(new ResourceLocation(&amp;quot;examplemod&amp;quot;, &amp;quot;example_sound_complex&amp;quot;))&amp;lt;/code&amp;gt;. This will locate &amp;lt;code&amp;gt;assets/examplemod/sounds.json&amp;lt;/code&amp;gt; and try to find an &amp;lt;code&amp;gt;example_sound_complex&amp;lt;/code&amp;gt; object nested within it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SoundEvent&amp;lt;/code&amp;gt;s must be [[Registration|registered/1.16]] to be referenced in code. &lt;br /&gt;
&lt;br /&gt;
== Playing Sounds ==&lt;br /&gt;
&lt;br /&gt;
Vanilla has lots of methods for playing sounds that can be used in different scenarios.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(PlayerEntity, BlockPos, SoundEvent, SoundCategory, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Simply forwards to overload (2), adding 0.5 to each coordinate of the BlockPos given.&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(PlayerEntity, double x, double y, double z, SoundEvent, SoundCategory, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: If the passed in player is the client player, plays the sound event to the client player.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Plays the sound event to everyone nearby except the passed in player. Player can be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: The correspondence between the behaviors implies that these two methods are to be called from some player-initiated code that will be run on both logical sides at the same time - the logical client handles playing it to the user and the logical server handles everyone else hearing it without re-playing it to the original user. They can also be used to play any sound in general at any position server-side by calling it on the logical server and passing in a &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; player, thus letting everyone hear it.&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(double x, double y, double z, SoundEvent, SoundCategory, volume, pitch, distanceDelay)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Just plays the sound event in the client world. If distanceDelay is true, then delays the sound based on how far it is from the player.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Does nothing.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: This method only works client-side, and thus is useful for sounds sent in custom packets, or other client-only effect-type sounds. Used for thunder.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt; ClientWorld &amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(BlockPos, SoundEvent, SoundCategory, volume, pitch, distanceDelay)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Simply forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (3), adding 0.5 to each coordinate of the &amp;lt;code&amp;gt;BlockPos&amp;lt;/code&amp;gt; given.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt; Entity &amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; as the player.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Does nothing.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Plays the sound event to everyone at this entity’s position.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: Emitting any sound from any non-player entity server-side.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt; PlayerEntity&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (overriding the one in &amp;lt;code&amp;gt;[[Sounds#Entity|Entity/1.16]]&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; as the player.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Does nothing, see override in &amp;lt;code&amp;gt;[[Sounds#clientplayerentity|ClientPlayerEntity/1.16]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Plays the sound to everyone nearby &amp;lt;code&amp;gt;except&amp;lt;/code&amp;gt; this player.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: See &amp;lt;code&amp;gt;[[Sounds#clientplayerentity|ClientPlayerEntity/1.16]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt; ClientPlayerEntity&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;playSound(SoundEvent, volume, pitch)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (overriding the one in &amp;lt;code&amp;gt;[[Sounds#playerentity|PlayerEntity/1.16]]&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* Forwards to &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;‘s overload (2), passing in &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; as the player.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Client Behavior&amp;lt;/code&amp;gt;: Just plays the Sound Event.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Server Behavior&amp;lt;/code&amp;gt;: Method is client-only.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Usage&amp;lt;/code&amp;gt;: Just like the ones in &amp;lt;code&amp;gt;World&amp;lt;/code&amp;gt;, these two overrides in the player classes seem to be for code that runs together on both sides. The client handles playing the sound to the user, while the server handles everyone else hearing it without re-playing to the original user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Game Effects/1.16]]&lt;/div&gt;</summary>
		<author><name>ShrimpBot</name></author>
	</entry>
</feed>