Jump to content

The Modders Wishlist


Connall

Recommended Posts

Control over zombie revive on rotting.
Event when zombies are revived.
Event when thumpable is hit (by both: zombies or survivors)
Event whenever a text is displayed, such as speech from chacater saying "HEY" when shouting.

EDIT: (new wish)
I would like a command / feature to check line of sight between 2 objects or 2 squares.
This would allow for lots of different possibilities and be really cool.
 

Edited by nigel
added extra wish
Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Hey there,

I hope this is no dead thread. However, I've just noted a few things while coding on my current mod.

 

 

(1) Static polymorphic dispatch system
As example: The timed action queue system. It's a static class which maintains object instances for the
current action queue of each character, if any. The point is, if you require any modifications in a derived
queue class, you have to add it additionally to the onTick-Event which is of course very performance expensive,
because of the static event listener registration "Events.OnTick.Add(ISTimedActionQueue.onTick)"
It would be very nice, if there would be a mechanic which would call a derived ISModdedTimedActionQueue.onTick() so
you don't have to register additional onTick-Listener. Of course, unregister the vanilla listener is possible, but there
are situations as well, in which you still want to use the vanilla listener for the sake of compatibility.
At least I just expirienced this situation some days ago (see here).

 

(2) General base item tags

Set base tags at least once for all tools/materials, even if it's just Tag="Nails" for something like Nails.
Then you wouldn't have to do it mod-side and overloading those items with better cross mod compatibility would
be possible.

 

(3) Callbacks for MultiStageBuilding scripts
At least a possibility to set an onCreate callback, since currently its completely limited to walls.
But there is many potential. For example, you could implement a gradual construction of a larger construction
that is only functional from Lvl X (I am thinking of such things as a blast furnace, where stage 0 is the base,
stage 1 the combustion chamber, ...) or upgrading structures to unlock new functions/recipes etc.

 

(4) Debugger
Exceptions that the debugger throws itself during debugging, e.g. because it doesn't get along with certain
Java parts, you could recolor it (e.g. blue instead of red) so that you can see directly when debugging that
it can be ignored. Of course, it would be even better if suppressing such exceptions would be possible at all.

 

(5) Parseable ISObject scripts

If you outsource ISObjects to parsed scripts and generate them with a factory.
(at least the basics of them, like you did for moveables), it would make a lot of things easier.
Also, this would make the hard-coded building/welding context menu obsolete.
I've just built something similiar (somewhere between base class and factory for ISBuildingObjects) at
lua level. The performance is okay, so this shouldn't be a major impact if on JS level.
Basically, it would only affect the loading times when joining a server, since everything can get parsed then and
added to the hash maps like now.

 

(6) Consumption modifier for items when used as material
That would a nice feature in combination with different item types which share a tag.
For example, if you add WoodenNails and SteelNails to the normal nails in a mod and cover them
all in a recipe via [Recipe.GetItemType.Nails]=10, with WoodenNails having a consumptionModifier=2
and SteelNails a consumptionModifier=0.5 defined, you could cover different quality levels for Nails.
Or items using the "Rope" tag as another example:
Both, Ropes and SheetRopes are part of it, which makes sense.
But since ropes are definitely rarer than the craftable sheet ropes, it'd make sense for balancing,
if you can still use sheet ropes, but require twice the amount (or whatever multiplier).
It's also logical, since a SheetRope hardly has the same tensile strength as a real rope.
Of course, introducing corresponding types/tags such as "WeakRope",
"StrongRope" independently would work as well, but that would very quickly lead to a huge number of types/tags
and the cross compatibility benefits of the item tags wouldn't apply any more.

 

 

I hope I can contribute to help you improve your game with that a bit. It's already a nice one and I'm excited to see where the journey will take you and us.

 

Best regards,

stuck1a

Edited by stuck1a
added link
Link to comment
Share on other sites

  • 2 weeks later...

I've been getting back into modding (more active on Discord then here), and started a wishlist/todo of stuff, although a lot of it could probably be tackled on the Lua side.

That said, I've added a "Walkman" item to play music using the True Music mod, and made the item attachable. The caveat is that in `zombie/characters/IsoGameCharacter.class:IsoGameCharacter.radioEquipedCheck` there is a check that if the radio is not equipped in primary/secondary the sound emitters are cleaned/stopped... radioEquipedCheck.thumb.png.3c5346edd2eb6e649529e952ca45f99a.png

Would love to add an "isAttached" check here so music could still play through the Walkman (also would love to add this for radios and radio communication)

Context:
walkmanScreenshot.png.19d9cb78fb76c2fb85c0ad721a18af98.png

I'm happy to contribute a patch for this

As a bonus, I was also thinking about those who leave radios on and put them in their bag... would be a lovely zombie attraction (or distraction)

Link to comment
Share on other sites

  • 1 month later...

Hello.

 

Dunno if this is the best place for it but, for all modders like me, who uses TileZed. Would be nice to implement an option to modify Tile properties direcly, for per example, like it work for windows for make them unbreakable, a check box for make any tile unbreakable mostly for doors, or at least the possibility to add custom Health/Durability values, i think would be a nice addition for not to depend of external mods, and maybe not difficult to implement. In addition, would be nice too to have the possibility of add custom scripts to a tile, maybe per example, i want a tile which one makes a sound as a trigger when a player touch it.

 

Thanks.

Link to comment
Share on other sites

  • 3 weeks later...

This may have been intentionally left out due to security concerns, but the ability to read/write bytes directly to files would be nice. There's a mod idea I have that's doomed to remain as a proof of concept without the ability to generate audio at runtime. If better file reading and writing isn't possible, more access to FMOD would also be great.

Link to comment
Share on other sites

  • 3 weeks later...

Can UI3DScene be expanded to support vehicle color, rust and skin? Usage example:

self.javaObject:fromLua2("setVehicleRust", "vehicle", 1)
self.javaObject:fromLua2("setVehicleSkinIndex", "vehicle", 0)
self.javaObject:fromLua4("setVehicleColorHSV", "vehicle", 0, 0.5, 0.5)

 

I'm using it for a vehicle preview

ProjectZomboidScreenshot2023_03.30-11_35_09_51.png.3cf2eb83662ac605ed6f21e8dddeac0e.png

Edited by Tykvesh
Link to comment
Share on other sites

  • 3 weeks later...

Sub-power of Supernatural Speed.  I love the time control feature this game provides.  Can I get a time reduction script written for extreme battle events when my adrenaline goes a hip, hop, hippity hop... to the sandman.   In other words, when solo, I'd love to see in slow motion before there is a "dead-end" programmed "futureLy/instinctly before the computer sees first that there is no way to survive; thus enabling "slow-motion" for the individual, as his straining-angel has his back,... our backs.  Get it?

Edited by supernatural57
Link to comment
Share on other sites

  • 5 weeks later...
  • 2 weeks later...
  • 1 month later...
  • 1 month later...

SetAirTime(float seconds) on zombie.radio.media.MediaData.MediaLineData.

zombie.radio.scripting.RadioLine has this method. I require this, because I'm working on a mod that adds VoiceOver to the radio and TV Broadcasts, and to add them to recorded media too I need to sync the voice lines air time to the times of the recordings.

Edited by fedcap
Link to comment
Share on other sites

On 3/12/2023 at 2:18 PM, omiyomy said:

This may have been intentionally left out due to security concerns, but the ability to read/write bytes directly to files would be nice. There's a mod idea I have that's doomed to remain as a proof of concept without the ability to generate audio at runtime. If better file reading and writing isn't possible, more access to FMOD would also be great.

On my mod Broadcast Voicer (Framework of Voiced Radios and TVs) I kinda had a way to get around this issue.

To voice the AEBS, I made all posible audio lines with a python script (for instance: "Today", "Tomorrow", "Mild", "Strong", "88.9F", "88.7F", etc), then added some code to make them be played one after the other until the table is empty. The result was they are played according to the need.

"Today," "Average Temperature:" "78.9F" ....

This was intended for OnDeviceText() events, but you could probably get it to work on any event.

Link to comment
Share on other sites

Having the ability to set a player character model / animPlayer would increase the posibilities of the moding community incredibly. it would allow us to create custom special NPC with non human characteristics, like custom animals (dogs, horses, whatever), animated tails, extra moving appendages, etc.

It would also allow us to dynamically change the appearance of the mesh of our character, meaning we could change his body weight dynamically assuming we have the models also for the clothing.

I made a demo of what this could look like. Since it is a deformed mesh, the textures keep working appropietly, so if it is injured or bandaged, it shows correctly

 

Edit: I actually managed to make it work by modifying the java class ModelInstanceTextureCreator.java, by adding this 2 lines:

zombie.core.skinnedmodel.model.ModelInstanceTextureCreator

public void init(HumanVisual humanVisual, ItemVisuals itemVisuals, ModelInstance modelInstance)

//Modded By FedCap
modelInstance.model = humanVisual.getModel();
modelInstance.m_modelScript = humanVisual.getModelScript();
//Modded By FedCap
 
this.chrData.modelInstance = modelInstance;
this.chrData.mask.copyFrom(characterMask);
this.chrData.maskFolder = string;
this.chrData.baseTexture = "media/textures/Body/" + humanVisual.getSkinTexture() + ".png";
Arrays.fill(this.chrData.blood, 0.0F);


I tested it, and so far it works as expected, when HumanVisual Model is forced to certain one it changes their model to reflect the change.

Please, consider adding this to future updates

ModelInstanceTextureCreator.java

Edited by fedcap
Link to comment
Share on other sites

  • 3 weeks later...
On 9/7/2023 at 12:21 AM, fedcap said:

On my mod Broadcast Voicer (Framework of Voiced Radios and TVs) I kinda had a way to get around this issue.

To voice the AEBS, I made all posible audio lines with a python script (for instance: "Today", "Tomorrow", "Mild", "Strong", "88.9F", "88.7F", etc), then added some code to make them be played one after the other until the table is empty. The result was they are played according to the need.

"Today," "Average Temperature:" "78.9F" ....

This was intended for OnDeviceText() events, but you could probably get it to work on any event.

This is exactly what I did for the proof-of-concept. Unfortunately, though, it's not acceptable for my use case—too many sounds to play in succession. Thank you for the suggestion, though!

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 months later...

Hey, I would love to see an option to disable "Shadow" effect, through lua file for 'Title_lightning3' and 'Title_lightning4' (Bottom parts) of background menu when lightning strikes.

Why?
When I'm trying to add reverse background where dark will convert to light when lightning strikes, it leaves shadows on image which looks ugly.

If this is function, maybe people could make their custom animations for menu to change background

I also noticed that there is vertical small black line between "Title_lightning1" and "Title_lightning2", but it could be just my images.

Link to comment
Share on other sites

  • 1 month later...

Hi there.

Few suggestions that I would really like to see scripting-wise

 

1. addVehicleDebug / addVehicle - to have the same set of arguments to work with and returned value (either object or net ID) to avoid atrocities like this trying to return the spawned vehicle from both server/client side.

 

2. zomboid.socket / server commands - allow to source Lua files directly to be executed by via text device you already have up and running. This will enable a bridge between server environment and bash/shell/python and whatever else can be running on host machine, including using this along with crontabs. This give an advanced and really powerful tool for those who knows, without a need of workaround with mods. I can't even count the possibilities popping up in my head thinking about having this feature.

 

Cheers. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...