h1z1-server 0.47.4-9 → 0.48.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +7 -0
- package/config.yaml +198 -0
- package/data/2016/lootTables/containers/Cabinets.json +8 -0
- package/data/2016/lootTables/containers/Cabinets_Cube.json +9 -0
- package/data/2016/lootTables/containers/Desk.json +30 -36
- package/data/2016/lootTables/containers/Dresser.json +17 -1
- package/data/2016/lootTables/containers/File_Cabinet.json +21 -68
- package/data/2016/lootTables/containers/Fridge.json +7 -44
- package/data/2016/lootTables/containers/Locker.json +1 -1
- package/data/2016/lootTables/containers/Ottoman.json +10 -68
- package/data/2016/lootTables/containers/Wrecked_Car.json +7 -28
- package/data/2016/lootTables/containers/Wrecked_Truck.json +8 -36
- package/data/2016/lootTables/containers/Wrecked_Van.json +7 -28
- package/data/2016/lootTables/containers/sub/Cabinets_pv.json +16 -0
- package/data/2016/lootTables/containers/sub/Desk_common.json +16 -0
- package/data/2016/lootTables/containers/sub/Desk_desoto.json +14 -0
- package/data/2016/lootTables/containers/sub/Desk_military.json +16 -0
- package/data/2016/lootTables/containers/sub/Desk_residential.json +17 -0
- package/data/2016/lootTables/containers/sub/Dresser_clothing.json +17 -0
- package/data/2016/lootTables/containers/sub/Dresser_residential.json +16 -0
- package/data/2016/lootTables/containers/sub/File_junk.json +14 -0
- package/data/2016/lootTables/containers/sub/File_military.json +21 -0
- package/data/2016/lootTables/containers/sub/File_rare.json +16 -0
- package/data/2016/lootTables/containers/sub/File_residential.json +17 -0
- package/data/2016/lootTables/containers/sub/File_uncommon.json +15 -0
- package/data/2016/lootTables/containers/sub/Vehicles_common.json +16 -0
- package/data/2016/lootTables/ground/ItemSpawnerRare_Tier00.adr.json +11 -7
- package/data/2016/lootTables/ground/ItemSpawnerWorld_Tier00.adr.json +18 -0
- package/package.json +4 -1
- package/src/servers/LoginServer/loginserver.ts +8 -1
- package/src/servers/SoeServer/soeclient.ts +7 -0
- package/src/servers/SoeServer/soeserver.ts +65 -1
- package/src/servers/ZoneServer2016/classes/trackedentityset.ts +43 -0
- package/src/servers/ZoneServer2016/classes/zoneclient.ts +7 -1
- package/src/servers/ZoneServer2016/entities/constructiondoor.ts +1 -1
- package/src/servers/ZoneServer2016/entities/explosiveentity.ts +2 -23
- package/src/servers/ZoneServer2016/entities/projectileentity.ts +3 -2
- package/src/servers/ZoneServer2016/entities/vehicle.ts +1 -1
- package/src/servers/ZoneServer2016/handlers/commands/commands.ts +1 -1
- package/src/servers/ZoneServer2016/managers/aimanager.ts +45 -26
- package/src/servers/ZoneServer2016/managers/constructionmanager.ts +1 -1
- package/src/servers/ZoneServer2016/managers/decaymanager.test.ts +4 -2
- package/src/servers/ZoneServer2016/managers/decaymanager.ts +46 -28
- package/src/servers/ZoneServer2016/managers/explosion.worker.ts +230 -0
- package/src/servers/ZoneServer2016/managers/explosionmanager.ts +512 -0
- package/src/servers/ZoneServer2016/managers/explosionworker.ts +83 -0
- package/src/servers/ZoneServer2016/managers/loottablemanager.ts +19 -11
- package/src/servers/ZoneServer2016/managers/pluginmanager.test.ts +1 -5
- package/src/servers/ZoneServer2016/managers/pluginmanager.ts +8 -0
- package/src/servers/ZoneServer2016/managers/worlddatamanager.ts +15 -1
- package/src/servers/ZoneServer2016/managers/worldobjectmanager.ts +4 -4
- package/src/servers/ZoneServer2016/zonepackethandlers.ts +14 -11
- package/src/servers/ZoneServer2016/zoneserver.ts +444 -230
- package/src/utils/processErrorHandling.ts +2 -2
package/config.yaml
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
server:
|
|
2
|
+
welcomeMessage: "Welcome to H1emu! :D"
|
|
3
|
+
adminMessage: "You are an Admin!"
|
|
4
|
+
gameMode: "SURVIVAL"
|
|
5
|
+
proximityItemsDistance: 2
|
|
6
|
+
interactionDistance: 3
|
|
7
|
+
charactersRenderDistance: 350
|
|
8
|
+
tickRate: 20
|
|
9
|
+
worldRoutineRate: 10000
|
|
10
|
+
enableLoginServerKickRequests: true
|
|
11
|
+
rebootTime: 48 # hours (0 to disable)
|
|
12
|
+
rebootWarnTime: 600 # seconds
|
|
13
|
+
isPvE: false
|
|
14
|
+
isHeadshotOnly: false
|
|
15
|
+
isFirstPersonOnly: false
|
|
16
|
+
isNoBuildInPois: true
|
|
17
|
+
baseConstructionDamage: 34000
|
|
18
|
+
damageWeapons: true # Damage weapons on firing
|
|
19
|
+
disablePOIManager: false # Disables the POI messages
|
|
20
|
+
disableMapBoundsCheck: false # Disables inboundscheck
|
|
21
|
+
|
|
22
|
+
# Rcon
|
|
23
|
+
|
|
24
|
+
rcon:
|
|
25
|
+
password: ""
|
|
26
|
+
port: 0
|
|
27
|
+
|
|
28
|
+
# Challenges
|
|
29
|
+
|
|
30
|
+
challenges:
|
|
31
|
+
enabled: true
|
|
32
|
+
challengePerDay: 6
|
|
33
|
+
|
|
34
|
+
# Random events
|
|
35
|
+
|
|
36
|
+
randomevents:
|
|
37
|
+
enabled: true
|
|
38
|
+
|
|
39
|
+
# VoiceChat
|
|
40
|
+
|
|
41
|
+
voicechat:
|
|
42
|
+
useVoiceChatV2: false
|
|
43
|
+
joinVoiceChatOnConnect: false
|
|
44
|
+
serverAccessToken: ""
|
|
45
|
+
|
|
46
|
+
# Fairplay / anticheat config
|
|
47
|
+
|
|
48
|
+
fairplay:
|
|
49
|
+
useFairplay: true
|
|
50
|
+
maxPing: 250
|
|
51
|
+
|
|
52
|
+
# Removing an entry below will allow clients with a certain rejectionFlag to join
|
|
53
|
+
# ex. Removing "5 # UNVERIFIED" will allow users with an unverified h1emu status to join
|
|
54
|
+
|
|
55
|
+
# by default, globally banned, hwid banned, vpn detected, and unverified clients will have their
|
|
56
|
+
# connections rejected
|
|
57
|
+
acceptedRejectionTypes:
|
|
58
|
+
# LOCAL_BAN, SERVER_LOCKED, and SERVER_REBOOT are always accepted
|
|
59
|
+
- 2 # GLOBAL_BAN
|
|
60
|
+
- 3 # VPN
|
|
61
|
+
- 4 # HWID
|
|
62
|
+
- 5 # UNVERIFIED
|
|
63
|
+
|
|
64
|
+
useAssetValidation: true
|
|
65
|
+
# how long the client has to send it's hashes before it's kicked (3 min default)
|
|
66
|
+
hashSubmissionTimeout: 180000
|
|
67
|
+
|
|
68
|
+
# clients with these packs are allowed to join, but they are optional (must be in numerical order)
|
|
69
|
+
allowedPacks:
|
|
70
|
+
#- file_name: ""
|
|
71
|
+
# crc32_hash: ""
|
|
72
|
+
|
|
73
|
+
# clients without these packs will be kicked (must be in numerical order)
|
|
74
|
+
requiredPacks:
|
|
75
|
+
#- file_name: ""
|
|
76
|
+
# crc32_hash: ""
|
|
77
|
+
|
|
78
|
+
weather:
|
|
79
|
+
defaultTemplate: "h1emubaseweather"
|
|
80
|
+
dynamicEnabled: true
|
|
81
|
+
|
|
82
|
+
airdrop:
|
|
83
|
+
minimumPlayers: 10
|
|
84
|
+
planeMovementSpeed: 140000
|
|
85
|
+
crateDropSpeed: 60000
|
|
86
|
+
|
|
87
|
+
# Anything to do with loot, vehicle, and npc spawning / despawning
|
|
88
|
+
worldobjects:
|
|
89
|
+
# Respawn timers
|
|
90
|
+
|
|
91
|
+
hasCustomLootRespawnTime: false
|
|
92
|
+
lootRespawnTimer: 1200000 # 30 minutes
|
|
93
|
+
vehicleRespawnTimer: 600000 # 10 minutes
|
|
94
|
+
npcRespawnTimer: 600000 # 10 minutes
|
|
95
|
+
|
|
96
|
+
# Despawn timers
|
|
97
|
+
|
|
98
|
+
# Player dropped items on the ground
|
|
99
|
+
itemDespawnTimer: 600000 # 10 minutes
|
|
100
|
+
# Spawned objects on the ground
|
|
101
|
+
lootDespawnTimer: 2400000 # 40 minutes
|
|
102
|
+
deadNpcDespawnTimer: 600000 # 10 minutes
|
|
103
|
+
lootbagDespawnTimer: 1800000 # 30 minutes
|
|
104
|
+
|
|
105
|
+
# Misc
|
|
106
|
+
vehicleSpawnCap: 120
|
|
107
|
+
# How far any other vehicle has to be for another to spawn
|
|
108
|
+
vehicleSpawnRadius: 50
|
|
109
|
+
# How far another spawned npc has to be for another to spawn
|
|
110
|
+
npcSpawnRadius: 3
|
|
111
|
+
chanceNpc: 100 # To be reworked: 100 max
|
|
112
|
+
chanceScreamer: 5 # To be reworked: 1000 max
|
|
113
|
+
|
|
114
|
+
chanceWornLetter: 1 # 100 max
|
|
115
|
+
|
|
116
|
+
waterSourceRefillAmount: 2
|
|
117
|
+
waterSourceReplenishTimer: 300000 # 5 minutes
|
|
118
|
+
|
|
119
|
+
crowbarHitRewardChance: 20 # 100 max
|
|
120
|
+
crowbarHitDamage: 10 # Default 25
|
|
121
|
+
|
|
122
|
+
# Trees, blackberry bushes, and sticks
|
|
123
|
+
speedtree:
|
|
124
|
+
minBlackberryHarvest: 1
|
|
125
|
+
maxBlackberryHarvest: 2
|
|
126
|
+
# from blackberry bushes only
|
|
127
|
+
branchHarvestChance: 0.1 # maximum of 1 for 100% chance
|
|
128
|
+
|
|
129
|
+
minStickHarvest: 1
|
|
130
|
+
maxStickHarvest: 2
|
|
131
|
+
|
|
132
|
+
treeRespawnTimeMS: 1800000 # 30 minutes
|
|
133
|
+
minWoodLogHarvest: 2
|
|
134
|
+
maxWoodLogHarvest: 6
|
|
135
|
+
minTreeHits: 12 # minimum hits it takes to chop a tree
|
|
136
|
+
maxTreeHits: 20 # maximum hits it takes to chop a tree
|
|
137
|
+
|
|
138
|
+
construction:
|
|
139
|
+
# allowPOIPlacement: false - deprecated in favor of isNoBuildInPOIs ^
|
|
140
|
+
allowStackedPlacement: false
|
|
141
|
+
allowOutOfBoundsPlacement: false
|
|
142
|
+
placementRange: 30
|
|
143
|
+
spawnPointBlockedPlacementRange: 25
|
|
144
|
+
vehicleSpawnPointBlockedPlacementRange: 30
|
|
145
|
+
playerFoundationBlockedPlacementRange: 70
|
|
146
|
+
playerShackBlockedPlacementRange: 20
|
|
147
|
+
|
|
148
|
+
decay:
|
|
149
|
+
decayTickInterval: 1200000 # 20 minutes per decay tick
|
|
150
|
+
constructionDamageTicks: 3 # damage structures every hour
|
|
151
|
+
|
|
152
|
+
# with default values it'll take 10 days for a base to fully decay
|
|
153
|
+
ticksToFullDecay: 240 # how many decay ticks * constructionDamageTicks it takes to fully decay any construction entity.
|
|
154
|
+
|
|
155
|
+
# unused for now but is planned
|
|
156
|
+
worldFreeplaceDecayMultiplier: 2 # used to multiply decay damage for freeplace constuction with no parent
|
|
157
|
+
|
|
158
|
+
##### DEPRECATED - NO LONGER DOES ANYTHING #####
|
|
159
|
+
baseConstructionDamage: 125000 # construction damage per required ticks
|
|
160
|
+
repairBoxHealValue: 1000000 # heals base to full condition
|
|
161
|
+
##### #####
|
|
162
|
+
|
|
163
|
+
vehicleDamageTicks: 3 # damage vehicles every hour
|
|
164
|
+
vacantFoundationTicks: 3 # destroy empty foundations after 1 hour
|
|
165
|
+
griefFoundationTimer: 72 # destroy grief foundations after 3 days (72 hours)
|
|
166
|
+
griefCheckSlotAmount: 4 # must have a minimum of 4 wall slots to avoid anti-grief
|
|
167
|
+
baseVehicleDamage: 2000 # 2% damage per 3 ticks (1 hour)
|
|
168
|
+
maxVehiclesPerArea: 2 # the max amount of vehicles that can be in an area before they start taking more damage
|
|
169
|
+
vehicleDamageRange: 25 # how large of a range to detect maxVehiclesPerArea
|
|
170
|
+
dailyRepairMaterials:
|
|
171
|
+
- itemDefinitionId: 16 # wood log
|
|
172
|
+
requiredCount: 1
|
|
173
|
+
- itemDefinitionId: 109 # wood plank
|
|
174
|
+
requiredCount: 10
|
|
175
|
+
- itemDefinitionId: 135 # nail
|
|
176
|
+
requiredCount: 4
|
|
177
|
+
- itemDefinitionId: 141 # metal bracket
|
|
178
|
+
requiredCount: 4
|
|
179
|
+
- itemDefinitionId: 46 # metal sheet
|
|
180
|
+
requiredCount: 1
|
|
181
|
+
- itemDefinitionId: 114 # metal shard
|
|
182
|
+
requiredCount: 8
|
|
183
|
+
- itemDefinitionId: 111 # wood stick
|
|
184
|
+
requiredCount: 2
|
|
185
|
+
|
|
186
|
+
smelting:
|
|
187
|
+
burnTime: 120000 # consume fuel every 120 seconds
|
|
188
|
+
smeltTime: 7000 # smelt 1 item every 7 seconds
|
|
189
|
+
gametime:
|
|
190
|
+
timeFrozen: false # Froze ingameTime
|
|
191
|
+
nightTimeMultiplier: 2 # This way night time pass 2 times faster than daytime
|
|
192
|
+
timeMultiplier: 36 # 1 hour IRL = 36 hours ingame, so 20 min for a full day
|
|
193
|
+
baseTime: 6 # server ingameTime start at 6 AM, 18 = 6PM
|
|
194
|
+
|
|
195
|
+
groups:
|
|
196
|
+
enabled: true
|
|
197
|
+
player_limit: 12
|
|
198
|
+
foundation_player_limit: 12
|
|
@@ -161,6 +161,14 @@
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
]
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"conditions": [{ "condition": "poi_names", "poi_names": ["Pleasant Valley"] }],
|
|
167
|
+
"rolls": { "min": 0, "max": 1 },
|
|
168
|
+
"entries": [
|
|
169
|
+
{ "type": "loot_table", "table": "sub/Cabinets_pv", "weight": 70 },
|
|
170
|
+
{ "type": "empty", "weight": 30 }
|
|
171
|
+
]
|
|
164
172
|
}
|
|
165
173
|
]
|
|
166
174
|
}
|
|
@@ -49,6 +49,15 @@
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"conditions": [{ "condition": "poi_names", "poi_names": ["Pleasant Valley"] }],
|
|
55
|
+
"rolls": { "min": 0, "max": 1 },
|
|
56
|
+
"entries": [
|
|
57
|
+
{ "item": 57, "weight": 35 },
|
|
58
|
+
{ "item": 56, "weight": 35 },
|
|
59
|
+
{ "type": "empty", "weight": 30 }
|
|
60
|
+
]
|
|
52
61
|
}
|
|
53
62
|
]
|
|
54
63
|
}
|
|
@@ -3,43 +3,37 @@
|
|
|
3
3
|
"pools": [
|
|
4
4
|
{
|
|
5
5
|
"conditions": [],
|
|
6
|
-
"rolls": {
|
|
7
|
-
"min": 0,
|
|
8
|
-
"max": 2
|
|
9
|
-
},
|
|
6
|
+
"rolls": { "min": 0, "max": 2 },
|
|
10
7
|
"entries": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"max": 1
|
|
41
|
-
}
|
|
42
|
-
}
|
|
8
|
+
{ "item": 23, "weight": 30, "count": { "min": 1, "max": 2 } },
|
|
9
|
+
{ "item": 1441, "weight": 5 },
|
|
10
|
+
{ "item": 3460, "weight": 3 },
|
|
11
|
+
{ "type": "loot_table", "table": "sub/Desk_common", "weight": 40 },
|
|
12
|
+
{ "type": "empty", "weight": 20 }
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"conditions": [{ "condition": "poi_tag", "tags": ["residential"] }],
|
|
17
|
+
"rolls": { "min": 0, "max": 1 },
|
|
18
|
+
"entries": [
|
|
19
|
+
{ "type": "loot_table", "table": "sub/Desk_residential", "weight": 70 },
|
|
20
|
+
{ "type": "empty", "weight": 30 }
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"conditions": [{ "condition": "poi_names", "poi_names": ["De Soto Service Stop"] }],
|
|
25
|
+
"rolls": { "min": 0, "max": 1 },
|
|
26
|
+
"entries": [
|
|
27
|
+
{ "type": "loot_table", "table": "sub/Desk_desoto", "weight": 75 },
|
|
28
|
+
{ "type": "empty", "weight": 25 }
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"conditions": [{ "condition": "poi_tag", "tags": ["military"] }],
|
|
33
|
+
"rolls": { "min": 0, "max": 2 },
|
|
34
|
+
"entries": [
|
|
35
|
+
{ "type": "loot_table", "table": "sub/Desk_military", "weight": 75 },
|
|
36
|
+
{ "type": "empty", "weight": 25 }
|
|
43
37
|
]
|
|
44
38
|
}
|
|
45
39
|
]
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"item": 3460,
|
|
53
|
-
"weight":
|
|
53
|
+
"weight": 3,
|
|
54
54
|
"count": {
|
|
55
55
|
"min": 1,
|
|
56
56
|
"max": 1
|
|
@@ -73,6 +73,22 @@
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"conditions": [],
|
|
79
|
+
"rolls": { "min": 0, "max": 1 },
|
|
80
|
+
"entries": [
|
|
81
|
+
{ "type": "loot_table", "table": "sub/Dresser_clothing", "weight": 70 },
|
|
82
|
+
{ "type": "empty", "weight": 30 }
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"conditions": [{ "condition": "poi_tag", "tags": ["residential"] }],
|
|
87
|
+
"rolls": { "min": 0, "max": 1 },
|
|
88
|
+
"entries": [
|
|
89
|
+
{ "type": "loot_table", "table": "sub/Dresser_residential", "weight": 65 },
|
|
90
|
+
{ "type": "empty", "weight": 35 }
|
|
91
|
+
]
|
|
76
92
|
}
|
|
77
93
|
]
|
|
78
94
|
}
|
|
@@ -3,75 +3,28 @@
|
|
|
3
3
|
"pools": [
|
|
4
4
|
{
|
|
5
5
|
"conditions": [],
|
|
6
|
-
"rolls": {
|
|
7
|
-
"min": 0,
|
|
8
|
-
"max": 5
|
|
9
|
-
},
|
|
6
|
+
"rolls": { "min": 0, "max": 3 },
|
|
10
7
|
"entries": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"min": 1,
|
|
32
|
-
"max": 2
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"item": 1719,
|
|
37
|
-
"weight": 15,
|
|
38
|
-
"count": {
|
|
39
|
-
"min": 1,
|
|
40
|
-
"max": 1
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"item": 2645,
|
|
45
|
-
"weight": 4,
|
|
46
|
-
"count": {
|
|
47
|
-
"min": 1,
|
|
48
|
-
"max": 1
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"item": 2646,
|
|
53
|
-
"weight": 4,
|
|
54
|
-
"count": {
|
|
55
|
-
"min": 1,
|
|
56
|
-
"max": 1
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"item": 2647,
|
|
61
|
-
"weight": 4,
|
|
62
|
-
"count": {
|
|
63
|
-
"min": 1,
|
|
64
|
-
"max": 1
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"item": 2648,
|
|
69
|
-
"weight": 4,
|
|
70
|
-
"count": {
|
|
71
|
-
"min": 1,
|
|
72
|
-
"max": 1
|
|
73
|
-
}
|
|
74
|
-
}
|
|
8
|
+
{ "type": "loot_table", "table": "sub/File_junk", "weight": 70 },
|
|
9
|
+
{ "type": "loot_table", "table": "sub/File_uncommon", "weight": 12 },
|
|
10
|
+
{ "type": "loot_table", "table": "sub/File_rare", "weight": 1 },
|
|
11
|
+
{ "type": "empty", "weight": 17 }
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"conditions": [{ "condition": "poi_tag", "tags": ["residential"] }],
|
|
16
|
+
"rolls": { "min": 0, "max": 1 },
|
|
17
|
+
"entries": [
|
|
18
|
+
{ "type": "loot_table", "table": "sub/File_residential", "weight": 65 },
|
|
19
|
+
{ "type": "empty", "weight": 35 }
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"conditions": [{ "condition": "poi_tag", "tags": ["military"] }],
|
|
24
|
+
"rolls": { "min": 0, "max": 2 },
|
|
25
|
+
"entries": [
|
|
26
|
+
{ "type": "loot_table", "table": "sub/File_military", "weight": 80 },
|
|
27
|
+
{ "type": "empty", "weight": 20 }
|
|
75
28
|
]
|
|
76
29
|
}
|
|
77
30
|
]
|
|
@@ -3,51 +3,14 @@
|
|
|
3
3
|
"pools": [
|
|
4
4
|
{
|
|
5
5
|
"conditions": [],
|
|
6
|
-
"rolls": {
|
|
7
|
-
"min": 0,
|
|
8
|
-
"max": 2
|
|
9
|
-
},
|
|
6
|
+
"rolls": { "min": 0, "max": 2 },
|
|
10
7
|
"entries": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"item": 3075,
|
|
21
|
-
"weight": 15,
|
|
22
|
-
"count": {
|
|
23
|
-
"min": 1,
|
|
24
|
-
"max": 1
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"item": 20,
|
|
29
|
-
"weight": 25,
|
|
30
|
-
"count": {
|
|
31
|
-
"min": 1,
|
|
32
|
-
"max": 1
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"item": 1535,
|
|
37
|
-
"weight": 20,
|
|
38
|
-
"count": {
|
|
39
|
-
"min": 1,
|
|
40
|
-
"max": 1
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"item": 1381,
|
|
45
|
-
"weight": 25,
|
|
46
|
-
"count": {
|
|
47
|
-
"min": 1,
|
|
48
|
-
"max": 1
|
|
49
|
-
}
|
|
50
|
-
}
|
|
8
|
+
{ "item": 7, "weight": 50 },
|
|
9
|
+
{ "item": 3075, "weight": 15 },
|
|
10
|
+
{ "item": 20, "weight": 25 },
|
|
11
|
+
{ "item": 1535, "weight": 20 },
|
|
12
|
+
{ "item": 1381, "weight": 25 },
|
|
13
|
+
{ "type": "empty", "weight": 30 }
|
|
51
14
|
]
|
|
52
15
|
}
|
|
53
16
|
]
|
|
@@ -3,75 +3,17 @@
|
|
|
3
3
|
"pools": [
|
|
4
4
|
{
|
|
5
5
|
"conditions": [],
|
|
6
|
-
"rolls": {
|
|
7
|
-
"min": 0,
|
|
8
|
-
"max": 3
|
|
9
|
-
},
|
|
6
|
+
"rolls": { "min": 0, "max": 3 },
|
|
10
7
|
"entries": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"item": 2177,
|
|
21
|
-
"weight": 50,
|
|
22
|
-
"count": {
|
|
23
|
-
"min": 1,
|
|
24
|
-
"max": 1
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"item": 23,
|
|
29
|
-
"weight": 50,
|
|
30
|
-
"count": {
|
|
31
|
-
"min": 1,
|
|
32
|
-
"max": 4
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"item": 2102,
|
|
37
|
-
"weight": 50,
|
|
38
|
-
"count": {
|
|
39
|
-
"min": 1,
|
|
40
|
-
"max": 1
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"item": 1380,
|
|
45
|
-
"weight": 50,
|
|
46
|
-
"count": {
|
|
47
|
-
"min": 1,
|
|
48
|
-
"max": 1
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"item": 142,
|
|
53
|
-
"weight": 50,
|
|
54
|
-
"count": {
|
|
55
|
-
"min": 1,
|
|
56
|
-
"max": 1
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"item": 3460,
|
|
61
|
-
"weight": 25,
|
|
62
|
-
"count": {
|
|
63
|
-
"min": 1,
|
|
64
|
-
"max": 1
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"item": 2255,
|
|
69
|
-
"weight": 50,
|
|
70
|
-
"count": {
|
|
71
|
-
"min": 1,
|
|
72
|
-
"max": 1
|
|
73
|
-
}
|
|
74
|
-
}
|
|
8
|
+
{ "item": 2088, "weight": 30 },
|
|
9
|
+
{ "item": 2177, "weight": 30 },
|
|
10
|
+
{ "item": 23, "weight": 20, "count": { "min": 1, "max": 4 } },
|
|
11
|
+
{ "item": 2102, "weight": 25 },
|
|
12
|
+
{ "item": 1380, "weight": 15 },
|
|
13
|
+
{ "item": 142, "weight": 25 },
|
|
14
|
+
{ "item": 3460, "weight": 3 },
|
|
15
|
+
{ "item": 2255, "weight": 25 },
|
|
16
|
+
{ "type": "empty", "weight": 40 }
|
|
75
17
|
]
|
|
76
18
|
}
|
|
77
19
|
]
|
|
@@ -3,35 +3,14 @@
|
|
|
3
3
|
"pools": [
|
|
4
4
|
{
|
|
5
5
|
"conditions": [],
|
|
6
|
-
"rolls": {
|
|
7
|
-
"min": 0,
|
|
8
|
-
"max": 3
|
|
9
|
-
},
|
|
6
|
+
"rolls": { "min": 0, "max": 3 },
|
|
10
7
|
"entries": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"item": 46,
|
|
21
|
-
"weight": 33,
|
|
22
|
-
"count": {
|
|
23
|
-
"min": 1,
|
|
24
|
-
"max": 3
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"item": 1895,
|
|
29
|
-
"weight": 15,
|
|
30
|
-
"count": {
|
|
31
|
-
"min": 1,
|
|
32
|
-
"max": 1
|
|
33
|
-
}
|
|
34
|
-
}
|
|
8
|
+
{ "item": 48, "weight": 30, "count": { "min": 1, "max": 3 } },
|
|
9
|
+
{ "item": 46, "weight": 25, "count": { "min": 1, "max": 3 } },
|
|
10
|
+
{ "item": 155, "weight": 20 },
|
|
11
|
+
{ "item": 1895, "weight": 12 },
|
|
12
|
+
{ "item": 1467, "weight": 10 },
|
|
13
|
+
{ "type": "empty", "weight": 28 }
|
|
35
14
|
]
|
|
36
15
|
}
|
|
37
16
|
]
|