Tags
Creators
Details
0.6.0
Compatibility
Required content
Changes
Typewriter v0.6 – The Extensions Update
This release brings a foundational shift in Typewriter’s core structure and a major update to the item system, along with new features and important usability improvements. Below are the highlights:
Critical Changes
-
From Adapters to Extensions
Typewriter has transitioned from usingAdapterstoExtensions, marking a significant evolution in how custom functionality is integrated. Key improvements with this change include:- Gradle Plugin for Extensions: A new Gradle plugin simplifies the process of developing Extensions, making setup and management easier for developers.
- Compile-Time Discovery: Discovery of Extension internals, such as entries, now occurs at compile-time instead of runtime. This not only future-proofs Typewriter but also lays the groundwork for the upcoming marketplace, where entries in each Extension will be viewable without running the Extension.
- Hot Reloading: Extensions can now be reloaded on-the-fly using
/tw reload, enabling real-time updates without the need for a server restart. - Optimized Loading: Only the necessary classes are loaded from Extensions. For example, if an Extension contains thousands of entries but only one is used, Typewriter loads only that specific entry, enhancing memory and processing efficiency.
- Extension Validators: Built-in validators now check Extensions against Typewriter’s standards, helping to ensure reliability and consistency across user-created Extensions.
-
New Item System
Typewriter introduces a completely new item system, which is incompatible with previously defined items. Users will need to recreate items to align with the new structure. Based on user feedback, no migrator will be provided, as the majority found it unnecessary. Please test this update on a development server before upgrading your production environment.
Important Features
-
Skip Cinematic Segments
A newSkipCinematicEntrygives players the option to skip sections of cinematics by pressing a configured key, offering more control over in-game cinematic experiences. -
UI and Web Panel Upgrades
Improvements to the web panel and UI components provide a smoother experience. These upgrades include the ability to unselect Sound IDs, layout enhancements, compatibility improvements behind reverse proxies, and visual indicators for empty fields, all of which contribute to a more intuitive and flexible panel.
New Entries
- Cinematic Entries:
GameTimeCinematicEntry,WeatherCinematicEntry,SkipCinematicEntry,BlockCommandCinematicEntry - Dialogue:
ActionbarDialogueEntry,SimpleMessageActionEntry - Entity and Activity Entries:
MythicMobKillPlayerEventEntry,RemovePotionEffectActionEntry,LookAtBlockActivity,LookAtPitchYawActivity,RandomPatrolActivity,AmbientSoundActivity,ScaleData,InteractionEntity,PillagerEntity,VindicatorEntity,Llama Entity - Miscellaneous:
WeatherAudienceEntry,FireworkActionEntry(withflight durationsetting)
As always, please make sure you have a backup before updating and enjoy the new features!
If you consider Typewriter to be valuable to your server, please consider Sponsoring the Project
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| BasicExtension.jar | Unknown | 708.93 KiB | |
| CitizensExtension.jar | Unknown | 28.4 KiB | |
| CombatLogXExtension.jar | Unknown | 29.91 KiB | |
| EntityExtension.jar | Unknown | 746.73 KiB | |
| MythicMobsExtension.jar | Unknown | 69.06 KiB | |
| RPGRegionsExtension.jar | Unknown | 36.98 KiB | |
| SuperiorSkyblockExtension.jar | Unknown | 61.48 KiB | |
| VaultExtension.jar | Unknown | 43.76 KiB | |
| WorldGuardExtension.jar | Unknown | 50.22 KiB |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Vm7B3ymm:ILeH3cs7"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Vm7B3ymm:ILeH3cs7"
}


