Carpet Mod 1.3 for Minecraft 1.16 snapshots and 1.15.2
tl;dr links:
download carpet 1.3.33 for 1.16 (1.16-rc1)
download carpet 1.3.33 for 1.15.2
To mark release of Minecraft 1.15, carpet now graduates to frozen
state - don't worry, its just a name. For older versions, scroll to the bottom of the page.
What's new in 1.3.33
(Tentative version of Carpet 1.4 for Minecraft 1.16)
- supports 1.16-rc1
- upon the unanimous agreement of all contributors, carpet has been licensed under MIT licence
- tweaks to rendering of
/overlay
app overlays - fixed crash when accessing custom 1.16 dimensions.
- temoved the assumption that there are only 3 dimensions for applicable features (1.16)
- auto-loading of apps happens now when worlds are loaded, meaning scripts can access worlds when auto-loading
- reorganized when carpet is loading - means extensions need to adjust their loading as well. Fixes compatibility with some mods doing hacky things with fabric framework (1.16)
scarpet changes
- allowed for much smaller transparencies for scarpet client-facing shapes
- allowed for
/\-+_/
characters in file names for app accessed files - improved performance in handling ops in NBT tags
- added more options to handle block properties and block data support for
set
- added
parse_nbt
andencode_nbt
as ways to convert scarpet values from and to nbt tags - added 'nbt' and 'nbt_merge' to entity
modify
API
What's new in 1.3.32
- supports 1.16-pre8 and 1.16-rc1
- fixed issues with game response and chunk loading when tick warping
scarpet changes
- added 'unix_time()
and
convert_date()` for date / time manipulations - added support for block position arguments and triples for
scan
,volume
,rect
anddiamond
What's new in 1.3.31
- supports 1.16-pre7
scarpet changes
- fix elevated permission requirements for fetching entity lists with descriptors.
What's new in 1.3.30
- supports 1.16-pre6
scarpet changes
- added hooks for
__on_player_chooses_recipe
and__on_player_switches_slot
events - added
recipe_data()
andcrafting_remaining_item()
- for convenient and easy crafting scripts - added optional player argument to
print
. when calledprint(player, msg)
it will only display this message to that player. - fixed
seed
loosing precision as long > double. Seed now returns a string.
What's new in 1.3.29
Mojang (pron. Modgang Studios
) just keeps on giving this week, right?
- supports 1.16-pre4 and 1.16-pre5
- added explosion logger - provides information about the final results of all explosions (X-green)
- fixes issues with /spawn tracking and /log|spawn mobcaps not reporting properly. (1.16)
What's new in 1.3.28 ..b
- fixed crash for servers on 1.16-pre3
What's new in 1.3.28
- supports 1.16-pre3
- fix client crash with antiCheatDisabled enabled
- added synchronisation vs. smoothness as preferences for path tracking in /camera app
- first appearance of chunk_display as a built-in app using scarpet client rendering features. WIP
- changed order of things when starting up, so extensions commands will always be loaded
- since
/reload
command now reloads commands and datapacks, it will also reload scarpet apps (1.16) - grinstones are now movable with movableBEs like in bedrock edition
scarpet changes
- added 'cylinder' shape to scarpet shapes
- ability of sending shapes via
draw_shape
in bulk to minimize network packets - duration of shapes can be set to 0 - this turns them off immediately
- added ability for shapes to snap to various combinations of coordinates, not only to all of them
- switched to 64bit FNV-1a algorithm for keying of shapes to minimize collisions
- optimized rendering of shapes that do not render all faces/lines
- shapes that 'follow' entities now move smoothly with high framerates, not just 20/s
- inventories for players can be specified as strings (player names) as well as 'enderchest_' to denote their enderchest content
- added hunger, saturation, exhaustion and add_exhaustion to (player) entity API
- added read_file, delete_file, and write_file as preferred functions to access external files. use of load_app_data and store_app_data on external files is now deprecated (still supported) and its use is limited to the system managed app tag.
- added the ability to handle textual files, apart from nbt files.
- added
mob_counts()
(1.16 +) to query mob cap information in scripts
What's new in 1.3.27
- supports 1.16-pre2
- fixed startup crash for servers from 1.16-pre1
- optimized server-client communications for custom scarpet shapes
What's new in 1.3.26
- supports 1.16-pre1
- On dedicated servers, carpet settings and server tick rate is now synchronised with clients that run carpet as well allowing for full carpet experience, like you were running a singleplayer game.
- added
zh_tw
translations and fixed bug caused in loading translations - updated built-in
overlay
app to use the new client integration improving greatly the visuals - fixed commands disappearing after /reload due to 20w22a changes
scarpet changes
- added
__on_player_connects
and__on_player_disconnects
events - added
view_distance()
as reported by the game - events now cannot be registered and handled in libraries and imports. each app has to define its callbacks directly in the app main file to handle those.
- added
draw_shape
allowing rendering of custom shapes to clients. Vanilla clients connected to carpet servers will receive replacement rendering based on dust particles. Drawn shapes can be static, or follow entities.
Example usage: render a personal sphere around villagers:
/script run
for(entity_selector('@e[type=villager]'),
draw_shape('sphere', 1000,
'center', l(0,2,0),
'radius', 3,
'follow', _,
'fill', 0x22dd2244,
'color', 0x22882244,
'width', 5
)
)
What's new in 1.3.25
for 1.16 (20w22a+) /s
and /c
commands for switching gamemodes are removed in favour of using now buit-in gamemode switcher (F3F4) and the fact that F3+N will switch you reliably from spectator to any gamemode you had before, so what \c \s
was doing.
If you were using gamemode switching as a server feature where users were not required to have OP permissions do do so. you can now use cam.sc
app available through the scarpet repo, that provides with the same as /c /s
did with the following benefits:
- you can easily change the command name by changing the app file name
- saves player's position, motion, angles, effects when switching to camera mode and restores them on landing
- saves player configs between saves, so even if server restarts you still should be transported back to where you need to be
- If player landing position is not available (not stored) places spectating players in a safe place finding a proper space to land
- adds timeout for the player so they cannot switch instantly, and this can be disabled in the app
- adds extra checks, like player not falling, not on fire, etc. which also can be disabled in the app if need be.
So for server management reasons, its a much better solution as a /c /s
toggles. For testing purposes in your testing worlds, you really should get acquainted with F3F4 and new F3N toggles
Other changes:
- supports 20w22a
- enabled translation support for extensions. Should add templates on how to do it to carpet-extra this week
- fixed timings with fake players breaking blocks in survival - should now match actual survival players
- fixed client side crash when changing client features that are not provided with proper values, like 'fals'
scarpet changes
- cleaner log when placing structures and features
What's new in 1.3.24
- supports 20w21a
- Added support for translation and added support for Chinese (thanks X-Green). If you want to add support for your language, check src/main/resources/assets/carpet/lang/en_us.json for an example on required strings to fully support your language. Translations now affect only /carpet command but more strings will be added in the future.
- added cylinders and cubes to
/draw
command (Ghoulboy78)
scarpet changes
- added
reload_chunk
to resend chunk data to the clients, and added option toset_biome
not to update chunk data with the clients - added
add_chunk_ticket
to temporarily load remote chunks. Only natural chunk tickets are supported at the moment - results of
poi
come out sorted by center distance as of now. - added
portal_cooldown
andportal_timer
to entity API query and modify - better handling of errors in docked section of threaded tasks to merge stack traces all the way to the top of the thread
- renamed 'vine' material to 'vegetation' and 'redstone_bits' to 'decoration'
What's new in 1.3.23
- supports 20w20b
- added client facing
creativeFlySpeed
andcreativeFlyDrag
. These settings are purely client side so it would work also on vanilla servers. Drag will impact the max speed, so you need to adjust your speed to match your drag settings. With drag set to 0.0, use speed of 11 to match vanilla top speed the closest. - added option
/spawn entities <category> all
to list all mobs from a specific category, even those that don't count towards the mobcap, and fixed/spawn entities
to properly identify mobcappable entities - removed workstation tracking from
/track villager iron_golem_spawning
(1.16)
scarpet changes
- arguments for
schedule
andtask
will be evaluated at the time of call, so things likeloop(10, task( _(outer(_))->print(_)))
now pass arguments as you would expect them to do. - added
task_dock
to allow tasks to run a block of code in a server-synchronized fashion - fixed multiple typos in scarpet docs (thanks to James103)
- fixed double evaluation in
spawn
function
What's new in 1.3.22
- support for 20w19a
- added
creativeNoClip
to allow creative players that fly to clip through blocks, place blocks inside themselves, and be ignored by pistons. - added
fogOff
- another client command
Note on client commands: While carpet client is still in the plans, we will be adding some client quality of life improvements settings to carpet. fogOff
and creativeNoClip
are yet another mostly client facing features, so not only would work (to some extend) on vanilla servers, but you also need to enable it on your client when connecting to the carpet server. If you are on the SP - you don't need to be concerned about it.
scarpet changes
place_item
can now handle non-block items, like bonemeal, flint and steel, or axes- added
spawn_potential
- added
structure_eligibility
that works likestructures
, but return structure information based on seed, not the structures actually placed in the world - fixed multiline strings in apps causing error lines in error reports and stack traces to be offset.
What's new in 1.3.21
- support for 20w18a
- due to significant changes to the redstone wire,
fastRedstoneDust
is temporarily disabled (for 1.16) until this feature gets rewritten for the new redstone code. - coloured back carpet CLI UIs for 1.16
- rotatorBlock will now rotate hoppers
- new shapes in
/draw
command: balls, cones, pyramids, diamond. Use tab completion to get tooltip about available settings for these shapes, thanks @Ghoulboy78 - fixed and tweaked player movement detection for
/tick superHot
- reset tick speed changes when switching between worlds in SP
scarpet changes
- added
format()
function to allow for text formatting, including custom RBG colors for 1.16 scoreboard_remove(objective, player)
will now remove score for a given key- added modifiers for entity API
modify
:gamemode
,jumping
,jump
,silent
,gravity
,fire
. Blame @Ghoulboy78 for that
What's new in 1.3.20
- 20w17a
- fixed compatibility issues with Tweakeroo
- added bastion_remnant to
/overlay
script
scarpet changes
- workaround to fix vanilla bug when a dead player accesses crafting table using
/script run __on_statistic(p, a, b, c) -> modify(p, 'health', 0)
scan
can take position style arguments or coordinate triples, instead of only flat coord triples- added
display_name
,command_name
andteam
to entity query API - changed so that
name
and str(e) for entities return their plain name (no teams included).
What's new in 1.3.19b
- added variants for bastions in
plop
:'bastion_remnant_1'
through.._4'
What's new in 1.3.19
- supports 20w16a
- removed
disableSpawnChunks
- added
spawnChunksSize
for custom spawn chunks size. The game will still load default area when starting, otherwise this causes problems, but will change to custom size if its specified incarpet.conf
. UsespawnChunksSize
0 to disable them entirely. - added
/tick freeze deep
for a new deeper freeze option. Currently under deep freeze chunks timouts won't be advanced (like portal tickets), but this would prevent regular chunks from unloading until the game is frozen - tnt logger now outputs extra explosion tick time information as well as tnt sequence number for that tick (X-Green).
- One can only shadow other players while having OP priviledges. Non-op players can still shadow themselves, just not other players.
scarpet changes
- added new structures you can
plop
anywhere: 'bastion_remnant'
and'ruined_portal'
(1.16 only) - changed how apps store their custom nbt files. This will break access for existing apps to their data. Previously, if the app name as
scripts/foo.sc
, all custom nbt files, lets say'bar'
, will be stored asscripts/foo.data.bar.nbt
. Now they are stored in a folder asscripts/foo.data/bar.nbt
. Rename and move your important app data files to continue for the apps to function. - apps can store data in the shared space as well. Use
store_app_data(tag, path, true)
, to store the tag in the shared space. Useload_app_data(path, true)
to load from shared space. Shared data folder is located atscripts/shared
folder. - default app (via
/script run
), can now store data, but only in the shared space. - external file descriptors can now contain
'/'
- this will use subfolders to organize the files on the disk. - added
world_time
,day_time
,inhabited_time
andlast_tick_times
- added optional mixer for
sound
. By default now all sounds are mixed intoMASTER
rather thanPLAYER
mixer. - fixed
+=
behaviour for container lvalues. Should now be able to add to container' containers likell = l(l()); ll:0 += 5
=>[[5]]
- added 4 new player tracked events:
__on_player_takes_damage
,__on_player_deals_damage
,__on_player_dies
, and__on_player_respawns
What's new in 1.3.18
- support for 20w15a
- results for counters come out sorted by amounts in descending order rather than random
What's new in 1.3.17
- support for 20w14a and 20w14infinite. albeit there is several unimportant feature disabled for 14inf since it woudn't work otherwise
- disable running perimeter check with non-mobs
- fixed too long fake player names causing issues with scoreboards
- enabled client side commands. Previously /carpet smoothClientAnimations would only work on SP, now it works on servers, but also when connecting to vanilla servers, Works only on current player and each player that wants to reap benefits of smooth piston animations need to type it when connecting to servers. This will be streamlined at some point when carpet-client is ready.
scarpet changes
- added 'ping' to query player ping via scarpet API
- added
is_chunk_generated
to assess if chunk data is present on disk - added
on_lightning
to track natural lightning events - 'reset_chunk' now returns completion report, rather than printing it to chat. Lighting is still not properly reset when chunks are reset. WIP I guess.
What's new in 1.3.16
- support for 20w13a
- fixed and further optimised and evaluated
lagFreeSpawning
- fixed extra drop duplication with movable block entities and explosions, thanks methodz and skyrising
scarpet changes
- added
c_for
to mimic ANSI C-stylefor(init, condition, increment) {body}
style for loops - added `pose' to entity query API
break
andcontinue
are now handled in API block loops:scan
andvolume
- added scoreboard API: check docs for details
- made numerous of useful functions for internal
Expression
andCarpetExpression
public. Useful only for those that write extensions of carpet in their own mods.
What's new in 1.3.15
- 20w12a
- optimized particles with carpet optimized explosions
- removed ability to affect mining speed with shears. Vanilla has it now with hoes (1.16 only)
scarpet changes
- moved all documentation to fabric-carpet repo including language spec, and editor resources. It will be much easier to keep them up to date when they sit on one place with the ever expanding scarpet API
- added IDEA custom language syntax keyword lists
- fixed
on_damaged
andon_death
custom entity events run()
function now runs with permissions specified withcommandScriptACE
ensuring non-op players can interact with apps loaded with OP priviledges (similar to/trigger
for datapacks)- added
twisting_vines
as option forplop
What's new in 1.3.14
- 20w11a
- added flexible boolean value for commandScript and added commandScriptACE (arbitrary code execution) to allow to differentiate between permissions to run arbitrary scarpet code and load apps vs. using them
- fixed
/spawn list
results for certain mobs, specifically zombie pigman - removed extra particles from optimized explosions that were already removed in vanilla explosions
- other mods will now be able to affect redstone dust calculations if they want to.
What's new in 1.3.13
- 20w10a
- Fixed compatibility issues with Optifine and Lithium (chunk gen detection in scarpet won't work with optifine)
- optimised background thread task execution
scarpet changes
- 'reset_chunk` can now accepts an rectangular area of chunks to reset at once, or an arbitrary list of chunks to reset at once
What's new in 1.3.12
- support for 20w09a
- enabled secondary use action (in case attack succeeds) for fake players
- fixed loggers not refreshing when switching between worlds, and added ability to extend built-in loggers
- updated README by technoabyss
scarpet changesoptimized
- renamed plop features
crimson_fungi
andwarped_fungi
tocrimson_fungus
andwarped_fungus
as per 20w09a - events with global scope, like
__on_tick()
, or__on_chunk_generated(x,z)
can only be triggered for apps with global (so not player) scope - added
reset_chunk
to reset given chunk to the current state of world gen /script event
now properly reports event changes- added
__on_chunk_generated
to track freshly generated chunks - fixed issues with Germaine, and other exotic locales, to parse particles, numbers, etc properly
set
andplop
will now NOT follow carpet's no fill updates rule, but addedwithout_updates(expr)
that suppresses block updates for the expression it embraces.
What's new in 1.3.11
- support for 20w08a
What's new in 1.3.10 (while gnembon is away, here is a build by DeadlyMC)
- attempted to fix compatibility issues with other mods like trinklets
- fixed stackable shulkerboxes when a renamed empty shulkerbox attempts to merge with a unlabelled full one with the same color
- added extra options to /player drop and dropStack command
- added portalSurvivalDelay and reworked portalCreativeDelay to specify a custom delay instead
- fix when elder guardian is struck by lighting
- added /profile command as alias for /tick health and /tick entities
scarpet changes
- reworked
destroy
to accept optional tool and nbt, returning effective tool NBT back set_biome
for 1.16 is now y-value specific. Setting a biome in a block sets it typically in a 4x4x4 area (subject to randomness)
What's new in 1.3.9
- not much
scarpet changes in 1.3.9 (towards 1.7)
- added support for new Nether_Fossil structure, fixed overlay app complaining about lack thereof
- added new block sounds: fungi_stem, nylium, fungi, roots, shroomlight, weeping_vines, soul_sand, soul_soil, basalt, wart, netherrack, nether_bricks, nether_sprouts, nether_ore, bone, netherite, ancient_debris
- added new material: nether_wood
- added new features to plop: crimson_fungi, warped_fungi, nether_forest_vegetation, weeping_vines, basalt_pillar, nether_fossil.
What's new in 1.3.8
- support for 1.16 snapshots, namely 20w06a
- dropped support for 1.14.4
- added
/carpet interactionUpdates
to prevent block updates with player actions - support for displaying multiple counters in the HUD, list them comma-separated to display multiple of them.
scarpet changes in 1.3.8 (towards 1.7)
- much improved error handling
- added forgotten fortress preventing overlay app to work in the nether
- fix a few responses with
material()
What's new in 1.3.6
- fixed the issue with hardcoded TNT angle to be fixed to 0deg rather than kept random like in vanilla.
scarpet changes (towards 1.7)
- improved error and stack trace reporting
- fixed /script globals for unused imports
- fixed inconsistencies with structure generation: renamed witchhut to witch_hut and oceanruin* to ocean_ruin*;
set_structure
andplop
use consistent names for structures. - added
in_slime_chunk(block)
,seed()
,perlin(...)
andsimplex(...)
for noise generation - started built-in math library
- added built-in
overlay
app - added extra option for rand to use custom seed
- added ability for
entity~'trace'
to raytrace entities, but not blocks - adding to maps will act like adding elements to a set, or map entries with null values
What's new in 1.3.6
- support for 1.15.2, last (famous last words) 1.15 version
- this is also tentatively last supported 1.14.4 version of the carpet mod. If there are some critical bugfixes needed for 1.14.4, there might be bugfix releases, but no promises
scarpet changes (towards 1.7)
- added POI API via
poi
, andset_poi
functions - consolidation of structure API and consolidation with
plop
function. Now returns consistently the same feature-based names. Structure API consist ofstructures
to get into about chunk structures,structure_references
to get reference information, andset_structure
that can be used to create or remove structure without changing blocks in the world. Can definitely be used as a fix tool to fix world structure upgrade messups. - fixes for the camera app where it would save player positions in saved paths incorrectly
What's new in 1.3.5
- support for 1.15.2-pre1 (should work with 1.15.1 as well)
scarpet changes
- added
synchronize(...)
to run synchronized code for multithreaded apps - added
structures(..)
andstructure_references(...)
to access structure information - added system key-value storage via
system_variable_get
andsystem_variable_set
to allow interapperability
What's new in 1.3.4
- bugfixes
- fake player improvements: more customizable mounting, and added ability to stop movement via
/player X move
- customizable forceload limit via
/carpet forceloadLimit
setting - improved compatibility with other mods
scarpet changes (towards 1.7)
- added stacktraces with error reports
- added
import(module_name, symbols..)
to allow to modularize your scarpet apps - added support for scarpet libraries (
.scl
files) which act like apps, but cannot be loaded by themselves, only imported - added
'breeding_age'
accessor and modifier to entity API - added enderchest support via
inventory_xxx('enderchest',p,....)
- allows for newlines in strings, tabs and carriage returns are still in question.
- fixed function types and pretty string appearance
What's new in 1.3.3
- fixed compatibility with g4mespeed mod by g4me4u that enhances the look of piston looks.
- fixed compatibility with mods that require changes to player reach. With these
antiCheatDisabled
may not work properly - fixed pistons disappearing using
smoothClientAnimations
(SP client fix) - fixed vanillla bug that sets shulkerbox item count to 1 when undying boxes with cauldurons
- fixed player action resetting when clicking on a block.
scarpet changes (towards 1.7)
- added
import(module_name)
to allow to organize your code in modules and share them between apps. Functionality of import will change in the future - this is just a beta implementation. Currently it loads entire module specified as its argument. It will be selective in the future - you would only import those functions and variables that you need to use. - better error reporting, and added scarpet stack traces to code errors.
What's new in 1.3.2
- fixed fillUpdates block entity duplication bug, portalCaching (1.14.4) ticket issues, and fastRedstoneDust redstone duplication bugs, thanks Harveykang for reporting
scarpet changes (towards 1.7)
- scarpet got threading support.
- added
task(function, args, executor?)
,task_value(task)
,task_join(task)
,task_count(executor?)
,task_completed(task)
as scarpet threading api. Usetask
like call for asynchronous execution. - reworked scarpet API calls to be thread safe.
- revamped built-in camera app to support multiplayer, using scarpet threading technology.
||
and&&
operators can now be used in place of convolutedif()
statements.reduce
now supports_i
iteration variable, like the rest of the high order functions.- optimized particle packets while using
particle_line(...)
andparticle_rect(...)
functions - added support for statistics API with
statistic(player, category, stat)
and new event__on_statistic(player, category, stat, value)
- added
stats_test
to built-in apps - fixed player positioning issues with entity API (for 1.15)
- fixed NPE issues with
material(block)
- added 2 new event handlers:
__on_player_interacts_with_block(player, hand, block, face, hitvec)
and__on_player_places_block(player, item_tuple, hand, block)
to happen right after / during these actions. Still__on_player_right_clicks_block(player, item_tuple, hand, block, face, hitvec)
is triggered before either of these happen. - expanded entity API with
permission_level
accessor andeffect
modifier - added extra option for markers with
create_marker()
to make them not-interactable - fixed
store_app_data()
for custom files - allowed built-in apps to store and load files in
/scripts
world folder - added
__on_close()
handler to run when application unloads / server stops / server crashes (not guaranteed). - apps that have commands that return empty result will not output empty lines to chat
- removed floder.
What's new in 1.3.1
- expanded the scope of
extremeBehaviours
to all mechanics that use Gaussian sampling, making a good benchmark to stress test contraptions and mechanics. - provided versions for 1.14.4, 1.15.0 and 1.15.1
scarpet changes
- fixed entity positioning in 1.15
- fixed
undef
with variables - scarpet camera (load with
/script load camera
) now works properly in 1.15
What's new in 1.3
- added back
tnt
rule category along with new tnt settings:optimizedTNT
,tntRandomRange
,hardcodeTNTangle
,mergeTNT
- added
extremeBehaviours
to have better benchmarks for tests. - extended boolean configurations for command permissions, true (for everyone), false (disabled), ops (for operators), or a custom permission level
- fixed compatibility issues of ctrlQCraftingFix and autoCraftingTable thanks to Xcom and Deadly.
- cleaned up features that are fixed / added to 1.15:
portalCaching
,miningGhostBlocksFix
(kept long-distance mining prevention fix as part ofantiCheatDisabled
),horseWanderingFix
,leadFix
andkelpGenerationGrowthLimit
- added carpet logo
- removed carpet branding from clients
- fixed issues with some extension mods not being able to register their commands via being a carpet extension.
- tons of bugfixes.
Scarpet version 1.6
- scarpet programs loaded via world scripts folders are now referred to as scarpet apps.
- functions are now proper function values, and are closures thanks to the redefined
outer
call, so they can hold state. Good alternative to global values. - added anonymous functions via
_(args) -> body
- scripts now ignore redundant and unnecessary extra semicolons - feel free to spam them at the end of expressions, even if not needed.
- added
call
to call functions directly (by name or lambda reference) - added
copy
for deep copy of nested values. With that - all values are now passed by reference in function arguments - added
loaded_status()
,generation_status()
andchunk_tickets()
to debug loading issues using scarpet. - calling
block()
directly on a block value, like inscan()
will cause to resolve it. Otherwise block values are lazy until they are needed. - apps can now bind to the events on the fly, no need to have callbacks defined only on the first code pass
- entity events are now separated between apps. There can be multiple apps running the same entity at the same time, not knowing about each other.
- loops and higher order functions now will not accept the
exit
block, sincecontinue()
andbreak()
functions were introduced to use in loops and higher order functions. - restored
plop
function for 1.15 - scarpet markers are cleaned automatically if an app is not loaded.
- added
replace(str, regex, repl)
,replace_first(str, regex, repl)
,escape_nbt
- added new entity options,
ai
andno_clip