# CustomNPCs 1.7
**I discovered that the Bukkit configuration api has decided to eat locations when they are invalid. There is nothing I can do to recover them. I apologize for the inconvenience**
## New Features
- 1.20.5 - 1.21.4 Support.
- Localization! CustomNPCs now supports the following languages:
- Russian (partially)
- German (partially)
- Arabic (partially)
- Simplified Chinese (fully)
- Vietnamese (fully)
- English (fully)
- An action System rewrite
- Custom Actions can be registered via the API
- the RunCommand action can now run commands as the console **please be careful**
- The RunCommand action will now parse placeholders in the raw command text
- The DisplayTitle action can now have a subtitle
- Various performance enhancements
- A new command `/npc fixconfig`:
- Requres the `customnpcs.commands.fix_config` permission
- Here is some example usage, with an explanation: `/npc fixconfig world <Valid World> <Strategy> <target>`
- The Valid World has to be a world that is loaded by Bukkit (Multiverse should work too)
- The strategy can either be `NONE`, which doesn't care about validating the location of the NPC. the `SAFE_LOCATION` strategy will verify the NPC won't be stuck in any solid blocks. If it is, the plugin will pick the highest block with the same x and z coordinate. If no position is possible, the NPC is ignored.
- The Target can either be `all`, to apply to all NPCs or a specific NPC's name or UUID
- A new command framework
- The NPC configuration is validated on the first parse, rather than on load
- There is now a special permission for the wiki command; `customnpcs.commands.wiki`
## Bug Fixes:
- Fixed a bunch of injection issues causing NPCs to not appear properly
- Fixed NPCs affecting the sleeping percentage
- Fixed NPCs disappearing after respawning
- Fixed NPCs being injected in the wrong dimension
- Fixed NPC nametags being visible (The numbers and letters)
- Fixed a bunch of errors related to the events portion of the api
- Fixed an error with /reload
- Fixed an issue where you could not decrease the DisplayTitle's fade out option if the fade in option was 1
- Fixed loading the NPC's facing direction incorrectly
-
## Developer Changes
- Removed the Bukkit services api (Not like anyone used it)
- Settings#direction is now deprecated. You should use the yaw of the SpawnLocation instead
- You can write your own actions. Read the documentation to find out how :)
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }