Project Highrise

Project Highrise

Unleash your inner architect.
Get new items for your skyscraper - furniture, decorations and even new types of tenants. You can also learn how to make them yourself using our guides.
了解更多
晚上喝酒吗? 5 2017 年 7 月 14 日 上午 9:03
Residential mod 101
How to make residential mod

Hi guys, I think I’m the only one that created the residential mod for this game so far. I’m happy to show you how I did it. English is NOT my native language so please don’t criticise about my grammar or word, but I will try my best to make everything clear. I tried to post this in the steam guide, but it kept crashing. Sorry.

I used Windows 10. So I’m not sure how it works with Mac but I assume modding process is mostly the same just the directory is different. This tutorial is requested by Mikado-hime.

What you need before starting:
1. Read through the modding guide on kasedogame website:
http://www.kasedogames.com/project-highrise-modding
This will be really helpful especially if you are a beginner like me :)
2. Photoshop or Illustrator (or any picture editing software that can work with PNG)
3. The guide “Tags and Contracts” written by polander50 might also be helpful.

Here we go:
1. Download the modding template from the kasedogame website (I used the small office template but basically any template should work)

2. Follow the step 1 in the first modding tutorial
Unzip the file and Put the file you just downloaded into
c:\Users\USERNAME\AppData\LocalLow\SomaSim\Project Highrise\Mod

3. Choose the type of residential base you like
Check the Tenant entity size chart on kasedogame website https://storage.googleapis.com/highrise-modding/docs/tenant-sizes-reference.pdf

4. Create the Background and Foreground PNG files based on the entity size chart (pixel number) using photoshop or illustrator.
Download the Sample asset pack for modding. https://storage.googleapis.com/highrise-modding/project-highrise-modding-props.zip
There are lots of decoration and furniture in the pack.
Add your furniture, background etc.

5. Now is the tricky part, coding
Go to:
C:\Program Files (x86)\Steam\SteamApps\common\Project Highrise\Game_Data\StreamingAssets
Using notepad, open Entities and Layouts (2 files).
In entities, search (Ctrl+F) “;;;;;;;;;;;;;;;;;;;;;;;;;;; residential units” you should be able to see something like this:

6. Find the residential base you picked in step 3 from the code: { ident { template "residence-level-xx" parent "residence-base" }
Residence-level-one-studio: studio
Residence-level-one: one bedroom
Residence-level-two: two bedroom
You get the idea.

7. Copy the code following code (or you can use the base that you found in the entities file):
{ entities [
{
ident { template "YOUR-MOD-NAME" parent "residence-base" }
sprite { layouts [ "[b]YOUR-MOD-NAME[/b]-layout" ] }
placement {
buildhours 1.5
size { x 6 y 1 }
reqs [
{ #type scenario-requirement tags [ "scenario-15" ] result fail }
]
}
residence {
}
;heatmap {
; produces [
; { type trafficHeatmap value -2 }
; ]
;}
unit {
locname "YOUR-MOD-NAME.name"
locdesc "YOUR-MOD-NAME.desc"
loccat "YOUR-MOD-NAME.desc"
tags [ apt-studio-high lux-one apt-studio-lux ]
favrestaurants [ foodcourt retail-one-r ]
buildcost { value -300 mods [
{ #type game-difficulty-modifier hardmultiplier 1 easymultiplier 1 }
{ #type heatmap-modifier map floorHeatmap value -50 }
{ #type golden-age-modifier id goldenage-apartments-waitlist multiplier 0.5 }
] }
pays { value 400 mods [
{ #type game-difficulty-modifier hardmultiplier 0.8 easymultiplier 1.25 }
{ #type heatmap-modifier map floorHeatmap value 50 }
{ #type economy-modifier multiplier 60 }
] }
satisfaction { value 0 mods [
{ #type rent-deal-modifier }
{ #type utilities-modifier type utilpower value -1 }
{ #type utilities-modifier type utilcable value -1 }
{ #type utilities-modifier type utilwater value -1 }
{ #type utilities-modifier type utilgas value -1 }
{ #type heatmap-modifier map floorHeatmap value 1 }
{ #type heatmap-modifier map noiseHeatmap value -0.05 }
{ #type heatmap-modifier map smellHeatmap value -0.05 }
{ #type trash-delivery-modifier type trash value -0.05 }
{ #type trash-delivery-modifier type recycling value -0.05 }
{ #type resident-happiness-modifier multiplier 0.85 }
{ #type golden-age-modifier id goldenage-apartments-satisfaction delta 0.4 }
] }
needutilities [ { type utilpower value 1 } { type utilwater value 1 } { type utilgas value 1 } { type utilcable value 1 } ]
needservices [
{ tasktype servicehandyman probability 0.1 businesshoursonly #false workhours 0.2 timeouthours 24 timeouteffect -0.1 }
{ tasktype serviceplumber probability 0.1 businesshoursonly #false workhours 0.2 timeouthours 24 timeouteffect -0.1 }
{ tasktype servicelaundry probability 0.1 businesshoursonly #false workhours 0.2 timeouthours 24 timeouteffect -0.1 }
]
trashproduced [
{ item trash amount 0.5 probability 0.5 }
; { item recycling amount 0.5 probability 0.5 }
]
}
tokens {
tokengrants [ { type favors value 1 peradult #true hourofday 23 probability 0.5 } ]
}
}

8. Paste the code to replace the entities part in the definition.txt file (right before layouts)
Check the tenant size reference, then change the size { x 6 y 1 } into the residential base size you picked (If you copied the entities file code instead of the one posted up here, you can skip this step)
One bedroom { x 8 y 1}
Two bedroom { x 10 y 1} etc.

9. Modify the mod as you like, by changing the value and/or the service type.
Buildcost: the cost of building the unit
Pays: rent
#type utilities-modifier type: you can change the utility that is required for the unit
If you changed the utility type, you have to change “needutilities” part accordingly.
#type heatmap-modifier: you can change the satisfaction of your tenants here, whether they like higher floors/busy floors/or closer to the elevator.
#type trash-delivery-modifier type trash: the trash room requirement for the tenant
#type trash-delivery-modifier type recycling: recycling requirement for the tenant
Needservices: you are able to change the type of service that are required by the tenant.

10. Check the layout file and find the layout for your residential base (Ctrl+F, then find the residential base you picked in step 3 from the code: "residence-level-xx"
Residence-level-one-studio: studio
Residence-level-one: one bedroom
Residence-level-two: two bedroom
You get the idea.

11. Copy the code from “construction [” to the end of the bracket that is right before the next unit.
For example: the one bedroom unit:
residence-level-one-high {
open [
{ img "res-1-1br-c.png" layer wallpaper atlas hdres }
{ img "res-1b-left.png" layer foreground atlas hddecos }
{ img "res-1br-c-props.png" dx 91 layer deco atlas hddecos }
{ img "brown-bed-double-l1-front.png" dx 261.5 dy -0.5 layer deco atlas hddecos }
{ img "grime-1b.png" layer grime atlas hdgrime }
{ img "grime-3b.png" dx 50 layer grime atlas hdgrime }
{ img "grime-3b.png" dx 200 layer grime atlas hdgrime }
{ img "grime-1b.png" dx 350 layer grime atlas hdgrime }
]
copy from the following
construction [
{ img "uc-res-door.png" layer wallpaper atlas hdwalls }
{ img "zoned-res-left.png" layer foreground atlas hddecos }
{ img "uc-res-1w.png" dx 50 layer wallpaper atlas hdwalls }
{ img "uc-res-2w.png" dx 100 layer wallpaper atlas hdwalls }
{ img "uc-res-2w.png" dx 200 layer wallpaper atlas hdwalls }
{ img "uc-res-2w.png" dx 300 layer wallpaper atlas hdwalls }
{ img "uc-pallet-drywall.png" dx 19 layer deco atlas hddecos }
{ img "uc-ladder.png" dx 121 layer deco atlas hddecos }
{ img "uc-crate-tv.png" dx 180 layer deco atlas hddecos }
{ img "uc-crate-tall.png" dx 260 layer deco atlas hddecos }
{ img "uc-crate-chair.png" dx 314 layer deco atlas hddecos }
{ img "uc-bucket-trowel.png" dx 64 dy 26 layer deco atlas hddecos }
{ img "uc-bucket-paint.png" dx 137 dy 116.5 layer deco atlas hddecos }
{ img "uc-box-2.png" dx 185 dy 38.5 layer deco atlas hddecos }
{ img "uc-toolbox-open.png" dx 260 dy 93.5 layer deco atlas hddecos }
{ img "uc-box-3.png" dx 353 dy 58.5 layer deco atlas hddecos }
]
residentanchors [
{ dx 68 animm "res-sit-relax-r-m" animf "res-sit-relax-r-f" }
{ dx 100 animm "res-stand-back-m" animf "res-stand-back-f" }
{ dx 155 animm "res-sit-relax-front-m" animf "res-sit-relax-front-f" }
{ dx 314 animm "sleep-c-m" animf "sleep-c-f" sleep #true }
{ dx 341 animm "sleep-c-m" animf "sleep-c-f" sleep #true }
]
serviceanchors [
{ dx 250 tasktype servicehandyman }
{ dx 250 tasktype serviceplumber }
{ dx 366 tasktype servicelaundry }
]
}
end of the copied text
;; two
residence-level-two-low {
open [
{ img "res-2-2br-a.png" layer wallpaper atlas hdres }
{ img "res-2a-left.png" layer foreground atlas hddecos }
{ img "brown-bed-double-l2-front.png" dx 218.5 layer deco atlas hddecos }
{ img "grime-3a.png" layer grime atlas hdgrime }
{ img "grime-4a.png" dx 150 layer grime atlas hdgrime }
{ img "grime-2a.png" dx 350 layer grime atlas hdgrime }
{ img "grime-1a.png" dx 450 layer grime atlas hdgrime }
]

12. Paste the code and replaced the parts in definition.txt respectively.

13. Adjust the residentanchors so that your tenants can interact with the furnitures.
If you are not sure how to do this, check modding tutorial Part 3 & 4

14. Check the tenant sizes references, and change the” movein {id” to the according unit id.

15. Edit the rest of the definition.txt based on modding tutorial Part 1.

16. Go to your game, and enable your mod. Check before uploading to steam workshop.

17. If everything is ok, you can upload your mod to the workshop in the game.


Tips: for the preview.png, make the file size smaller, so it will be easier to upload.

Hope this can help. I'm happy to answer all your question regarding residential mod. But then again, I only made one residential mod, and I'm not computer science expert, so you might know more than me :P
Have fun in the game :D
最后由 晚上喝酒吗? 编辑于; 2017 年 7 月 14 日 上午 9:14
< >
正在显示第 1 - 5 条,共 5 条留言
ThatOneCubanDude 2018 年 7 月 24 日 下午 12:31 
Thanks you so much for this, I've been wanting to make some modern apartments to replace orange luxury ones and now I can finally try making them.
ThatOneCubanDude 2018 年 7 月 24 日 下午 7:15 
Ok so when I try to load my mod in it says that it could not use the movein id I gave it (office_10_1). Any idea on how i can fix that?
最后由 ThatOneCubanDude 编辑于; 2018 年 7 月 24 日 下午 7:15
晚上喝酒吗? 5 2018 年 7 月 25 日 下午 2:30 
引用自 ThatOneCubanDude
Ok so when I try to load my mod in it says that it could not use the movein id I gave it (office_10_1). Any idea on how i can fix that?

Hi ThatOneCubanDude,
I'm terribly sorry that I haven't been catching up with this game for a while (as you can see, this post was from last year).
I will take a look this weekend and hopefully I will be able to update this guide. Sorry for the trouble. Let me know if you need anything else. Happy gaming! :steamhappy:
ThatOneCubanDude 2018 年 7 月 25 日 下午 6:09 
Haha. I hadn't noticed the date. :2017catheart: I spent some time today trying to figure it out too but still couldn't figure it out. I guess they changed some of the code. Thanks for the response :)
最后由 ThatOneCubanDude 编辑于; 2018 年 7 月 25 日 下午 6:09
晚上喝酒吗? 5 2018 年 8 月 3 日 下午 5:50 
引用自 ThatOneCubanDude
Haha. I hadn't noticed the date. :2017catheart: I spent some time today trying to figure it out too but still couldn't figure it out. I guess they changed some of the code. Thanks for the response :)

So I figured out where the problem is. I'm sorry that I didn't write the guide very cleary.

The "moving id" in step 14 should be changed accordingly to "type-width-height".
For example: residential 1 bedroom is 8 by 1, so the moving id for 1 bedroom will be "residential-8-1".

I hope this helps. I will revise this guide this weekend :) Thanks for flagging the issue!
< >
正在显示第 1 - 5 条,共 5 条留言
每页显示数: 1530 50