This mod was only possible with Pehkui as it was built around that mod's source code. However, this mod focuses more on interactions at varying sizes, as well as making infinitely big and small sizes somewhat playable, or at the very least usable without lagging or crashing.
THIS IS NOT COMPATIBLE WITH PEHKUI
This mod focuses mostly on playing on private servers with friends, or for usage in roleplay-esque situations. Although it has been made with both servers and singleplayer survival in mind as well. The mod allows for a ton of features, most of which are completely customisable in a (hopefully) simple and digestible manner. Some parts of the Pehkui code was changed to allow for certain features, so it is not recommended to use this mod as a replacement for Pehkui in the case where you only want a resizing API, as this mod's compatibility has not been tested with any other mods that utilize the Pehkui API, so do so at your own risk.
I will also create an official server with this mod which you can join, here you can ask questions about the mod, post suggestions for updates to the mod, join the official server and more. Discord link here: https://discord.gg/A94jFMAMug
If you have anything you want to talk to me about the mod I would also recomment doing so in the discord as I will be more active there than here on curseforge
Alternatively, you can send me a quick DM on discord: Sizze#3834
This mod requires Flan mod as well to make it safe to use on servers: https://www.curseforge.com/minecraft/mc-mods/flan
this project now exists for both 1.18.1 and 1.18.2, however I would strongly recommend the 1.18.1 version since the 1.18.2 version has issues that I couldn't seem to fix
Now, as for features, I'll group them into a couple of categories: "Big", "Small" and "universal". These classifications are most often just the size in relation to what you're interacting with, further explanation below:
(Newly added features)
-Added new Leaf Armor and Leaf Item - Leaf Item drops in batches between 1-3 every time a player at or below scale 0.25 breaks leaves (excluding spruce leaves). leaf armor is made with leaf items, and will deplete in durability rapidly if worn at at scales above 0.25
-Collected every subcommand that relates to the food consumption sizechange into a new subcommand "Food"
-Added a system for rescaling when breaking blocks similar to rescaling when eating food under the new "rpevent" command - it's in the same command line as Siphon. "BlockBreak". the subcommand under BlockBreak work like the food rescaling system. "AllBlocks" enables rescaling on every block with the specified value, "clearblocks" clears all blocks and values, "operation" lets you toggle between additive and multiplicative, "removeblock" removes a specific block and its value, "addblock" adds a specific block under a specified value
-fixed velocity when throwing tiny entities
-Changed the text display when zooming in, previously it would show the actual values in the code, it will now show the magnification. for example 10x = 10 times zoomed in
-Fixed issue where arrows would pass through large scaled entities without hitting (I am genuinely angry at how simple this was to fix I spent so much time fixing it when the solution was right in front of me...)
-Fixed issue where larger players couldn't open block GUIs (except smithing tables for some reason)
-Re-Adjusted hitbox for damaging other entities when entitiy is thrown so it scales with lower scales
-Added new Command "AdminRp" which can only be executed by Opped players or command blocks. It allows you to execute rp and rpevent commands on behalf of another player
either yourself or through a command block
-Fixed bug where big mobs would still deal squishing damage when standing still
-Added new blowing ability. Works at all sizes on any entity that is 4x or smaller. if you're 8x or larger you will blow blocks back. The harder the block, the more difficult it is to blow. blow strenght scales. Press G while looking at a block to blow all entities within an area around that block away. This works at all scales. blowing will drain your air, and you can no longer blow when out of breath, and will have to wait for it to recover a bit. hold shift while blowing to blow away blocks. blocks will fly away at random. The hardness of the block dictates how easily it'll blow away (leaves are MUCH easier to blow away than stone for instance) this scales with your scale
Universal features:
-infinite scaling
Pehkui already supports growing or shrinking to the infinite, however, there were a couple of issues. at larger scales, the game would lag, and entities/players at lower scales would de-render automatically if the size difference was too large. This mod fixes both issues, making interactions at (almost) any scale possible. At larger scales, your hitbox is capped. The Maximum hitbox size is configurable in the configs but is 8 by default. This allows you to change your scale all the way to around scale 4,294,967,296 (4 billion) and all the way down to 0 (you can go negative but that's unchanged). at smaller scales the hitbox has not changed, but they will no longer de-render when too small (although they'll still become "invisible" cause they'll be smaller than a pixel, it is recommended that you use a zoom mod that lets you zoom far)
-Stepping
Entities and players 4x or smaller than another entity or player will take damage when stepped on, damage scales with scale difference
-Carrying/Throwing
You can pick up entities or players that are 4x or smaller than yourself. there are two options, if you right click normally, they will appear in your hand in front of you, if you hold shift and right click, they will end up on your shoulder. You can then place them down again by right-clicking a block, in which they will appear where you clicked, alternatively you can throw them by holding shift and punching. The velocity of the throw is dependent on the size difference. If you throw an entity at another entity, both entities will take damage dependent on the velocity. You can't hold an entity/player while holding an item in your main hand. However, you can hold items if you hold an entity on your shoulder.
-Powerful zoom system
Since this mod deals with big size differences, I decided to implement a customizable zoom to the mod. Hold C to zoom, or Z to toggle zoom (so you don't have to hold the button while zooming). Arrow Up and Arrow Down lets you zoom in or out, it will say how much it's zooming over your hotbar. Arrow Left and Arrow Right will change your sensitivity while zooming. it will also say what sensitivity you have. V toggles smooth camera, if you're already zoomed then un-zoom and re-zoom to apply the effect. and Finally, the DOT key resets all the values to default.
-Cactuses
Cacti deal no damage to players scaled 4 or above, as well as no damage to players scaled 0.125 or below
-Snowballs
Throwing a snowball at an entity/player who is 8x smaller than you / the snowball, will receive slowness 3 for 10 seconds
-Throwing creepers
Throwing a creeper will make it detonate on impact
-Iron Golem Rescaling
If you right-click an iron golem who is at full health with iron, the golem will grow by 20% while consuming the iron, with no limits. You can also right-click golems with any pickaxe to shrink them by 20%, giving you 1 iron per use. This works til the golem is scaled 0.01 or lower
-Scaled Footsteps
Bigger players will make louder and deeper footsteps when walking, while tiny players will make more high pitched and quite footsteps
-Screen Shaking
This feature is turned off by default. Certain events trigger screenshakes. When a player or entity at least 8x or bigger than you walks near you, your screen will violently shake for a second. Players who use the jumping destruction will also trigger a screenshake for everyone in range, including the player jumping themselves. The screenshake is very buggy and has tons of issues that I'm aware of, so it's not recommended to use, but if you want to, you can enable it in configs under "enableShaking"
Big features:
(WildFire FemaleGenderMod was used to make the player models look like this in images, I did not really intend to do this, but I forgot we had it installed on the server we used for screenshots)
-Big players have the ability to destroy the land around them. The destruction is made extra chaotic by making affected blocks fly away (see pictures below). There are currently 5 "Destruction" options, all of which are toggleable, and some of which are customisable:
Growth Destruction
This occurs when a player grows in an area that doesn't fit their new size. There's a natural cap at 32 as higher scales are laggier, however, this can be changed in the config.
Jump Destruction
Occurs when a player at scale 4 or higher holds shift and then jumps. They will create a crater in the ground below them with debris flying around as well as sending surrounding entities flying. Size of destruction depends on the player's scale capped at 32
Run and/or walk Destruction
this one is disabled by default. You can enable it by commands which I will explain further down the page. Run makes it so players at scale 16 or above can run through blocks, making them fly away, but they have to sprint, walk does the same, but only around the leg areas, but without the need to sprint. you can enable both simultaneously, and you will be able to walk through any destructible block with ease.
Punch Destruction
This is also disabled by default. Players who enable this while at scale 4 or above can hold shift while clicking a block to cause some havoc. The size of the area affected scales with your explosion size/base size, but it can also be customized with commands!
-Picking Up Blocks
Big players can pick up and hold blocks as well as entities (further explained in universal). hold shift and right click a block to pick it up, but be careful since you can't place it down after picking it up. After a block has been picked up, you can throw it, it deals damage to entities it collides with, and creates an explosion on impact if thrown hard enough.
-Item Pickup Restrictions
Big players above scale 8 cannot pick up items by walking over them. To pick up an Item at this size you have to right click the ground while in range of the Item. This will pick up all items in the area per click. Alternatively, you an hold an empty bucket in either hand, in which items will be picked up as normal.
-Armor Restrictions
You cannot wear armor when at scale 8 or above. If you grow to or past scale 8 while wearing armor, the armor will simply fall off you. (This doesn't have a toggleable config option yet, but I will add it soon)
-Compression
A small easter egg: if you hold a stack of coal while at scale 32 or above, and right-click, you will crush the coal into 1 diamond
-AOE Attack Damage
Players scaled 4x or above will deal AOE damage when hitting entities. The damage is equal to your normal attack damage, and the AOE range increases by size
Small features:
-Gliding
Holding a piece of paper or map in either hands while in the air at scale 0.25 or lower will make you fall slower, you can hold shift to fall down faster
-Climbing
Tiny players scaled 0.25 or lower can naturally climb any block that's harvestable by shovel, they can also climb any block in the game if they hold a slimeball
-Grappling Hook
Tiny players scaled 0.125 or lower can grapple with a fishing rod. When the bobber lands, you can reel it in to launch yourself in its direction
-Consuming Sugar
Consuming sugar while scale 0.25 or below, will grant you Haste and Speed for 20 seconds, the potency depends on your scale.
-Riding Entities
You can mount entities who are at least 4x bigger than yourself by clicking them with a string. Riding a bat or parrot will let you control them. The bat flies faster than the parrot. Unfortunately, you can't mount players yet, there was an issue I couldn't fix yet, but I will try to get it working soon
-Redstone
Players scaled 0.125 or below won't trigger tripwires or pressure plates. they also can't interact with levers, buttons or doors. Holding a stick will let you interact with the latter group
-Rain
If you're scaled 0.125 or below, you'll drown in rain, make sure to stand under a block to prevent this. You can also hold a lily pad, or stand directly underneath an entity at least 4x bigger than yourself
Commands:
This mod adds 3 commands
/ServerSize is just a command that allows you to change your base scale without permissions for servers.
The next command is a lot more complicated, so I will try my best to explain in depth
Keep in mind: any changes made with this command will be reset for every time you log out. so if you for instance enable punch destruction, you will have to do that every time you log in!
/rp is a command that mainly aims for customisation and toggling features
/rp destruction - lets you enable / disable certain destruction types. if you do /rp destruction punch {enable/disable} / {(power) (chance)} you can choose to follow up with the power of the puch as well as the percentage of blocks affected that will turn into debree.
Example:/rp destruction 5 50will make your punches as powerful as an explosion with ExplosionPower 5, with half the blocks that were "exploded" being converted into flying blocks
/rp random (add/set/multiply) (min) (max) - this will randomly add/set/multiply a random number between min and max to your scale
Example: /rp random set 0.1 5 would set my scale to a random number between 0.1 and 5
/rp type (Additive/Multiplicative) - Changes whether all the scaled operations that uses the rp command is done additively or multiplicatively. This is set to multiplicative by default,
/rp spurt {enable/disable} / {(min) (max) (chance) (interval)} - this does a similar thing to /rp random. Your size will be randomly multiplied/added (depending on what you've set the type to) with a random number between the min and max value with a chance percentage chance of success for every interval ticks that pass. can be disabled and re-enabled by /rp spurt (enable/disable).
Example: /rp spurt 1.1 2 50 200 this would try to multiply my scale by a value between 1.1 and 2 with a 50% chance of success. and it will attempt this every 200 ticks (10 seconds)
It can also be used to make a consistent sizechange over time
Example: /rp spurt 0.9 0.9 100 1000 will multiply your scale by a number between 0.9 and 0.9 (which will always be 0.9) with a 100% success rate, every 1000 ticks (50 seconds)
/rp set (FoodItem) (Value) - This command makes it so that if you consume the inputted food item, it will multiply/add (depending on rp type) the inputted value to your scale. Each food Item holds and stores their own value, and the values reset each time you log out. But as long as you don't log out, you won't need to constantly apply a value to a food item every time you eat
Example: /rp set minecraft:bread 2 this would double my size every time I ate bread, if I then type /rp set minecraft:apple 0.5 then my scale would halve every time I ate an apple, but eating a bread would still double my size
/rp remove (FoodItem) - Removes the value of a selected food Item, this is necessary to do in order to change a FoodItem's value. Keep in mind that after removing the value, the food might still change your size the next time you eat. I am working on a fix for this
/rp get (FoodItem) - Tells you the value stored for the inputted FoodItem
and finally: /rpevents
this new command is meant to cover events that could happen during gameplay. Active events are the ones that require the player to do something, Passive ones happens passively during gameplay. My thought is to fill it with events as I update the mod further, adding in new events that may or may not be useful or sensible. It's kind of like a feature spam folder, Anyhow there are currently only 2 events:
/rpevents Active Siphon toggle - Enables / disables the Siphoning event. Unlike with the RP command, Activated events remain active even after you log off. When active, you will steal the size of whatever you hit whenever you hit it. The amount of size stolen depends on the damage dealt to the target, as well as your chosen multiplier.
/rpevents Active Siphon set (multiplier) - Allows you to set a custom multiplier to the Siphon event. say you want the siphoning effect to be 100x stronger than normal?
then you can do /rpevents Active Siphon set 100
/rpevents Active Kill {toggle / set} - Works exactly the same way as Siphon, except it is triggered every time you kill something. The amount of sizechange is customisable and can even be negative to shrink you
ex: /rpevents Active Kill set 0.5 - grows you by 0.5 every time you kill something
Items:
Empty/Filled syringe Right click an entity/player with an empty syringe to steal half their size, the value stolen will be stored into a filled syringe. if you right click with the filled syringe, you will grow by an amount equal to the stored value. You can also hold shift and right click the empty syringe to steal your own size, as well as shift and right click others to grow them.
Potion of small just a standard item, consuming it will put you at a random size between 0 and 1
Potion of big works the opposite of the potion of small, making you a random size between 1 and 100
Empty Keg Only used to craft green and red keg
Green keg works exactly like the potion of small, but with smaller sizes, making you a random size between 0 and 0.01
Red Keg like the potion of big, but between sizes 1 and 1000 instead.
Delicious sandwich consumes the entire stack when eaten, and grows you by an amount equal to the stack count
Example: if you hold 8 sandwiches and eat it, then you will grow by 8, if you hold 64 you'll grow by 64 etc
Powerful grape this one is unobtainable in survival, and is mostly a joke item. You have to make sure you can handle the grape's power before consumption. if you're below scale 256 when eating it, you will immediately die from it's raw power. However, if you're bigger than 256, then you'll grow to the biggest possible size. (DO NOT CHANGE BACK TO 1 WHEN YOU'RE THIS BIG, you have to slowly shrink down, like shrink to 100,000 then 1000 and then 1)
Neutralising chocolate - this item puts you back at scale 1 when eaten. Can be crafted with 1 cocoa bean + 2 sugar or 1 cookie + 2 sugar both in the shape of the cookie recipe
Configs and Server stuff
The configs contain all the options from Pehkui for mc version 1.18.1, but there's a few extra added that I wanna explain
RpCommandPermissionLevel decides what permission level you need to use the rp command, where 0 means anyone can use, and 4 means only admins can use
maxExplosionSize This decides the max value you can choose for the punch destruction
allow{DestructionType}Destruction these lets you enable or disable destruction types globally. on singleplayer you can't use them if disabled, and on multiplayer no-one can use them if the server disables them
enableDestruction enables/disables destruction altogether, works like the option above
max/min Scale sets a minimum and maximum scale, mostly useful for servers. It will be impossible to surpass these scales, even with Items. Unless you're written as an exemption
playerMaxScaleException[] write the username of a player you want to be exempt from the min/max scale rule. write their username like this: "christiantiana" and make sure to add a comma behind if you want to add more people
Example: playerMaxScaleException["christiantiana", "Notch"] this would make me and notch exempt from the min and max scale config option
maxGrowthDestructionScaleServer this lets server owners decide the maximum size for growth destruction to take place, if someone grows past this value they won't destroy anything
maximumHitboxSize let's you chose the max player hitbox size. lower hitbox sizes means less lag, but is less intuitive to play with. All features work independent on hitbox sizes
maxScaledExplosionSize lets you choose how big an explosion caused by punch destruction can be in total after all calculations are done
maxFlyingBlockSpawnChance lets you choose the percentage of blocks destroyed that are converted into flying blocks, lower number means less lag, but also less debris. this config option works uniform across all destruction types, so making it 0 will mean that no destruction type will ever create debris
scaledFlyingBlockSpawnChance makes the amount of flying blocks converted when destroyed scale inversely to the player's scale to reduce lag, works across all destruction types
balancedMotionAndReach halves big players motion after scale 8, and increases small players motion. Also makes it so that small players can always reach at least 1 block
limitArmor - true by default, toggles the limit for armor at large scales
Also added new config options for the PermissionLevel for both the ServerSize command and RpEvents command