[MegaPost] New modding functionalities

So unlike my previous suggestion posts which were mostly focused on Unturned II, I decided to focus on additions I feel would be welcome for Unturned 3.0 in the future, mainly because the development of Unturned II has been put on hiatus and because development on Unturned 3.0 is pursued.

This post will focus on some of the functionalities I feel would be welcome and will try to explain how they could be used in modding. I am not aware of the limits in modding those so take this list with a grain of salt, as I currently have only modded basic content.

GENERAL ADDITIONS
[Universal]

On_Hotkey_Switch

Until now, there have been attempts to create dual-barrel weapons (think XM-29), and items which could change functionality in-game, but, for example, switching between an underbarrel grenade launcher and the normal rifle required the player to put the gun in his inventory and craft it into the other variant before reequiping it. This suggestion would be a shortcut that would change the item into another (of the corresponding id) even if at hand, without deequiping the item.

[Status effects]
This part is related to the potential of adding new “status effects” that could be used in a myriad of ways such as modding diseases (which deplete of health until healed with a specific item or disappear after a while), a performance enhancer (that increase the stamina regen rate for a while and possibly the stamina cap) or a tranquilizer dart or tear gas (both of which would instantly deplete the player of all his stamina and put the cap at zero for a few minutes). Similar abilities are already possible with custom weathers, but allowing projectiles or consumables to do the same really expand the realm of possibilities for us modders. This would potentially require creating “status” with their own IDs to ensure custom effects can be applied, as well as an ability to add custom icons to the effect, a name and perhaps a description.

On_Hit_Give_Status

Used for projectiles, guns and melee, and automatically apply a status effect to the entity hit.

Give_Status_On_Consumption

Apply a status effect to the player when consumed

Remove_Status_On_Consumption

Remove a status effect to the player when consumed

Status_duration

How long the status effect will last, in seconds

Stats_Evolution

The rate at which health, food, water, radiation, stamina or oxygen is gained or lost each seconds

Stats_Cap_Change

The new cap of stats (health, food, water radiation, stamina or oxygen) as long as the status effect is active, can increase or decrease the cap.

Give_Status_Immunity

Clothing items with this attribute will protect the player from some status effects. For example, a gas mask or an NBRC suit may protect against toxic wastes, some diseases and so on.

BARRICADES
[Universal]

On_Damage_Effect

Like with how vehicles that are damaged can emit smoke or fire, a sufficiently damaged barricade could start showing a specific effect to make the damage apparent, like a water container that is damaged could start a leaking animation

On_Damage_Model

Idk if feasible, but essentially, a damaged barricade or structure would have a different model after a certain threshold, like a modded tent could have holes in it after a certain damage output

On_Weather_Damage

For both structures and barricades, deals damage when a certain weather is active, could be used for very-cheap construct like thatch shelters.

[Fluid containers]

On_Damage_Leak_Rate

After a certain damage, fluid containers (water and fuel) could be modded to lose a quantity per second.

On_Damage_Leak_Threshold

The number of hp below which the container starts leaking

Purify_Water

Allow to create water containers that automatically purify the water, or perhaps others that degrade it?

[Growable]

Require_Item_Growth

Allow to mod growable objects that need to be given an item like how you give fertiliser before they can start a growth cycle. For example, it could allow “animals” crops to require feeding before they can grow (a nice stop-gap option until proper livestock is added)

Grow_In_Water

Using True or False, it either restrict a plant from growing in the water (like corn or wheat for example) or makes it a prerequisite (like rice or algae). This could allow to add a wider variety of crops and perhaps be used to make hydroponics or algoculture a thing.

Restart_Cycle_On_Salvage

Crops with this turned on would not be removed once salvaged but instead would restart their growth cycle. Allow for new types of crops which would still exist even after use, like apple trees or if combined with the “Require_Item_Growth” industrial machinery (like imagine you could “feed” a crop with some items and get a resulting item only using said machinery, it allow to create some kind of crafting benches and GREATLY expands the possibilities).

Allow_Full_Harvest

Another option for growable items which can have the “restart cycle on salvage” option enabled that allow those to be fully salvaged when the interact cursor is held for longer. For example, an apple tree can be salvaged for apples or fully salvaged to obtain logs and sticks

Two_Stage_Growth

Once again a suggestion mainly for trees, so that we can split the growth of the tree itself and that of its fruits / corns / whatever. This is suggested so that trees do not become sapling when harvested to fully grow again and instead still stays the same visually.

[Sleeping]

Allow_Multiple_Claims

Essentially a new ability so that more players can claim a same bed (bunk bed or double bed for example).

[Energy]
So, in Unturned, the quantity of fuel a generator can carry can be coded in the .dat file, but right now, it only support fuel. What if we allowed more options to gain energy from, like Sun or Wind but also new kind of “energy” production barricades that required items?

Require_Sun

Produces energy when it is day

Require_Wind

Would probably require a wind update before being added but essentially, it allows to make wind turbines or windmills.

Whitelist_Consumables

Now the interesting part, with such an update, you could code a barricade so as it does not accept gas tanks or industrial gas tanks but instead has to be given a specific consumable item to refuel. It allows for nuclear reactor refueled with uranium rods, for campfires that decay and need to be refueled with logs and sticks or allow to create a biofuel generator that needs to be fed organic food. Options are unlimited. This is intended to work in tandem with the “Has_Energy_Value” option

ITEMS
[Weapons]

Charge_Before_Use

Essentially, require the player to hold the “fire button” until the shot goes, could allow to create stuff like old firearms or heavy melee weapon (think battering ram) or a railgun that require a short time to charge before firing. Afaik, something similar is possible and you can delay the firing time but you don’t need to hold to do so.

Lose_Stats_On_Aim

This suggestion would be intended for weapons like the bow and could be used so that when a player aims with a specific weapon, he’ll lose stats (food, water, health, radiation or stamina) for as long as he aims, like with Oxygen when you must reduce scope sway. The bow example could mimic the way a player gets tired when he pulls the string for too long.

[Consumable]

Has_Energy_Value

Allow to refill a fuel tank with a consumable, can be used to choose how much energy is given by an item. When used in tandem with “Whitelist_Consumables” option, an uranium bar control rod only compatible with a nuclear reactor could hold 90000 energy value while a birch log could hold 400 energy value and only be used on campfires or torches.

Has_Water_Value

Allow to refill a water tank with a consumable and allow to set a value, for example, a small water bottle may have 200 of value while a large water pack may have 1000 of value.

VEHICLES
[Universal]

Vehicle_Salvage

Allow to put in an inventory a vehicle when looking at it and using the interact key for some time. Can be used with items like Canoe, Bicycle, Skis or even (let’s be original) a whole car or tank (if codded for that purpose) to carry those in inventory and spawn those at any time. Greatly encourage the player to rely on alternative locomotion, especially when those can rely on Stamina.

Whitelist_Consumables

A similar suggestion to the one above for barricades which restrict refuelling of the vehicles to the fore mentioned whitelisted items. Allow modders to create vehicles that require specific consumables to refuel…

Speed_on_wind

Also assume a wind update eventually comes eventually, and specify the gain of speed of a vehicle depending on the wind speed, allow for vehicles such as sailboats but with no wind direction as to not make it over complicated. Essentially, if there is wind, your vehicle speed cap is increased, that’s all.

WEATHER

On_Weather_Generate_Volume

This functionality provide the player with the ability to add “permanent” volumes or “weather-dependent” volumes. For the later, this means that they will only “exist” when a specific weather is active, allowing for example to increase the water level during a rainstorm and add new particle effects to make it as if there was a flash flood. Combined with a Stats_Damage_Volume (repetitive damage effect, see below) volume, this ability could make it as if swimming in a flooded area with the water carrying lot of debris would damage the player, deplete his stamina faster or be used to give a persistant status.

On_Weather_Damage

Same as for barricades and structures, an object or a resource that has this in its code has a chance to be damaged during a specific weather. For example, during an heavy rainstorm, perhaps small trees, bushes or power lines could be damaged or destroyed, as if it was a storm, they would then respawn after some time as if the player had destroyed those. It may also be used for vehicles (for example, an heavy-rainstorm could damage a canoe).

RESOURCES

Status_Effect_When_Nearby

Resources with this attribute will apply a status effect to the player if he is nearby. It can be used to create poisonous plants or toxic minerals for example, and may require special items to render immune.

On_Contact_Damage

Resources with this attribute will damage the player or animals.

MAP EDITOR
[Volumes]

Stats_Damage_Volume

Either inflict a single-time damage effect or a repetitive one. For example, you may lose 20 health but not lose any until you exit and reenter the volume or you may lose 5 health every 20 seconds as long as you stay inside. Could be expanded with other stats like stamina, food, water, oxygen or radiation. Alternatively, you could also gain health or any of those stats like with an MRI that heals of your radiation (ok, I know it does not work like that irl, but in-game, it would be one of the many uses of this thing).

Status_Volume

Whenever the player enter this volume, they will be given a status or an existing status will be removed.

OTHERS
[Guided Projectiles]
This part assumes Guided Projectiles are possible in Unturned (which they are with extensive modding, but supporting it officially would help, also, afaik, other unity games allow for guided projectiles) and is my most far-fetched suggestion of all. It just tries to give some ideas of how I could see those. But really, it’s mostly wishful thinking for this part.

Lock-Range

Used for Fire-and-Forget and sets the maximum distance the launcher can lock an object.

Fire_And_Forget

Set to TRUE or FALSE, tells that once the projectile is fired, it will automatically go toward its target.

Guided

Set to TRUE or FALSE, tells that once the projectile is fired, the player needs to guide it until it hits the target.

I hope this list of ideas was not too long to read, I really put a while to find some that I deemed possible in game with the existing limitations. The idea behind was really to allow for much more customisation in modding, and are mostly focused on barricades with which I have experimented a lot lately.

4 Likes

Feel free to give feedbacks.
I’ll try to update it whenever I got new ideas but there is the autolock thing so eh.

This would be a bit weird, since water units are super small currently. Currently, 1 unit of water corresponds to 1 use of a canteen/bottle (regardless of the “type” of canteen – it’s always the same amount of water).

I haven’t really checked in depth the file of the water tank, but could we theorically increase that number to support such addition or is it hardcoded ?

Updated the post with a few more suggestions. I have some more ideas for Unturned 3.0 but they will be suggestions proper with their own post.

Yet another update to the list of ideas.

To clarify, is “infect” and “heal” referring to the Immunity and Health status bars, or something else?

At present, what I want to add most is the barricade of using NPC dialogue.

I’ll rewrite this part but essentially, the “infect” part indicates that the consumable gives the effects to the player while the “heal” part indicates that the consumable removes it.

  • Renamed the persistant effect into “status effect” to make it easier to understand.
  • Added a “weather” part for more functionalities using the weather.
  • Added more ideas related to volumes.

This time, the focus was more on how to use volumes and effects to make maps more “interactive”, allowing, for example, to code a “storm” weather that would destroy trees and power lines while triggering floods, floods which would create temporary water volumes to mimic an increase of the water level and create temporary effect and damages volumes to mimic debris carried by the flood and that damage the player, moreover, a volume that gives status effects could be used with that to start a bleeding effect or an exhaustion effect.

Those functionalities may be difficult to add into the game, but allowing for such drastic modifications of the map would be interesting for map creators and modders.

Also, because some may not see what things would be possible with such ideas, i’ll list a few here:

  • Crafting a “wind-turbine” to produce energy but prone to damages from weather.
  • Creating a “tranquilizer” projectile that will apply a status-effect to the player which removes his stamina for ~2 minutes.
  • Finding a canoe and being able to salvage it into the inventory to carry to the next water area.
  • Allowing rainstorms to damage trees and power lines and to trigger floods.
  • Creating vehicles whose speed is dependent of the wind, like sailboats.
  • Creating a custom generator that relies of a specific consumable to generate energy, like a steam generator that can be powered with logs, coal and charcoal.
  • Creating a “machine” crop that require to be “fed” specific items and will then process those into a “new item”. Perhaps being used to create highly complex objects that cannot be crafted from the inventory. Imagine finding a laboratory location on a map, and finding out that you can “feed” scrap metal, electronics and stuff to a gun-mill that will then produce weapons or munitions, it provides for an alternate option to looting while remaining fairly simple.
  • Alternatively, on a map, you are given a quest to restart and maintain a nuclear reactor, for that you need to repair it and then feed it uranium regularly in exchange for unlimited energy everywhere on the map. This encourage entire servers to team up, and even green skin-tryhards will find themselves doing quests to help in the common effort so that they have unlimited electricity in their base, encourage for alternative gameplays.
  • Creating an “apple tree” crop that grow in 2 stages, and can be either salvaged for apples (returning to the beginning of stage 2) or fully salvaged for logs (returning to the beginning of stage 1).
  • Create a rifle item that on the press of an hotkey is crafted into a grenade launcher without having to go into the crafting tab of the inventory and vice versa.
  • Creating new healing consumables that wont heal instantly but instead provide higher regeneration or “permanent disease” that require a specific item for healing.

@MoltonMontro So how would you evaluate the feasibility of such additions? I compiled those in a megapost and they have a varying level of difficulty but some of those may really be beneficial for modders and players alike, but I dont really know if Unturned 3.0 may support those or if Unity does.

The give/remove status thing seems a bit odd. I just don’t see as many use cases for it, but perhaps someone will make very good use of it.
The issue I’m finding with your .DAT line setup for that is that it only supports management of one type of status, rather than allowing the item to apply multiple statuses.
A more refined concept:

Statuses 2
Status_0_Give_On_Consume true   //bool value
Status_0_Remove_On_Consume true   //bool value
Status_0_Duration 1000   //uint value
Status_0_Evolution_Multipler 10  //float value
Status_1_Give_On_Consume true   //bool value
Status_1_Remove_On_Consume false   //bool value
Status_1_Duration 40   //uint value
Status_1_Evolution_Multipler 0.5  //float value
2 Likes

Thanks for elaborating on this idea, that’s much better than the way I phrased it. I’ll rework the post this weekend to make it more concise.

I’ll remake all suggestions I posted here in smaller posts so that it isn’t jammed with what is here. Stay tuned

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.