Jump to content
tinter

Tinter-Furniture - Dynamic Furniture as a Mod

Recommended Posts

Based upon my script, I have decided to make a mod for people who aren't mission makers but still want to spice their missions up.

For anyone who doesn't know my script, this mod will spawn premade compositions dynamically as simple objects into houses around the player, removing them when they're out of range.

I have earlier released this as a script:

I will preface this by saying that I really think this works better as a script. The mod will spawn furniture into every house without checking whether the mission maker has placed anything there. It is not feasible to whether a house is intended to be used some other way by the mission maker, thus why this should be implemented on a per mission basis, ideally.

 

The script is local, so everyone needs to see it running, and the server as well to make furniture block AI line of sight.

Download: https://github.com/Tinter/Tinter-Furniture-Mod/releases/

Github: https://github.com/Tinter/Tinter-Furniture-Mod

Steam Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=2248165312

 

  • Like 12
  • Thanks 2

Share this post


Link to post
Share on other sites

Both the script and mod have been updated now, to fix an issue with furniture double spawning when buildings get partially destroyed.

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
On 10/4/2020 at 7:15 PM, tinter said:

Both the script and mod have been updated now, to fix an issue with furniture double spawning when buildings get partially destroyed.

 

@tinter Can I include your script version on my script suite with proper credits of course? 😉

  • Thanks 1

Share this post


Link to post
Share on other sites
8 minutes ago, LSValmont said:

 

@tinter Can I include your script version on my script suite with proper credits of course? 😉

 

Go for it. The more people that can enjoy the mod the better!

 

Have you used the script some? I'm sort of fishing for feedback here as I haven't gotten a lot.

No news is good news I suppose, but I still can't help but want to hear people's thoughts.

  • Thanks 1

Share this post


Link to post
Share on other sites
56 minutes ago, tinter said:

 

Go for it. The more people that can enjoy the mod the better!

 

Have you used the script some? I'm sort of fishing for feedback here as I haven't gotten a lot.

No news is good news I suppose, but I still can't help but want to hear people's thoughts.

 

Thank you! I will be using the script version this weekend so I will have lots of feedback by then 😉

 

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, tinter said:

Have you used the script some? I'm sort of fishing for feedback here as I haven't gotten a lot.

No news is good news I suppose, but I still can't help but want to hear people's thoughts.

I've been using it for a while on the Tanoa map, I created custom compositions for the map. It's working perfectly. I would like to make a suggestion, it would be great if we could, define in a black list, places where we do not want you to generate compositions, perhaps by placing a mark and checking BIS_fnc_inTrigger, for example. Thank you and congratulations for the work.

  • Like 2

Share this post


Link to post
Share on other sites
1 minute ago, Djavu said:

I've been using it for a while on the Tanoa map, I created custom compositions for the map. It's working perfectly. I would like to make a suggestion, it would be great if we could, define in a black list, places where we do not want you to generate compositions, perhaps by placing a mark and checking BIS_fnc_inTrigger, for example. Thank you and congratulations for the work.

Glad to hear it's working well!

As far as adding that as a feature, I'm not sure if I want it to be part of the script, but for now you can do this with a trigger where the condition is set to

true

and the on activation is

{ 
    if ([thisTrigger, _x] call bis_fnc_inTrigger) then { 
    _x   setVariable ["tint_house_blacklisted", true] 
    }; 
} foreach ((getPos thisTrigger) nearObjects ["house_f", (triggerArea thisTrigger#0 max triggerArea thisTrigger#1)])

then it should automatically blacklist buildings inside of the trigger when the mission starts.

I hope that helps.

  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, tinter said:

No news is good news I suppose, but I still can't help but want to hear people's thoughts.

 

Script version is great and I've been using it for a while now. It's very easy to set up for different compositions depending on the setting too. I'd prefer the scripted version anyway. Less mods for others to worry about and it's been easy to make some minor edits to the included compositions from mission to mission.

  • Like 2

Share this post


Link to post
Share on other sites

Just tested the script version again and had only a -2 fps impact in performance overall at a much greater immersion. Totally worth it!

 

Thank you dear @tinter!

  • Like 1

Share this post


Link to post
Share on other sites

unknown.png

I've updated both the script and the mod so that they use CBA settings now, and the mod will turn off if a mission is running the script, avoiding spawning the wrong kind of furniture and what not. Not that I assume anyone was going around calling the functions in the mod, but I have also changed the function names, so they don't overwrite the script.

The release can be downloaded from  https://github.com/Tinter/Tinter-Furniture-Mod/releases/tag/v2.0.0 or at the workshop.

Thanks.

  • Like 6

Share this post


Link to post
Share on other sites

Hi, does this mod spawn compositions in buildings that come from CUP terrains - core?

Share this post


Link to post
Share on other sites

@HBAOplus

Hey and thanks for showing your interest. I'm sorry to say that it doesn't at the moment. It's not impossible to do, it just takes a lot of time for me to make compositions, so I haven't made any for CUP.

As always, I have to mention that any help is appreciated and if anyone wants to contribute with compositions for CUP or even just vanilla buildings, then I'd be happy to help make it work.

 

I've considered whether I should write some guidelines for how contributions should be handled, but I haven't yet worked with anyone, so I'm not sure how it would look.

  • Like 3

Share this post


Link to post
Share on other sites

Big thanks to lelop! The Livonia update is now live adding a whole new slew of compositions for Livonia buildings!

unknown.png

unknown.pngunknown.png

  • Like 5
  • Thanks 2

Share this post


Link to post
Share on other sites

Last update is awesome!

 

Perhaps a last contribution from the amazing lelop for CUP buildings and then the mod/script is complete.

 

Also, thank you for releasing both the script and the mod version, I use the script version and it suits my needs greatly!

  • Like 1

Share this post


Link to post
Share on other sites

Luckily, a lot of CUP buildings have some basic furnishings baked into the model. I'm not too sure of what buildings there are in CUP that don't actually have any furniture in them.

  • Thanks 1

Share this post


Link to post
Share on other sites
17 hours ago, lelop said:

Luckily, a lot of CUP buildings have some basic furnishings baked into the model. I'm not too sure of what buildings there are in CUP that don't actually have any furniture in them.

 

The new CUP hospital building only has basic counters but nothing medical related. Would really benefit from having a couple medical related stuff around 😉

 

But I agree that any building with baked furniture do not require any extra.

 

I guess a good guideline for placing furniture would be:

 

- Use the minimal amount of objects that make the building feel "real and livable" but do not go overboard with it.

- Placed objects must not block windows, doors or hallways that are critical for the the interior circulation.

- Put a FPS cap on the script/mod, if certain minimum is reached (like 20 FPS or lower) then the script stops adding building until FPS becomes higher again.

Share this post


Link to post
Share on other sites

First, nice mod. Second: Can you explain what exactly the Seed does ? I don't really get it 😅

And another problem, it seems to mess with vehicle locality.

We use this to ensure some actions can only be exectued when the vehicle is local to your client.
And with your script/mod running you always get an "error" ^^

if !(local _vehicle) then
{
    throw "Please get in as driver/pilot first.";
};

 

Share this post


Link to post
Share on other sites
On 6/16/2021 at 6:22 PM, El' Rabito said:

First, nice mod. Second: Can you explain what exactly the Seed does ? I don't really get it 😅

And another problem, it seems to mess with vehicle locality.

We use this to ensure some actions can only be exectued when the vehicle is local to your client.
And with your script/mod running you always get an "error" ^^


if !(local _vehicle) then
{
    throw "Please get in as driver/pilot first.";
};

 

Thank you! I'm sorry I'm a little late on answering this, but better late than never.

Short answer, the seed controls exactly what furniture appears in each building. Long answer, each building has a predefined list of furniture for that type of building. I place down furniture in eden so it looks nice, then save it so that I can put it on any building of that same type. Some building types have more than one, so to make more than just one set of furniture appear, I choose which list actually shows up randomly, but only sorta randomly since we would want people to see the same furniture in multiplayer. So if they enter a building with the same seed, they'll see the same furniture in the same place. If they have a seed that is not the same, one might see a chair where the other sees a table. The reason I let people set it manually is that due to the randomness involved, sometimes you might see buildings all have the same internal layout next to each other, so you can change it if it ends up a little weird. It mostly applies to mission makers using the script though. If you play in multiplayer I recommend everyone use the same seed, you can force it on the server even.

 

As for the error you get, I don't have a lot of context, but I do not believe that the mod would change anything about locality for vehicles or really do anything that would cause that error to show up. If you can reproduce it consistently, then I can take a look at it.

Share this post


Link to post
Share on other sites

It is update time again. I'll just quickly post the changelog here.
 

Quote

Added non-modern Livonia compositions
Added support for Cam Lao Nam houses
Added compositions for Cam Lao Nam
Added compositions for Weferlingen
Added CUP compositions for Weferlingen
Added compositions for Rosche
Added compositions for the industrial shed
Military compositions are now included by default
Changed the names of compositions files
Compositions files have a bit more info
Fixed furniture spawning in some destroyed buildings

 

  • Like 4

Share this post


Link to post
Share on other sites

@tinter thanks for the update, this is going on our Cam Lao Nam server. I love that this mod makes towns feel more realistic and random. At the same time having little to no FPS hit.

Thanks for sharing.

  • Like 1

Share this post


Link to post
Share on other sites

@tinter I run servers that run multiple maps on rotation. Was wanting to run as many of the compositions as possible without having a furniture pile up 🙂 

Would it be correct in saying that you can run the following compositions without any buildings doubling up? 


 

Spoiler

// can run both of these:
#include "compositions\beesting_CUP.sqf"
 #include "compositions\city.sqf"


// can only run one  of these:
 //#include "compositions\jono_deserted.sqf"
#include "compositions\jono_fortified.sqf"


// can run all of these:

#include "compositions\jono_houses.sqf"
#include "compositions\jono_military.sqf"
#include "compositions\lived_in.sqf"

// can only run one  of these:
// #include "compositions\livonia.sqf"
#include "compositions\livonia_nonmodern.sqf"

// can only run one  of these:
//#include "compositions\orange_prewar.sqf"
 #include "compositions\orange_war.sqf"
// #include "compositions\orange_postwar.sqf"

// can only run one  of these:
 //#include "compositions\ravage_clean.sqf"
#include "compositions\ravage_dirty.sqf"


// can only run one  of these:
#include "compositions\vn_huts.sqf"
// #include "compositions\vn_huts_vc.sqf"


// can run all of these:
#include "compositions\weferlingen_cup.sqf"
#include "compositions\weferlingen_lived_in.sqf"
#include "compositions\WF_houses_cup.sqf"

 

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, aussie battler said:

@tinter I run servers that run multiple maps on rotation. Was wanting to run as many of the compositions as possible without having a furniture pile up 🙂 

Would it be correct in saying that you can run the following compositions without any buildings doubling up? 


 

  Reveal hidden contents

// can run both of these:
#include "compositions\beesting_CUP.sqf"
 #include "compositions\city.sqf"


// can only run one  of these:
 //#include "compositions\jono_deserted.sqf"
#include "compositions\jono_fortified.sqf"


// can run all of these:

#include "compositions\jono_houses.sqf"
#include "compositions\jono_military.sqf"
#include "compositions\lived_in.sqf"

// can only run one  of these:
// #include "compositions\livonia.sqf"
#include "compositions\livonia_nonmodern.sqf"

// can only run one  of these:
//#include "compositions\orange_prewar.sqf"
 #include "compositions\orange_war.sqf"
// #include "compositions\orange_postwar.sqf"

// can only run one  of these:
 //#include "compositions\ravage_clean.sqf"
#include "compositions\ravage_dirty.sqf"


// can only run one  of these:
#include "compositions\vn_huts.sqf"
// #include "compositions\vn_huts_vc.sqf"


// can run all of these:
#include "compositions\weferlingen_cup.sqf"
#include "compositions\weferlingen_lived_in.sqf"
#include "compositions\WF_houses_cup.sqf"

 

Depends on what you mean by doubling up. It should never try to put furniture on top of a building that already has furniture. So in that case it would be safe to run absolutely everything. On the other hand some furniture is themed, so if you don't want houses covered in sandbags or with blood piled up, you should leave those out. Hope this clarifies things, if not just ask!

 

I am very happy to hear that you enjoy it, I appreciate all feedback!

Share this post


Link to post
Share on other sites

@tinter thanks for the reply. I had the rest of my question hidden in a spoiler, sorry for the confusion:
 

// can run both of these:
#include "compositions\beesting_CUP.sqf"
 #include "compositions\city.sqf"


// can only run one  of these:
 //#include "compositions\jono_deserted.sqf"
#include "compositions\jono_fortified.sqf"


// can run all of these:

#include "compositions\jono_houses.sqf"
#include "compositions\jono_military.sqf"
#include "compositions\lived_in.sqf"

// can only run one  of these:
// #include "compositions\livonia.sqf"
#include "compositions\livonia_nonmodern.sqf"

// can only run one  of these:
//#include "compositions\orange_prewar.sqf"
 #include "compositions\orange_war.sqf"
// #include "compositions\orange_postwar.sqf"

// can only run one  of these:
 //#include "compositions\ravage_clean.sqf"
#include "compositions\ravage_dirty.sqf"


// can only run one  of these:
#include "compositions\vn_huts.sqf"
// #include "compositions\vn_huts_vc.sqf"


// can run all of these:
#include "compositions\weferlingen_cup.sqf"
#include "compositions\weferlingen_lived_in.sqf"
#include "compositions\WF_houses_cup.sqf"

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×