This commit is contained in:
2024-10-20 16:20:55 +02:00
commit 33702fce0b
122 changed files with 9293 additions and 0 deletions

170
files/bin/dz-common Normal file
View File

@@ -0,0 +1,170 @@
#!/usr/bin/env bash
set -eEa
# If you want/need the server and rcon ports to be different, set them here.
# The steam query port is set in serverDZ.cfg.
# Server port. Set these in the .env file for the container.
if [[ ${SERVER_PORT} = "" ]]
then
export SERVER_PORT=2302
fi
if [[ ${RCON_PORT} = "" ]]
then
export RCON_PORT=2303
fi
export port=${SERVER_PORT}
export rcon_port=${RCON_PORT}
# Don't change anything else.
# Colors
export default="\e[0m"
export red="\e[31m"
export green="\e[32m"
export yellow="\e[93m"
export lightblue="\e[94m"
export blue="\e[34m"
export magenta="\e[35m"
export cyan="\e[36m"
# DayZ release server Steam app ID.
# Now that the Linux server is released, the binaries will come from this ID.
export release_server_appid=223350
# Leaving the experimental server appid here to allow for the use of the experimental server.
#export release_server_appid=1042420
# DayZ release client SteamID. This is for mods, as only the release client has them.
export release_client_appid=221100
# Server container profile directory
export SERVER_PROFILE="/profiles"
# Common container base directories
export FILES="/files"
export SERVER_FILES="/serverfiles"
# Used to check if dayZ is installed
export SERVER_INSTALL_FILE="${SERVER_FILES}/DayZServer"
# Steam files
export STEAM_LOGIN="${HOME}/steamlogin"
export STEAMCMD=steamcmd
# Other stuff
export YES="${green}yes${default}"
export NO="${red}no${default}"
# Convenience function
prompt_yn(){
echo -n "${1} (y|N) " >&2
read -s -n 1 a
a=$(echo ${a} | tr A-Z a-z)
echo
if [[ "${a}" = "y" ]]
then
return 0
else
return 1
fi
}
# List mods
list(){
X=1
C="${green}"
spaces=" "
FIRST=1
for link in $(ls -d ${SERVER_FILES}/@* 2> /dev/null | sort)
do
if [[ ${FIRST} = 1 ]]
then
echo
echo -e " ID Name URL Size"
echo "-------------------------------------------------------------------------------------------------------------------------"
FIRST=0
fi
ID=$(readlink ${link} | awk -F/ '{print $NF}')
MODNAME=$(get_mod_name ${ID})
SIZE=$(du -sh "${WORKSHOP_DIR}/${ID}" | awk '{print $1}')
printf "${C}%.3d %s %.30s %s https://steamcommunity.com/sharedfiles/filedetails/?id=%s %s${default}\n" ${X} ${ID} "${MODNAME}" "${spaces:${#MODNAME}}" ${ID} ${SIZE}
X=$((X+1))
done
echo
}
# Get mod name by ID or index
get_mod_name(){
# Check for an ID
if ! [ -d "${WORKSHOP_DIR}/${1}" ]
then
echo "Mod ID ${1} doesn't exist" >&2
exit 1
fi
NAME=$(grep name "${WORKSHOP_DIR}/${1}/meta.cpp" | cut -d '"' -f2 | tr -cd "[:alnum:]")
if [[ ${NAME} = "" ]]
then
echo "Could not get metadata. See above. Exiting..."
exit 1
fi
echo -n ${NAME}
}
get_mod_id(){
# If we were passed a valid mod id, just return it
if [ -d "${WORKSHOP_DIR}/${1}" ]
then
echo -n ${1}
return
fi
# If we have a second argument, we want to iterate over active server mods
DIR=${SERVER_FILES}
ARG="-d"
if [[ ${2} = "0" ]]
then
ARG="-tdr"
DIR=${SERVER_PROFILE}
fi
# echo "DIR: ${DIR}, ARG: ${ARG}" >&2
X=1
# Loop over mods
for link in $(ls ${ARG} ${DIR}/@* 2> /dev/null)
do
ID=$(readlink ${link} | awk -F/ '{print $NF}')
if [[ "${X}" = "${1}" ]]
then
echo -n ${ID}
return
fi
X=$((X+1))
done
}
get_mods(){
workshoplist=""
for link in $(ls -d ${SERVER_FILES}/@* 2> /dev/null | sort)
do
ID=$(readlink ${link} | awk -F/ '{print $NF}')
MODNAME=$(get_mod_name ${ID})
workshoplist+=" +workshop_download_item ${release_client_appid} ${ID}"
done
get_mod_command_line
}
get_mod_command_line(){
mod_command_line=""
for link in $(ls -tdr ${SERVER_PROFILE}/@* 2> /dev/null)
do
ID=$(readlink ${link} | awk -F/ '{print $NF}')
MODNAME=$(get_mod_name ${ID})
mod_command_line+="@${MODNAME};"
done
if [[ ${mod_command_line} != "" ]]
then
mod_command_line='-mod='${mod_command_line::-1}
fi
}

38
files/bin/map.sh Normal file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -eE
TERM="map"
if [[ ${1} =~ ^[0-9]+$ ]]
then
TERM="mod id"
fi
if [ -f "/files/mods/${1}/map.env" ]
then
source "/files/mods/${1}/map.env"
else
echo "map.env not found for ${TERM} ${1}..."
exit 1
fi
if [[ ${2} = "uninstall" ]]
then
echo "Backing up, as uninstalling will remove the ${MAP} mpmissions directory"
dz backup
rm -rf "${SERVER_FILES}/mpmissions/${MPDIR}"
elif [[ ${2} = "update" ]] || [[ ${2} = "install" ]]
then
cd /tmp
if [ -d "${DIR}" ]
then
pushd "${DIR}" > /dev/null
git pull
popd > /dev/null
else
git clone "${REPO}"
fi
rm -rf ${SERVER_FILES}/mpmissions/${MPDIR:?}
pushd "${DIR}" > /dev/null
find . -name "${MPDIR}" -exec cp -a {} "${SERVER_FILES}/mpmissions" \;
fi

71
files/bin/xml.sh Normal file
View File

@@ -0,0 +1,71 @@
#!/usr/bin/env bash
# A generic script that retrieves XML files from mods, either upstream in remote endpoints, or
# locally from the downloaded mod directory, or from project files.
set -eE
ID=${1}
if ! [ -f ${FILES}/mods/${ID}/xml.env ]
then
exit 0
fi
source ${FILES}/mods/${ID}/xml.env
# Iterate over the file names we can handle
for i in cfgeventgroups.xml cfgenvironment.xml cfgeventspawns.xml cfggameplay.json cfgspawnabletypes.xml cfgweather.xml events.xml init.c types.xml
do
FILE=$(echo ${i} | cut -d. -f1)
TYPE=$(echo ${i} | cut -d. -f2)
UP=${FILE^^}
VAL=${!UP}
DIR="${WORKSHOP_DIR}/${ID}"
OUT="${DIR}/${i}"
if echo ${VAL} | grep -qE "^http"
then
echo
echo "${i} is a URL, downloading to ${OUT}"
curl -so ${OUT} ${VAL}
elif echo ${VAL} | grep -qE "^local"
then
echo
echo "${i} comes from mod integration, copying to ${OUT}"
echo -n " "
cp -v "${FILES}/mods/${ID}/${i}" "${OUT}"
elif echo ${VAL} | grep -qE "^\./"
then
echo
echo "${FILE} comes from the mod as ${VAL}, copying to ${OUT}"
echo -n " "
cp -v "${DIR}/${VAL}" "${OUT}"
fi
if [ -f ${OUT} ]
then
if [[ ${TYPE} = "xml" ]]
then
xmllint --noout ${OUT} 2> /dev/null && (
echo -e " ${green}${OUT} passes XML lint test!${default}"
) || (
echo -e " ${yellow}${OUT} does not pass XML lint test!${default}"
)
# TODO - validate against schema - https://github.com/rvost/DayZ-Central-Economy-Schema/tree/master
elif [ "${TYPE}" == "json" ]
then
jq -e . ${OUT} > /dev/null || (
echo -e " ${yellow}${OUT} does not pass JSON lint test!${default}"
) && (
echo -e " ${green}${OUT} passes JSON lint test!${default}"
)
fi
fi
done
if [ -f "${FILES}/mods/${ID}/start.sh" ]
then
echo
echo "Copy ${FILES}/mods/${ID}/start.sh -> ${DIR}/start.sh"
cp "${FILES}/mods/${ID}/start.sh" "${DIR}/start.sh"
echo
fi

124
files/custom/README.md Normal file
View File

@@ -0,0 +1,124 @@
# Custom Server Changes
## These are the custom integrations possible with dayzdockerserver
### Lowered login/logout time
To lower the login/logout time from the default 15 seconds.
Go into the server container:
```shell
docker compose exec server bash
```
Make a new directory in /profiles/custom called login and go into it:
```shell
mkdir -p /profiles/custom/login
cd /profiles/custom/login
```
Generate a globals.xml with the changed values:
```shell
cat > globals.xml << EOF
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<variables>
<var name="TimeLogin" type="0" value="1"/>
<var name="TimeLogout" type="0" value="1"/>
</variables>
EOF
```
Restart the server.
### No food
For a more survival-oriented experience, one can prevent food from spawning in the world, forcing players to hunt and fish for food.
Food still spawns on the infected and in containers. Any other mod that adds food will also be unaffected.
Go into the server container:
```shell
docker compose exec server bash
```
Make a new directory in /profiles/custom called no-food and go into it:
```shell
mkdir -p /profiles/custom/no-food
cd /profiles/custom/no-food
```
Generate the types.xml override file from your current mpmissions type.xml (presumes dayzOffline.chernarusplus):
```shell
xmlstarlet ed \
-s / -t elem -n food \
-m "/types/type[category[contains(@name, 'food')]]" "/food" \
-d /types \
-r food -v types \
-u //nominal -v 0 \
/serverfiles/mpmissions/dayzOffline.chernarusplus/db/types.xml \
> types.xml
```
Always lint any XML file that is created/merged (Any output from this command means there is a problem. No output means the XML file is valid):
```shell
xmllint --noout types.xml
```
Restart the server for the changes to take effect.
Explanation:
* Start xmlstarlet in edit mode
* Add a new XML node at the root named "food"
* Move all `<type>` nodes where `<category name="...` has the word "food" in it to the new /food node
* Delete the remaining `<types>` root node
* Rename `<food>` to `<types>`
* Set all remaining nodes to have `<nominal>0</nominal>`
* Do this for every mpmissions types.xml file (dayzOffline.chernarusplus shown here)
* Save it to a new types.xml file in the current directory, the one we made above.
This file will now serve as a types.xml override for all food items when the server starts!
Every directory under /profiles/custom will be added as a new Economy Core entry when the server is started.
### Change starting gear
To change player starting gear, using examples from [the BI DayZ Wiki](https://community.bistudio.com/wiki/DayZ:Spawning_Gear_Configuration):
Go into the server container:
```shell
docker compose exec server bash
```
Copy the custom integration directory:
```shell
mkdir -p /profiles/custom
cp -a /files/custom/starting-gear /profiles/custom/
```
Restart the server.
### No personal light
The personal light is usually configured using the `disablePersonalLight` setting in [serverDZ.cfg](../serverDZ.cfg), but if a cfggameplay.json file is present, which is the default being employed for this project, that setting must be overridden there. To configure the personal light:
```shell
mkdir -p /profiles/custom
cp -a /files/custom/no-personal-light /profiles/custom
```
Restart the server.
### References
[BI DayZ Wiki - Spawning Gear Configuration](https://community.bistudio.com/wiki/DayZ:Spawning_Gear_Configuration)
[BI DayZ Wiki - Central Economy Mission Files Modding](ttps://community.bistudio.com/wiki/DayZ:Central_Economy_mission_files_modding)

View File

@@ -0,0 +1,5 @@
{
"PlayerData": {
"disablePersonalLight": true
}
}

View File

@@ -0,0 +1,9 @@
{
"PlayerData":{
"spawnGearPresetFiles": [
"custom_starting-gear/medic.json",
"custom_starting-gear/military.json",
"custom_starting-gear/vanilla.json"
]
}
}

View File

@@ -0,0 +1,209 @@
{
"spawnWeight": 1,
"name": "medic",
"attachmentSlotItemSets": [
{
"slotName": "shoulderR",
"discreteItemSets": [
{
"itemType": "PipeWrench",
"spawnWeight": 2,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Crowbar",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8
},
"quickBarSlot": 2
}
]
},
{
"slotName": "Vest",
"discreteItemSets": [
{
"itemType": "PressVest_LightBlue",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Back",
"discreteItemSets": [
{
"itemType": "TortillaBag",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "CoyoteBag_Green",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
}
]
},
{
"slotName": "Eyewear",
"discreteItemSets": [
{
"itemType": "ThinFramesGlasses",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "",
"spawnWeight": 1
}
]
},
{
"slotName": "Body",
"discreteItemSets": [
{
"itemType": "MedicalScrubsShirt_Blue",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Legs",
"discreteItemSets": [
{
"itemType": "MedicalScrubsPants_Blue",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Feet",
"discreteItemSets": [
{
"itemType": "WorkingBoots_Yellow",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
}
],
"discreteUnsortedItemSets": [
{
"name": "Medic Cargo 1",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 1.0,
"quantityMin": 0.6,
"quantityMax": 0.8
},
"complexChildrenTypes": [
{
"itemType": "FirstAidKit",
"attributes": {
"healthMin": 0.7,
"healthMax": 0.8,
"quantityMin": 0.05,
"quantityMax": 0.1
},
"quickBarSlot": 3,
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"BloodBagIV",
"BandageDressing"
]
}
],
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"Rag",
"SheepSteakMeat"
]
},
{
"name": "Medic Cargo 2",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 1.0,
"quantityMin": 0.6,
"quantityMax": 0.8
},
"complexChildrenTypes": [
{
"itemType": "FirstAidKit",
"attributes": {
"healthMin": 0.7,
"healthMax": 0.8,
"quantityMin": 0.05,
"quantityMax": 0.1
},
"quickBarSlot": 3,
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"TetracyclineAntibiotics",
"BandageDressing"
]
}
],
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"Canteen",
"Rag",
"Apple"
]
}
]
}

View File

@@ -0,0 +1,337 @@
{
"spawnWeight": 1,
"name": "Military - AKM",
"characterTypes": [
"SurvivorF_Judy",
"SurvivorM_Lewis"
],
"attachmentSlotItemSets": [
{
"slotName": "shoulderL",
"discreteItemSets": [
{
"itemType": "AKM",
"spawnWeight": 3,
"attributes": {
"healthMin": 0.5,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1,
"complexChildrenTypes": [
{
"itemType": "AK_PlasticBttstck",
"attributes": {
"healthMin": 0.4,
"healthMax": 0.6,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "PSO1Optic",
"attributes": {
"healthMin": 0.1,
"healthMax": 0.2,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1,
"simpleChildrenUseDefaultAttributes": true,
"simpleChildrenTypes": [
"Battery9V"
]
},
{
"itemType": "Mag_AKM_30Rnd",
"attributes": {
"healthMin": 0.5,
"healthMax": 0.5,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
],
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"AK_PlasticHndgrd",
"AK_Bayonet"
]
},
{
"itemType": "AKM",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1,
"complexChildrenTypes": [
{
"itemType": "AK_WoodBttstck",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "PSO11Optic",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1,
"simpleChildrenUseDefaultAttributes": true,
"simpleChildrenTypes": [
"Battery9V"
]
},
{
"itemType": "Mag_AKM_30Rnd",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
],
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"AK_WoodHndgrd",
"AK_Bayonet"
]
}
]
},
{
"slotName": "shoulderR",
"discreteItemSets": [
{
"itemType": "BaseballBat",
"spawnWeight": 2,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Shovel",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8
},
"quickBarSlot": 2
}
]
},
{
"slotName": "Vest",
"discreteItemSets": [
{
"itemType": "PlateCarrierVest",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1,
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"PlateCarrierHolster"
]
}
]
},
{
"slotName": "Back",
"discreteItemSets": [
{
"itemType": "TaloonBag_Blue",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3,
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"Mag_AKM_Drum75Rnd"
]
},
{
"itemType": "TaloonBag_Orange",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3,
"simpleChildrenUseDefaultAttributes": true,
"simpleChildrenTypes": [
"Mag_AKM_30Rnd",
"Mag_AKM_30Rnd"
]
}
]
},
{
"slotName": "Eyewear",
"discreteItemSets": [
{
"itemType": "AviatorGlasses",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "",
"spawnWeight": 1
}
]
},
{
"slotName": "Body",
"discreteItemSets": [
{
"itemType": "GorkaEJacket_Flat",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Legs",
"discreteItemSets": [
{
"itemType": "GorkaPants_Flat",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Feet",
"discreteItemSets": [
{
"itemType": "MilitaryBoots_Bluerock",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
}
],
"discreteUnsortedItemSets": [
{
"name": "Obelix",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 1.0,
"quantityMin": 0.6,
"quantityMax": 0.8
},
"complexChildrenTypes": [
{
"itemType": "Pot",
"attributes": {
"healthMin": 0.1,
"healthMax": 0.8,
"quantityMin": 0.1,
"quantityMax": 0.1
},
"quickBarSlot": -1,
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"BoarSteakMeat",
"BoarSteakMeat"
]
},
{
"itemType": "Mag_AKM_30Rnd",
"attributes": {
"healthMin": 0.1,
"healthMax": 0.8,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
],
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"Rag",
"BoarSteakMeat",
"BoarSteakMeat",
"BoarSteakMeat",
"FNX45",
"Mag_FNX45_15Rnd",
"AmmoBox_45ACP_25rnd"
]
},
{
"name": "Asterix",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.5,
"healthMax": 1.0,
"quantityMin": 0.6,
"quantityMax": 0.8
},
"simpleChildrenUseDefaultAttributes": false,
"simpleChildrenTypes": [
"Canteen",
"Rag",
"Apple",
"AmmoBox_762x39_20Rnd",
"CZ75",
"Mag_CZ75_15Rnd",
"AmmoBox_9x19_25rnd"
]
}
]
}

View File

@@ -0,0 +1,769 @@
{
"spawnWeight": 1,
"name": "Player",
"characterTypes": [
"SurvivorM_Mirek",
"SurvivorM_Boris",
"SurvivorM_Cyril",
"SurvivorM_Denis",
"SurvivorM_Elias",
"SurvivorM_Francis",
"SurvivorM_Guo",
"SurvivorM_Hassan",
"SurvivorM_Indar",
"SurvivorM_Jose",
"SurvivorM_Kaito",
"SurvivorM_Lewis",
"SurvivorM_Manua",
"SurvivorM_Niki",
"SurvivorM_Oliver",
"SurvivorM_Peter",
"SurvivorM_Quinn",
"SurvivorM_Rolf",
"SurvivorM_Seth",
"SurvivorM_Taiki",
"SurvivorF_Eva",
"SurvivorF_Frida",
"SurvivorF_Gabi",
"SurvivorF_Helga",
"SurvivorF_Irena",
"SurvivorF_Judy",
"SurvivorF_Keiko",
"SurvivorF_Linda",
"SurvivorF_Maria",
"SurvivorF_Naomi",
"SurvivorF_Baty"
],
"attachmentSlotItemSets": [
{
"slotName": "Body",
"discreteItemSets": [
{
"itemType": "TShirt_Beige",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_Black",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_Blue",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_Green",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_OrangeWhiteStripes",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_Red",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_RedBlackStripes",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_White",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "TShirt_Grey",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Legs",
"discreteItemSets": [
{
"itemType": "CanvasPantsMidi_Beige",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "CanvasPantsMidi_Blue",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "CanvasPantsMidi_Grey",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "CanvasPantsMidi_Red",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "CanvasPantsMidi_Violet",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
},
{
"slotName": "Feet",
"discreteItemSets": [
{
"itemType": "AthleticShoes_Black",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "AthleticShoes_Blue",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "AthleticShoes_Brown",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "AthleticShoes_Green",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
},
{
"itemType": "AthleticShoes_Grey",
"spawnWeight": 1,
"attributes": {
"healthMin": 0.45,
"healthMax": 0.65,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": -1
}
]
}
],
"discreteUnsortedItemSets": [
{
"name": "Cargo1",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Red",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Pear",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo2",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Green",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Pear",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo3",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Yellow",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Pear",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo4",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_White",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Pear",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo5",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Red",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Plum",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo6",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Green",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Plum",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo7",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Yellow",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Plum",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo8",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_White",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Plum",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo9",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Red",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Apple",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo10",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Green",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Apple",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo11",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_Yellow",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Apple",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
},
{
"name": "Cargo12",
"spawnWeight": 1,
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"complexChildrenTypes": [
{
"itemType": "BandageDressing",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 2
},
{
"itemType": "Chemlight_White",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 1
},
{
"itemType": "Apple",
"attributes": {
"healthMin": 1.0,
"healthMax": 1.0,
"quantityMin": 1.0,
"quantityMax": 1.0
},
"quickBarSlot": 3
}
]
}
]
}

14
files/messages.xml Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<messages>
<message>
<deadline>240</deadline>
<shutdown>1</shutdown>
<text>The server will restart in #tmin minutes...</text>
</message>
<message>
<delay>1</delay>
<repeat>30</repeat>
<onconnect>1</onconnect>
<text>Welcome to #name!</text>
</message>
</messages>

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -eE
MAP="DeerIsle"
DIR="DayZ-Deerisle-Stable"
REPO="https://github.com/johnmclane666/${DIR}.git"
MPDIR="empty.deerisle"

View File

@@ -0,0 +1 @@
TYPES=./info/types.xml

View File

@@ -0,0 +1 @@
TYPES=./xml/types.xml

View File

@@ -0,0 +1 @@
TYPES=./info/BBP_types.xml

View File

@@ -0,0 +1,58 @@
--- init.c 2023-11-17 20:59:30.977503823 +0000
+++ init.c.new 2023-11-17 21:01:06.501035495 +0000
@@ -1,46 +1,18 @@
void main()
{
- //INIT WEATHER BEFORE ECONOMY INIT------------------------
- //Weather weather = g_Game.GetWeather();
- //weather.MissionWeather(false); // false = use weather controller from Weather.c
- //weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
- //weather.GetRain().Set( 0, 0, 1);
- //weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);
-
- //INIT ECONOMY--------------------------------------
- Hive ce = CreateHive();
- if ( ce )
- ce.InitOffline();
-
- //DATE RESET AFTER ECONOMY INIT-------------------------
+ CreateHive();
+ GetHive().InitOffline();
int year, month, day, hour, minute;
- int reset_month = 9, reset_day = 20;
-
- GetGame().GetWorld().GetDate(year, month, day, hour, minute);
+ GetGame().GetWorld().GetDate( year, month, day, hour, minute );
- if ((month == reset_month) && (day < reset_day))
- {
- GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
- }
- else
+ //Change here the dates for whatever months you desire
+ if ( month < 12 )
{
- if ((month == reset_month + 1) && (day > reset_day))
- {
- GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
- }
- else
- {
- if ((month < reset_month) || (month > reset_month + 1))
- {
- GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
- }
- }
+ year = 2011;
+ month = 12;
+ day = 25;
+ GetGame().GetWorld().SetDate( year, month, day, hour, minute );
}
-
- //CEApi TestHive = GetCEApi();
- //TestHive.ExportProxyProto();
- //TestHive.ExportProxyData( "8096 0 8096", 16384 );
- //TestHive.ExportClusterData() ;
}
class CustomMission: MissionServer

View File

@@ -0,0 +1 @@
TYPES=./types-v6.xml

View File

@@ -0,0 +1 @@
TYPES=./extras/msp_types.xml

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -eE
# There are two sets of mpmission files for Namalsk, one for the regular version and one for the hardcore version.
# This is why there is a wildcard in MPDIR.
MAP="Namalsk"
DIR="Namalsk-Server"
REPO="https://github.com/SumrakDZN/${DIR}.git"
MPDIR="*.namalsk"

View File

@@ -0,0 +1,4 @@
CFGSPAWNABLETYPES=https://raw.githubusercontent.com/ExpansionModTeam/DayZ-Expansion-Missions/master/Template/Chernarus/expansion_ce/expansion_spawnabletypes.xml
CFGEVENTSPAWNS=https://raw.githubusercontent.com/ExpansionModTeam/DayZ-Expansion-Missions/master/Template/Chernarus/cfgeventspawns.xml
EVENTS=https://raw.githubusercontent.com/ExpansionModTeam/DayZ-Expansion-Missions/master/Template/Chernarus/expansion_ce/expansion_events.xml
TYPES=https://raw.githubusercontent.com/ExpansionModTeam/DayZ-Expansion-Missions/master/Template/Chernarus/expansion_ce/expansion_types.xml

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -eE
MAP="Banov"
DIR="Banov"
REPO="https://github.com/KubeloLive/${DIR}.git"
MPDIR="empty.banov"

View File

@@ -0,0 +1,2 @@
TYPES=./xml_and_clasnames/snafu_types.xml
CFGSPAWNABLETYPES=./xml_and_clasnames/snafuspawnabletypes25percent.xml

View File

@@ -0,0 +1 @@
TYPES=./info/types.xml

View File

@@ -0,0 +1,5 @@
CFGSPAWNABLETYPES=./files/spawnabletypes/mmg_cfgspawnabletypes.xml
# Merge all the XML files into a single types.xml file:
# cd /mods/221100/2663169692/files/types
# xmlmerge -o types.xml *.xml
TYPES=local

View File

@@ -0,0 +1,5 @@
CFGENVIRONMENT=./cfgenvironment.xml
CFGSPAWNABLETYPES=./spawnabletypes.xml
CFGEVENTSPAWNS=./cfgeventspawns.xml
EVENTS=./events.xml
TYPES=./types.xml

View File

@@ -0,0 +1,7 @@
CFGSPAWNABLETYPES=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Event%20Spawn%20Config/RFFSHelis_cfgspawnabletypes.xml
#CFGEVENTSPAWNS=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Event%20Spawn%20Config/Banov/RFFSHelis_cfgeventspawns.xml
CFGEVENTSPAWNS=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Event%20Spawn%20Config/Chernarus/RFFSHelis_cfgeventspawns.xml
#CFGEVENTSPAWNS=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Event%20Spawn%20Config/DeerIsle/RFFSHelis_cfgeventspawns.xml
#CFGEVENTSPAWNS=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Event%20Spawn%20Config/Namalsk/RFFSHelis_cfgeventspawns.xml
EVENTS=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Event%20Spawn%20Config/RFFSHelis_events.xml
TYPES=https://raw.githubusercontent.com/RedFalconKen/RedFalconFlightSystem-Heliz/main/Config%20Files/Types.XML/RFFSHelis_Types.xml

View File

@@ -0,0 +1 @@
TYPES=./extras/types/rag_baseitems.xml

View File

@@ -0,0 +1,4 @@
CFGSPAWNABLETYPES=https://raw.githubusercontent.com/RedFalconKen/RedFalconWatercraft/main/Config%20Files/Event%20Spawn%20Config/cfgspawnabletypes.xml
CFGEVENTSPAWNS=https://github.com/RedFalconKen/RedFalconWatercraft/blob/main/Config%20Files/Event%20Spawn%20Config/DeerIsle/cfgeventspawns.xml
EVENTS=https://raw.githubusercontent.com/RedFalconKen/RedFalconWatercraft/main/Config%20Files/Event%20Spawn%20Config/events.xml
TYPES=https://raw.githubusercontent.com/RedFalconKen/RedFalconWatercraft/main/Config%20Files/Types.XML/RFWC_Types.xml

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
MAP="Pripyat"
DIR="PripyatMissionFiles"
REPO="https://github.com/FrenchiestFry15/${DIR}.git"
MPDIR="serverMission.Pripyat"

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<env>
<territories>
<territory type="Ambient" name="AmbientRat" behavior="DZRatGroupBeh">
<file usable="rat_territories" />
<!-- different agent types - class has to begin with AgentType:w -->
<agent type="Male" chance="1">
<spawn configName="Animal_Rat_Grey" chance="1" />
</agent>
<agent type="Female" chance="3">
<spawn configName="Animal_Rat_White" chance="10" />
</agent>
<item name="globalCountMax" val="50" />
<item name="zoneCountMin" val="1" />
<item name="zoneCountMax" val="1" />
<item name="playerSpawnRadiusNear" val="25" />
<item name="playerSpawnRadiusFar" val="75" />
</territory>
</territories>
</env>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<events>
<event name="AmbientRat">
<nominal>3</nominal>
<min>0</min>
<max>50</max>
<lifetime>33</lifetime>
<restock>15</restock>
<saferadius>40</saferadius>
<distanceradius>0</distanceradius>
<cleanupradius>0</cleanupradius>
<flags deletable="0" init_random="0" remove_damaged="0"/>
<position>fixed</position>
<limit>mixed</limit>
<active>1</active>
<children>
<child lootmax="0" lootmin="0" max="2" min="1" type="Animal_Rat_Grey"/>
<child lootmax="0" lootmin="0" max="4" min="1" type="Animal_Rat_White"/>
</children>
</event>
</events>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<types>
<type name="Animal_Rat_Grey">
<nominal>0</nominal>
<lifetime>1800</lifetime>
<restock>0</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="Animal_Rat_White">
<nominal>0</nominal>
<lifetime>1800</lifetime>
<restock>0</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="SkinnedRat">
<nominal>0</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/>
<category name="food"/>
</type>
<type name="DeadRat_Grey">
<nominal>0</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/>
<category name="food"/>
</type>
<type name="DeadRat_White">
<nominal>0</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/>
<category name="food"/>
</type>
</types>

View File

@@ -0,0 +1,5 @@
# banov, chernarus, livonia, namalsk, yiprit
TERRITORIES=./rat_territories/chernarus/rat_territories.xml
CFGENVIRONMENT=local
TYPES=local
EVENTS=local

View File

@@ -0,0 +1,84 @@
<event name="VehicleHunterz_Old_Bike">
<pos x="6010.080078" z="14701.788086" a="6.096111" />
<pos x="5957.177246" z="14104.126953" a="14254.233398" />
<pos x="5313.379883" z="4.782500" a="12441.051758" />
<pos x="1893.470825" z="9088.951172" a="9.787330" />
<pos x="1704.869873" z="8963.522461" a="9.469731" />
<pos x="5413.193359" z="7585.847168" a="2.604634" />
<pos x="5421.258789" z="7645.694824" a="3.516835" />
<pos x="1411.535889" z="15494.984375" a=" 8.433312" />
<pos x="1071.978027" z="13376.917969" a=" 7.928827" />
<pos x="10048.099609" z="10888.799805" a="21.770000" />
<pos x="10048.099609" z="10888.799805" a="21.770000" />
<pos x="10096.698242" z="11025.446289" a="23.557491" />
<pos x="10240.601563" z="10960.629883" a="21.855894" />
<pos x="9123.113281" z="9522.119141" a="9.893348" />
<pos x="9245.028320" z="9347.706055" a="5.594609" />
<pos x="8325.462891" z="9311.027344" a="355" />
<pos x="8933.545898" z="8878.902344" a="5.075371" />
<pos x="10171.611328" z="12097.455078" a="6.925732" />
<pos x="10233.688477" z="5457.805176" a="25.305025" />
<pos x="10129.852539" z="5128.518555" a="53.144997" />
<pos x="10235.055664" z="4919.823730" a="38.464787" />
<pos x="10187.030273" z="4926.292480" a="42.316437" />
<pos x="10358.420898" z="4408.810059" a="8.754035" />
<pos x="9985.471680" z="4305.386230" a="4.153094" />
<pos x="9763.339844" z="4352.179688" a="6.366706" />
<pos x="10264.574219" z="10942.596680" a="21.811928" />
<pos x="10240.601563" z="10960.629883" a="21.855894" />
<pos x="9123.113281" z="9522.119141" a="9.893348" />
<pos x="9245.028320" z="9347.706055" a="5.594609" />
<pos x="8325.462891" z="9311.027344" a="5.142496" />
<pos x="8933.545898" z="8878.902344" a="5.075371" />
<pos x="10171.611328" z="12097.455078" a="6.925732" />
<pos x="10233.688477" z="5457.805176" a="25.305025" />
<pos x="10129.852539" z="5128.518555" a="53.144997" />
<pos x="10235.055664" z="4919.823730" a="38.464787" />
<pos x="10187.030273" z="4926.292480" a="42.316437" />
<pos x="10358.420898" z="4408.810059" a="8.754035" />
<pos x="9985.471680" z="4305.386230" a="4.153094" />
<pos x="9763.339844" z="4352.179688" a="6.366706" />
<pos x="9790.224609" z="4355.215820" a="6.192500" />
<pos x="10332.311523" z="4014.201416" a="3.967608" />
<pos x="10369.708984" z="4003.835449" a="3.121927" />
<pos x="7497.622070" z="3940.302490" a="23.842499" />
<pos x="7521.539551" z="3576.437500" a="32.894035" />
<pos x="7494.642090" z="3278.126221" a="43.374649" />
<pos x="7333.544922" z="2548.608643" a="45.877647" />
<pos x="6054.528809" z="14828.798828" a="3.994229" />
<pos x="6139.636230" z="14684.996094" a="4.753993" />
<pos x="6108.496094" z="14644.705078" a="9.389813" />
<pos x="13866.751953" z="3906.153564" a="9.541591" />
<pos x="13289.928711" z="4750.315918" a="9.222501" />
<pos x="13452.711914" z="4739.151855" a="9.164268" />
<pos x="14002.353516" z="2983.972656" a="92.910805" />
<pos x="15558.864258" z="1169.379150" a="57.551590" />
<pos x="7146.093262" z="1589.995972" a="8.163297" />
<pos x="7482.986816" z="1540.985474" a="3.170174" />
<pos x="6898.913574" z="1824.329224" a="38.923012" />
<pos x="6666.698242" z="1493.407959" a="5.743637" />
<pos x="6395.947754" z="2114.641602" a="31.742464" />
<pos x="6282.848145" z="1383.738037" a="4.692500" />
<pos x="5468.817383" z="960.003052" a="-1.392104" />
<pos x="4746.870605" z="1546.413086" a="8.436662" />
<pos x="4847.833496" z="1548.356445" a="8.282501" />
<pos x="4943.163574" z="2093.076660" a="3.902500" />
<pos x="5040.596191" z="2184.517334" a="4.520437" />
<pos x="4471.860352" z="2760.040527" a="3.704665" />
<pos x="4325.373047" z="2833.375488" a="2.620498" />
<pos x="4126.901855" z="2871.620850" a="22.575489" />
<pos x="1425.494263" z="6763.766113" a="2.338181" />
<pos x="14488.817383" z="6437.840820" a="2.374229" />
<pos x="13791.873047" z="5278.212402" a="2.322220" />
<pos x="5816.545898" z="13905.427734" a="7.799627" />
<pos x="1222.279053" z="10547.170898" a="55.960594" />
<pos x="6014.195801" z="15217.665039" a="5.892501" />
<pos x="6316.229004" z="14577.662109" a="18.519482" />
<pos x="5960.694336" z="8454.970703" a="5.829842" />
<pos x="10147.758789" z="10016.644531" a="23.543917" />
<pos x="11341.680664" z="1724.614502" a="5.339993" />
<pos x="6850.232910" z="1530.607910" a="2.706452" />
<pos x="6764.081055" z="1439.538574" a="3.514446" />
<pos x="6310.994629" z="998.508789" a="14.172501" />
<pos x="7290.669434" z="8477.252930" a="6.650079" />
</event>

View File

@@ -0,0 +1,4 @@
CFGSPAWNABLETYPES=./spawnabletypes.xml
CFGEVENTSPAWNS=./cfgeventspawns_chernarus.xml
#EVENTS=events.xml
#TYPES=types.xml

View File

@@ -0,0 +1,6 @@
{
"WorldsData":{
"environmentMinTemps": [-7.0, -5.0, -3.0, -2.0, 0.0, 2.0, 5.0, 10.0, 7.0, 5.0, 1.0, -2.0],
"environmentMaxTemps": [-3.0, -1.0, 2.0, 5.0, 7.0, 10.0, 12.0, 16.0, 13.0, 10.0, 7.0, 2.0]
}
}

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<weather reset="0" enable="0">
<overcast>
<current actual="0.10" time="900" duration="1200" />
<limits min="0.6" max="1.0" />
<timelimits min="900" max="1800" />
<changelimits min="0.1" max="0.3" />
</overcast>
<fog>
<current actual="0.0" time="0" duration="0" />
<limits min="0.0" max="0.0" />
<timelimits min="0" max="0" />
<changelimits min="0.0" max="0.0" />
</fog>
<rain>
<current actual="0.2" time="120" duration="240" />
<limits min="0.1" max="1.0" />
<timelimits min="120" max="240" />
<changelimits min="0.0" max="0.1" />
<thresholds min="0.6" max="1.0" end="10" />
</rain>
<wind>
<maxspeed>13</maxspeed>
<params min="0.0" max="0.6" frequency="30" />
</wind>
<storm density="0.0" threshold="1.0" timeout="0"/>
</weather>

View File

@@ -0,0 +1,54 @@
--- init.c 2023-12-22 09:06:49.416111938 +0000
+++ init.c.new 2023-12-22 09:08:58.365653156 +0000
@@ -1,34 +1,19 @@
void main()
{
- //INIT ECONOMY--------------------------------------
- Hive ce = CreateHive();
- if ( ce )
- ce.InitOffline();
-
- //DATE RESET AFTER ECONOMY INIT-------------------------
+ CreateHive();
+ GetHive().InitOffline();
int year, month, day, hour, minute;
- int reset_month = 9, reset_day = 20;
- GetGame().GetWorld().GetDate(year, month, day, hour, minute);
+ GetGame().GetWorld().GetDate( year, month, day, hour, minute );
- if ((month == reset_month) && (day < reset_day))
+ //Change here the dates for whatever months you desire
+ if ( month < 12 )
{
- GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
+ year = 2011;
+ month = 12;
+ day = 25;
+ GetGame().GetWorld().SetDate( year, month, day, hour, minute );
}
- else
- {
- if ((month == reset_month + 1) && (day > reset_day))
- {
- GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
- }
- else
- {
- if ((month < reset_month) || (month > reset_month + 1))
- {
- GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
- }
- }
- }
-}
+}
class CustomMission: MissionServer
{
@@ -95,4 +80,4 @@
Mission CreateCustomMission(string path)
{
return new CustomMission();
-}
\ No newline at end of file
+}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<types>
<type name="WinterStash">
<nominal>0</nominal>
<lifetime>1209600</lifetime>
<restock>0</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/>
<category name="containers"/>
</type>
</types>

View File

@@ -0,0 +1,4 @@
TYPES=local
INIT=local
CFGGAMEPLAY=local
CFGWEATHER=local

View File

@@ -0,0 +1 @@
TYPES=./xmls/ugbtypes.xml

View File

@@ -0,0 +1,58 @@
# HypeTrain
## Reference
The files used to integrate the [HypeTrain mod](https://steamcommunity.com/sharedfiles/filedetails/?id=3115714092) came from
[here](https://steamcommunity.com/workshop/filedetails/discussion/3115714092/4032475029247848861/).
## Goals
To spawn exactly one large complete train (7-8 cars) somewhere in Chernarus, in one of many possible locations, and having all cars persist
Later, to spwan exactly one smaller train in the same manner as above, but then to spawn in more cars over time, in random places.
## Mod Integration Files
5 files are required to run the mod. Two are map-specific and the rest are common to all maps:
These are map-specific. The ones included in this repository are for Chernarus:
* `cfgeventgroups.xml` - Defines "sets of trains", one for every possible spawn point.
* `cfgeventspawns.xml` - The possible spawn point locations within Chernarus.
These files are commong to all maps:
* `cfgspawnabletypes.xml` -
* `events.xml` - An event that spawns a complete train
* `types.xml` - All types from the mod.
The `start.sh` script is for doing extra stuff, but programatically. See the comments within it for details.
## Generic Mod Installation (Windows)
Using the [Central Economy](https://community.bistudio.com/wiki/DayZ:Central_Economy_mission_files_modding) method:
* Create a new folder in your mpmissions map folder. Name it HypeTrain.
* Put the 3 files common to the server in that folder
```
+C:\
+DayZ Server
+mpmissions
+dayzOffline.chernarusplus
+HypeTrain
-cfgspawnabletypes.xml
-events.xml
-types.xml
```
Edit the server's `cfgeconomycore.xml` and add the following under `<economycore>`:
```
<ce folder="HypeTrain">
<file name="cfgspawnabletypes.xml" type="spawnabletypes"/>
<file name="events.xml" type="events"/>
<file name="types.xml" type="types"/>
</ce>
```
The other two files must be manually merged to the mpmissions equivalents:

View File

@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eventgroupdef>
<!-- HypeTrain -->
<!--pos x="5587.466" z="2063.353" a="0" y="7.591" group="HypeTrain_Cherno"/-->
<group name="HypeTrain_Cherno">
<child type="HypeTrain_742_Locomotive_Red" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="78.123" y="1.9"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="12.085" z="2.740" a="256.739" y="1.789"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="23.106" z="5.477" a="255.579" y="1.781"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="34.546" z="8.424" a="255.837" y="1.32"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="46.285" z="11.341" a="255.321" y="1.398"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="69.472" z="18.594" a="250.938" y="1.450"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="57.966" z="14.737" a="252.227" y="1.411"/>
</group>
<!--pos x="3678.228" z="2328.108" a="0" y="6.546" group="HypeTrain_Kamarovo"/-->
<group name="HypeTrain_Kamarovo">
<child type="HypeTrain_742_Locomotive_Blue" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="198.014" y="1.9"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="60.378" z="80.129" a="67.036" y="0.196"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="45.489" z="71.296" a="52.469" y="0.196"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="32.470" z="59.876" a="45.249" y="0.196"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="21.187" z="46.785" a="35.581" y="0.196"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="8.003" z="23.498" a="20.755" y="1.328"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="13.241" z="34.531" a="28.619" y="1.328"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="3.936" z="12.068" a="18.048" y="1.328"/>
</group>
<!--pos x="11254.230" z="3290.319" a="0" y="6.513" group="HypeTrain_Kamy"/-->
<group name="HypeTrain_Kamy">
<child type="HypeTrain_742_Locomotive_Red" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="232.116" y="1.9"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="10.519" z="7.484" a="56.981" y="1.359"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="63.608" z="36.819" a="65.102" y="1.350"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="42.184" z="25.479" a="61.364" y="1.357"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="31.572" z="19.643" a="61.364" y="1.377"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="20.972" z="13.791" a="60.977" y="1.373"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="52.812" z="31.258" a="61.364" y="1.354"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="74.479" z="41.357" a="249.519" y="1.775"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="85.195" z="45.147" a="71.548" y="1.771"/>
</group>
<!--pos x="1256.313" z="9349.465" a="0" y="211.678" group="HypeTrain_Myshkino"/-->
<group name="HypeTrain_Myshkino">
<child type="HypeTrain_742_Locomotive_Blue" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="29.779" y="1.9"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-6.915" z="-10.795" a="36.096" y="1.265"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-14.550" z="-20.221" a="42.284" y="1.208"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-31.905" z="-37.229" a="47.828" y="1.206"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-23.030" z="-28.951" a="46.538" y="1.211"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="-56.176" z="-58.183" a="49.246" y="0.2"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="-43.109" z="-47.006" a="49.504" y="0.2"/>
</group>
<!--pos x="5428.630" z="12312.974" a="0" y="185.442" group="HypeTrain_Petrovka"/-->
<group name="HypeTrain_Petrovka">
<child type="HypeTrain_742_Locomotive_Red" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="289.612" y="1.9"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="12.042" z="-4.408" a="289.097" y="1.269"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="46.298" z="-16.484" a="289.999" y="1.255"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="34.948" z="-12.386" a="289.354" y="1.242"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="69.121" z="-24.510" a="288.452" y="1.219"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="23.490" z="-8.401" a="289.354" y="1.229"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="57.678" z="-20.632" a="288.323" y="1.2010"/>
</group>
<!--pos x="8802.031" z="2334.222" a="0" y="8.277" group="HypeTrain_Prigorodki"/-->
<group name="HypeTrain_Prigorodki">
<child type="HypeTrain_742_Locomotive_Red" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="319.005" y="1.9"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="16.395" z="-18.849" a="318.876" y="1.405"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="8.245" z="-9.730" a="318.361" y="1.427"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="24.431" z="-28.037" a="318.876" y="1.426"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="34.188" z="-39.164" a="318.618" y="0.247"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="57.286" z="-64.804" a="317.587" y="0.225"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="69.024" z="-77.475" a="316.942" y="0.253"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="45.675" z="-52.051" a="318.103" y="0.242"/>
</group>
<!--pos x="13377.262" z="13919.888" a="0" y="17.197" group="HypeTrain_Svetlo"/-->
<group name="HypeTrain_Svetlo">
<child type="HypeTrain_742_Locomotive_Blue" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="10.700" y="1.9"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="-10.339" z="-33.442" a="17.661" y="1.7"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="-3.268" z="-11.845" a="16.630" y="1.713"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="-6.742" z="-22.613" a="18.951" y="1.722"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-13.526" z="-44.791" a="14.567" y="1.229"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-19.898" z="-80.635" a="6.446" y="1.275"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-18.358" z="-68.715" a="8.766" y="1.257"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-16.193" z="-56.684" a="11.216" y="1.272"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-20.853" z="-92.739" a="3.610" y="1.282"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-21.220" z="-104.845" a="0.644" y="1.276"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-21.077" z="-116.967" a="358.840" y="1.304"/>
</group>
<!--pos x="1309.973" z="4991.340" a="0" y="166.535" group="HypeTrain_Zvir"/-->
<group name="HypeTrain_Zvir">
<child type="HypeTrain_742_Locomotive_Blue" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="288.452" y="1.9"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="49.419" z="-4.295" a="83.666" y="0.390"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="14.937" z="-3.783" a="99.781" y="0.358"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="32.083" z="-5.389" a="90.628" y="0.376"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="64.047" z="-2.551" a="83.408" y="1.625"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="88.204" z="0.338" a="83.537" y="1.572"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="76.187" z="-1.095" a="83.022" y="1.600"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="100.262" z="1.652" a="82.893" y="1.623"/>
</group>
<!--pos x="1321.629" z="2398.199" a="0" y="6.309" group="HypeTrain_Kamenka"/-->
<group name="HypeTrain_Kamenka">
<child type="HypeTrain_742_Locomotive_Blue" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="345.304" y="1.9"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="4.459" z="-14.645" a="341.694" y="0.225"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="10.686" z="-30.795" a="335.635" y="0.226"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="18.944" z="-45.766" a="325.967" y="0.25"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="29.904" z="-58.888" a="313.591" y="0.355"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="79.093" z="-96.478" a="306.113" y="1.787"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="69.927" z="-89.804" a="305.727" y="1.787"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="50.536" z="-75.855" a="305.856" y="1.36"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="40.687" z="-68.627" a="308.047" y="1.36"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="60.385" z="-82.989" a="305.469" y="1.36"/>
</group>
<!--pos x="1443.256" z="6622.697" a="0" y="176.060" group="HypeTrain_Metalurg"/-->
<group name="HypeTrain_Metalurg">
<child type="HypeTrain_742_Locomotive_Red" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="147.737" y="1.9"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="-84.501" z="84.067" a="297.992" y="0.204"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="-54.606" z="67.125" a="303.277" y="0.255"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="-69.328" z="75.889" a="298.507" y="0.224"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="-42.957" z="58.573" a="310.496" y="1.697"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-19.843" z="31.277" a="327.385" y="1.364"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-34.535" z="50.581" a="316.298" y="1.428"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-13.315" z="21.067" a="327.385" y="1.371"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-6.763" z="10.840" a="326.998" y="1.383"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="-26.616" z="41.292" a="324.033" y="1.377"/>
</group>
<!--pos x="673.779" z="8747.024" a="0" y="194.245" group="HypeTrain_Myshkino"/-->
<group name="HypeTrain_Myshkino">
<child type="HypeTrain_742_Locomotive_Blue" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="346.572" y="1.9"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="3.166" z="-11.870" a="343.499" y="1.6"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="6.678" z="-22.639" a="340.147" y="1.6"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="11.717" z="-36.060" a="338.987" y="0.0"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="17.868" z="-52.124" a="338.987" y="0.0"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="30.176" z="-84.236" a="338.729" y="0.0"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="24.014" z="-68.186" a="338.987" y="0.0"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="39.777" z="-109.229" a="338.858" y="1.4"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="35.503" z="-97.932" a="339.245" y="1.4"/>
</group>
<!--pos x="3262.817" z="12430.286" a="0" y="220.335" group="HypeTrain_Petrovka"/-->
<group name="HypeTrain_Petrovka">
<child type="HypeTrain_742_Locomotive_Red" deloot="0" lootmax="0" lootmin="0" x="0" z="0" a="225.283" y="2.9"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="36.443" z="30.719" a="54.016" y="2.2"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="26.840" z="23.290" a="50.664" y="2.208"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="56.311" z="44.548" a="65.489" y="2.202"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="112.567" z="68.760" a="72.708" y="1.102"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="96.211" z="63.229" a="69.485" y="1.102"/>
<child type="HypeTrain_742_Wagon_Flat" deloot="0" lootmax="0" lootmin="0" x="80.282" z="56.654" a="65.747" y="1.102"/>
<child type="HypeTrain_742_Wagon_Box" deloot="0" lootmax="0" lootmin="0" x="67.106" z="50.111" a="62.782" y="2.23"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="17.854" z="15.843" a="49.890" y="2.6"/>
<child type="HypeTrain_742_Wagon_Tank" deloot="0" lootmax="0" lootmin="0" x="9.272" z="8.479" a="48.085" y="2.615"/>
</group>
</eventgroupdef>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eventposdef>
<!-- HypeTrain -->
<event name="VehicleHypeTrain">
<zone smin="0" smax="0" dmin="0" dmax="0" r="20" />
<pos x="5587.466" z="2063.353" a="0" y="7.75" group="HypeTrain_Cherno"/>
<pos x="3678.228" z="2328.108" a="0" y="6.7" group="HypeTrain_Kamarovo"/>
<pos x="11254.230" z="3290.319" a="0" y="6.65" group="HypeTrain_Kamy"/>
<pos x="1256.313" z="9349.465" a="0" y="211.82" group="HypeTrain_Myshkino"/>
<pos x="5428.630" z="12312.974" a="0" y="185.59" group="HypeTrain_Petrovka"/>
<pos x="8802.031" z="2334.222" a="0" y="8.42" group="HypeTrain_Prigorodki"/>
<pos x="13377.262" z="13919.888" a="0" y="17.247" group="HypeTrain_Svetlo"/>
<pos x="1309.973" z="4991.340" a="0" y="166.685" group="HypeTrain_Zvir"/>
<pos x="1321.629" z="2398.199" a="0" y="6.7" group="HypeTrain_Kamenka"/>
<pos x="1443.256" z="6622.697" a="0" y="176.220" group="HypeTrain_Metalurg"/>
<pos x="673.779" z="8747.024" a="0" y="194.405" group="HypeTrain_Myshkino"/>
<pos x="3262.817" z="12430.286" a="0" y="219.495" group="HypeTrain_Petrovka"/>
</event>
</eventposdef>

View File

@@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<spawnabletypes>
<!-- HypeTrain -->
<type name="HypeTrain_742_Locomotive_Blue">
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="TruckBattery" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="CarRadiator" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_EngineBelt" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_ControlUnit" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="GlowPlug" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_CompressedAirHoses" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
</type>
<type name="HypeTrain_742_Locomotive_DarkBlue_Yellow">
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="TruckBattery" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="CarRadiator" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_EngineBelt" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_ControlUnit" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="GlowPlug" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_CompressedAirHoses" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
</type>
<type name="HypeTrain_742_Locomotive_IceBlue">
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="TruckBattery" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="CarRadiator" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_EngineBelt" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_ControlUnit" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="GlowPlug" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_CompressedAirHoses" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
</type>
<type name="HypeTrain_742_Locomotive_Yellow_Blue_White">
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="TruckBattery" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="CarRadiator" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_EngineBelt" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_ControlUnit" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="GlowPlug" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_CompressedAirHoses" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
</type>
<type name="HypeTrain_742_Locomotive_Red">
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="TruckBattery" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="CarRadiator" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_EngineBelt" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_ControlUnit" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="GlowPlug" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_CompressedAirHoses" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
</type>
<type name="HypeTrain_742_Locomotive_Red_Olive">
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HeadlightH7" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="TruckBattery" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="CarRadiator" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_EngineBelt" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_ControlUnit" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="GlowPlug" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_CompressedAirHoses" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Large" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
<attachments chance="1.00">
<item name="HypeTrain_742_Locomotive_Glass_Small" chance="1.00" />
</attachments>
</type>
</spawnabletypes>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<events>
<!-- HypeTrain -->
<event name="VehicleHypeTrain">
<nominal>1</nominal>
<min>0</min>
<max>0</max>
<lifetime>3888000</lifetime>
<restock>0</restock>
<saferadius>500</saferadius>
<distanceradius>500</distanceradius>
<cleanupradius>200</cleanupradius>
<flags deletable="1" init_random="0" remove_damaged="0"/>
<position>fixed</position>
<limit>child</limit>
<active>1</active>
<children/>
</event>
</events>

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# This is run in the directory with the target files
# Remove static trains
xmlstarlet ed -L -d '//eventposdef/event[@name="StaticTrain"]' cfgeventspawns.xml
# Remove spawn locations of former trains to prevent floating loot on tracks
xmlstarlet ed -L -d '//map/group[starts-with(@name,"Land_Train_")]' mapgrouppos.xml

View File

@@ -0,0 +1,247 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<types>
<!-- HypeTrain -->
<type name="HypeTrain_742_Locomotive_Blue">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Locomotive_DarkBlue_Yellow">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Locomotive_IceBlue">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Locomotive_Yellow_Blue_White">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Locomotive_Red">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Locomotive_Red_Olive">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Wagon_Box">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Wagon_Tank">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Wagon_Flat">
<nominal>0</nominal>
<lifetime>3888000</lifetime>
<restock>1800</restock>
<min>0</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="HypeTrain_742_Locomotive_EngineBelt">
<nominal>4</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>2</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<usage name="Industrial"/>
</type>
<type name="HypeTrain_742_Locomotive_ControlUnit">
<nominal>5</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>2</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<usage name="Industrial"/>
</type>
<type name="HypeTrain_742_Locomotive_CompressedAirHoses">
<nominal>15</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>7</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<usage name="Industrial"/>
</type>
<type name="HypeTrain_742_Locomotive_WindscreenBox">
<nominal>15</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>7</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<usage name="Industrial"/>
</type>
<type name="HypeTrain_742_Locomotive_Glass_Large">
<nominal>15</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>7</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<usage name="Industrial"/>
</type>
<type name="HypeTrain_742_Locomotive_Glass_Small">
<nominal>15</nominal>
<lifetime>14400</lifetime>
<restock>1800</restock>
<min>7</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<usage name="Industrial"/>
</type>
<type name="HypeTrain_RailwayWorkerVest">
<nominal>20</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="clothes"/>
</type>
<type name="HypeTrain_ConductorCap">
<nominal>20</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="clothes"/>
</type>
<type name="HypeTrain_ConductorGloves">
<nominal>20</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="clothes"/>
</type>
<type name="HypeTrain_ConductorSuit">
<nominal>20</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="clothes"/>
</type>
<type name="HypeTrain_ConductorPants">
<nominal>20</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="clothes"/>
</type>
<type name="HypeTrain_ConductorShoes">
<nominal>20</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="clothes"/>
</type>
<type name="HypeTrain_ConductorWhistle">
<nominal>14</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>10</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="tools"/>
<tag name="floor"/>
<usage name="Firefighter"/>
<usage name="Police"/>
<usage name="Medic"/>
</type>
</types>

View File

@@ -0,0 +1,6 @@
# The following two files are specific to chernarus, but livonia, and namalsk are also *currently* supported.
CFGEVENTGROUPS=local
CFGEVENTSPAWNS=local
CFGSPAWNABLETYPES=local
TYPES=local
EVENTS=local

View File

@@ -0,0 +1 @@
TYPES=./xml/dieseljerrycan_types.xml

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -eE
MAP="PripyatGamma"
DIR=""
REPO="https://github.com/FrenchiestFry15/PripyatMissionFiles.git"
MPDIR="serverMission.Pripyat"

1
files/mods/@Banov Normal file
View File

@@ -0,0 +1 @@
2415195639

View File

@@ -0,0 +1 @@
1710977250

1
files/mods/@CodeLock Normal file
View File

@@ -0,0 +1 @@
1646187754

1
files/mods/@DayZBicycle Normal file
View File

@@ -0,0 +1 @@
2971190303

View File

@@ -0,0 +1 @@
2291785437

1
files/mods/@DayZRat Normal file
View File

@@ -0,0 +1 @@
2950280649

1
files/mods/@DeerIsle Normal file
View File

@@ -0,0 +1 @@
1602372402

View File

@@ -0,0 +1 @@
3118784990

1
files/mods/@HypeTrain Normal file
View File

@@ -0,0 +1 @@
3115714092

1
files/mods/@Lightsword Normal file
View File

@@ -0,0 +1 @@
1964490092

View File

@@ -0,0 +1 @@
2663169692

View File

@@ -0,0 +1 @@
1991570984

View File

@@ -0,0 +1 @@
2289456201

1
files/mods/@OPBaseItems Normal file
View File

@@ -0,0 +1 @@
1617874376

1
files/mods/@Pripyat Normal file
View File

@@ -0,0 +1 @@
2929038098

1
files/mods/@PripyatGamma Normal file
View File

@@ -0,0 +1 @@
3136720512

View File

@@ -0,0 +1 @@
2878980498

View File

@@ -0,0 +1 @@
2692979668

View File

@@ -0,0 +1 @@
2906371600

View File

@@ -0,0 +1 @@
2443122116

1
files/mods/@SpurglesBagZ Normal file
View File

@@ -0,0 +1 @@
2489196158

View File

@@ -0,0 +1 @@
3029439021

View File

@@ -0,0 +1 @@
2981609048

View File

@@ -0,0 +1 @@
1891132304

1
files/mods/@dbo_raptors Normal file
View File

@@ -0,0 +1 @@
2684950452

21
files/mods/README.md Normal file
View File

@@ -0,0 +1,21 @@
# Mods
## Custom mod integrations
The goal is to provide the ability to quickly and easily integrate a mod's extra files:
* Custom map mods that require mission files to be installed.
* Mods that require extra files to be merged into mission files.
* Mods that require extra integration steps in the profiles directory.
### [Banov](https://steamcommunity.com/sharedfiles/filedetails/?id=2415195639)
A custom map mod. The integration script installs the mission files from their github.
### [Raptors](https://steamcommunity.com/sharedfiles/filedetails/?id=2684950452)
...
### [Red Falcon Flight System Heliz](https://steamcommunity.com/sharedfiles/filedetails/?id=2692979668)
A mod that adds helicopters. The integration merges `types.xml`, `events.xml`, `cfgspawnabletypes.xml`, and `cfgeventspawns.xml` into the mission files. This allows for configuring spawn points on all the [supported maps](https://github.com/RedFalconKen/RedFalconFlightSystem-Heliz/tree/main/Config%20Files/Event%20Spawn%20Config), what helicopters spawn, how many, their parts, etc..

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
MAP="Default Maps"
DIR="DayZ-Central-Economy"
REPO="https://github.com/BohemiaInteractive/${DIR}.git"
MPDIR="dayzOffline.*"

97
files/serverDZ.cfg Normal file
View File

@@ -0,0 +1,97 @@
hostname = "Something other than Server Name"; // Server name
password = ""; // Password to connect to the server
passwordAdmin = ""; // Password to become a server admin
maxPlayers = 60; // Maximum amount of players
verifySignatures = 2; // Verifies .pbos against .bisign files. (only 2 is supported)
forceSameBuild = 0; // When enabled, the server will allow the connection only to clients with same the .exe revision as the server (value 0-1)
disableVoN = 0; // Enable/disable voice over network (value 0-1)
vonCodecQuality = 30; // Voice over network codec quality, the higher the better (values 0-30)
disable3rdPerson=0; // Toggles the 3rd person view for players (value 0-1)
disableCrosshair=1; // Toggles the cross-hair (value 0-1)
serverTime="SystemTime"; // Initial in-game time of the server. "SystemTime" means the local time of the machine. Another possibility is to set the time to some value in "YYYY/MM/DD/HH/MM" format, f.e. "2015/4/8/17/23" .
serverTimeAcceleration=3; // Accelerated Time (value 0-24)// This is a time multiplier for in-game time. In this case, the time would move 24 times faster than normal, so an entire day would pass in one hour.
serverNightTimeAcceleration = 4; // Accelerated Nigh Time - The numerical value being a multiplier (0.1-64) and also multiplied by serverTimeAcceleration value.
// Thus, in case it is set to 4 and serverTimeAcceleration is set to 2, night time would move 8 times faster than normal.
// An entire night would pass in 3 hours.
serverTimePersistent=1; // Persistent Time (value 0-1)// The actual server time is saved to storage, so when active, the next server start will use the saved time value.
guaranteedUpdates=1; // Communication protocol used with game server (use only number 1)
loginQueueConcurrentPlayers=5; // The number of players concurrently processed during the login process. Should prevent massive performance drop during connection when a lot of people are connecting at the same time.
loginQueueMaxPlayers=500; // The maximum number of players that can wait in login queue
instanceId = 1; // DayZ server instance id, to identify the number of instances per box and their storage folders with persistence files
storageAutoFix = 1; // Checks if the persistence files are corrupted and replaces corrupted ones with empty ones (value 0-1)
motd[] = {"", ""}; // Message of the day displayed in the in-game chat
respawnTime = 0; // Sets the respawn delay (in seconds) before the player is able to get a new character on the server, when the previous one is dead
motdInterval = 300; // Time interval (in seconds) between each message
maxPing= 200; // Max ping value until server kick the user (value in milliseconds)
timeStampFormat = "Short"; // Format for timestamps in the .rpt file (value Full/Short)
logAverageFps = 3600; // Logs the average server FPS (value in seconds), needs to have -dologs launch parameter active
logMemory = 3600; // Logs the server memory usage (value in seconds), needs to have the -dologs launch parameter active
logPlayers = 3600; // Logs the count of currently connected players (value in seconds), needs to have the -dologs launch parameter active
logFile = "server_console.log"; // Saves the server console log to a file in the folder with the other server logs
adminLogPlayerHitsOnly = 0; // 1 - log player hits only / 0 - log all hits ( animals/infected )
adminLogPlacement = 0; // 1 - log placement action ( traps, tents )
adminLogBuildActions = 0; // 1 - log basebuilding actions ( build, dismantle, destroy )
adminLogPlayerList = 0; // 1 - log periodic player list with position every 5 minutes
enableDebugMonitor = 0; // shows info about the character using a debug window in a corner of the screen (value 0-1)
steamQueryPort = 27016; // defines Steam query port, should fix the issue with server not being visible in client server browser
allowFilePatching = 1; // if set to 1 it will enable connection of clients with "-filePatching" launch parameter enabled
simulatedPlayersBatch = 20; // Set limit of how much players can be simulated per frame (for server performance gain)
multithreadedReplication = 1; // enables multi-threaded processing of server's replication system
// number of worker threads is derived by settings of jobsystem in dayzSettings.xml by "maxcores" and "reservedcores" parameters (value 0-1)
speedhackDetection = 1; // enable speedhack detection, values 1-10 (1 strict, 10 benevolent, can be float)
networkRangeClose = 20; // network bubble distance for spawn of close objects with items in them (f.i. backpacks), set in meters, default value if not set is 20
networkRangeNear = 150; // network bubble distance for spawn (despawn +10%) of near inventory items objects, set in meters, default value if not set is 150
networkRangeFar = 1000; // network bubble distance for spawn (despawn +10%) of far objects (other than inventory items), set in meters, default value if not set is 1000
networkRangeDistantEffect = 4000; // network bubble distance for spawn of effects (currently only sound effects), set in meters, default value if not set is 4000
defaultVisibility=1375; // highest terrain render distance on server (if higher than "viewDistance=" in DayZ client profile, clientside parameter applies)
defaultObjectViewDistance=1375; // highest object render distance on server (if higher than "preferredObjectViewDistance=" in DayZ client profile, clientside parameter applies)
lightingConfig = 1; // 0 for brighter night, 1 for darker night
disablePersonalLight = 1; // disables personal light for all clients connected to server
disableBaseDamage = 0; // set to 1 to disable damage/destruction of fence and watchtower
disableContainerDamage = 0; // set to 1 to disable damage/destruction of tents, barrels, wooden crate and seachest
disableRespawnDialog = 0; // set to 1 to disable the respawn dialog (new characters will be spawning as random)
lootHistory = 1; // How many persistence history files should be kept by instance, number is looped over during save
storeHouseStateDisabled = false; // Disable houses/doors persistence (value true/false), usable in case of problems with persistence
enableCfgGameplayFile = 1;
// Mission to load on server startup. <MissionName>.<TerrainName>
class Missions
{
class DayZ
{
template="dayzOffline.chernarusplus"; // Chernarus
// template="dayzOffline.sakhal"; // Sakhal
// template="dayzOffline.enoch"; // Livonia
// template="empty.banov"; // Banov
// template="empty.deerisle"; // Deer Isle
// template="serverMission.Pripyat"; // Pripyat
// template="hardcore.namalsk"; // Hardcore Namalsk
// template="regular.namalsk"; // Regular Namalsk
};
};