1: custom liquids, there is another plugin called itemsadder that can accomplish this, however it uses custom biome colors, and can only tint the default water texture, it's also incredibly buggy. I'm not sure whether or not it would be possible with core shaders, but that would be awesome, and would also allow for custom liquid properties as well most likely.
example liquid config:
custom_liquid:
displayname: "Honey"
Stickiness: (a value to define how much the liquid slows the player's movement, defaults to 0, which is equivalent to water)
damage: (how much damage it does to the player)
fire: (true/false, whether or not it sets the player on fire)
effects: (effects that it gives to the player, effects are listed in the format EFFECT_NAME|EFFECT_POTENCY|EFFECT_TIME|true/false (the true/false is whether to hide particles or not)
drowning: true/false (can the player drown in it?)
sponge: true/false (can sponges soak it up?)
burns_blocks: true/false (can it burn blocks?)
2: More technology-themed mechanics, like maybe pipe/storage-related mechanics along with a basic energy system for items and blocks
example energy system/type config (this would allow you to design a custom energy system, which could be optionally compatible/interchangable with other systems):
energy_type:
displayname: "example energy"
exchange_rates:
other_energy_system: %amount%=%other_system_amount%
other_energy_system: 1=3.5 (1 of energy_type would be equal to 3.5 of other_energy_system)
example pipe-block config:
basic_pipe:
displayname: "basic pipe"
material: DIAMOND
type: pipe
can_transfer: energy_type/Fluid_type/items
speed: (speed of how fast it transfers what it transfers)
limit: (how much it can transfer at once)
example battery item:
small_battery:
displayname: "small battery"
material: %material%
type: battery
energy: energy_type
storage: (how much energy it can store)
clickable: true/false (can insta-charge items by clicking on them with the battery)
example energy storage block config:
energy_storage:
displayname: "energy storage"
material: DIAMOND
type: energy_storage
multiblock: false
stores: energy_type
input_speed: (how fast it can input energy)
output_speed: (how fast it can output energy)
limit: (how much it can store)
example energy charger block config:
energy_charger:
displayname: "charger"
material: DIAMOND
type: charger
multiblock: false
energy: energy_type
charger_speed: (how fast it can charge items)
output_speed: (how fast it can output energy)
slots: (how many items it can charge at once)
example energy generation block config:
energy_generation:
displayname: "energy generation"
material: DIAMOND
type: energy_generation
multiblock: false
stores: energy_type
generation_speed: (how fast it can generate energy)
output_speed: (how fast it can output energy)
limit: (how much it can store)
fuel: (what it uses for fuel, can also be ambient_air, ambient_underwater, ambient_lava, ambient_custom. can have multiple)
worlds: %worldname%, %worldname% (defines what worlds it works in)
y_level: -7+ (works at y=-7 and above) / 9- (works at y=9 and below)
biomes: (defines biomes, same format as worlds for adding multiple)
custom: (only works when fuel is set to ambient_custom, defines a custom oraxen block/liquid(s))
example multi block config section:
multiblock: true
Multiblock_layout:
Block definitions:
O=obsidian
C=oraxen:cave_block
R=oraxen:reactor
I=oraxen:energy_input
T=oraxen:energy_output
Layer_1:
O C O
C O C
O C O
Layer_2:
O C O
I R T
O C O
Layer_3:
O C O
C O C
O C O
example energy powered item config section (this segment could be added to any item/armor and could replace durability, as well as using energy to use custom mechanics, like summoning lightning, or if armor let you fly, it could use up energy during it):
Energy: true
energy_type: %energy_system_name% (can have multiple)
capacity: (how much energy it can store)
replaces_durability: true/false (if it uses charge instead of durability)
breaks: true/false (whether or not it breaks when it runs out of energy, if it doesn't, it can be fixed by charging it.)
energy_mechanics:
mechanic_name: (amount of energy used each time/per second if it's an ambient effect)
creative option example: (this could be added to any energy_based item, generator, charger, storage block, etc., and would set it so it would constantly have full energy, which would be useful for creative builds)
creative_energy: true/false
3: Vehicles, but this time with a more in-depth explanation for how it could work along with default config examples
how vehicles could be designed:
Oraxen could use compatibility with modelengine, using the same system that modelengine uses to import custom mobs. This would allow to easily design vehicles with custom models, textures, hitboxes, seat positions, and even animations, (also heads if you wanted to add mechs or something) and Oraxen could then handle vehicle mechanics, effects, movement, etc. vehicles could be craftable, and would be placeable using an in-game item. you would also use right-click to board the vehicle, shift-right-click to open the fuel menu, and open your inventory while riding the vehicle to access the vehicle's inventory. since vehicles would have configurable health, you would collect the vehicle by using a custom tool item, maybe a "vehicle wrench", which would save the vehicles data, and drop it as an item. Also it could use the modelengine API to allow for multiple seats, each with different functions. (anything starting with "seat" would become a seat, but seats with special functions would use different names, so seat_driver would drive the vehicle, seat_turret could operate a turret on the vehicle, and anything else starting with "seat" would only allow you to sit)
controls:
W, A, S, and D controls are normal, space makes you move upwards, right/left click is used for custom mechanics, shift is dismount, and the sprint key can be used to make the vehicle move downwards (submarines, drills, flying vehicles)
example default vehicle types:
Boat: only works on liquids, what liquids it works on are configurable
submarine: works on and underneath liquids, liquid list is also configurable
land: works on land, if modelengine is used this could easily cover a very wide range of land vehicles, possibly all due to configurable seats, hitbox sizes, etc.
sky_momentum: needs momentum to take off (a runway), and cannot hover
sky_basic: can take off vertically, hover, etc.
void: essentially just like sky_basic, but hovers in place even after exiting the vehicle, perfect for travel through the end and custom dimensions with a void
still: a vehicle that does not move, perfect for easily controllable turrets, cannons, etc.
automated_still: does not require player interaction to do it's task, player interaction is only needed to define tasks
automated_sky: does not require player interaction to do it's task, player interaction is only needed to define tasks, uses the void type (can take coordinates/player names/entity whitelists/blacklists and can be used with the "Homing" subtype)
automated_still: does not require player interaction to do it's task, player interaction is only needed to define tasks
default subtypes (easy ways to implement advanced features):
interactive: can interact with blocks near it (drills, automated pathway construction, etc.)
homing: is given a target using coords, player name, entity white/blacklists, etc. and automatically goes to that location to perform it's task (detonation, attacking, message delivery, etc.)
example basic vehicle config:
drill:
displayname: "drill"
material: DIAMOND
type: land
subtypes: interactive
fuel: (uses a fuel type, or an energy type, energy/fuel will take any item that stores the needed fuel/energy type, like batteries, fuel tanks, fuel cells, etc. it can use multiple types)
speed: (how fast it can go)
capacity: (how much fuel/energy storage it has)
health: (how much health it has)
inventory: (how much it can store)
break_liquids: (a list of vanilla and/or custom liquids that will break the vehicle into an item upon contact)
interaction_blacklist: (a list of blocks that a vehicle with the subtype "interactive" cannot break)
interactive_mechanic: (would use some sort of format to describe how the vehicle interacts with the blocks in front of/under it, if it collects the blocks it mines, and if it places blocks to auto-build roads, minecart tracks, etc. (it must have the needed blocks in it's inventory)
example fuelsystem/type config (this would allow you to design a custom fuel system, which could be optionally compatible/interchangable with other systems):
diesel:
displayname: "&diesel"
exchange_rates:
other_fuel_system: %amount%=%other_system_amount%
petroleum: 1=3.5 (1 of diesel would be equal to 3.5 of petroleum)
example fuel item:
medium_diesel_container:
displayname: "medium diesel container"
material: %material%
type: fuel_container
fuel: fuel_type
storage: (how much fuel it can store)
clickable: true/false (can insta-refuel vehicles by clicking on them with the container)