Settings
Echo:NPC contains many config values. By changing these config values, users can change Echo:NPCs default behavior.
Five Tiers
There are five tiers of settings. Each tier overrides the last, allowing you to create application level, project level, and entity-level settings:
settings/settings.json: Default, system-level settings.settings/custom_settings.json: [DEPRECATED]settings/configs/*.jsonArbitrary custom settings files. Allows for splitting your configs up into meaningful chunks.settings/projects/*.jsonProject files. Only imported if included as aprojectin the entity header.Entity Header:Settings placed in an entity header will override all available settings files, and allows for the most control.
Example:
As an example, lets take the setting: default_transitions. This setting is placed in settings.json as "default_transitions": ["interact"]. This means that the default transition behavior is done via clicking. If you want to change the default behavior to be time, you can simply add this line in custom_settings.json: "default_transitions": ["timer"].
It is intended that users edit custom_settings.json to create their own, personal workflow.
All Settings:
default_state
default_state sets what state Echo will enter when the entity is spawned. Normally this is your top state, for example main, or introduction.
By default this value is set as "none", meaning that when the entity is spawned, NO echo event will run. This can be useful if you want to type the echo event yourself (/summon sirlich:echo_example ~ ~ ~ echo:my_event).
default_transitions
default_transitions sets what transition echo will use when none are supplied. By default, this is set to be ["interact"], which means the default behavior of echo is interacting (clicking). You can override this to [], if you don’t want ANY default transitions, or use some other combination that is useful for you.
sound_template
sound_template sets how the sounds list will be processed. By default, it is set as:
"sound_template": "/playsound SOUND @a ~ ~ ~",
projects
projects sets which config files will be imported from settings/projects/ folder. Blank by default. For example the following json will import configs from settings/projects/orcs.json
"projects": [
"orcs"
]
text_template
text_template sets how the text list will be processed. By default, it is set as:
"text_template": "/say TEXT"
The TEXT part will be replaced by whatever argument you placed in the text list.
You can override this to provide a differant text behavior.
- With a /tell
- With a tellraw
- With some color codes, added at the beginning
This can be particularly helpful if you want to localize your NPCs!
default_state_type
default_state_type sets the default type for your entity.
Options:
- standard
- single
max_allowed_states
max_allowed_states is a warning-configuration option. Echo is not optimized for thousands of states. By default, it will warn you when you create entities with greater than 20 states. You can set this option higher or lower to meet your personal needs.
output_type
output_type sets where your entity will output to.
dev: Output into the development behavior packs folderworld: Output into the worlds folderhere: Export into the same folder where the template is
user_account
user_account is used when Echo:NPC cannot find your com.mojang folder. This usually happens when you have multiple Windows user-accounts, or work from a VPS. Talk to SirLich if you think you need this.
subpath
subpath is used to set the local path where Echo will output. By defualt, echo exports directly into the top-level folder: entities/example.entity.json. You can set a sub-path to make this neater:
"subpath": "echo/npcs" -> entities/echo/npcs/example.entity.json.
This applies to both entities, and animation controllers.
entity_subpath
entity_subpath overrides subpath, but only applies to entities.
animation_controller_subpath
animation_controller_subpath overrides subpath, but only applies to animation controllers.
entity_name_format
entity_name_format sets how the final file will be named. By default: NAME.entity.json, where name is the name of the template file.
Example:
donkey.json -> donkey.entity.json.
You can use this option if you want to use a different naming scheme. For example:
NAME.echo.json
animation_controller_name_format
animation_controller_name_format, like above, but for animation controllers.