Carpet Mod 1.4 for Minecraft 1.17+ / 1.16.4/5 / 1.15.2
gnembon
released this
23 Jun 14:40
·
2373 commits
to master
since this release
tl;dr links:
download carpet 1.4.22 for 20w51a(1.17)
download carpet 1.4.22 for 1.16.4 and 1.16.5
Check below the changelog for other versions
What's new in carpet 1.4.22
- confirmed support for 1.16.5 (previous 1.16.4 versions should work on 1.16.5 anyways - pretty much nothing changed). Just use 1.16.4 version for 1.16.5 pre-1
- fix crashes when fiddling with villagers with
/track
overlays active (blame @magneticflux- ) - information about game freezing with
/tick freeze
is now properly disseminated to connected carpet clients on SMP servers, making their experience similar to singleplayer (blame @altrisi)
scarpet changes
- support for reading / writing json local files (blame @altrisi)
- player based events are now correctly triggered only once for targetted player, not for all online players that did not trigger that event
- fixed incorrect handling of upper bounds for
slice()
,slice()
can also accept now negative indices. - added
'game_data_version'
to system info - fixed behaviour of player entity variables when player respawns, and disappears and reappears.
player()
with no args in player apps always return the player associated with that player scope instance.- limited the ability of calling recursively of
game_tick
insidegame_tick
- callinggame_tick
from the world is a bad practice anyways, but wasn't causing issues on vanilla, however that causes crashes on lithium. callinggame_tick
from agame_tick
is a bad idea anways, but since it worked on vanilla, the bahaviour is kept with the warning on other modded setups (besides carpet). - added '__on_player_swings_hand(player, hand)` event
What's new in carpet 1.4.21
- support for 20w51a
- removed
onePlayerSleeping
in favour of new vanilla gamerule (1.17) - Flipped the default values of
scriptsAutoload
setting andstay_loaded
in app config - both are true by default. Since the addition of singleplayer app shared storage, all world scripts (located in world/scripts folder) will now load automatically like datapacks. Also all apps by default stay loaded, so adding an app is as simple as dropping them in the /scripts folder. - scarpet apps in shared singleplayer space (config/carpet/scripts) can be organized in subfolders. App names still need to be unique
- ability to change player's selected hotbar slot with
/player
command /overlay <shape> <radius> ... <selector>
can now accepts any entity selector. Shapes opacity and thiccness depends now on the number of shapes to draw per command- fixed behaviour of tnt with
optimizedTNT
to match current vanilla mechanics (blame @altrisi ) - fake players will now respond to server idling settings and will show better death messages
scarpet changes
system_info
can be used to query client brand and server version- app files in NBT format are now saved in a compressed way and
read_file
can read compressed nbt files as well (including saved structures) - added
list_files
to retrieve app file listings run()
now properly returns all command run information even if the owner of the command changes withexecute
entity_area
now accepts an entity as a starting box, defined as the bounding box of that entity- added absorbtion and XP api for player entities (blame @Ghoulboy78 )
- added
weather
API ( blame @Ghoulboy78 ) - added gamerule reader to
system_info
(blame @Ghoulboy78 ). Gamerules like carpet rules are read-only to discourage fiddling with them in scripts - added
item_list
anditem_tags
to support item tag system - entites can be selected using entity tags.
- added
server_starts
andserver_shuts_down
events - apps can define their own command permission level with
command_permission
in config - added
player_trades
to the events (blame @BisUmTo ) range
can now handle floating point chains, not just integers- formatted texts from
format()
can now be concatenated using+
operator (blame @altrisi ) - fixed
set
clearing block data in some situations.set
can now accept properties as a map. Check the docs for details
What's new in carpet 1.4.20
- support for 20w49a
- carpet extensions using their own settings managers will now be properly synced with connected carpet clients. blame @altrisi
- apps now can be loaded from one location in SP: ~/.minecraft/config/carpet/scripts, not just worlds scripts folders, blame @altrisi
- you can now use a default carpet config for your worlds in ~/.minecraft/config/carpet/default_carpet.conf , blame @altrisi
- several built-in commands now are enabled by default only for OP player, it includes spawn, tick, draw, player and track. All other commands that are only informative and should not affect the world are left enabled by default for all players
- disabled
fastRedstoneDust
in the settings, since this feature had no effect for quite some time. - fixed
/banip
failing with fake players on the server
scarpet changes
- rework on the event system. global events can now be handled by player scoped apps, and each player scoped app works independent from each other. Previously handling of the event was shared between all player instances of the same app, which is not the case anymore. Otherwise it should work as before, but please report issues with events if you find some.
- also, on the topic, added a bunch of optimizations to reduce memory and call stack profile - please report if weird sh..t is happening due to that. Should be fine...
inventory_*
functions can now access different inventories of the same entity via defining the access type. For instance players have default inventory, enderchest and equipment.- inventory API allows to access equipment inventory of all living entities
- support for more vanilla argument types for custom commands:
slot
andblockpredicate
- added
tag_matches()
to detect if one tag is contained in another tag - added support for teams via
team_list
,team_add
,team_remove
,team_leave
andteam_property
- blame @replaceitem - added
player_escapes_sleep
event, when player cancels sleep in bed using Esc key, not the cancel button. Weird, I know, but it was needed. block_state()
can now accept a block string, returning it default or defined state- fixed handling of invalid structures with invalid boxes. These only surface when using worlds modified with worldgen datapacks
plop()
with no arguments now returns full lists of possible features and structures to plop, including moded ones.- added
block_list()
andblock_tags()
to handle block tags queries biome()
with extra parameters now allow to query properties of biomes. With no parameters, returns a full list of available biomes in the world, including moded ones.- added
display_title()
to put the text right in your face. blame @altrisi - added
bossbar()
, blame @replaceitem
What's new in carpet 1.4.19
- support for 20w48a
- fixed command error when summoning invalid accounts on an online server
scarpet changes
- increase support for various other entity inventories
- added deprecation warnings when an app uses a feature that is deprecated. It should show one warning per feature per app
set
will return false properly when set_block fails- added
block_state
to replaceblock_properties
andproperty
(now deprecated)
What's new in carpet 1.4.18
- added
xpfix
for 20w46a, fixing xp orbs loosing all their value when applied to mending - MC-205918 overlay
uses now the new command system - options are now much more neatly organized- added spheres and boxes to
overlay
s. They can either be stationary or follow a player - carpet extensions can now handle client commands client side for their own command managers
- fixed fake player behaviour not to attack entities if continuous attach (block mining) is requested
scarpet changes
- support for custom app commands, as well as most vanilla command argument types. See docs for details
What's new in carpet 1.4.17
- support for 20w46a
- fixes some updates happening with fillUpdates false when removing certain blocks
- various fixes around behaviours of fake players.
scarpet changes
- fixed
plop
taking now any number of arguments, not strictly 4 - support for all vanilla argument types for custom commands WIP
- custom events and low level events API (read the docs
handle_event
,signal_event
), allowing to create own events and services type apps
What's new in carpet 1.4.16
- support for 20w45a
- Fixed fake players all sorts of portal issues (1.17+). Thanks Mojang
scarpet changes
- added
amethyst_geode
to plop (1.17). Ok, I didn't add it - it added itself. - added support for some built-in vanilla argument types in custom commands. Its experimental for now, but can be enabled by specifying
'legacy_command_type_support'
in__config()
What's new in carpet 1.4.15
- build for 1.16.4. Should work for 1.16.3 tho
- reduce profiler overhead when running
/tick entities
or/profile entities
- cactus works on all pillar blocks, including chains
- fixed interactions of fake players in client side vehicles (boats, horses) and when pushed by slime blocks
- fixed chainStone behaviour when 'stick_to_all' option is used.
scarpet changes
- scarpet apps now always load with UTF-8 encoding, so you can use UTF characters directly in the app code
- scarpet apps that use threading (tasks) will now use app specific thread pools and be shutdown properly when app unloads.
- better rounding of float values. e.g. 7 * 0.2 now shows as 1.5, not 1.400...001
- added the ability of apps to hook into entity loading time, saving on polling of entities every tick with selectors, via
entity_load_handler
, addedentity_types
to help resolve entity descriptors and make custom ones. - ability to query / modify
spawn_point
s of players. - jk. Its 1.4
What's new in carpet 1.4.14
- continue supporting 1.16.4 prereleases
- carpet now uses standard fabric loader entrypoints (may have some side-effects when loading with other mods and carpet extensions)
- added github actions to create development builds, update rules in the wiki automatically and moar, thanks to altrisi
scarpet changes
split
has now default behaviour with one argument
What's new in carpet 1.4.13
- support for 1.16.4 (should work with 1.16.3 as well)
- added
chainStone
, with the ability of chains to stick to each other, and blocks that have a small but firm contact surface on its side (use 'all' to let them stick to everything) - added datapacks as a potential culprit to the health report
scarpet changes
- added
system_info()
to fetch various pieces of information about the app environment. Check the docs for details - deprecated
seed()
since now its part of the system info - handling better user regular expression errors in
replace
andsplit
- fixed server crashes with
get_mob_counts()
What's new in carpet 1.4.12
- still works with 1.16.3
- fixed compatibility issue with OptiFabric and Optifine
- fixed compatibility issues with mods by PhiPro
- fixed fillLimit limit to be inclusive, not exclusive
ai_tracker
app shows now item pickup range for players- README now puts available carpet extensions ecosystem front and center linking a wiki page with community contributions to carpet and scarpet
scarpet changes
- added
...
unary operator indicating a variable length argument in function signatures. - added support for user defined functions with variable length argument list. Use
fun(foo, ... bar) -> baz
for that ~
used for string matching now will return grouping matching if more than one grouping is used in a regular expression- errors in regex syntax are now reported as proper coding errors with stacktraces and the whole shebang
- fixed handling of some null objects, specifically in
set_poi
,breaking_progress
andput
for lists. If you had troubles working with these endpoints, you may not have now. - added
player_collides_with_entity
event - albeit its not the actual collision, only when player is in an effect range of an entity (slightly larger box), so the name may still change - added
player_picks_up_item
event to signal of player ingesting items. - improved drastically docs for events.
- added
task_thread
to allow threads to run on a custom thread executor. Removed that ability fromtask
. This allows for schedule functions with variable argument list - fixed issue with
run
function not executing without player context present - updated
item_category
to returnnull
for items without a category - cleaned up parsing of nbt stings with
nbt
function. The string version of the returned value now correctly represents what was the actual result of the parsing. entity_area
now accepts tuple and block arguments.
What's new in carpet 1.4.11
- continued support for 1.16.3 ;p
flippinCactus
now works back on all rail types- fixed issues with ocelot spawning causing NPEs when spawn tracking is enabled
- carpet extensions can now easily define their own scarpet built-in functions, operators and custom events
- added portal links renderer to
overlay
app. Video explanation coming soon - consistent response from the '/carpet' settings command regardless who issued the command
- fixed inconsistency with vanilla and
optimizedTNT
when tnt minecart explodes on a rail block.
scarpet changes
- apps that have custom commands will not output anything as result if a method returns
null
not''
(empty string) - unhandled
throw()
now reports correctly as an error run()
now intercepts and returns command console output and last error message for further parsing- (fix) function defined directly with
/script run
will not report themelves as faux errors.
What's new in carpet 1.4.10
- supports 1.16.3
- fixed compatibility issues with immersive portals
- fixed particles rendering when running optifine
- fixed
ai_tracker
app to work across dimensions. Addedhealth
andportal_cooldown
to ai_tracker. - added cleanLogs to remove unwanted log spam messages
- fixed profiler classification of several events
- fixed some updates happening with
fillUpdates=false
- removed
unloadedEntityFix
as its no longer reproducable and causes issues - fixed a timing issue when using
/tick freeze
.
scarpet changes
- scarpet now handles large nubmers (e.g. seeds) that are longs, but not fit in doubles properly. Scarpet sill does double arithmetic, but long constants remain precise assuming no math happens to them.
/script run
andinvoke
return the numerical value of the result if possible- reloading / unloading an app will clear its scheduled calls
logger
now supports custom log levels- added
'air'
(read/write) to entity API - apps that serve commands need to return
null
to output nothing, not an empty string. poi()
can now query pois in square chunk column- added
'exact'
coords option to entitytrace
API - fixed rendering of scarpet shapes with fabulous graphics
What's new in carpet 1.4.9
- added
ai_tracker
app - made apps properly reload when loaded while already being loaded
What's new in carpet 1.4.8
- supports 1.16.2
- (likely) a last 1.15.x release
- updated Chinese translations
What's new in carpet 1.4.7
- support for 1.16.2-pre3 and 1.16.2-rc1
scarpet changes
- fixed client crash in 1.16.2 when updating client chunks via
set_biome
andreload_chunk
What's new in carpet 1.4.6
- support for 1.16.2-pre2
- added 'ops' option to suggestions for most command carpet settings
What's new in carpet 1.4.5
- support for 1.16.2-pre1
scarpet changes
- function names are now case sensitive, so
sin()
is different thanSin()
. This fixes imports of UC functions from other modules and libraries - added 'on_ground' query to entity API
- proper error reporting when operators are missing between new-style list and map constructors.
- tweaked line particle display and
chunk_display
app so it renders better on vanilla clients. Still better to view them on carpet clients - moved scarpet shapes rendering to the end of the tick - should now render little better over liquids.
What's new in carpet 1.4.4
- updated traditional and simplified chinese translations
- fixed compatibility issues with reach entity attributes
- fixed compatibility issues with optifine. Backported to 1.4.0 for 1.16.1 as ....build2
/perimeterinfo
will now spawn test entities below Y0 to prevent from colliding with players
scarpet changes
- changed and expanded available entity descriptors for
entity_list
andentity_area
, Now they support all entity types and categorizations. Previous descriptors that were not consistent, like 'players' or 'items' are removed. - improved precision of entity targetting with
entity_area
. - added
label
to supported shapes as floating text - allow for discrete snapping of client shapes, using 'dxdydz' as opposite to 'xyz'
- type of 'task' is reported properly
- expanded entity API with 'path', 'brain', 'active_block', and 'breaking_progress' functions
- solved hash collisions for shapes caused by vanilla vec3d(-8,8,-8) == vec3d(8,8,8)
- added '__on_player_swaps_hands` event handles
- fixed issue where command-defined events were preventing apps events from registering
What's new in carpet 1.4.3
- supports 20w29a
- restored golem counter in villager tracking due to 28a changes
scarpet changes
- attached entity events (via
entity_event
) will execute with the context (dimension, position, etc) of the entity - events of taking damage, block breaking, and using item are called a bit earlier - before they have an effect in vanilla
- fixed nbt values reporting their initial value despite being modified
- events of updating hotbar slot and craft request will trigger only once
What's new in carpet 1.4.2
- supports 20w28a
- adjusted names of structures in built-in
overlay
app to adjust to 1.16.2 changes - allowed carpet extensions to add their own built-in apps
- add listener for HUD logging allowing extensions to contribute their own HUD loggers
- added
/player X look at
subcommand - removed
portalSuffocationFix
from 1.16 version, as its fixed in 20w28a - added
piglinsSpawningInBastions
for 1.16 allowing Piglins, Piglin Brutes, and Hoglins respawn in bastion remnants.
scarpet changes
- addition on maps treats them like sets and produces merged maps. Lists operations are still propritizing vector approach, not lists approach.
- new structure and
plop
(world gen) API for 1.16.2 (incoming) support for features and structures in json. Your previous names used with structure API and especiallyplop
will not work but going forwards, names will be compatible with Mojang datapack specs. - documented how to setup scarpet markers as armorstand type markers
What's new in carpet 1.4.1
- added renewableBlackstone forming when lava flows next to blue ice WITHOUT soul soil below it.
scarpet changes in 1.4.1
- Officially supported new map and list constructor syntax. You have 1.4.0 and are missing
{}
and[]
- don't worry - it works in 1.4 as well, it is just not documented. Previous functional notation (usingm()
andl()
) is fully supported and the 'proper' way to do it. ->
operator in map constructor context now returns a tuple of its arguments. To construct a set of functions, you would have to add them one by one now, as->
will be creating pairs, not defining functions
Previously:
__config() -> m( l('stay_loaded', true) );
global_precious_blocks = l('dirt', 'stone');
Now, this would also work:
__config() -> { 'stay_loaded' -> true };
global_precious_blocks = ['dirt', 'stone'];
- fixed lighting issues when resetting chunks with
reset_chunk
. Now it all resets properly. Thanks to PhiPro - added
persistence
(query and modify) to the entity API without_updates
andin_dimension
should now be thread safe
What's new in Carpet 1.4
- support for 1.16.0, and 1.16.1 . 1.15.2 will keep being supported until final stable 1.16.x version is released.
- 1.4.0 build2 fixes compatibility issues with optifine
- added, or ported from 1.12 following rules
extremeBehaviours
forceloadLimit
interactionUpdates
portalSurvivalDelay
portalCreativeDelay
commandScriptACE
spawnChunksSize
fogOff
creativeNoClip
creativeFlySpeed
creativeFlyDrag
- removed following rules
kelpGenerationGrowthLimit
- fixed in vanillahorseWanderingFix
- fixed in vanillaminingGhostBlocksFix
- (seems to be) fixed in vanillaportalCaching
- fixed in vanillaleadFix
- fixed in vanillamissingTools
- now only affect glass mining, other (pistons and sponges) added to vanillacommandCameraMode
- added to vanilla via F3F4 and F3N shortcuts. For enabling spectator accounts on servers checkcam.sc
app in the scarpet app store.
- full synchronization with clients and syncing with carpet clients of the client facing features. This means that having carpet
installed on your client will get you a better experience on carpet servers. Having carpet client is still not required. - added
ops
permission level for command settings, as well as1
-4
if you want to be precise. /profile
command as a low perm alias for/tick health
commands.- added built-in scarpet apps to be loaded via
/script load xxx
stat_test
to monitor statistics tracked by scarpetoverlay
app to see in-game features and clueschunk_display
to monitor loaded chunks
- moved and maintained scarpet docs as part of the carpet repo
- apps now run with the permissions of the loader. Running scripts vs using them has two sets of permissions to control it.
- apps will reload when
/reload
command is used. - fixed compatibity isseues with various mods,
tweakeroo
,g4mespeed
,optifine
,lithium
etc. - added more player controls:
drop
,dropStack
,move
- to stop - added explosions logger
- support for translations. Added
zh_cn
andzh_tw
- new shapes to
/draw
command - enabled some client side commands when connecting to non-carpet servers, like
creativeFlySpeed
,fogOff
orsmoothClientAnimations
to fix pistons blinking - licensing under MIT licence
- Lots of bugfixes...
Scarpet language 1.7
- support for threaded execution via
task
,task_value
,task_join
,task_count
,task_completed
,synchronize
andtask_dock
. - added
import
support - allows to modularize your apps and use libraries (extension.scl
) - structure API to query and modify game structures via
structures
,structure_set
,structure_eligibility
- POI API to access and make changes to the POI system via
poi
andset_poi
- global system variables for better interapperability via
system_variable_get
andsystem_variable_set
- noise generation via
perlin
andsimplex
- scoreboard API via
scoreboard
,scoreboard_add
,scoreboard_remove
,scoreboard_display
- client facing shapes drawing via
draw_shape
- ability for scripts to read, load and write to files of with NBT and plain text. Better organization of scripts files
- API for handling stats via
statistics
and event__on_statistic
- added game event handlers
__on_player_interacts_with_block
__on_player_places_block
__on_chunk_generated
__on_lightning
__on_player_takes_damage
__on_player_deals_damage
__on_player_dies
__on_player_respawns
__on_player_connects
__on_player_disconects
__on_player_chooses_recipe
__on_player_switches_slot
- added
__on_close
- events with global scope (like
__on_tick
) can only be triggered for apps with global scope. - expanded entity api:
permission_level
,effect
,breeding_age
,pose
,display_name
,command_name
,team
,gamemode
,jumping
,jump
,silent
,gravity
,fire
,hunger
,saturation
,exhaustion
,add_exhaustion
,nbt
,nbt_merge
- added stack traces to error messages
- player enderchest access
- support for
'\n'
and'\t'
characters in strings - added
seed
,in_slime_chunk
,reset_chunk
,without_updates
,c_for
,is_chunk_generated
,world_time
,day_time
,inhabited_time
,last_tick_times
,spawn_potential
,portal_cooldown
,portal_timer
,add_chunk_ticket
,reload_chunk
,view_distance
,mob_counts
,unix_time
,convert_date
,parse_nbt
,encode_nbt
,recipe_data
- better support for
break
andcontinue
in functions likescan
andvolume
- added support for all new nether blocks, materials, sounds, etc
set_biome
is now y value sensitive. Use 0 in the end and overworld, and actual Y value for the nether- lots of bugfixes...