Plethora 1.20.1
View Plethora-Fabric on GitHub
Plethora-Fabric is a port of Plethora for Fabric 1.20+ and CC: Tweaked. Most features have been ported over 1:1. There are a few minor API changes (mainly to ensure consistency with modern CC: Tweaked).
Features ported
- Block scanner
- Entity sensor
- Frickin' laser beam
- Introspection modules
- Kinetic augment
- Manipulator
- Neural interface
- Overlay glasses
- Redstone integrator
- Keyboard module
Not yet implemented
- Neural interfaces on mobs
- Computers in minecarts
- Documentation exporter
TODO meta providers:
- Tool harvest level
- Daylight Detector
- Sculk Sensor
- Mob Spawner
- Spawn egg
Gameplay changes
- Block scanner and Entity sensor upgrades now require Netherite as well as Nether Stars to craft
- Block scanners, when held in your hand, now show accurate colors for ore blocks
- All the new ore types (copper, deepslate ore, nether ores, etc.) are supported
- Entity colors are still "random" but can be changed in the config file
- Keyboards can no longer be 'bound' to computers. Instead, computers can be right-clicked from up to 32 blocks away (shift-right-click if they are within the normal reach range) to open the keyboard GUI. They still work the same as a neural interface module, forwarding all key events while in-game.
- The following vanilla modules have been removed:
- Note Blocks - use CC: Tweaked's Speakers instead
- Clock - use
os.clock()
andos.day()
instead - Daylight Detector
API changes
Note
This list may be incomplete. If you notice any changes that are not listed here, please let us know! If you have a specific request, please submit it to the issue tracker, or submit a pull request.
Inventory methods
Inventory methods have been renamed to be more consistent with CC: Tweaked:
getItemMeta
->getItemDetail
size
->getSize
getItemLimit
has been addeddrop
,suck
are NYIturtle.getItemDetail()
and CCinventory.getItemDetail()
methods now return rich item metadata provided by Plethoraturtle.getInventory()
introspection method has been removed in favor of the native inventory methods- The hardcoded
inventory
andender_chest
transfer locations are not available (see CC-Tweaked#731). Instead, use a bound introspection module to push and pull fromgetInventory()
,getEquipment()
andgetEnder()
. getItem()
andgetItem().setActive()
have been removed
For the player inventory only (getInventory()
with an introspection module):
getInventory().getItem(slot).consume()
has been changed togetInventory().consume(slot)
getInventory().getItem(slot).drop([limit, [direction]])
has been changed togetInventory().drop(slot, [limit, [direction]])
Meta changes
- Player meta fields NYI :
isFlying
,allowFlying
,walkSpeed
,flySpeed
- Block meta fields NYI :
harvestLevel
,harvestTool
,metadata
- Enchantment names are slightly different (e.g.
enchantment.oxygen
->minecraft:respiration
) - Entity 'motion' and 'velocity' have been split up into two separate fields. They are:
motionX
,motionY
,motionZ
- the entity's server-side velocity. For players, this only includes motion that was initiated by the server (e.g. kinetic launch, elytra flying, etc.). Since the player's position is always updated by the client, this means that it may not be a fully accurate representation of the change in the player's position.deltaPosX
,deltaPosY
,deltaPosZ
- the entity's client-side velocity. This is derived from the entity's position on the server at the end of the tick. For players, this includes all motion, including motion initiated by the client (e.g. walking, sprinting, knockback, etc.). However, since the player's position is always updated by the client, some components of the velocity may be delayed according to the client's latency, which will always be at least 1 tick.- For non-player entities, these values should be identical, but the 'deltaPos' fields may be delayed by a tick.
- 1.20:
block.material
has been removed trinkets
has been added to entity meta (similar to armor slots, and Baubles on 1.12)
Overlay glasses
canvas3d().addLine
is NYIcanvas2d().addItem
'sdamage
argument has been removedcanvas3d().addItem
'sdamage
argument has been removed- 3D items cannot currently have their depth test toggled - they are always depth tested by default. But, you can put the items in a frame (
canvas3d().addFrame()
) and then toggle the depth test on the frame.