{"id":146603,"date":"2026-06-08T21:52:42","date_gmt":"2026-06-08T18:52:42","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/"},"modified":"2026-06-08T21:52:42","modified_gmt":"2026-06-08T18:52:42","slug":"speechtools","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/","title":{"rendered":"SpeechTools"},"content":{"rendered":"<p># SpeechTools<\/p>\n<p>## Create smooth, custom speech with just one command!<\/p>\n<p>### Features Include:<br \/>\n &#8211; Full control over typing speed, transformation, shake, and much more<\/p>\n<p> &#8211; Events system allowing you to run commands and change arguments at any point<\/p>\n<p>All it takes is one command!<\/p>\n<p># How to use SpeechTools<br \/>\n_This page is viewable in game by using the command  `\/function speechtools:help`_<\/p>\n<p>### To create a speech entity, use the command: `\/function speechtools:create {args:{},events:[]}`<\/p>\n<p>## ARGUMENTS<\/p>\n<p>&#8211; **`text:`**  *Raw string, no json elements. e.g: `args:{text:&#8221;Hi there!&#8221;}`*<br \/>\n*To use quotation marks or apostrophes, you have to type `\\&#8221;` or `\\&#8217;`<br \/>\n(for versions 1.1.1 and below: apostrophe:`\\&#8217;` quotation marks:`\\&#8217;\\&#8217;`)*<br \/>\n&#8211; **`extra:`** *Any json elements to be attached to the text (color, font, bold etc). e.g: `args:{extra:&#8217; &#8220;bold&#8221;:true,&#8221;color&#8221;:&#8221;green&#8221; &#8216;}`*<br \/>\n&#8211; **`duration:`** *Integer duration of the speech before disappearing. Default: 100*<br \/>\n&#8211; **`wait:`** *Integer duration of ticks before the speech starts, or as a pause in events. Used for instances with multiple speech entities which start at different times. Default: 0*<br \/>\n&#8211; **`fade_in:`** *Duration of how long the text scales up from 0 when spawned. Set to 0 for no interpolation. Default: 3*<br \/>\n&#8211; **`fade_out:`** *Duration of how long the text scales down to 0 when ending. Set to 0 for no interpolation. Default: 3*<br \/>\n&#8211; **`typed:`** *true | false || Text is typed out over time instead of instantly appearing. Default: true*<br \/>\n&#8211; **`typed_delay:`** *Delay between typed letters, in ticks.  Default: 2*<br \/>\n&#8211; **`punctuation_delay:`** *Additional tick delay when punctuation is typed (.!?:;,) Commas use half this delay.  Defaults to `typed_delay` value.*<br \/>\n&#8211; **`shake:`** *Text shaking effect, higher number, more shake. Experiment with `teleport_duration` to adjust effect. Max of 50.  Default: 0*<br \/>\n&#8211; **`teleport_offset:`** *String set of coordinates to teleport to. Used with `teleport_duration` to create a sliding effect. e.g. `args:{teleport_offset:&#8221;~ ~2 ~&#8221;}`*<br \/>\n&#8211; **`transformation:`** *Same format as a display entities transformation.*<br \/>\n&#8211; **`Other NBT`** *You can also put any other text_display nbt in `args{}`, e.g. `billboard:`, `background:`, `text_opacity:` etc.*<\/p>\n<p>## EVENTS<br \/>\n#### To add events to your speech entity, you can use the events[] field like so: `function speechtools:create {args:{},events:[ {on:40,command:&#8221;say test&#8221;} ]}`<\/p>\n<p>### **`on:`** *Required for every event, specified with the following:*<br \/>\n&#8211; **`on:<number>`** *Executes the event on the specified tick, e.g. `on:40` would run on the 40th tick.*<br \/>\n&#8211; **`on:start`** *Executes the event when the entity spawns.*<br \/>\n&#8211; **`on:end`** *Executes the event when the entity&#8217;s duration expires.*<br \/>\n&#8211; **`on:type`** *(when typed:true) Executes the event for every character typed, ignoring spaces. Intended for Undertale\/Animal Crossing style voices.*<br \/>\n&#8211; **`on:tick`** *Executes the event every tick.*<br \/>\n<\/p>\n<p>&#8211; **`command:`** *String. Runs a command of the players choosing from the speech entity. e.g. `{on:100,command:&#8221;function your:function\/here&#8221;}`*<br \/>\n&#8211; **`modify_args:`** *Same format as the &#8216;args&#8217; field, can be used to change transformation, change typing speed, etc. e.g. `{on:150,modify_args:{typed_delay:10}}`*<br \/>\n&#8211; **`pause_on_tick:`** *Integer. If an `on:tick` event is set, pause it for this many ticks.*<\/p>\n<p>## Using Multiple Events<br \/>\nSimply add to the events array like so: `[{on:start,command:&#8221;say hi&#8221;},{on:25,modify_args: {shake:10}},{on:50,modify_args:{shake:0}}]`<br \/>\n<br \/>\nIf you want to add multiple events to one `on:` condition, do this: `[{on:25,command:&#8221;say hi&#8221;,pause_on_tick:5,modify_args: {typed_delay:10}}]`<\/p>\n<p># Limitations<br \/>\n&#8211; As of right now, you can only have single element text, meaning you can&#8217;t have one section of text in *`italic:true`* and the rest in *`italic:false`* . Instead you have to use multiple speech entities to achieve this effect.<br \/>\n&#8211; If `fade_in:` is activated, the transformation will take place on tick 3 of the entity, due to inconsistencies when ran on earlier ticks.<\/p>\n<p>Any feedback\/tips are appreciated!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Java 1.21.5+] Create smooth custom speech with just one command!<\/p>\n","protected":false},"featured_media":146604,"template":"","meta":{"_minecraft_slug":"speechtools","_minecraft_project_id":"Z4WRz1PN","_minecraft_author":"dont-give-adam","_minecraft_license":"CC0-1.0","_minecraft_downloads":38,"_minecraft_follows":2,"_minecraft_client_side":"optional","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"speechtools.zip","_minecraft_size_bytes":23672,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T23:40:31.786421Z","_minecraft_date_created":"2025-03-28T04:54:46.581532Z","_minecraft_date_modified":"2025-03-27T23:12:16.781434Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/speechtools","_minecraft_icon_attachment_id":146604,"_minecraft_imported_at":"2026-06-08T18:52:43+00:00","_minecraft_import_hash":"8d1b536a22fea3ac3a400c24b6d9e057","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[84,92],"mod_loader":[86],"minecraft_version":[37,73,74,38,78,79,80],"class_list":["post-146603","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-datapack","mod_category-utility","mod_loader-datapack","minecraft_version-1-21-1","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SpeechTools - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SpeechTools - Minecraft\" \/>\n<meta property=\"og:description\" content=\"[Java 1.21.5+] Create smooth custom speech with just one command!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/\",\"name\":\"SpeechTools - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/speechtools-icon-b4e610b1fc44456f0d7750774b30dc00888834c2_96.webp\",\"datePublished\":\"2026-06-08T18:52:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/speechtools-icon-b4e610b1fc44456f0d7750774b30dc00888834c2_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/speechtools-icon-b4e610b1fc44456f0d7750774b30dc00888834c2_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/speechtools\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SpeechTools\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SpeechTools - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/","og_locale":"en_US","og_type":"article","og_title":"SpeechTools - Minecraft","og_description":"[Java 1.21.5+] Create smooth custom speech with just one command!","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/","name":"SpeechTools - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/speechtools-icon-b4e610b1fc44456f0d7750774b30dc00888834c2_96.webp","datePublished":"2026-06-08T18:52:42+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/speechtools-icon-b4e610b1fc44456f0d7750774b30dc00888834c2_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/speechtools-icon-b4e610b1fc44456f0d7750774b30dc00888834c2_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/speechtools\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"SpeechTools"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/146603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/146604"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=146603"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=146603"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=146603"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=146603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}